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

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

modelo,visoes,css e appinstall atualizados

File size: 6.2 KB
Linha 
1""" Extensions/Install.py """
2
3# Copyright (c) 2005 by Interlegis
4#
5# Generated:
6# Generator: ArchGenXML Version 1.4.0-RC1
7#            http://plone.org/products/archgenxml
8#
9# GNU General Public Licence (GPL)
10#
11# This program is free software; you can redistribute it and/or modify it under
12# the terms of the GNU General Public License as published by the Free Software
13# Foundation; either version 2 of the License, or (at your option) any later
14# version.
15# This program is distributed in the hope that it will be useful, but WITHOUT
16# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
17# FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
18# details.
19# You should have received a copy of the GNU General Public License along with
20# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
21# Place, Suite 330, Boston, MA  02111-1307  USA
22#
23__author__    = '''STC Interlegis <admin-stc@interlegis.gov.br>'''
24__docformat__ = 'plaintext'
25__version__   = '$ Revision 0.0 $'[11:-2]
26
27import os.path
28import sys
29from StringIO import StringIO
30
31from App.Common import package_home
32from Products.CMFCore.utils import getToolByName
33from Products.CMFCore.utils import manage_addTool
34from Products.ExternalMethod.ExternalMethod import ExternalMethod
35from zExceptions import NotFound, BadRequest
36
37from Products.Archetypes.Extensions.utils import installTypes
38from Products.Archetypes.Extensions.utils import install_subskin
39try:
40    from Products.Archetypes.lib.register import listTypes
41except ImportError:
42    from Products.Archetypes.public import listTypes
43from Products.ILPortal.config import PROJECTNAME
44from Products.ILPortal.config import product_globals as GLOBALS
45
46def install(self):
47    """ External Method to install ILPortal """
48    out = StringIO()
49    print >> out, "Installation log of %s:" % PROJECTNAME
50
51    # If the config contains a list of dependencies, try to install
52    # them.  Add a list called DEPENDENCIES to your custom
53    # AppConfig.py (imported by config.py) to use it.
54    try:
55        from Products.ILPortal.config import DEPENDENCIES
56    except:
57        DEPENDENCIES = []
58    portal = getToolByName(self,'portal_url').getPortalObject()
59    quickinstaller = portal.portal_quickinstaller
60    for dependency in DEPENDENCIES:
61        print >> out, "Installing dependency %s:" % dependency
62        quickinstaller.installProduct(dependency)
63        get_transaction().commit(1)
64
65    classes = listTypes(PROJECTNAME)
66    installTypes(self, out,
67                 classes,
68                 PROJECTNAME)
69    install_subskin(self, out, GLOBALS)
70
71
72    # try to call a workflow install method
73    # in 'InstallWorkflows.py' method 'installWorkflows'
74    try:
75        installWorkflows = ExternalMethod('temp','temp',PROJECTNAME+'.InstallWorkflows', 'installWorkflows').__of__(self)
76    except NotFound:
77        installWorkflows = None
78
79    if installWorkflows:
80        print >>out,'Workflow Install:'
81        res = installWorkflows(self,out)
82        print >>out,res or 'no output'
83    else:
84        print >>out,'no workflow install'
85
86
87    # enable portal_factory for given types
88    factory_tool = getToolByName(self,'portal_factory')
89    factory_types=[
90        "MesaDiretora",
91        "Telefone",
92        "MembroMesaDiretora",
93        ] + factory_tool.getFactoryTypes().keys()
94    factory_tool.manage_setPortalFactoryTypes(listOfTypeIds=factory_types)
95
96    # For plone 2.1, allow the easy registering of stylesheets
97    from Products.ILPortal.config import HAS_PLONE21
98    if HAS_PLONE21:
99        try:
100            from Products.ILPortal.config import STYLESHEETS
101        except:
102            STYLESHEETS = []
103        try:
104            from Products.ILPortal.config import JAVASCRIPTS
105        except:
106            JAVASCRIPTS = []
107        portal_css = getToolByName(portal, 'portal_css')
108        portal_javascripts = getToolByName(portal, 'portal_javascripts')
109        for stylesheet in STYLESHEETS:
110            try:
111                portal_css.unregisterResource(stylesheet['id'])
112            except:
113                pass
114            defaulttitle = '%s %s' % (PROJECTNAME, stylesheet['id'])
115            defaults = {'id': '',
116            'expression': None,
117            'media': 'all',
118            'title': defaulttitle,
119            'enabled': True}
120            defaults.update(stylesheet)
121            portal_css.manage_addStylesheet(**defaults)
122        for javascript in JAVASCRIPTS:
123            try:
124                portal_javascripts.unregisterResource(stylesheet['id'])
125            except:
126                pass
127            defaults = {'id': '',
128            'expression': '',
129            'inline': False,
130            'enabled': True,
131            'cookable': True}
132            defaults.update(javascript)
133            js_tool.registerScript(**defaults)
134
135    # try to call a custom install method
136    # in 'AppInstall.py' method 'install'
137    try:
138        install = ExternalMethod('temp','temp',PROJECTNAME+'.AppInstall', 'install')
139    except NotFound:
140        install = None
141
142    if install:
143        print >>out,'Custom Install:'
144        res = install(self)
145        if res:
146            print >>out,res
147        else:
148            print >>out,'no output'
149    else:
150        print >>out,'no custom install'
151    return out.getvalue()
152
153def uninstall(self):
154    out = StringIO()
155
156    # try to call a workflow uninstall method
157    # in 'InstallWorkflows.py' method 'uninstallWorkflows'
158    try:
159        installWorkflows = ExternalMethod('temp','temp',PROJECTNAME+'.InstallWorkflows', 'uninstallWorkflows').__of__(self)
160    except NotFound:
161        installWorkflows = None
162
163    if installWorkflows:
164        print >>out,'Workflow Uninstall:'
165        res = uninstallWorkflows(self,out)
166        print >>out,res or 'no output'
167    else:
168        print >>out,'no workflow uninstall'
169
170    # try to call a custom uninstall method
171    # in 'AppInstall.py' method 'uninstall'
172    try:
173        uninstall = ExternalMethod('temp','temp',PROJECTNAME+'.AppInstall', 'uninstall')
174    except:
175        uninstall = None
176
177    if uninstall:
178        print >>out,'Custom Uninstall:'
179        res = uninstall(self)
180        if res:
181            print >>out,res
182        else:
183            print >>out,'no output'
184    else:
185        print >>out,'no custom uninstall'
186
187    return out.getvalue()
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.