source: publico/ILPortalCasas/trunk/Extensions/AppInstall.py @ 1502

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

Substituido RemoteURL por RemoteUrl? no portlet_utilidades, colocado omit-tag em tags dl, acertado topo da coluna um

File size: 35.8 KB
Linha 
1from Products.CMFCore.utils import getToolByName
2from Products.CMFPlone.utils import _createObjectByType
3from Products.ExternalMethod.ExternalMethod import manage_addExternalMethod
4from Products.ILPortalCasas.config import *
5from Products.ILPortalCasas.config_install import *
6from Acquisition import aq_base
7import sys, os
8
9def install(self):
10    portal = self
11    setupControlPanel(portal)
12    setupWorkflow(portal)
13    replaceIndex(portal)
14    deletePastas(portal)
15    addHistoria(portal)
16    addCamara(portal)
17    addAgenda(portal)
18    addProcessos(portal)
19    addLeis(portal)
20    addLicitacoes(portal)
21    addContabilidade(portal)
22    addUtilidades(portal)
23    addImagens(portal)
24    addEnquetes(portal)
25    addNewsletters(portal)
26    addForuns(portal)
27    addNoticia(portal)
28    addEvento(portal)
29    addOuvidoria(portal)
30    addSaap(portal)
31    addSaal(portal)
32    setupPortal(portal)
33    setupSlots(portal)
34    deleteAction(portal)
35    deleteAction2(portal)
36    deleteAction3(portal)
37    deleteAction4(portal)
38    deleteCategoria(portal)
39    setupActions(portal)
40    setupCssmanager(portal)
41    setupGroups(portal)
42    setupScriptsBackup(portal)
43    setupMemberdata(portal)
44    setupMetadata(portal)
45    setupPortalCss(portal)
46    setupProperties(portal)
47    setupPublicatorUtilidades(portal)
48    setupPublicatorDestaque(portal)
49    setupPublicatorNoticia(portal)
50    setupPublicatorBanner(portal)
51    setupSin(portal)
52    setupSkin(portal)
53    setupWebmail(portal)
54    setupTipo(portal)
55    addBackup(portal)
56    addScheduler(portal)
57
58def setupControlPanel(portal):
59    portal_controlpanel = getToolByName(portal,'portal_controlpanel')
60    portal_controlpanel.registerConfiglet(
61        'ajuda_portal_casas', #id of your Tool
62        'Ajuda Configuração ILPortalCasas', # Title of your Troduct
63        'string:${portal_url}/ajuda_portal_casas/ajuda',
64        'python:True', # a condition
65        'Manage Portal', # access permission
66        'Plone', # section to which the configlet should be added: (Plone,Products,Members)
67        1, # visibility
68        'ILPortalCasas',
69        'info_icon.gif', # icon in control_panel
70        'Ajuda para configuração do ILPortalCasas',
71        None,
72    )
73
74def setupWorkflow(portal):
75    portal_workflow = getToolByName(portal, 'portal_workflow')
76    portal_workflow.setDefaultChain('portal_modelo_workflow')
77    portal_workflow.setChainForPortalTypes( ['CalendarX', 'ATAudio', 'Recordings', 'ATPhoto', 'ATVideo', 'ATAudioFolder', 'ATPhotoAlbum'], "plone_workflow")
78
79def replaceIndex(portal):
80    front_page = getattr(portal, 'front-page', None)
81    if front_page is not None:
82        portal._delObject('front-page')
83        portal.manage_addProduct['PageTemplates'].manage_addPageTemplate('index_html', '', INDEX_HTML)
84    else:
85        pass
86
87def deletePastas(portal):
88    news = getattr(portal, 'news', None)
89    if news is not None:
90        portal.manage_delObjects('news')
91    events = getattr(portal, 'events', None)
92    if events is not None:
93        portal.manage_delObjects('events')
94
95def addHistoria(portal):
96    historia = getattr(portal, 'historia', None)
97    if historia is None:
98        portal.invokeFactory('Folder', id='historia', title='História')
99        hist = getattr(aq_base(portal), 'historia')
100        addable_types = ['Folder','File','Link','Document','DisplayPage', 'ATPhoto', 'ATPhotoAlbum']
101        if getattr(hist.aq_base, 'setConstrainTypesMode', None) is not None:
102            hist.setConstrainTypesMode(1)
103            hist.setImmediatelyAddableTypes(addable_types)
104            hist.setLocallyAllowedTypes(addable_types)
105
106        portal_workflow = getToolByName(portal, 'portal_workflow')
107        historia = getattr(portal, 'historia', None)
108        if historia is not None:
109            portal_workflow.doActionFor(historia, 'publish')
110        historia.invokeFactory('Folder', id='historia-camara', title='História da Câmara')
111        historia_camara = getattr(historia, 'historia-camara', None)
112        if historia_camara is not None:
113            portal_workflow.doActionFor(historia_camara, 'publish')
114        historia.invokeFactory('Folder', id='historia-cidade', title='História da Cidade')
115        historia_cidade = getattr(historia, 'historia-cidade', None)
116        if historia_cidade is not None:
117            portal_workflow.doActionFor(historia_cidade, 'publish')
118
119def addCamara(portal):
120    camara = getattr(portal, 'camara', None)
121    if camara is None:
122        portal.invokeFactory('Folder', id='camara', title='A Câmara')
123        cam = getattr(aq_base(portal), 'camara')
124        addable_types = ['Folder','File','Link','Document','DisplayPage', 'ATVideo', 'ATAudio', 'ATAudioFolder', 'Recordings', 'ATPhoto', 'ATPhotoAlbum']
125        if getattr(cam.aq_base, 'setConstrainTypesMode', None) is not None:
126            cam.setConstrainTypesMode(1)
127            cam.setImmediatelyAddableTypes(addable_types)
128            cam.setLocallyAllowedTypes(addable_types)
129
130        portal_workflow = getToolByName(portal, 'portal_workflow')
131        camara = getattr(portal, 'camara', None)
132        if camara is not None:
133            portal_workflow.doActionFor(camara, 'publish')
134            camara.invokeFactory('Folder', id='funcao', title='Função e Definição')
135            funcao = getattr(camara, 'funcao', None)
136            if funcao is not None:
137                portal_workflow.doActionFor(funcao, 'publish')
138            camara.invokeFactory('Folder', id='departamentos', title='Departamentos')
139            departamentos = getattr(camara, 'departamentos', None)
140            if departamentos is not None:
141                portal_workflow.doActionFor(departamentos, 'publish')
142            camara.invokeFactory('Folder', id='vereadores', title='Vereadores')
143            vereadores = getattr(camara, 'vereadores', None)
144            if vereadores is not None:
145                portal_workflow.doActionFor(vereadores, 'publish')
146            vereadores.invokeFactory('Folder', id='em-servico', title='Em Servico')
147            informacoes = getattr(vereadores, 'em-servico', None)
148            if informacoes is not None:
149                portal_workflow.doActionFor(informacoes, 'publish')
150            vereadores.invokeFactory('Folder', id='ex-vereadores', title='Ex-Vereadores')
151            ex_vereadores = getattr(vereadores, 'ex-vereadores', None)
152            if ex_vereadores is not None:
153                portal_workflow.doActionFor(ex_vereadores, 'publish')
154            vereadores.invokeFactory('Folder', id='discursos', title='Discursos')
155            discursos = getattr(vereadores, 'discursos', None)
156            if discursos is not None:
157                portal_workflow.doActionFor(discursos, 'publish')
158            vereadores.invokeFactory('Folder', id='fale-vereador', title='Fale com o Vereador')
159            fale_vereador = getattr(vereadores, 'fale-vereador', None)
160            if fale_vereador is not None:
161                portal_workflow.doActionFor(fale_vereador, 'publish')
162            camara.invokeFactory('Folder', id='comissoes', title='Comissões')
163            comissoes = getattr(camara, 'comissoes', None)
164            if comissoes is not None:
165                portal_workflow.doActionFor(comissoes, 'publish')
166            camara.invokeFactory('Folder', id='mesa-diretora', title='Mesa Diretora')
167            mesa_diretora = getattr(camara, 'mesa-diretora', None)
168            if mesa_diretora is not None:
169                portal_workflow.doActionFor(mesa_diretora, 'publish')
170
171def addAgenda(portal):
172    agenda = getattr(portal, 'agenda', None)
173    if agenda is None:
174        portal.invokeFactory('CalendarX', id='agenda', title='Agenda')
175        agenda = getattr(portal, 'agenda', None)
176        agenda.manage_addProperty('right_slots', [''], 'lines')
177
178def addProcessos(portal):
179    processos = getattr(portal, 'processos-legislativos', None)
180    if processos is None:
181        portal.invokeFactory('Folder', id='processos-legislativos', title='Processos Legislativos')
182        proc = getattr(aq_base(portal), 'processos-legislativos')
183        addable_types = ['Folder','File','Link','Document','DisplayPage', 'ATVideo', 'ATAudio', 'ATAudioFolder', 'Recordings']
184        if getattr(proc.aq_base, 'setConstrainTypesMode', None) is not None:
185            proc.setConstrainTypesMode(1)
186            proc.setImmediatelyAddableTypes(addable_types)
187            proc.setLocallyAllowedTypes(addable_types)
188
189        portal_workflow = getToolByName(portal, 'portal_workflow')
190        processos = getattr(portal, 'processos-legislativos', None)
191        if processos is not None:
192            portal_workflow.doActionFor(processos, 'publish')
193        processos.invokeFactory('Folder', id='ordem-dia', title='Ordem do Dia')
194        ordem = getattr(processos, 'ordem-dia', None)
195        if ordem is not None:
196            portal_workflow.doActionFor(ordem, 'publish')
197        processos.invokeFactory('Folder', id='sessoes', title='Sessões')
198        sessoes = getattr(processos, 'sessoes', None)
199        if sessoes is not None:
200            portal_workflow.doActionFor(sessoes, 'publish')
201        sessoes.invokeFactory('Folder', id='sessoes-online', title='Sessões On-line')
202        sessoes_online = getattr(sessoes, 'sessoes-online', None)
203        if sessoes_online is not None:
204            portal_workflow.doActionFor(sessoes_online, 'publish')
205        processos.invokeFactory('Folder', id='atas', title='Atas')
206        atas = getattr(processos, 'atas', None)
207        if atas is not None:
208            portal_workflow.doActionFor(atas, 'publish')
209
210def addLeis(portal):
211    leis = getattr(portal, 'leis', None)
212    if leis is None:
213        portal.invokeFactory('Folder', id='leis', title='Leis')
214        lei = getattr(aq_base(portal), 'leis')
215        addable_types = ['Folder','File','Link','Document','DisplayPage']
216        if getattr(lei.aq_base, 'setConstrainTypesMode', None) is not None:
217            lei.setConstrainTypesMode(1)
218            lei.setImmediatelyAddableTypes(addable_types)
219            lei.setLocallyAllowedTypes(addable_types)
220
221        portal_workflow = getToolByName(portal, 'portal_workflow')
222        leis = getattr(portal, 'leis', None)
223        if leis is not None:
224            portal_workflow.doActionFor(leis, 'publish')
225        leis.invokeFactory('Folder', id='legislacao-municipal', title='Legislação Municipal')
226        legislacao_municipal = getattr(leis, 'legislacao-municipal', None)
227        if legislacao_municipal is not None:
228            portal_workflow.doActionFor(legislacao_municipal, 'publish')
229        leis.invokeFactory('Folder', id='leis-federais', title='Leis Federais')
230        leis_federais = getattr(leis, 'leis-federais', None)
231        if leis_federais is not None:
232            portal_workflow.doActionFor(leis_federais, 'publish')
233        leis.invokeFactory('Folder', id='leis-estaduais', title='Leis Estaduais')
234        leis_estaduais = getattr(leis, 'leis-estaduais', None)
235        if leis_estaduais is not None:
236            portal_workflow.doActionFor(leis_estaduais, 'publish')
237        leis.invokeFactory('Folder', id='projetos-lei', title='Projetos de Lei')
238        projetos_lei = getattr(leis, 'projetos-lei', None)
239        if projetos_lei is not None:
240            portal_workflow.doActionFor(projetos_lei, 'publish')
241        projetos = getattr(leis, 'projetos-lei', None)
242        projetos.invokeFactory('Folder', id='estatisticas-proposicoes', title='Estatísticas de Proposições')
243        estatisticas_proposicoes = getattr(projetos, 'estatisticas-proposicoes', None)
244        if estatisticas_proposicoes is not None:
245            portal_workflow.doActionFor(estatisticas_proposicoes, 'publish')
246        leis.invokeFactory('Folder', id='legislacao', title='Legislação')
247        legislacao = getattr(leis, 'legislacao', None)
248        if legislacao is not None:
249            portal_workflow.doActionFor(legislacao, 'publish')
250
251def addLicitacoes(portal):
252    licitacoes = getattr(portal, 'licitacoes', None)
253    if licitacoes is None:
254        portal.invokeFactory('Folder', id='licitacoes', title='Licitações')
255        lic = getattr(aq_base(portal), 'licitacoes')
256        addable_types = ['Folder','File','Link','Document','DisplayPage']
257        if getattr(lic.aq_base, 'setConstrainTypesMode', None) is not None:
258            lic.setConstrainTypesMode(1)
259            lic.setImmediatelyAddableTypes(addable_types)
260            lic.setLocallyAllowedTypes(addable_types)
261
262        portal_workflow = getToolByName(portal, 'portal_workflow')
263        licitacoes = getattr(portal, 'licitacoes', None)
264        if licitacoes is not None:
265            portal_workflow.doActionFor(licitacoes, 'publish')
266        licitacoes.invokeFactory('Folder', id='editais', title='Editais')
267        editais = getattr(licitacoes, 'editais', None)
268        if editais is not None:
269            portal_workflow.doActionFor(editais, 'publish')
270        licitacoes.invokeFactory('Folder', id='concursos', title='Concursos')
271        concursos = getattr(licitacoes, 'concursos', None)
272        if concursos is not None:
273            portal_workflow.doActionFor(concursos, 'publish')
274        licitacoes.invokeFactory('Folder', id='pregao', title='Pregão')
275        pregao = getattr(licitacoes, 'pregao', None)
276        if pregao is not None:
277            portal_workflow.doActionFor(pregao, 'publish')
278        licitacoes.invokeFactory('Folder', id='tomada-preco', title='Tomada de Preço')
279        tomada_preco = getattr(licitacoes, 'tomada-preco', None)
280        if tomada_preco is not None:
281            portal_workflow.doActionFor(tomada_preco, 'publish')
282        licitacoes.invokeFactory('Folder', id='convite', title='Convite')
283        convite = getattr(licitacoes, 'convite', None)
284        if convite is not None:
285            portal_workflow.doActionFor(convite, 'publish')
286
287def addContabilidade(portal):
288    contabilidade = getattr(portal, 'contabilidade', None)
289    if contabilidade is None:
290        portal.invokeFactory('Folder', id='contabilidade', title='Contabilidade')
291        cont = getattr(aq_base(portal), 'contabilidade')
292        addable_types = ['Folder','File','Link','Document','DisplayPage']
293        if getattr(cont.aq_base, 'setConstrainTypesMode', None) is not None:
294            cont.setConstrainTypesMode(1)
295            cont.setImmediatelyAddableTypes(addable_types)
296            cont.setLocallyAllowedTypes(addable_types)
297
298        portal_workflow = getToolByName(portal, 'portal_workflow')
299        contabilidade = getattr(portal, 'contabilidade', None)
300        if contabilidade is not None:
301            portal_workflow.doActionFor(contabilidade, 'publish')
302
303        contabilidade.invokeFactory('Folder', id='repasse-municipal', title='Repasse Municipal', description='Disponibiliza informações sobre os valores de repasses de recursos federais destinados aos Estados, Distrito Federal e Municípios.')
304        repasse_municipal = getattr(contabilidade, 'repasse-municipal', None)
305        if repasse_municipal is not None:
306            portal_workflow.doActionFor(repasse_municipal, 'publish')
307
308def addUtilidades(portal):
309    link = getattr(portal, 'utilidades', None)
310    if link is None:
311        portal.invokeFactory('Folder', id='utilidades', title='Utilidades', excludeFromNav=1)
312        utd = getattr(aq_base(portal), 'utilidades')
313        addable_types = ['Folder', 'Link',]
314        if getattr(utd.aq_base, 'setConstrainTypesMode', None) is not None:
315            utd.setConstrainTypesMode(1)
316            utd.setImmediatelyAddableTypes(addable_types)
317            utd.setLocallyAllowedTypes(addable_types)
318
319        link = getattr(portal, 'utilidades', None)
320        link.invokeFactory('Link', id='link-interlegis', title='Programa Interlegis', remoteUrl='http://www.interlegis.gov.br')
321        link.invokeFactory('Link', id='link-senado', title='Senado Federal', remoteUrl='http://www.senado.gov.br')
322        link.invokeFactory('Link', id='link-camara', title='Câmara dos Deputados', remoteUrl='http://www.camara.gov.br')
323   
324        portal_workflow = getToolByName(portal, 'portal_workflow')
325        interlegis = getattr(link, 'link-interlegis', None)
326        if interlegis is not None:
327            portal_workflow.doActionFor(interlegis, 'publish')
328        senado = getattr(link, 'link-senado', None)
329        if senado is not None:
330            portal_workflow.doActionFor(senado, 'publish')
331        camara = getattr(link, 'link-camara', None)
332        if camara is not None:
333            portal_workflow.doActionFor(camara, 'publish')
334
335def addImagens(portal):
336    imagens = getattr(portal, 'imagens', None)
337    if imagens is None:
338        portal.invokeFactory('Folder', id='imagens', title='Imagens', excludeFromNav=1)
339        portal_workflow = getToolByName(portal, 'portal_workflow')
340        imagem = getattr(aq_base(portal), 'imagens')
341        addable_types = ['Image','Folder','Link']
342        if getattr(imagem.aq_base, 'setConstrainTypesMode', None) is not None:
343            imagem.setConstrainTypesMode(1)
344            imagem.setImmediatelyAddableTypes(addable_types)
345            imagem.setLocallyAllowedTypes(addable_types)
346
347        imagens = getattr(portal, 'imagens', None)
348        imagens.invokeFactory('Folder', id='inoticias', title='Notícias')
349        imagens.invokeFactory('Folder', id='banners', title='Banners')
350        imgban = getattr(imagens, 'banners', None)
351
352        imgban.invokeFactory('Image', id='banner_interlegis.jpg', title='Banner Interlegis')
353        newImage = getattr(imgban, 'banner_interlegis.jpg')
354        newImage.edit(file=file(INSTANCE_HOME+'/Products/ILPortalCasas/Extensions/banner_interlegis.jpg').read())
355        if newImage is not None:
356            portal_workflow.doActionFor(newImage, 'publish')
357
358        imgban.invokeFactory('Image', id='banner_senado.jpg', title='Banner Senado')
359        newImage = getattr(imgban, 'banner_senado.jpg')
360        newImage.edit(file=file(INSTANCE_HOME+'/Products/ILPortalCasas/Extensions/banner_senado.jpg').read())
361        if newImage is not None:
362            portal_workflow.doActionFor(newImage, 'publish')
363
364        imgban.invokeFactory('Image', id='banner_camara.jpg', title='Banner Câmara')
365        newImage = getattr(imgban, 'banner_camara.jpg')
366        newImage.edit(file=file(INSTANCE_HOME+'/Products/ILPortalCasas/Extensions/banner_camara.jpg').read())
367        if newImage is not None:
368            portal_workflow.doActionFor(newImage, 'publish')
369   
370def addEnquetes(portal):
371    enquetes = getattr(portal, 'enquetes', None)
372    if enquetes is None:
373        portal.invokeFactory('Folder', id='enquetes', title='Enquetes', excludeFromNav=1)
374        enquete = getattr(aq_base(portal), 'enquetes')
375        addable_types = ['PlonePopoll']
376        if getattr(enquete.aq_base, 'setConstrainTypesMode', None) is not None:
377            enquete.setConstrainTypesMode(1)
378            enquete.setImmediatelyAddableTypes(addable_types)
379            enquete.setLocallyAllowedTypes(addable_types)
380
381def addNewsletters(portal):
382    newsletters = getattr(portal, 'newsletters', None)
383    if newsletters is None:
384        portal.invokeFactory('Folder', id='newsletters', title='Newsletters', excludeFromNav=1)
385        newsletters = getattr(aq_base(portal), 'newsletters')
386        addable_types = ['Subscriber','NewsletterTheme']
387        if getattr(newsletters.aq_base, 'setConstrainTypesMode', None) is not None:
388            newsletters.setConstrainTypesMode(1)
389            newsletters.setImmediatelyAddableTypes(addable_types)
390            newsletters.setLocallyAllowedTypes(addable_types)
391
392def addForuns(portal):
393    foruns = getattr(portal, 'foruns', None)
394    if foruns is None:
395        portal.invokeFactory('Ploneboard', id='foruns', title='Fóruns')
396        portal_workflow = getToolByName(portal, 'portal_workflow')
397        foruns = getattr(portal, 'foruns', None)
398        if foruns is not None:
399            portal_workflow.doActionFor(foruns, 'publish')
400
401def addNoticia(portal):
402    if 'noticias' not in portal.objectIds():
403        _createObjectByType('Large Plone Folder', portal, id='noticias',
404                            title='Notícias', description='Notícias', excludeFromNav=1)
405    news = getattr(aq_base(portal), 'noticias')
406
407    addable_types = ['News Item']
408    if getattr(news.aq_base, 'setConstrainTypesMode', None) is not None:
409        news.setConstrainTypesMode(1)
410        news.setImmediatelyAddableTypes(addable_types)
411        news.setLocallyAllowedTypes(addable_types)
412
413def addEvento(portal):
414    if 'eventos' not in portal.objectIds():
415        _createObjectByType('Large Plone Folder', portal, id='eventos',
416                            title='Eventos', description='Eventos', excludeFromNav=1)
417    events = getattr(aq_base(portal), 'eventos')
418
419    addable_types = ['Event']
420    if getattr(events.aq_base, 'setConstrainTypesMode', None) is not None:
421        events.setConstrainTypesMode(1)
422        events.setImmediatelyAddableTypes(addable_types)
423        events.setLocallyAllowedTypes(addable_types)
424
425def addOuvidoria(portal):
426    portal.invokeFactory('OmbudsmanFolder', id='ouvidoria', title='Ouvidoria')
427
428def addSaap(portal):
429    saap = getattr(portal, 'saap', None)
430    if saap is None:
431        portal.invokeFactory('Folder', id='saap', title='SAAP', excludeFromNav=1)
432        saap = getattr(portal, 'saap', None)
433        saap.invokeFactory('DisplayPage', id='index_html', remote_url='http://saapdemo.interlegis.gov.br/saap/index_saap_html')
434       # saap._setProperty('remote_url','http://saapdemo.interlegis.gov.br/saap/index_saap_html')
435   
436def addSaal(portal):
437    saal = getattr(portal, 'saal', None)
438    if saal is None:
439        portal.invokeFactory('Folder', id='saal', title='SAAL', excludeFromNav=1)
440
441def setupPortal(portal):
442    portal.manage_changeProperties(title='Portal das Casas Legislativas',
443                                   email_from_address='admin-stc@interlegis.gov.br',
444                                   email_from_name= 'Administrador')
445
446def setupSlots(portal):
447    left_slots =  ('here/portlet_navigation/macros/portlet', \
448                   'here/portlet_preferencias/macros/portlet', \
449                   'here/portlet_gazette/macros/portlet', \
450                   'here/sin_tool/macros/Zope-PT', \
451                   'here/portlet_recent/macros/portlet',)
452    portal._setPropValue('left_slots', left_slots)
453    right_slots = ('here/portlet_calendar/macros/portlet', \
454                   'here/popoll_slot2/macros/popollBox', \
455                   'here/portlet_review/macros/portlet',
456                   'here/portlet_utilidades/macros/portlet',)
457                  # 'here/portlet_previsao/macros/portlet',)
458    portal._setPropValue('right_slots', right_slots)
459
460def deleteAction(portal):
461    portal_actions = getToolByName(portal, 'portal_actions')
462    idx = 0
463    for action in portal_actions.listActions():
464        if action.getId() == 'index_html':
465            portal_actions.deleteActions((idx,))
466            break
467        idx += 1
468
469def deleteAction2(portal):
470    portal_actions = getToolByName(portal, 'portal_actions')
471    idx = 0
472    for action in portal_actions.listActions():
473        if action.getId() == 'sitemap':
474            portal_actions.deleteActions((idx,))
475            break
476        idx += 1
477
478def deleteAction3(portal):
479    portal_actions = getToolByName(portal, 'portal_actions')
480    idx = 0
481    for action in portal_actions.listActions():
482        if action.getId() == 'contact':
483            portal_actions.deleteActions((idx,))
484            break
485        idx += 1
486
487def deleteAction4(portal):
488    portal_actions = getToolByName(portal, 'portal_actions')
489    idx = 0
490    for action in portal_actions.listActions():
491        if action.getId() == 'plone_setup':
492            portal_actions.deleteActions((idx,))
493            break
494        idx += 1
495
496def deleteCategoria(portal):
497    portal_actions = getToolByName(portal, 'portal_actions')
498    idx = 0
499    for actions in portal_actions.listActions():
500        if actions.getCategory() == 'site_actions':
501            portal_actions.deleteActions((idx,))
502            break
503        idx += 1
504
505def setupActions(portal):
506    portal_actions = getToolByName(portal, 'portal_actions')
507    portal_actions.addAction(id='index_html', name='Página Inicial', action='string:$portal_url', condition='', permission='View', category='portal_tabs', visible=1)
508
509    portal_actions.addAction(id='ouvidoria', name='Ouvidoria', action='string:${portal_url}/ouvidoria', condition='', permission='View', category='portal_tabs', visible=1)
510
511    portal_actions.addAction(id='saap', name='SAAP', action='string: ${portal_url}/saap', condition='member', permission='View', category='portal_tabs', visible=1)
512
513    portal_actions.addAction(id='saal', name='SAAL', action='string: ${portal_url}/saal', condition='member', permission='View', category='portal_tabs', visible=1)
514 
515    portal_actions.addAction(id='contact', name='Fale com a Câmara', action='string: ${portal_url}/contact-info', condition='', permission='View', category='portal_tabs', visible=1)
516
517    portal_actions.addAction(id='sitemap', name='Site Map', action='string: ${portal_url}/sitemap', condition='', permission='View', category='portal_tabs', visible=1)
518
519    portal_actions.addAction(id='login_form', name='Acessar', action='string: ${portal_url}/login_form', condition='python:here.portal_membership.isAnonymousUser()', permission='View', category='portal_tabs', visible=1)
520
521def setupCssmanager(portal):
522    cssmanager = getToolByName(portal, 'portal_cssmanager')
523    cssmanager.manage_addToMapping('base_properties','Plone Css')
524
525def setupGroups(portal):
526    portal_groups = getToolByName(portal, 'portal_groups')
527    portal_groups.toggleGroupWorkspacesCreation()
528
529def setupScriptsBackup(portal):
530    scripts_backup = getattr(portal, 'scripts_backup', None)
531    if scripts_backup is None:
532        portal.manage_addProduct['OFSP'].manage_addFolder('scripts_backup')
533        scripts_backup = getattr(portal, 'scripts_backup', None)
534        scripts_backup.manage_addProduct['ExternalMethod'].manage_addExternalMethod('backupFile','Backup zope.conf e products', PROJECTNAME+'.BackupPortalModelo', 'backupFile')
535        scripts_backup.manage_addProduct['ExternalMethod'].manage_addExternalMethod('packDB','Pack Data.fs', PROJECTNAME+'.BackupPortalModelo', 'packDB')
536        scripts_backup.manage_addProduct['ExternalMethod'].manage_addExternalMethod('moveBackup','Move Data.fs para iretorio backup', PROJECTNAME+'.BackupPortalModelo', 'moveBackup')
537
538def setupMemberdata(portal):
539    portal_memberdata = getToolByName(portal, 'portal_memberdata')
540    portal_memberdata.listed = (False)
541    if not portal_memberdata.hasProperty('sexo'):
542        portal_memberdata._setProperty('sexo', '', 'string')
543    if not portal_memberdata.hasProperty('idade'):
544        portal_memberdata._setProperty('idade', '', 'string')
545    if not portal_memberdata.hasProperty('endereco'):
546        portal_memberdata._setProperty('endereco', '', 'string')
547    if not portal_memberdata.hasProperty('bairro'):
548        portal_memberdata._setProperty('bairro', '', 'string')
549    if not portal_memberdata.hasProperty('cidade'):
550        portal_memberdata._setProperty('cidade', '', 'string')
551    if not portal_memberdata.hasProperty('estado'):
552        portal_memberdata._setProperty('estado', '', 'string')
553    if not portal_memberdata.hasProperty('fone_res'):
554        portal_memberdata._setProperty('fone_res', '', 'string')
555
556def setupMetadata(portal):
557    portal_metadata = getToolByName(portal, 'portal_metadata')
558    portal_metadata.updateElementPolicy(
559            element='Subject',
560            content_type='Event',
561            is_required=0,
562            supply_default=0,
563            default_value='',
564            enforce_vocabulary=0,
565            allowed_vocabulary=('Encontro', 'Convenção', 'Reunião', 'Evento Social', 'Trabalho'))
566
567def setupPortalCss(portal):
568    portal_css = getToolByName(portal, 'portal_css')
569    portal_css.manage_removeStylesheet('generated.css')
570    portal_css.manage_addStylesheet(id='generated.css', expression='', media='screen', rel='stylesheet',
571                             rendering='import', enabled=False)
572
573def setupProperties(portal):
574    portal_properties = getToolByName(portal, 'portal_properties')
575    portal_properties.site_properties.default_language = 'pt-br'
576    portal_properties.site_properties.localTimeFormat = '%d/%m/%Y'
577    portal_properties.site_properties.localLongTimeFormat = '%d/%m/%Y %H:%M'
578    portal_properties.site_properties.disable_folder_sections = (True)
579    portal_properties.navtree_properties.includeTop = (False)
580    portal_properties.navtree_properties.idsNotToList = ('Members','portal_ombudsman',)
581    portal_properties.navtree_properties.metaTypesNotToList = ('ATImage', 'ATFile', 'ATEvent', 'ATLink', 'ATNewsItem', 'OmbudsmanClaim', 'OmbudsmanResponsble', )
582
583    portal_properties.manage_addPropertySheet('portal_casas_properties','Propriedades do Portal das Casas')
584    if not portal_properties.portal_casas_properties.hasProperty('estado'):
585        portal_properties.portal_casas_properties._setProperty('estado', ['AC;Acre','AL;Alagoas','AP;Amapá','AM;Amazonas','BA;Bahia','CE;Ceará','DF;Distrito Federal','ES;Espírito Santo','GO;Goiás','MA;Maranhão','MT;Mato Grosso','MS;Mato Grosso do Sul','MG;Minas Gerais','PA;Pará','PB;Paraíba','PR;Paraná','PE;Pernambuco','PI;Piauí','RJ;Rio de Janeiro','RN;Rio Grande do Norte','RS;Rio Grande do Sul','RO;Rondônia','RR;Roraima','SC;Santa Catarina','SP;São Paulo','SE;Sergipe','TO;Tocantins'], 'lines')
586    if not portal_properties.portal_casas_properties.hasProperty('idade'):
587        portal_properties.portal_casas_properties._setProperty('idade', ['0;Menos que 15','1;15 a 20','2;20 a 25','3;25 a 30','4;30 a 35','5;35 a 40','6;45 a 50','7;50 a 55','8;55 a 60','9;60 a 65','10;65 a 70','11;70 a 75','12;75 a 80','13;Acima de 80'], 'lines')
588    if not portal_properties.portal_casas_properties.hasProperty('sexo'):
589        portal_properties.portal_casas_properties._setProperty('sexo', ['FE;Feminino','MA;Masculino'], 'lines')
590
591def setupPublicatorUtilidades(portal):
592    portal_url = getToolByName(portal, 'portal_url')
593    url = portal_url(relative_to_portal=1)
594    plone_id = portal_url.getPortalObject().getId()
595    items_utilidades = [{'RemoteUrl':'http://www.interlegis.gov.br', 'Description':'Programa Interlegis', 'Title':'Programa Interlegis', 'NewWindow':'on', 'RelativeURL':'/'+plone_id+'/utilidades/link-interlegis', 'RelativeContentURL':'utilidades/link-interlegis', 'Id':'link-interlegis'}, {'RemoteUrl':'http://www.senado.gov.br', 'Description':'Senado Federal', 'Title':'Senado Federal', 'NewWindow':'on', 'RelativeURL':'/'+plone_id+'/utilidades/link-senado', 'RelativeContentURL':'utilidades/link-senado', 'Id':'link-senado'}, {'RemoteUrl':'http://www.camara.gov.br', 'Description':'Câmara dos Deputados', 'Title':'Câmara dos Deputados', 'NewWindow':'on', 'RelativeURL':'/'+plone_id+'/utilidades/link-camara', 'RelativeContentURL':'utilidades/link-camara', 'Id':'link-camara'}]
596    portal_publicator = getToolByName(portal, 'portal_publicator')   
597    portal_publicator.addPublicationBox(id='links_utilidades',
598                           name='Utilidades',
599                           content_type=['Link'],
600                           n_items=5,
601                           search_states=['published'],
602                           items=items_utilidades)
603
604def setupPublicatorDestaque(portal):
605    portal_publicator = getToolByName(portal, 'portal_publicator')
606    portal_publicator.addPublicationBox(id='destaque',
607                           name='Notícia Destaque',
608                           content_type=['News Item'],
609                           n_items=1,
610                           search_states=['published'])
611
612def setupPublicatorNoticia(portal):
613    portal_publicator = getToolByName(portal, 'portal_publicator')
614    portal_publicator.addPublicationBox(id='noticia',
615                           name='Últimas Notícias',
616                           search_states=['published'],
617                           content_type=['News Item'],
618                           n_items=5)
619
620def setupPublicatorBanner(portal):
621    portal_url = getToolByName(portal, 'portal_url')
622    url = portal_url(relative_to_portal=1)
623    plone_id = portal_url.getPortalObject().getId()
624    items_banners = [{'Description':'Senado Federal', 'Title':'Senado Federal', 'RemoteUrl':'http://www.senado.gov.br', 'RelativeContentURL':'utilidades/link-senado', 'ImageURL':'imagens/banners/banner_senado.jpg', 'NewWindow': 'on', 'RelativeURL':'/'+plone_id+'/utilidades/link-senado', 'Id':'link-senado'}, {'Description':'Programa Interlegis', 'Title':'Programa Interlegis', 'RemoteUrl':'http://www.interlegis.gov.br', 'RelativeContentURL':'utilidades/link-interlegis', 'ImageURL':'imagens/banners/banner_interlegis.jpg', 'RemoteURL':'http://www.camara.gov.br', 'NewWindow': 'on', 'RelativeURL':'/'+plone_id+'/utilidades/link-interlegis', 'Id':'link-interlegis'}, {'Description':'Câmara dos Deputados', 'Title':'Câmara dos Deputados', 'RemoteUrl':'http://www.camara.gov.br', 'RelativeContentURL':'utilidades/link-camara', 'ImageURL':'imagens/banners/banner_camara.jpg', 'NewWindow': 'on', 'RelativeURL':'/'+plone_id+'/utilidades/link-camara', 'Id':'link-camara'}]
625    portal_publicator = getToolByName(portal, 'portal_publicator')
626    portal_publicator.addPublicationBox(id='banners',
627                           name='Banners',
628                           content_type=['Link'],
629                           n_items=5,
630                           search_states=['published'],
631                           with_image=1,
632                           images_folder='imagens/banners',
633                           image_states=['published'],
634                           items=items_banners)
635
636def setupSin(portal):
637    sin_tool = getToolByName(portal, 'sin_tool')
638    sin_tool.manage_configSin(submit='Set Config', config=ARQUIVO)   
639
640def setupSkin(portal):
641    portal_skins = getToolByName(portal, 'portal_skins')
642    path = portal_skins.getSkinPath('Plone Default')
643    path = [elem.strip() for elem in path.split(',') if elem != '.svn']
644    path = ','.join(path)
645    portal_skins.addSkinSelection('Portal Casas', path)
646    portal_skins.manage_properties(default_skin = 'Portal Casas',
647                                   request_varname = 'plone_skin',
648                                   del_skin = 0,
649                                   chosen = [])
650
651def setupWebmail(portal):
652    portal_webmail = getToolByName(portal, 'portal_webmail')
653    portal_webmail.UsePortalData = (True)   
654
655def setupTipo(portal):
656    portal_types = getToolByName(portal, 'portal_types')
657    portal_types['Plone Site'].global_allow = False
658    addable_types=['Folder', 'OmbudsmanFolder']
659    portal_types['Plone Site'].filter_content_types = True
660    portal_types['Plone Site'].allowed_content_types = addable_types
661
662def addBackup(portal):
663    DIR = INSTANCE_HOME
664    BACKUP = INSTANCE_HOME+'/backup'
665    if os.path.exists(BACKUP):
666        pass
667    else:
668        os.system('mkdir %s/backup' % DIR)
669
670def addScheduler(portal):
671    zope_scheduler = getattr(portal, 'zope_scheduler', None)
672    if zope_scheduler is None:
673        portal.manage_addProduct['ZopeScheduler'].manage_addZopeScheduler()
674        zope_scheduler = getattr(portal, 'zope_scheduler', None)
675        zope_scheduler.manage_addTask('scripts_backup/packDB', ('0',), ('22',), [None], [1,3,5], (None))
676        zope_scheduler.manage_addTask('scripts_backup/moveBackup', ('00',), ('23',), [None], [1,3,5], (None))
677        zope_scheduler.manage_addTask('scripts_backup/backupFile', ('20',), ('23',), [None], [1,3,5], (None))
678
679
680def uninstall(self):
681    portal = self
682    # the ids of the objects to keep
683    locked_ids = ('historia', 'camara', 'agenda', 'processos-legislativos', 'leis', 'legislacao', \
684                  'licitacoes', 'editais', 'contabilidade', 'utilidades', 'imagens', 'enquetes', 'newsletters', \
685                  'foruns', 'noticias', 'eventos', 'saap', 'saal', 'scripts_backup', 'zope_scheduler', 'index_html')
686    po = self.portal_quickinstaller.ILPortalCasas.portalobjects
687    for id in locked_ids:
688        if id in po:
689            po.remove(id)
690
691    portal_controlpanel = getToolByName(portal,'portal_controlpanel')
692    portal_controlpanel.unregisterConfiglet('ajuda_portal_casas')
693
694    portal_types = getToolByName(portal, 'portal_types')
695    portal_types['Plone Site'].global_allow = True
696    portal_types['Plone Site'].filter_content_types = False
697
698    portal_properties = getToolByName(portal, 'portal_properties')
699    portal_properties._delObject('portal_casas_properties')
700
701    portal_publicator = getToolByName(portal, 'portal_publicator')
702    portal_publicator.deletePublicationBoxes(['banners', 'links_utilidades', 'destaque', 'noticia'])
703
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.