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

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

alterações nas classes Parlamentar e Casa Legislativa

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