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

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

Adicionado partidos e cargos da mesa nas propriedades do portal

File size: 16.4 KB
Linha 
1from Products.CMFCore.utils import getToolByName
2from StringIO import StringIO
3from Products.ILPortal.vocabularies import VOCABULARIOS_DINAMICOS
4from Products.ILPortal.utils import setVocabulariosDinamicos
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>
20
21<div metal:fill-slot="portlets_two_slot">
22   <div metal:use-macro="here/portlet_review/macros/portlet"></div>
23   <div metal:use-macro="here/global_personalbar/macros/portlet"></div>
24   <div metal:use-macro="here/portlet_produtos/macros/portlet"></div>
25   <div metal:use-macro="here/portlet_box_03/macros/portlet"></div>
26</div>
27
28</html>
29
30'''
31
32
33def install(self):
34    out = StringIO()
35    portal = getToolByName(self, 'portal_url').getPortalObject()
36
37    setupPortal(portal)
38    setupSlots(portal)
39    deleteAction(portal)
40    replaceIndex(portal)
41    deletePastas(portal)
42    setupPublicator(portal)
43    addNewsletters(portal)
44#    addForuns(portal)
45    addEnquetes(portal)
46    addImagens(portal)
47    addChats(portal)
48    addJavaScript(portal)
49    addCSS(portal)
50#    setupActions(portal)
51    setupTipo(portal)
52    setupMemberdata(portal)
53    setupMailHost(portal)
54    setILPortalProperties(portal)
55    setupSkin(portal)
56    setupMetadata(portal)
57
58
59    setVocabulariosDinamicos(self, VOCABULARIOS_DINAMICOS)
60    print >>out, 'Criados vocabularios no ATVocabularyManager'
61
62    setPloneProperties(self, portal, out)
63    return 'Feito!'
64
65
66def setupPortal(portal):
67    portal.manage_changeProperties(title='Portal Interlegis',
68                                   email_from_address='admin-stc@interlegis.gov.br',
69                                   email_from_name= 'Administrador')
70def setupSlots(portal):
71    left_slots =  ('here/portlet_navigation/macros/portlet', )
72    portal._setPropValue('left_slots', left_slots)
73
74    right_slots = ('here/portlet_review/macros/portlet', \
75                   'here/global_personalbar/macros/portlet', )
76    portal._setPropValue('right_slots', right_slots)
77
78def deleteAction(portal):
79    portal_actions = getToolByName(portal, 'portal_actions')
80    idx = 0
81    for action in portal_actions.listActions():
82        if action.getId() == 'index_html':
83            portal_actions.deleteActions((idx,))
84            break
85        idx += 1
86
87def replaceIndex(portal):
88     
89    if 'front-page' in portal.objectIds():
90       portal.manage_delObjects('front-page')
91    portal.manage_addProduct['PageTemplates'].manage_addPageTemplate('index_html', '', INDEX_HTML)
92
93def deletePastas(portal):
94    if 'news' in portal.objectIds():
95       portal.manage_delObjects('news')
96    if 'events' in portal.objectIds():
97       portal.manage_delObjects('events')
98
99def setupPublicator(portal):
100    portal_publicator = getToolByName(portal, 'portal_publicator')
101    if not portal_publicator.listPublicationBoxes():
102        portal_publicator.addPublicationBox(id='box_01',
103                                            name='Chamadas',
104                                            content_type=['News Item','Document'],
105                                            n_items=2,
106                                            with_image=1,
107                                            image_states=['published'],)
108
109        portal_publicator.addPublicationBox(id='box_02',
110                                            name='Destaques',
111                                            content_type=['News Item','Document'],
112                                            n_items=5,
113                                            with_image=0,
114                                            image_states=['published'],)
115
116        portal_publicator.addPublicationBox(id='box_03',
117                                            name='Opinião',
118                                            content_type=['Document'],
119                                            n_items=2,
120                                            with_image=1,
121                                            image_states=['published'],)
122
123        portal_publicator.addPublicationBox(id='box_04',
124                                            name='Produtos',
125                                            content_type=['File'],
126                                            n_items=2,
127                                            with_image=1,
128                                            image_states=['published'],)
129
130
131def setPloneProperties(self, portal, out):
132    print >>out, 'Customizando o Plone para o ILPortal...'
133    portal_properties = getToolByName(portal, 'portal_properties')
134    site_properties = getattr(portal_properties, 'site_properties')
135    safeEditProperty(site_properties, 'localTimeFormat', '%d/%m/%Y', 'string')
136    safeEditProperty(site_properties, 'localLongTimeFormat', '%d/%m/%Y %H:%M', 'string')
137    safeEditProperty(site_properties, 'default_language', 'pt-br', 'string')
138    safeEditProperty(site_properties, 'calendar_starting_year', 1900, 'int')
139    portal_properties.site_properties.disable_folder_sections = (True)
140    portal_properties.navtree_properties.includeTop = (False)
141    portal_properties.navtree_properties.idsNotToList = ('Members',)
142    portal_properties.navtree_properties.enable_wf_state_filtering = (True)
143    portal_properties.navtree_properties.wf_states_to_show = ('published',)
144
145    print >>out, 'Plone para ILPortal customizado!\n'
146
147def setILPortalProperties(portal):
148    portal_properties = getToolByName(portal, 'portal_properties')
149    if not hasattr(portal_properties,'ilportal_properties'):
150       portal_properties.manage_addPropertySheet('ilportal_properties','Propriedades do Portal Interlegis')
151
152    if not portal_properties.ilportal_properties.hasProperty('sexo'):
153        sexos = ['M;Masculino', 'F;Feminino']
154        portal_properties.ilportal_properties._setProperty('sexo', sexos, 'lines')
155
156    if not portal_properties.ilportal_properties.hasProperty('estado'):
157        estados = ['AC;Acre',
158                   'AL;Alagoas',
159                   'AP;Amapá',
160                   'AM;Amazonas',
161                   'BA;Bahia',
162                   'CE;Ceará',
163                   'DF;Distrito Federal',
164                   'ES;Espírito Santo',
165                   'GO;Goiás',
166                   'MA;Maranhão',
167                   'MT;Mato Grosso',
168                   'MS;Mato Grosso do Sul',
169                   'MG;Minas Gerais',
170                   'PA;Pará',
171                   'PB;Paraíba',
172                   'PR;Paraná',
173                   'PE;Pernambuco',
174                   'PI;Piauí',
175                   'RJ;Rio de Janeiro',
176                   'RN;Rio Grande do Norte',
177                   'RS;Rio Grande do Sul',
178                   'RO;Rondônia',
179                   'RR;Roraima',
180                   'SC;Santa Catarina',
181                   'SP;São Paulo',
182                   'SE;Sergipe',
183                   'TO;Tocantins']
184
185        portal_properties.ilportal_properties._setProperty('estado', estados, 'lines')
186
187    if not portal_properties.ilportal_properties.hasProperty('escolaridade'):
188        escolaridades = ['1;1º Grau Incompleto',
189                        '2;1º Grau Completo',
190                        '3;2º Grau Incompleto',
191                        '4;2º Grau Completo',
192                        '5;3º Grau Incompleto',
193                        '6;3º Grau Completo',
194                        '7;Especialização',
195                        '8;Mestrado',
196                        '9;Doutorado']
197        portal_properties.ilportal_properties._setProperty('escolaridade', escolaridades, 'lines')
198
199    if not portal_properties.ilportal_properties.hasProperty('cargo_mesa_diretora'):
200        cargos_mesa_diretora = ['P;Presidente',
201                                'VP;Vice-Presidente',
202                                '1VP;1º Vice-Presidente',
203                                '2VP;2º Vice-Presidente',
204                                '1SE;1º Secretário',
205                                '2SE;2º Secretário',
206                                '3SE;3º Secretário',
207                                '4SE;4º Secretário',
208                                '1SU;1º Suplente',
209                                '2SU;2º Suplente',
210                                '3SU;3º Suplente',
211                                'SS;Suplente de Secretário',
212                                '1SS;1º Suplente de Secretário',
213                                '2SS;2º Suplente de Secretário',
214                                '3SS;3º Suplente de Secretário',
215                                '4SS;4º Suplente de Secretário']
216
217        portal_properties.ilportal_properties._setProperty('cargo_mesa_diretora', cargos_mesa_diretora, 'lines')
218
219    if not portal_properties.ilportal_properties.hasProperty('partido'):
220        partidos = ['PAN;PAN - Partido dos Aposentados da Nação',
221                    'PCO;PCO - Partido da Causa Operaria',
222                    'PCB;PCB - Partido Comunista Brasileiro',
223                    'PCdoB;PC do B - Partido Comunista do Brasil',
224                    'PDT;PDT - Partido Democrático Trabalhista',
225                    'PFL;PFL - Partido da Frente Liberal',
226                    'PHS;PHS - Partido Humanista da Solidariedade',
227                    'PL;PL - Partido Liberal',
228                    'PMN;PMN - Partido da Mobilização Nacional',
229                    'PMDB;PMDB - Partido do Movimento Democrático Brasileiro',
230                    'PP;PP - Partido Progressista',
231                    'PPS;PPS - Partido Popular Socialista',
232                    'PRONA;PRONA - Partido da Reedificação da Ordem Nacional',
233                    'PRTB;PRTB - Partido Renovador Trabalhista Brasileiro',
234                    'PSB;PSB - Partido Socialista Brasileiro',
235                    'PSC;PSC - Partido Socialista Cristão',
236                    'PSDB;PSDB - Partido da Social Democracia Brasileira',
237                    'PSDC;PSDC - Partido Social Democrata Cristão',
238                    'PSL;PSL - Partido Social Liberal',
239                    'PSTU;PSTU - Partido Socialista dos Trabalhadores Unificado',
240                    'PT;PT - Partido dos Trabalhadores',
241                    'PTdoB;PT do B - Partido Trabalhista do Brasil',
242                    'PTB;PTB - Partido Trabalhista Brasileiro',
243                    'PTN;PTN - Partido Trabalhista Nacional',
244                    'PV;PV - Partido Verde']
245        portal_properties.ilportal_properties._setProperty('partido', partidos, 'lines')
246
247def addNewsletters(portal):
248    if 'boletins' not in portal.objectIds():
249        portal.invokeFactory('Folder', id='boletins', title='Boletins', excludeFromNav=0)
250
251        newsletters = getattr(aq_base(portal), 'boletins')
252        addable_types = ['Subscriber','NewsletterTheme']
253        if getattr(newsletters.aq_base, 'setConstrainTypesMode', None) is not None:
254            newsletters.setConstrainTypesMode(1)
255            newsletters.setImmediatelyAddableTypes(addable_types)
256            newsletters.setLocallyAllowedTypes(addable_types)
257
258def addForuns(portal):
259    if 'foruns' not in portal.objectIds():
260        portal.invokeFactory('Ploneboard', id='foruns', title='Fóruns')
261
262def addChats(portal):
263    if 'chats' not in portal.objectIds():
264        portal.invokeFactory('Folder', id='chats', title='Chats', excludeFromNav=0)
265
266        chat = getattr(aq_base(portal), 'chats')
267        addable_types = ['PloneChat']
268        if getattr(chat.aq_base, 'setConstrainTypesMode', None) is not None:
269            chat.setConstrainTypesMode(1)
270            chat.setImmediatelyAddableTypes(addable_types)
271            chat.setLocallyAllowedTypes(addable_types)
272
273def addEnquetes(portal):
274    if 'enquetes' not in portal.objectIds():
275        portal.invokeFactory('Folder', id='enquetes', title='Enquetes', excludeFromNav=0)
276
277        enquete = getattr(aq_base(portal), 'enquetes')
278        addable_types = ['PlonePopoll']
279        if getattr(enquete.aq_base, 'setConstrainTypesMode', None) is not None:
280            enquete.setConstrainTypesMode(1)
281            enquete.setImmediatelyAddableTypes(addable_types)
282            enquete.setLocallyAllowedTypes(addable_types)
283
284def addImagens(portal):
285    if 'imagens' not in portal.objectIds():
286        portal.invokeFactory('Folder', id='imagens', title='Imagens', excludeFromNav=0)
287
288        imagem = getattr(aq_base(portal), 'imagens')
289        addable_types = ['Image','Folder']
290        if getattr(imagem.aq_base, 'setConstrainTypesMode', None) is not None:
291            imagem.setConstrainTypesMode(1)
292            imagem.setImmediatelyAddableTypes(addable_types)
293            imagem.setLocallyAllowedTypes(addable_types)
294
295def setupActions(portal):
296    portal_actions = getToolByName(portal, 'portal_actions')
297    portal_actions.addAction(id='boletins', name='Boletins', action='string:${portal_url}/boletins', condition='', permission='View', category='portal_tabs', visible=1)
298    portal_actions.addAction(id='chats', name='Chats', action='string:${portal_url}/chats', condition='', permission='View', category='portal_tabs', visible=1)
299    portal_actions.addAction(id='foruns', name='Fóruns', action='string:${portal_url}/foruns', condition='', permission='View', category='portal_tabs', visible=1)
300
301
302def setupTipo(portal):
303    portal_types = getToolByName(portal, 'portal_types')
304    portal_types['Plone Site'].global_allow = False
305    addable_types=['Folder']
306    portal_types['Plone Site'].filter_content_types = True
307    portal_types['Plone Site'].allowed_content_types = addable_types
308
309
310def addJavaScript(portal):
311    portal.portal_javascripts.manage_addScript(id='menu_superior.js',
312                                               expression='',
313                                               inline=False,
314                                               enabled=True,
315                                               cookable=True,
316                                               REQUEST=None,)
317
318
319def addCSS(portal):
320    portal.portal_css.manage_addStylesheet(id='menu_superior.css',
321                                               expression='',
322                                               media='screen',
323                                               rel='sylesheet',
324                                               title='',
325                                               rendering='import',
326                                               enabled=True,
327                                               cookable=True,
328                                               REQUEST=None,)
329
330
331def setupMemberdata(portal):
332    portal_memberdata = getToolByName(portal, 'portal_memberdata')
333
334    if not portal_memberdata.hasProperty('sexo'):
335        portal_memberdata._setProperty('sexo', '', 'string')
336    if not portal_memberdata.hasProperty('endereco'):
337        portal_memberdata._setProperty('endereco', '', 'string')
338    if not portal_memberdata.hasProperty('cidade'):
339        portal_memberdata._setProperty('cidade', '', 'string')
340    if not portal_memberdata.hasProperty('estado'):
341        portal_memberdata._setProperty('estado', '', 'string')
342    if not portal_memberdata.hasProperty('cep'):
343        portal_memberdata._setProperty('cep', '', 'string')
344    if not portal_memberdata.hasProperty('ddd'):
345        portal_memberdata._setProperty('ddd', '', 'string')
346    if not portal_memberdata.hasProperty('telefone'):
347        portal_memberdata._setProperty('telefone', '', 'string')
348    if not portal_memberdata.hasProperty('empresa'):
349        portal_memberdata._setProperty('empresa', '', 'string')
350    if not portal_memberdata.hasProperty('cargo'):
351        portal_memberdata._setProperty('cargo', '', 'string')
352    if not portal_memberdata.hasProperty('escolaridade'):
353        portal_memberdata._setProperty('escolaridade', '', 'string')
354
355def setupMailHost(portal):
356    MailHost = getToolByName(portal, 'MailHost')
357    MailHost.manage_makeChanges(title='Interlegis',
358                                smtp_host='smtp.interlegis.gov.br',
359                                smtp_port=25,
360                                smtp_userid='',
361                                smtp_pass='')
362
363def setupSkin(portal):
364    portal_skins = getToolByName(portal, 'portal_skins')
365    path = portal_skins.getSkinPath('Plone Default')
366    path = [elem.strip() for elem in path.split(',') if elem != '.svn']
367    path = ','.join(path)
368    portal_skins.addSkinSelection('Portal Interlegis', path)
369    portal_skins.manage_properties(default_skin = 'Portal Interlegis',
370                                   request_varname = 'plone_skin',
371                                   del_skin = 0,
372                                   chosen = [])
373
374def setupMetadata(portal):
375    portal_metadata = getToolByName(portal, 'portal_metadata')
376    portal_metadata.updateElementPolicy(
377            element='Subject',
378            content_type='Event',
379            is_required=0,
380            supply_default=0,
381            default_value='',
382            enforce_vocabulary=0,
383            allowed_vocabulary=('Encontro', 'Convenção', 'Reunião', 'Evento Social', 'Trabalho'))
384
385def uninstall(self):
386    pass
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.