source: publico/ILPortal/trunk/Extensions/AppInstall.py @ 1242

Última Alteração nesse arquivo desde 1242 foi 1242, incluída por gabrielmedina, 14 anos atrás

modelo,visoes,css e appinstall atualizados

File size: 29.9 KB
Linha 
1from Products.CMFCore.utils import getToolByName
2from Products.ExternalMethod.ExternalMethod import manage_addExternalMethod
3from StringIO import StringIO
4from Products.ILPortal.vocabularies import VOCABULARIOS
5from Products.ILPortal.config import *
6from Products.CMFPlone.migrations.migration_util import safeEditProperty
7from Acquisition import aq_base
8from Products.TextIndexNG2.Registry import StopwordsRegistry
9
10
11def install(self):
12    out = StringIO()
13    portal = getToolByName(self, 'portal_url').getPortalObject()
14
15    setupPortal(portal)
16    setupSlots(portal)
17    deleteAction(portal)
18    deleteIndex(portal)
19    deletePastas(portal)
20    extMethodSetupPastas(portal)
21#    addPastas(portal)
22#    addNewsletters(portal)
23#    addForuns(portal)
24#    addEnquetes(portal)
25#    addImagens(portal)
26#    addChats(portal)
27#    setupPublicatorDestaques(portal)
28#    setupPublicatorProdutos(portal)
29#    setupPublicatorChamadas(portal)
30#    setupPublicatorOpiniao(portal)
31#    setupPublicatorMelhoresPraticas(portal)
32    addJavaScript(portal)
33    addCSS(portal)
34    setupActions(portal)
35    setupTipo(portal)
36    setupMemberdata(portal)
37    setupMailHost(portal)
38    setILPortalProperties(portal)
39    setupSkin(portal)
40    setupMetadata(portal)
41    setupTextIndexNG2(portal)
42    addRoles(portal)
43    setupWorkflow(portal)
44    setupBusca(portal)
45    setupConfiguracao(portal)
46    setPloneProperties(self, portal, out)
47
48    return 'Feito!'
49
50
51def setupPortal(portal):
52    portal.manage_changeProperties(title='Portal Interlegis',
53                                   email_from_address='paulovieira@interlegis.gov.br',
54                                   email_from_name= 'Administrador')
55def setupSlots(portal):
56    left_slots =  ('here/portlet_navigation/macros/portlet', )
57    portal._setPropValue('left_slots', left_slots)
58
59    right_slots = ('here/portlet_review/macros/portlet',
60                   'here/global_personalbar/macros/portlet',
61                   'here/portlet_news/macros/portlet',
62                   'here/portlet_events/macros/portlet',)
63    portal._setPropValue('right_slots', right_slots)
64
65def deleteAction(portal):
66    portal_actions = getToolByName(portal, 'portal_actions')
67    idx = 0
68    for action in portal_actions.listActions():
69        if action.getId() == 'index_html':
70            portal_actions.deleteActions((idx,))
71            break
72        idx += 1
73
74def deleteIndex(portal):
75    if 'front-page' in portal.objectIds():
76       portal.manage_delObjects('front-page')
77
78   
79
80
81def deletePastas(portal):
82    if 'news' in portal.objectIds():
83       portal.manage_delObjects('news')
84    if 'events' in portal.objectIds():
85       portal.manage_delObjects('events')
86
87
88def extMethodSetupPastas(portal):
89    manage_addExternalMethod(portal, 'Setup_pastas', 'Cria e configura as pastas do Portal', 'ILPortal.setup_pastas', 'setup_pastas')
90
91def addPastas(portal):
92    if 'chamadas' not in portal.objectIds():
93        portal.invokeFactory('Folder', id='chamadas', title='Chamadas', excludeFromNav=0)
94    if 'opiniao' not in portal.objectIds():
95        portal.invokeFactory('Folder', id='opiniao', title='Opinião', excludeFromNav=0)
96    if 'melhores_praticas' not in portal.objectIds():
97        portal.invokeFactory('Folder', id='melhores_praticas', title='Melhores Práticas', excludeFromNav=0)
98    if 'produtos' not in portal.objectIds():
99        portal.invokeFactory('Folder', id='produtos', title='Produtos', excludeFromNav=0)
100
101def addNewsletters(portal):
102    if 'boletins' not in portal.objectIds():
103        portal.invokeFactory('Folder', id='boletins', title='Boletins', excludeFromNav=0)
104
105        newsletters = getattr(aq_base(portal), 'boletins')
106        addable_types = ['Subscriber','NewsletterTheme']
107        if getattr(newsletters.aq_base, 'setConstrainTypesMode', None) is not None:
108            newsletters.setConstrainTypesMode(1)
109            newsletters.setImmediatelyAddableTypes(addable_types)
110            newsletters.setLocallyAllowedTypes(addable_types)
111
112def addForuns(portal):
113    if 'foruns' not in portal.objectIds():
114        portal.invokeFactory('Ploneboard', id='foruns', title='Fóruns')
115
116def addChats(portal):
117    if 'chats' not in portal.objectIds():
118        portal.invokeFactory('Folder', id='chats', title='Chats', excludeFromNav=0)
119
120        chat = getattr(aq_base(portal), 'chats')
121        addable_types = ['PloneChat']
122        if getattr(chat.aq_base, 'setConstrainTypesMode', None) is not None:
123            chat.setConstrainTypesMode(1)
124            chat.setImmediatelyAddableTypes(addable_types)
125            chat.setLocallyAllowedTypes(addable_types)
126
127def addEnquetes(portal):
128    if 'enquetes' not in portal.objectIds():
129        portal.invokeFactory('Folder', id='enquetes', title='Enquetes', excludeFromNav=0)
130
131        enquete = getattr(aq_base(portal), 'enquetes')
132        addable_types = ['PlonePopoll']
133        if getattr(enquete.aq_base, 'setConstrainTypesMode', None) is not None:
134            enquete.setConstrainTypesMode(1)
135            enquete.setImmediatelyAddableTypes(addable_types)
136            enquete.setLocallyAllowedTypes(addable_types)
137
138def addImagens(portal):
139    if 'imagens' not in portal.objectIds():
140        portal.invokeFactory('Folder', id='imagens', title='Imagens', excludeFromNav=0)
141
142        imagem = getattr(aq_base(portal), 'imagens')
143        addable_types = ['Image','Folder']
144        if getattr(imagem.aq_base, 'setConstrainTypesMode', None) is not None:
145            imagem.setConstrainTypesMode(1)
146            imagem.setImmediatelyAddableTypes(addable_types)
147            imagem.setLocallyAllowedTypes(addable_types)
148
149def setupPublicatorDestaques(portal):
150    portal_publicator = getToolByName(portal,'portal_publicator')
151    if not portal_publicator.listPublicationBoxes():
152        portal_publicator.addPublicationBox(id='destaques',
153                                            name='Destaques',
154                                            content_type=['Document','News Item'],
155                                            n_items=2,
156                                            with_image=1,
157                                            image_states=['published'],)
158
159    for actions in portal_publicator.listActions():
160        portal_publicator.deleteActions((0,))
161
162    portal_publicator.addAction(id='edit_publications_global',
163                             name='Publications',
164                             action='string:${portal_url}/portal_publicator/publicator_edit_form',
165                             condition='member',
166                             permission='Review portal content',
167                             category='user',
168                             visible=0)
169
170    portal_publicator.addAction(id='edit_publications_global',
171                             name='Publications',
172                             action='python:object.portal_publicator.absolute_url()+"/publicator_edit_form"',
173                             condition='python:member and folder.portal_publicator.absolute_url()==folder.absolute_url()+"/portal_publicator"',
174                             permission='Review portal content',
175                             category='folder',
176                             visible=1)
177   
178
179def setupPublicatorProdutos(portal):
180
181    portal.produtos.manage_addProduct['CMFPublicator'].manage_addTool('CMF Publicator', None)
182    portal_publicator = getattr(portal.produtos,'portal_publicator')
183    if not portal_publicator.listPublicationBoxes():
184        portal_publicator.addPublicationBox(id='produtos',
185                                            name='Produtos',
186                                            content_type=['File'],
187                                            n_items=2,
188                                            with_image=1,
189                                            image_states=['published'],)
190def setupPublicatorChamadas(portal):
191    portal.chamadas.manage_addProduct['CMFPublicator'].manage_addTool('CMF Publicator', None)
192    portal_publicator = getattr(portal.chamadas,'portal_publicator')
193    if not portal_publicator.listPublicationBoxes():
194        portal_publicator.addPublicationBox(id='chamadas',
195                                            name='Chamadas',
196                                            content_type=['Document'],
197                                            n_items=1,
198                                            with_image=0,
199                                            image_states=['published'],)
200
201def setupPublicatorOpiniao(portal):
202    portal.opiniao.manage_addProduct['CMFPublicator'].manage_addTool('CMF Publicator', None)
203    portal_publicator = getattr(portal.opiniao,'portal_publicator')
204    if not portal_publicator.listPublicationBoxes():
205        portal_publicator.addPublicationBox(id='opiniao',
206                                            name='Opinião',
207                                            content_type=['Document','News Item'],
208                                            n_items=2,
209                                            with_image=1,
210                                            image_states=['published'],)
211
212def setupPublicatorMelhoresPraticas(portal):
213    portal.melhores_praticas.manage_addProduct['CMFPublicator'].manage_addTool('CMF Publicator', None)
214    portal_publicator = getattr(portal.melhores_praticas,'portal_publicator')
215    if not portal_publicator.listPublicationBoxes():
216        portal_publicator.addPublicationBox(id='melhores_praticas',
217                                            name='Melhores Práticas',
218                                            content_type=['Document','News Item'],
219                                            n_items=5,
220                                            with_image=0,
221                                            image_states=['published'],)
222
223
224def setPloneProperties(self, portal, out):
225    print >>out, 'Customizando o Plone para o ILPortal...'
226    portal_properties = getToolByName(portal, 'portal_properties')
227    site_properties = getattr(portal_properties, 'site_properties')
228    safeEditProperty(site_properties, 'localTimeFormat', '%d/%m/%Y', 'string')
229    safeEditProperty(site_properties, 'localLongTimeFormat', '%d/%m/%Y %H:%M', 'string')
230    safeEditProperty(site_properties, 'default_language', 'pt-br', 'string')
231    safeEditProperty(site_properties, 'calendar_starting_year', 1900, 'int')
232    portal_properties.site_properties.disable_folder_sections = (True)
233    portal_properties.navtree_properties.includeTop = (False)
234    portal_properties.navtree_properties.idsNotToList = ('Members',)
235    portal_properties.navtree_properties.enable_wf_state_filtering = (True)
236    portal_properties.navtree_properties.wf_states_to_show = ('published',)
237
238    print >>out, 'Plone para ILPortal customizado!\n'
239
240
241def setILPortalProperties(portal):
242    portal_properties = getToolByName(portal, 'portal_properties')
243    if not hasattr(portal_properties,'ilportal_properties'):
244       portal_properties.manage_addPropertySheet('ilportal_properties','Propriedades do Portal Interlegis')
245
246    for vocab in VOCABULARIOS.keys():
247        if not portal_properties.ilportal_properties.hasProperty(vocab):
248           portal_properties.ilportal_properties._setProperty(vocab, VOCABULARIOS[vocab], 'lines')
249
250
251
252def setILPortalProperties2(portal):
253    portal_properties = getToolByName(portal, 'portal_properties')
254    if not hasattr(portal_properties,'ilportal_properties'):
255       portal_properties.manage_addPropertySheet('ilportal_properties','Propriedades do Portal Interlegis')
256
257    if not portal_properties.ilportal_properties.hasProperty('sexo'):
258        sexos = ['M;Masculino', 'F;Feminino']
259        portal_properties.ilportal_properties._setProperty('sexo', sexos, 'lines')
260
261    if not portal_properties.ilportal_properties.hasProperty('tip_casa_interlegis'):
262        tipos = ['AL;Assembléia Legislativa',
263                 'CD;Câmara dos Deputados',
264                 'CM;Câmara Municipal',
265                 'CT;Câmara Legislativa',
266                 'OI;Outras Instituições',
267                 'SF;Senado Federal',]
268        portal_properties.ilportal_properties._setProperty('tip_casa_interlegis', tipos, 'lines')
269
270    if not portal_properties.ilportal_properties.hasProperty('status'):
271        status = ['1;Ativo', '2;Afastado']
272        portal_properties.ilportal_properties._setProperty('status', status, 'lines')
273
274    if not portal_properties.ilportal_properties.hasProperty('suplencia'):
275        suplencia = ['1;Suplente', '2;Titular']
276        portal_properties.ilportal_properties._setProperty('suplencia', status, 'lines')
277
278    if not portal_properties.ilportal_properties.hasProperty('estado'):
279        estados = ['AC;Acre',
280                   'AL;Alagoas',
281                   'AP;Amapá',
282                   'AM;Amazonas',
283                   'BA;Bahia',
284                   'CE;Ceará',
285                   'DF;Distrito Federal',
286                   'ES;Espírito Santo',
287                   'GO;Goiás',
288                   'MA;Maranhão',
289                   'MT;Mato Grosso',
290                   'MS;Mato Grosso do Sul',
291                   'MG;Minas Gerais',
292                   'PA;Pará',
293                   'PB;Paraíba',
294                   'PR;Paraná',
295                   'PE;Pernambuco',
296                   'PI;Piauí',
297                   'RJ;Rio de Janeiro',
298                   'RN;Rio Grande do Norte',
299                   'RS;Rio Grande do Sul',
300                   'RO;Rondônia',
301                   'RR;Roraima',
302                   'SC;Santa Catarina',
303                   'SP;São Paulo',
304                   'SE;Sergipe',
305                   'TO;Tocantins']
306
307        portal_properties.ilportal_properties._setProperty('estado', estados, 'lines')
308
309    if not portal_properties.ilportal_properties.hasProperty('escolaridade'):
310        escolaridades = ['1;1º Grau Incompleto',
311                        '2;1º Grau Completo',
312                        '3;2º Grau Incompleto',
313                        '4;2º Grau Completo',
314                        '5;3º Grau Incompleto',
315                        '6;3º Grau Completo',
316                        '7;Especialização',
317                        '8;Mestrado',
318                        '9;Doutorado']
319        portal_properties.ilportal_properties._setProperty('escolaridade', escolaridades, 'lines')
320
321    if not portal_properties.ilportal_properties.hasProperty('cargo_mesa_diretora'):
322        cargos_mesa_diretora = ['P;Presidente',
323                                'VP;Vice-Presidente',
324                                '1VP;1º Vice-Presidente',
325                                '2VP;2º Vice-Presidente',
326                                '1SE;1º Secretário',
327                                '2SE;2º Secretário',
328                                '3SE;3º Secretário',
329                                '4SE;4º Secretário',
330                                '1SU;1º Suplente',
331                                '2SU;2º Suplente',
332                                '3SU;3º Suplente',
333                                'SS;Suplente de Secretário',
334                                '1SS;1º Suplente de Secretário',
335                                '2SS;2º Suplente de Secretário',
336                                '3SS;3º Suplente de Secretário',
337                                '4SS;4º Suplente de Secretário']
338
339        portal_properties.ilportal_properties._setProperty('cargo_mesa_diretora', cargos_mesa_diretora, 'lines')
340
341    if not portal_properties.ilportal_properties.hasProperty('partido'):
342        partidos = ['PAN;PAN - Partido dos Aposentados da Nação',
343                    'PCO;PCO - Partido da Causa Operaria',
344                    'PCB;PCB - Partido Comunista Brasileiro',
345                    'PCdoB;PC do B - Partido Comunista do Brasil',
346                    'PDT;PDT - Partido Democrático Trabalhista',
347                    'PFL;PFL - Partido da Frente Liberal',
348                    'PHS;PHS - Partido Humanista da Solidariedade',
349                    'PL;PL - Partido Liberal',
350                    'PMN;PMN - Partido da Mobilização Nacional',
351                    'PMDB;PMDB - Partido do Movimento Democrático Brasileiro',
352                    'PP;PP - Partido Progressista',
353                    'PPS;PPS - Partido Popular Socialista',
354                    'PRONA;PRONA - Partido da Reedificação da Ordem Nacional',
355                    'PRTB;PRTB - Partido Renovador Trabalhista Brasileiro',
356                    'PSB;PSB - Partido Socialista Brasileiro',
357                    'PSC;PSC - Partido Socialista Cristão',
358                    'PSDB;PSDB - Partido da Social Democracia Brasileira',
359                    'PSDC;PSDC - Partido Social Democrata Cristão',
360                    'PSL;PSL - Partido Social Liberal',
361                    'PSTU;PSTU - Partido Socialista dos Trabalhadores Unificado',
362                    'PT;PT - Partido dos Trabalhadores',
363                    'PTdoB;PT do B - Partido Trabalhista do Brasil',
364                    'PTB;PTB - Partido Trabalhista Brasileiro',
365                    'PTN;PTN - Partido Trabalhista Nacional',
366                    'PV;PV - Partido Verde']
367        portal_properties.ilportal_properties._setProperty('partido', partidos, 'lines')
368
369
370def setupActions(portal):
371    portal_actions = getToolByName(portal, 'portal_actions')
372    idx = 0
373    for actions in portal_actions.listActions():
374        if actions.getCategory() == 'site_actions':
375            portal_actions.deleteActions((idx,))
376            idx-=1
377        idx += 1
378
379    portal_actions.addAction(id='login',
380                             name='Log in',
381                             action='string:${portal_url}/login_form',
382                             condition='not: member',
383                             permission='View',
384                             category='site_actions',
385                             visible=1)
386
387    portal_actions.addAction(id='join',
388                             name='Join',
389                             action='string:${portal_url}/join_form',
390                             condition='not: member',
391                             permission='Add portal member',
392                             category='site_actions',
393                             visible=1)
394
395    portal_actions.addAction(id='contact',
396                             name='Contact',
397                             action='string: ${portal_url}/contact-info',
398                             condition='',
399                             permission='View',
400                             category='site_actions',
401                             visible=1)
402
403    portal_actions.addAction(id='sitemap',
404                             name='Site Map',
405                             action='string:$portal_url/sitemap',
406                             condition='',
407                             permission='View',
408                             category='site_actions',
409                             visible=1)
410
411    portal_actions.addAction(id='plone_setup',
412                             name='Site Setup',
413                             action='string: ${portal_url}/plone_control_panel',
414                             condition='',
415                             permission='Manage portal',
416                             category='site_actions',
417                             visible=1)
418
419
420def setupTipo(portal):
421    portal_types = getToolByName(portal, 'portal_types')
422    portal_types['Plone Site'].global_allow = False
423    addable_types=['Folder']
424    portal_types['Plone Site'].filter_content_types = True
425    portal_types['Plone Site'].allowed_content_types = addable_types
426    portal_types['Plone Site'].view_methods = ['folder_listing',
427                                                         'folder_summary_view',
428                                                         'folder_tabular_view',
429                                                         'atct_album_view',
430                                                         'pagina_inicial']
431    portal.setLayout('pagina_inicial')
432
433    for action in portal_types['MesaDiretora'].listActions():
434        if action.getId()=='view':
435           action.setActionExpression('string:${object_url}/mesa_view')
436           break
437    for action in portal_types['CasaLegislativa'].listActions():
438        if action.getId()=='view':
439           action.setActionExpression('string:${object_url}/casa_view')
440           break
441    for action in portal_types['Parlamentar'].listActions():
442        if action.getId()=='view':
443           action.setActionExpression('string:${object_url}/parlamentar_view')
444           break
445
446def addJavaScript(portal):
447    portal.portal_javascripts.manage_addScript(id='menu_superior.js',
448                                               expression='',
449                                               inline=False,
450                                               enabled=True,
451                                               cookable=True,
452                                               REQUEST=None,)
453
454
455def addCSS(portal):
456    portal.portal_css.manage_addStylesheet(id='menu_superior.css',
457                                               expression='',
458                                               media='screen',
459                                               rel='sylesheet',
460                                               title='',
461                                               rendering='import',
462                                               enabled=True,
463                                               cookable=True,
464                                               REQUEST=None,)
465
466
467def setupMemberdata(portal):
468    portal_memberdata = getToolByName(portal, 'portal_memberdata')
469
470    if not portal_memberdata.hasProperty('sexo'):
471        portal_memberdata._setProperty('sexo', '', 'string')
472    if not portal_memberdata.hasProperty('endereco'):
473        portal_memberdata._setProperty('endereco', '', 'string')
474    if not portal_memberdata.hasProperty('cidade'):
475        portal_memberdata._setProperty('cidade', '', 'string')
476    if not portal_memberdata.hasProperty('estado'):
477        portal_memberdata._setProperty('estado', '', 'string')
478    if not portal_memberdata.hasProperty('cep'):
479        portal_memberdata._setProperty('cep', '', 'string')
480    if not portal_memberdata.hasProperty('ddd'):
481        portal_memberdata._setProperty('ddd', '', 'string')
482    if not portal_memberdata.hasProperty('telefone'):
483        portal_memberdata._setProperty('telefone', '', 'string')
484    if not portal_memberdata.hasProperty('empresa'):
485        portal_memberdata._setProperty('empresa', '', 'string')
486    if not portal_memberdata.hasProperty('cargo'):
487        portal_memberdata._setProperty('cargo', '', 'string')
488    if not portal_memberdata.hasProperty('escolaridade'):
489        portal_memberdata._setProperty('escolaridade', '', 'string')
490
491def setupMailHost(portal):
492    MailHost = getToolByName(portal, 'MailHost')
493    MailHost.manage_makeChanges(title='Interlegis',
494                                smtp_host='smtp.interlegis.gov.br',
495                                smtp_port=25,
496                                smtp_userid='',
497                                smtp_pass='')
498
499def setupSkin(portal):
500    portal_skins = getToolByName(portal, 'portal_skins')
501    path = portal_skins.getSkinPath('Plone Default')
502    path = [elem.strip() for elem in path.split(',') if elem != '.svn']
503    path = ','.join(path)
504    portal_skins.addSkinSelection('Portal Interlegis', path)
505    portal_skins.manage_properties(default_skin = 'Portal Interlegis',
506                                   request_varname = 'plone_skin',
507                                   del_skin = 0,
508                                   chosen = [])
509
510def setupMetadata(portal):
511    portal_metadata = getToolByName(portal, 'portal_metadata')
512    portal_metadata.updateElementPolicy(
513            element='Subject',
514            content_type='Event',
515            is_required=0,
516            supply_default=0,
517            default_value='',
518            enforce_vocabulary=0,
519            allowed_vocabulary=('Encontro', 'Convenção', 'Reunião', 'Evento Social', 'Trabalho'))
520
521def setupTextIndexNG2(portal):
522    catalog = getToolByName(portal,'portal_catalog')
523
524    for idx in ('SearchableText', 'Title', 'Description'):
525        catalog._removeIndex(idx)
526
527    catalog.manage_addIndex('SearchableText',
528                            'TextIndexNG2',
529                            extra={'default_encoding':'utf-8',
530                                   'use_storage':'StandardStorage',
531                                   'splitter_max_len':64,
532                                   'splitter_single_chars':0,
533                                   'splitter_casefolding':1,
534                                   'splitter_separators':'.+-_@',
535                                   'near_distance':5,
536                                   'truncate_left':1,
537                                   'autoexpand':0,
538                                   'use_stopwords':StopwordsRegistry.get('portuguese'),
539#                                   'use_thesaurus':'',
540#                                   'thesaurus_mode':'',
541                                   'use_normalizer':0,
542                                   'use_converters':1,
543                                  }
544                           )
545    catalog.manage_addIndex('Title',
546                            'TextIndexNG2',
547                            extra={'default_encoding':'utf-8',
548                                   'use_storage':'StandardStorage',
549                                   'splitter_max_len':64,
550                                   'splitter_single_chars':0,
551                                   'splitter_casefolding':1,
552                                   'splitter_separators':'.+-_@',
553                                   'near_distance':5,
554                                   'truncate_left':1,
555                                   'autoexpand':0,
556                                   'use_stopwords':StopwordsRegistry.get('portuguese'),
557#                                   'use_thesaurus':'',
558#                                   'thesaurus_mode':'',
559                                   'use_normalizer':0,
560                                   'use_converters':0,
561                                  }
562                           )
563    catalog.manage_addIndex('Description',
564                            'TextIndexNG2',
565                            extra={'default_encoding':'utf-8',
566                                   'use_storage':'StandardStorage',
567                                   'splitter_max_len':64,
568                                   'splitter_single_chars':0,
569                                   'splitter_casefolding':1,
570                                   'splitter_separators':'.+-_@',
571                                   'near_distance':5,
572                                   'truncate_left':1,
573                                   'autoexpand':0,
574                                   'use_stopwords':StopwordsRegistry.get('portuguese'),
575#                                   'use_thesaurus':'',
576#                                   'thesaurus_mode':'',
577                                   'use_normalizer':0,
578                                   'use_converters':0,
579                                  }
580                           )
581    catalog.manage_reindexIndex(['Title','Description','SearchableText'])
582
583def addRoles(portal):
584    portal._addRole(role='Autor')
585    portal._addRole(role='Editor')
586
587#    permissions = []
588#    for perm in portal.aq_parent.permissionsOfRole('Owner'):
589#       if perm.get('selected') != '':
590#           permissions.append(perm.get('name'))
591
592#    for perm in portal.permissionsOfRole('Owner'):
593#       if perm.get('selected') != '' and perm.get('name') not in permissions:
594#           permissions.append(perm.get('name'))
595#    print permissions
596
597    permissions = ['ATContentTypes: Add Document',
598                   'ATContentTypes: Add Event',
599                   'ATContentTypes: Add Favorite',
600                   'ATContentTypes: Add File',
601                   'ATContentTypes: Add Folder',
602                   'ATContentTypes: Add Image',
603                   'ATContentTypes: Add Large Plone Folder',
604                   'ATContentTypes: Add Link',
605                   'ATContentTypes: Add News Item',
606                   'Add CasaLegislativa Content',
607                   'Add MembroMesaDiretora Content',
608                   'Add MesaDiretora Content',
609                   'Add Parlamentar Content',
610                   'Add PlonePopolls',
611                   'Add Telefone Content',
612                   'Add portal content',
613                   'Add portal events',
614                   'Add portal folders',
615                   'Change local roles',
616                   'Change portal events',
617                   'Change portal topics',
618                   'Edit PlonePopoll',
619                   'List folder contents',
620                   'Modify constrain types',
621                   'Modify view template',
622                   'PNL Add Subscriber',
623                   'PNL Change Newsletter',
624                   'PNL Change Newsletter Theme',
625                   'PNL Change Subscriber',
626                   'Ploneboard: Add Ploneboard',
627                   'Ploneboard: Notify Retracted',
628                   'PortalTransport: Allow Subscription',
629                   'Request review',
630                   'Set Group Ownership',
631                   'Take ownership',
632                   'View Groups',
633                   'Vote for a PlonePopoll',
634                   'WebDAV Lock items',
635                   'WebDAV Unlock items',
636                   'Access inactive portal content',
637                   'Add PloneChat objects',
638                   'Chat moderatedly',
639                   'Chat unmoderatedly',
640                   'Delete objects',
641                   'Edit PloneChats',
642                   'FTP access',
643                   'Manage properties',
644                   'Undo changes',
645                   'View management screens']
646
647    portal.manage_role(role_to_manage='Autor', permissions=permissions)
648
649#    permissions = []
650#    for perm in portal.permissionsOfRole('Reviewer'):
651#       if perm.get('selected') != '':
652#           permissions.append(perm.get('name'))
653    permissions += ['Access future portal content', 'Moderate PloneChats', 'Review portal content']
654    portal.manage_role(role_to_manage='Editor', permissions=permissions)
655
656    portal._delRoles(roles=['Reviewer'])
657
658def setupWorkflow(portal):
659    portal_workflow = getToolByName(portal, 'portal_workflow')
660    portal_workflow.setDefaultChain('ilportal_workflow')
661
662def setupBusca(portal):
663    portal_properties=getToolByName(portal, 'portal_properties')
664    portaltypes = ['CasaLegislativa','Event','PloneChat','PlonePopoll','File','Folder','Image','Link','News Item', 'Document', 'Parlamentar']
665    allTypes = portal.getPortalTypes()
666    blacklistedTypes = [t for t in allTypes if t not in portaltypes]
667
668    portal_properties.site_properties.manage_changeProperties(types_not_searched=blacklistedTypes)
669
670def setupConfiguracao(portal):
671    portal.portal_controlpanel.registerConfiglet(**prefs_portal_configlet)
672   
673
674def uninstall(self):
675
676    try:
677        self.portal_controlpanel.unregisterApplication(PROJECTNAME)
678    except:
679        pass
680
Note: Veja TracBrowser para ajuda no uso do navegador do trac.
 

The contents and data of this website are published under license:
Creative Commons 4.0 Brasil - Atribuir Fonte - Compartilhar Igual.