source: publico/ILPortal/trunk/Extensions/setup_pastas.py @ 1014

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

adicionado external Method para criação de pastas

File size: 12.2 KB
Linha 
1from Products.CMFCore.utils import getToolByName
2from Acquisition import aq_base
3
4def setup_pastas(self):
5
6    portal = getToolByName(self, 'portal_url').getPortalObject()
7
8    addPastas(portal)
9    addNewsletters(portal)
10    addForuns(portal)
11    addEnquetes(portal)
12    addImagens(portal)
13    addChats(portal)
14    setupPublicatorDestaques(portal)
15    setupPublicatorProdutos(portal)
16    setupPublicatorChamadas(portal)
17    setupPublicatorOpiniao(portal)
18    setupPublicatorMelhoresPraticas(portal)
19
20def addPastas(portal):
21    portal_workflow = getToolByName(portal, 'portal_workflow')
22
23    if 'chamadas' not in portal.objectIds():
24        portal.invokeFactory('Folder', id='chamadas', title='Chamadas', excludeFromNav=0)
25    if 'opiniao' not in portal.objectIds():
26        portal.invokeFactory('Folder', id='opiniao', title='Opinião', excludeFromNav=0)
27    if 'melhores_praticas' not in portal.objectIds():
28        portal.invokeFactory('Folder', id='melhores_praticas', title='Melhores Práticas', excludeFromNav=0)
29    if 'produtos' not in portal.objectIds():
30        portal.invokeFactory('Folder', id='produtos', title='Produtos', excludeFromNav=0)
31
32
33    pastas = [
34{'informacoes_institucionais':['O Interlegis',[]]},
35{'comunidade':['Comunidade Legislativa',[['associacoes','Associações'],
36                                         ['casas_legislativas','Casas Legislativas'],
37                                         ['vereadores','Vereadores']
38                                        ]
39              ]
40},
41{'informacao_legislativa':['Informação Legislativa',[['coletaneas','Coletâneas de Legislação'],
42                                                     ['codigos','Códigos'],
43                                                     ['discursos','Discursos'],
44                                                     ['diarios','Diários Oficiais'],
45                                                     ['jurisprudencia','Jurisprudência'],
46                                                     ['legislacao_municipal','Legislação Municipal'],
47                                                     ['legislacao_estadual','Legislação Estadual'],
48                                                     ['legislacao_federal','Legislação Federal'],
49                                                     ['processo_legislativo','Processo Legislativo'],
50                                                     ['relacoes_internacionais','Relações Internacionais']
51                                                    ]
52                          ]
53},
54{'produtos_servicos':['Produtos e Serviços',[['educacao','Educação Interlegis'],
55                                             ['gitec','Gitec-Teconologia e Produtos'],
56                                             ['infra-estrutura','Infra-estrutura Tecnológica do Programa Interlegis'],
57                                             ['projeto_mapear','Projeto Mapear'],
58                                             ['saap','SAAP - Apoio à Atividade Parlamentar'],
59                                             ['sapl','SAPL - Apoio ao Processo Legislativo'],
60                                             ['saal','SAAL - Apoio à Administração Legislativa']
61                                            ]
62                     ]
63},
64
65{'fiscalizacao':['Financas e Fiscalização',[['compras_governo','Compras do Governo'],
66                                            ['contas_eleitorais','Contas Eleitorais'],
67                                            ['economia','Economia'],
68                                            ['orcamento_publico','Orçamento Público'],
69                                            ['responsabilidade_fiscal','Responsabilidade Fiscal'],
70                                            ['tribunais_contas','Tribunais de Contas'],
71                                           ]
72                ]
73},
74{'cidadania':['Cidadania',[['defesa_consumidor','Defesa do Consumidor'],
75                           ['direitos_humanos','Direitos Humanos'],
76                           ['direitos_criancas','Direitos das Crianças e dos Adolescentes'],
77                           ['direitos_minorias','Direitos das Minorias'],
78                           ['direitos_idosos','Direitos dos Idosos'],
79                           ['educacao_cultura','Educação e Cultura'],
80                           ['esporte','Esporte'],
81                           ['inclusao_digital','Inclusão Digital'],
82                           ['inclusao_social','Inclusão Social'],
83                           ['meio_ambiente','Meio Ambiente'],
84                           ['portadores_necessidades','Portadores de Necessidades Especiais'],
85                           ['prevencao_drogas','Prevençãos ao uso de Drogas'],
86                           ['reforma_agraria','Reforma Agrária'],
87                           ['saude','Saúde'],
88                           ['seguranca','Segurança'],
89                          ]
90             ]
91},
92]
93
94    for pasta in pastas:
95
96        Id = pasta.keys()[0]
97        Title = pasta[Id][0]
98        Filhos = pasta[Id][1]
99
100       
101        if pasta.keys()[0] not in portal.objectIds():
102            portal.invokeFactory('Folder', id=Id, title=Title, excludeFromNav=0)
103            obj = getattr(portal,Id,None)
104            portal_workflow.doActionFor(obj, 'publish')
105
106            if Filhos:
107                for filho in Filhos:
108                    obj.invokeFactory('Folder', id=filho[0], title=filho[1], excludeFromNav=0)
109                    obj2 = getattr(obj,filho[0],None)
110                    portal_workflow.doActionFor(obj2, 'publish')
111
112           
113
114
115def addNewsletters(portal):
116    if 'boletins' not in portal.objectIds():
117        portal.invokeFactory('Folder', id='boletins', title='Boletins', excludeFromNav=0)
118
119        newsletters = getattr(aq_base(portal), 'boletins')
120        addable_types = ['Subscriber','NewsletterTheme']
121        if getattr(newsletters.aq_base, 'setConstrainTypesMode', None) is not None:
122            newsletters.setConstrainTypesMode(1)
123            newsletters.setImmediatelyAddableTypes(addable_types)
124            newsletters.setLocallyAllowedTypes(addable_types)
125
126def addForuns(portal):
127    if 'foruns' not in portal.objectIds():
128        portal_types = getToolByName(portal, 'portal_types')
129        portal_types['Plone Site'].filter_content_types = False
130        portal.invokeFactory('Ploneboard', id='foruns', title='Fóruns')
131        portal_types['Plone Site'].filter_content_types = True
132
133def addChats(portal):
134    if 'chats' not in portal.objectIds():
135        portal.invokeFactory('Folder', id='chats', title='Chats', excludeFromNav=0)
136
137        chat = getattr(aq_base(portal), 'chats')
138        addable_types = ['PloneChat']
139        if getattr(chat.aq_base, 'setConstrainTypesMode', None) is not None:
140            chat.setConstrainTypesMode(1)
141            chat.setImmediatelyAddableTypes(addable_types)
142            chat.setLocallyAllowedTypes(addable_types)
143
144def addEnquetes(portal):
145    if 'enquetes' not in portal.objectIds():
146        portal.invokeFactory('Folder', id='enquetes', title='Enquetes', excludeFromNav=0)
147
148        enquete = getattr(aq_base(portal), 'enquetes')
149        addable_types = ['PlonePopoll']
150        if getattr(enquete.aq_base, 'setConstrainTypesMode', None) is not None:
151            enquete.setConstrainTypesMode(1)
152            enquete.setImmediatelyAddableTypes(addable_types)
153            enquete.setLocallyAllowedTypes(addable_types)
154
155def addImagens(portal):
156    if 'imagens' not in portal.objectIds():
157        portal.invokeFactory('Folder', id='imagens', title='Imagens', excludeFromNav=0)
158
159        imagem = getattr(aq_base(portal), 'imagens')
160        addable_types = ['Image','Folder']
161        if getattr(imagem.aq_base, 'setConstrainTypesMode', None) is not None:
162            imagem.setConstrainTypesMode(1)
163            imagem.setImmediatelyAddableTypes(addable_types)
164            imagem.setLocallyAllowedTypes(addable_types)
165
166def setupPublicatorDestaques(portal):
167    portal_publicator = getToolByName(portal,'portal_publicator')
168    if not portal_publicator.listPublicationBoxes():
169        portal_publicator.addPublicationBox(id='destaques',
170                                            name='Destaques',
171                                            content_type=['Document','News Item'],
172                                            n_items=2,
173                                            with_image=1,
174                                            image_states=['published'],)
175
176    for actions in portal_publicator.listActions():
177        portal_publicator.deleteActions((0,))
178
179    portal_publicator.addAction(id='edit_publications_global',
180                             name='Publications',
181                             action='string:${portal_url}/portal_publicator/publicator_edit_form',
182                             condition='member',
183                             permission='Review portal content',
184                             category='user',
185                             visible=0)
186
187    portal_publicator.addAction(id='edit_publications_global',
188                             name='Publications',
189                             action='python:object.portal_publicator.absolute_url()+"/publicator_edit_form"',
190                             condition='python:member and folder.portal_publicator.absolute_url()==folder.absolute_url()+"/portal_publicator"',
191                             permission='Review portal content',
192                             category='folder',
193                             visible=1)
194   
195
196def setupPublicatorProdutos(portal):
197    if 'portal_publicator' not in portal.produtos.objectIds():
198        portal.produtos.manage_addProduct['CMFPublicator'].manage_addTool('CMF Publicator', None)
199        portal_publicator = getattr(portal.produtos,'portal_publicator')
200        if not portal_publicator.listPublicationBoxes():
201            portal_publicator.addPublicationBox(id='produtos',
202                                                name='Produtos',
203                                                content_type=['File'],
204                                                n_items=2,
205                                                with_image=1,
206                                                image_states=['published'],)
207def setupPublicatorChamadas(portal):
208    if 'portal_publicator' not in portal.chamadas.objectIds():
209        portal.chamadas.manage_addProduct['CMFPublicator'].manage_addTool('CMF Publicator', None)
210        portal_publicator = getattr(portal.chamadas,'portal_publicator')
211        if not portal_publicator.listPublicationBoxes():
212            portal_publicator.addPublicationBox(id='chamadas',
213                                                name='Chamadas',
214                                                content_type=['Document'],
215                                                n_items=1,
216                                                with_image=0,
217                                                image_states=['published'],)
218
219def setupPublicatorOpiniao(portal):
220    if 'portal_publicator' not in portal.opiniao.objectIds():
221        portal.opiniao.manage_addProduct['CMFPublicator'].manage_addTool('CMF Publicator', None)
222        portal_publicator = getattr(portal.opiniao,'portal_publicator')
223        if not portal_publicator.listPublicationBoxes():
224            portal_publicator.addPublicationBox(id='opiniao',
225                                                name='Opinião',
226                                                content_type=['Document','News Item'],
227                                                n_items=2,
228                                                with_image=1,
229                                                image_states=['published'],)
230
231def setupPublicatorMelhoresPraticas(portal):
232    if 'portal_publicator' not in portal.melhores_praticas.objectIds():
233        portal.melhores_praticas.manage_addProduct['CMFPublicator'].manage_addTool('CMF Publicator', None)
234        portal_publicator = getattr(portal.melhores_praticas,'portal_publicator')
235        if not portal_publicator.listPublicationBoxes():
236            portal_publicator.addPublicationBox(id='melhores_praticas',
237                                                name='Melhores Práticas',
238                                                content_type=['Document','News Item'],
239                                                n_items=5,
240                                                with_image=0,
241                                                image_states=['published'],)
242 
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.