Exemplo n.º 1
0
 def loadDefaultData(self):
     """ """
     NySite.__dict__['loadDefaultData'](self)
     self.loadSkeleton(join(ENVPORTAL_PRODUCT_PATH, 'skel'))
     self.getPropertiesTool().manageMainTopics(maintopics=['country_profile', 'reports', 'themes_indicators', 'projects', 'products', 'publications'])
     manage_addNyPhotoFolder(self, ID_PHOTOARCHIVE, TITLE_PHOTOARCHIVE)
     self._getOb(ID_PHOTOARCHIVE).approveThis()
     #create and configure LinkChecker instance
     manage_addLinkChecker(self, ID_LINKCHECKER, TITLE_LINKCHECKER)
     linkchecker_ob = self._getOb(ID_LINKCHECKER)
     linkchecker_ob.manage_edit(proxy='', batch_size=10, catalog_name=ID_CATALOGTOOL)
     linkchecker_ob.manage_addMetaType(METATYPE_NYURL)
     linkchecker_ob.manage_addProperty(METATYPE_NYURL, 'locator')
     for k,v in self.get_content_urls().items():
         linkchecker_ob.manage_addMetaType(k)
         for p in v:
             linkchecker_ob.manage_addProperty(k, p)
     #create helpdesk instance
     manage_addHelpDesk(self, ID_HELPDESKAGENT, TITLE_HELPDESKAGENT, self.getAuthenticationToolPath(1))
     #create and fill glossaries
     manage_addGlossaryCentre(self, ID_GLOSSARY_KEYWORDS, TITLE_GLOSSARY_KEYWORDS)
     self._getOb(ID_GLOSSARY_KEYWORDS).xliff_import(self.futRead(join(ENVPORTAL_PRODUCT_PATH, 'skel', 'others', 'glossary_keywords.xml')))
     manage_addGlossaryCentre(self, ID_GLOSSARY_COVERAGE, TITLE_GLOSSARY_COVERAGE)
     self._getOb(ID_GLOSSARY_COVERAGE).xliff_import(self.futRead(join(ENVPORTAL_PRODUCT_PATH, 'skel', 'others', 'glossary_coverage.xml')))
     #set glossary for pick lists
     self.keywords_glossary = ID_GLOSSARY_KEYWORDS
     self.coverage_glossary = ID_GLOSSARY_COVERAGE
     self._p_changed = 1
Exemplo n.º 2
0
 def loadDefaultData(self):
     """ """
     NySite.__dict__['loadDefaultData'](self)
     self.loadSkeleton(join(ENVPORTAL_PRODUCT_PATH, 'skel'))
     self.getPropertiesTool().manageMainTopics(maintopics=['country_profile', 'reports', 'themes_indicators', 'projects', 'products', 'publications'])
     manage_addNyPhotoFolder(self, ID_PHOTOARCHIVE, TITLE_PHOTOARCHIVE)
     self._getOb(ID_PHOTOARCHIVE).approveThis()
     #create and configure LinkChecker instance
     manage_addLinkChecker(self, ID_LINKCHECKER, TITLE_LINKCHECKER)
     linkchecker_ob = self._getOb(ID_LINKCHECKER)
     linkchecker_ob.manage_edit(proxy='', batch_size=10, catalog_name=ID_CATALOGTOOL)
     linkchecker_ob.manage_addMetaType(METATYPE_NYURL)
     linkchecker_ob.manage_addProperty(METATYPE_NYURL, 'locator')
     for k,v in self.get_content_urls().items():
         linkchecker_ob.manage_addMetaType(k)
         for p in v:
             linkchecker_ob.manage_addProperty(k, p)
     #create helpdesk instance
     manage_addHelpDesk(self, ID_HELPDESKAGENT, TITLE_HELPDESKAGENT, self.getAuthenticationToolPath(1))
     #create and fill glossaries
     manage_addGlossaryCentre(self, ID_GLOSSARY_KEYWORDS, TITLE_GLOSSARY_KEYWORDS)
     self._getOb(ID_GLOSSARY_KEYWORDS).xliff_import(self.futRead(join(ENVPORTAL_PRODUCT_PATH, 'skel', 'others', 'glossary_keywords.xml')))
     manage_addGlossaryCentre(self, ID_GLOSSARY_COVERAGE, TITLE_GLOSSARY_COVERAGE)
     self._getOb(ID_GLOSSARY_COVERAGE).xliff_import(self.futRead(join(ENVPORTAL_PRODUCT_PATH, 'skel', 'others', 'glossary_coverage.xml')))
     #set glossary for pick lists
     self.keywords_glossary = ID_GLOSSARY_KEYWORDS
     self.coverage_glossary = ID_GLOSSARY_COVERAGE
     self._p_changed = 1
Exemplo n.º 3
0
    def loadDefaultData(self):
        """ """
        #set default 'Naaya' configuration
        NySite.__dict__['createPortalTools'](self)
        NySite.__dict__['loadDefaultData'](self)

        #load site skeleton - configuration
        self.loadSkeleton(join(CHM2_PRODUCT_PATH, 'skel'))

        #remove Naaya default content
        self.getLayoutTool().manage_delObjects('skin')

        #set default PhotoFolder
        manage_addNyPhotoFolder(self, ID_PHOTOARCHIVE, TITLE_PHOTOARCHIVE)
        self._getOb(ID_PHOTOARCHIVE).approveThis()

        #create and configure LinkChecker instance
        manage_addLinkChecker(self, ID_LINKCHECKER, TITLE_LINKCHECKER)
        linkchecker_ob = self._getOb(ID_LINKCHECKER)
        linkchecker_ob.manage_edit(proxy='', batch_size=10, catalog_name=ID_CATALOGTOOL)
        linkchecker_ob.manage_addMetaType(METATYPE_NYURL)
        linkchecker_ob.manage_addProperty(METATYPE_NYURL, 'locator')
        for k,v in self.get_content_urls().items():
            linkchecker_ob.manage_addMetaType(k)
            for p in v:
                linkchecker_ob.manage_addProperty(k, p)

        #create helpdesk instance
        manage_addHelpDesk(self, ID_HELPDESKAGENT, TITLE_HELPDESKAGENT, self.getAuthenticationToolPath(1))
        #create NaayaCalendar instance
        manage_addEventCalendar(self, id="portal_calendar", title='Calendar of Events', description='',
                            day_len='2', cal_meta_types='Naaya Event', start_day='Monday', catalog=self.getCatalogTool().id, REQUEST=None)
        #create index for Naaya Calendar
        extra=Extra_for_DateRangeIndex(since_field='start_date', until_field='end_date')
        self.getCatalogTool().manage_addIndex("resource_interval", 'DateRangeIndex', extra=extra)
        #create and fill glossaries
        manage_addGlossaryCentre(self, ID_GLOSSARY_KEYWORDS, TITLE_GLOSSARY_KEYWORDS)
        self._getOb(ID_GLOSSARY_KEYWORDS).xliff_import(self.futRead(join(CHM2_PRODUCT_PATH, 'skel', 'others', 'glossary_keywords.xml')))
        self.add_glossary_coverage()

        #portal_map custom index
        custom_map_index = self.futRead(join(CHM2_PRODUCT_PATH, 'skel', 'others', 'map_index.zpt'))
        portal_map = self.getGeoMapTool()
        manage_addPageTemplate(portal_map, id='map_index', title='', text='')
        map_index = portal_map._getOb(id='map_index')
        map_index.pt_edit(text=custom_map_index, content_type='')
        
        #set glossary for pick lists
        self.keywords_glossary = ID_GLOSSARY_KEYWORDS
        self.coverage_glossary = ID_GLOSSARY_COVERAGE
        self._p_changed = 1
        #add Forum instance
        manage_addNyForum(self, id='portal_forum', title='CHM Forum', description='', categories=['CHM', 'Biodiversity', 'Other'], file_max_size=0, REQUEST=None)
 def _install_link_checker(self):
     #create and configure LinkChecker instance
     try:
         from Products.NaayaLinkChecker.LinkChecker import manage_addLinkChecker
     except ImportError:
         zLOG.LOG('naaya.envirowindows', zLOG.WARNING,
                  'Mising Products.LinkChecker')
         return
     manage_addLinkChecker(self, ID_LINKCHECKER, TITLE_LINKCHECKER)
     linkchecker_ob = self._getOb(ID_LINKCHECKER)
     linkchecker_ob.manage_edit(proxy='', batch_size=10, catalog_name=ID_CATALOGTOOL)
     linkchecker_ob.manage_addMetaType('Naaya URL')
     linkchecker_ob.manage_addProperty('Naaya URL', 'locator')
     for k,v in self.get_content_urls().items():
         linkchecker_ob.manage_addMetaType(k)
         for p in v:
             linkchecker_ob.manage_addProperty(k, p)
Exemplo n.º 5
0
    def install_finish(self, REQUEST):
        """ """
        install_data = self.getSession(SESSION_INSTALL_DATA,
                                       self.getInstallData())
        if install_data['location'] == '': l_location = self.utGetROOT()
        else:
            l_location = self.unrestrictedTraverse(install_data['location'],
                                                   self.utGetROOT())

        #create the portal with the default structure
        id = self.utCleanupId(install_data['id'])
        if not id: id = PREFIX_SITE + self.utGenRandomId(6)
        manage_addEnviroWindowsSite(l_location,
                                    id=id,
                                    title=install_data['site_title'])
        ob = l_location._getOb(id)

        #add user and role (admin)
        if install_data['username'] != '' and install_data['password'] != '':
            ob.getAuthenticationTool().manage_addUser(
                install_data['username'], install_data['password'],
                install_data['password'], ['Manager'], '',
                install_data['administrator_name'],
                install_data['administrator_name'],
                install_data['administrator_email'])
        try:
            REQUEST.SESSION.delete('site_errors')
        except:
            pass
        try:
            REQUEST.SESSION.delete('site_infos')
        except:
            pass

        #add and set defaut language
        properties_tool = ob.getPropertiesTool()
        for lang in install_data['languages']:
            properties_tool.manage_addLanguage(lang)
        #properties_tool.manage_changeDefaultLang(install_data['language'])

        #change portal metadata
        ob.admin_metadata(
            site_title=install_data['site_title'],
            site_subtitle=install_data['subtitle'],
            description=install_data['description'],
            publisher=install_data['publisher'],
            contributor=install_data['contributor'],
            creator=install_data['creator'],
            rights=install_data['rights'],
        )

        #change portal layout
        ob.admin_layout(theMasterList=install_data['skin'],
                        theSlaveList=install_data['skin_style'])

        #change portal logo
        if install_data['site_logo'] != 'Nothing':
            image_ob = ob.getLayoutTool()._getOb('logo.gif')
            image_ob.update_data(data=install_data['site_logo'])
            image_ob._p_changed = 1

        #administrator area
        ob.admin_email(mail_server_name=install_data['mail_server_name'],
                       mail_server_port=install_data['mail_server_port'],
                       administrator_email=install_data['administrator_email'],
                       notify_on_errors_email=install_data['notify_on_errors'])
        ob.admin_properties(http_proxy=install_data['http_proxy'],
                            portal_url=install_data['portal_url'])

        #latest uploads & news
        ob.portal_syndication.latestuploads_rdf.manageProperties(
            title='Latest uploads',
            description='Latest uploads',
            numberofitems=install_data['number_latest_uploads'])

        ob.portal_syndication.latestnews_rdf.manageProperties(
            title='Latest news',
            description='Latest news',
            numberofitems=install_data['number_announcements'])

        #additional products
        for l_product in self.getProductsStruct(install_data).keys():
            if l_product == 'Remote links checking':
                if flagNaayaLinkChecker == 1:
                    #product is present, add instance

                    manage_addLinkChecker(
                        ob, self.getKeyForProduct(install_data, l_product,
                                                  'id'),
                        self.getKeyForProduct(install_data, l_product,
                                              'title'))
                    linkchecker_metatype = [
                        'Naaya URL', 'Naaya Folder', 'Naaya Document'
                    ]

                    ob.portal_linkchecker.use_catalog = 1
                    ob.portal_linkchecker.catalog_name = "portal_catalog"
                    ob.portal_linkchecker.batch_size = 20

                    #add default Linkchecker metatype
                    for meta in linkchecker_metatype:
                        ob.portal_linkchecker.manage_addMetaType(MetaType=meta)
                        if meta == 'Naaya URL':
                            ob.portal_linkchecker.manage_addProperty(
                                MetaType=meta, Property='description')
                            ob.portal_linkchecker.manage_addProperty(
                                MetaType=meta, Property='locator')

                        elif meta == 'Naaya Folder':
                            ob.portal_linkchecker.manage_addProperty(
                                MetaType=meta, Property='description')

                        elif meta == 'Naaya Document':
                            ob.portal_linkchecker.manage_addProperty(
                                MetaType=meta, Property='description')
                            ob.portal_linkchecker.manage_addProperty(
                                MetaType=meta, Property='body')

            elif l_product == 'Discussion forum':
                if flagNaayaForum == 1:
                    #product is present, add instance
                    manage_addNyForum(
                        ob, self.getKeyForProduct(install_data, l_product,
                                                  'id'),
                        self.getKeyForProduct(install_data, l_product,
                                              'title'),
                        self.getKeyForProduct(install_data, l_product,
                                              'description'))
                    current_per = ob.getAuthenticationTool().getPermission(
                        'Add comments')
                    current_per['permissions'].append(
                        'Add Naaya Forum Message')

                    ob.getAuthenticationTool().editPermission(
                        name='Authenticated', permissions=current_per)

        # send emails to appliants: administrator and contact
        p_to = [
            install_data['administrator_email'], install_data['contact_email']
        ]
        new_status = APPLICATION_STATUS_APPROVED
        p_from = self.unrestrictedTraverse(
            install_data['applications_url']).email_from
        #p_from = self.
        manuale = 'http://ew.eea.europa.eu/naaya/'
        p_subject = 'Your portal application on EnviroWindows has been approved'
        p_content = """
You have applied for an EnviroWindows-compliant portal hosted on the EnviroWindows servers.
The application has been approved and your portal has been created at:
%s

An account was created for you on this portal with management rights:
Username: %s
Password: %s

In order to get help on content contribution and portal administration, please consult:
%s

Regards,
EnviroWindows Team

****************************************************
IMPORTANT NOTICE: This is an automatic service.
Please do not reply to this message.
****************************************************
        """ % (ob.absolute_url(), install_data['username'],
               install_data['password'], manuale)
        self.unrestrictedTraverse(
            install_data['ewindows_portal_url']).getEmailTool().sendEmail(
                p_content, p_to, p_from, p_subject)

        DestinationURL = install_data['DestinationURL']
        self.delSession(SESSION_INSTALL_DATA)
        if DestinationURL == 'manage_main':
            return self.manage_main(self, REQUEST, update_menu=1)
        else:
            return REQUEST.RESPONSE.redirect('%s?action=finish' %
                                             DestinationURL)
Exemplo n.º 6
0
    def loadDefaultData(self):
        """ """
        # set default 'Naaya' configuration
        NySite.__dict__["createPortalTools"](self)
        NySite.__dict__["loadDefaultData"](self)

        # load site skeleton - configuration
        self.loadSkeleton(join(CHM2_PRODUCT_PATH, "skel"))

        # remove Naaya default content
        self.getLayoutTool().manage_delObjects("skin")

        # set default PhotoFolder
        manage_addNyPhotoFolder(self, ID_PHOTOARCHIVE, TITLE_PHOTOARCHIVE)
        self._getOb(ID_PHOTOARCHIVE).approveThis()

        # create and configure LinkChecker instance
        manage_addLinkChecker(self, ID_LINKCHECKER, TITLE_LINKCHECKER)
        linkchecker_ob = self._getOb(ID_LINKCHECKER)
        linkchecker_ob.manage_edit(proxy="", batch_size=10, catalog_name=ID_CATALOGTOOL)
        linkchecker_ob.manage_addMetaType(METATYPE_NYURL)
        linkchecker_ob.manage_addProperty(METATYPE_NYURL, "locator")
        for k, v in self.get_content_urls().items():
            linkchecker_ob.manage_addMetaType(k)
            for p in v:
                linkchecker_ob.manage_addProperty(k, p)

        # create helpdesk instance
        manage_addHelpDesk(self, ID_HELPDESKAGENT, TITLE_HELPDESKAGENT, self.getAuthenticationToolPath(1))
        # create NaayaCalendar instance
        manage_addEventCalendar(
            self,
            id="portal_calendar",
            title="Calendar of Events",
            description="",
            day_len="2",
            cal_meta_types="Naaya Event",
            start_day="Monday",
            catalog=self.getCatalogTool().id,
            REQUEST=None,
        )
        # create index for Naaya Calendar
        extra = Extra_for_DateRangeIndex(since_field="start_date", until_field="end_date")
        self.getCatalogTool().manage_addIndex("resource_interval", "DateRangeIndex", extra=extra)
        # create and fill glossaries
        manage_addGlossaryCentre(self, ID_GLOSSARY_KEYWORDS, TITLE_GLOSSARY_KEYWORDS)
        self._getOb(ID_GLOSSARY_KEYWORDS).xliff_import(
            self.futRead(join(CHM2_PRODUCT_PATH, "skel", "others", "glossary_keywords.xml"))
        )
        self.add_glossary_coverage()

        # portal_map custom index
        custom_map_index = self.futRead(join(CHM2_PRODUCT_PATH, "skel", "others", "map_index.zpt"))
        portal_map = self.getGeoMapTool()
        manage_addPageTemplate(portal_map, id="map_index", title="", text="")
        map_index = portal_map._getOb(id="map_index")
        map_index.pt_edit(text=custom_map_index, content_type="")

        # set glossary for pick lists
        self.keywords_glossary = ID_GLOSSARY_KEYWORDS
        self.coverage_glossary = ID_GLOSSARY_COVERAGE
        self._p_changed = 1
        # add Forum instance
        manage_addNyForum(
            self,
            id="portal_forum",
            title="CHM Forum",
            description="",
            categories=["CHM", "Biodiversity", "Other"],
            file_max_size=0,
            REQUEST=None,
        )
Exemplo n.º 7
0
    def loadDefaultData(self, load_glossaries=[], skel_handler=None):
        """ """
        # set default 'Naaya' configuration
        NySite.__dict__['createPortalTools'](self)
        NySite.__dict__['loadDefaultData'](self)

        # remove Naaya default content
        layout_tool = self.getLayoutTool()
        naaya_skins = [skin.getId() for skin in
                       layout_tool.objectValues('Naaya Skin')]
        logos = [image.getId() for image in
                 layout_tool.objectValues('Image')]
        layout_tool.manage_delObjects(naaya_skins + logos)

        # load site skeleton - configuration
        if skel_handler is not None:
            self._load_skel_from_handler(skel_handler)

        # set default PhotoFolder
        addNyPhotoGallery(self, id='PhotoGallery', title=TITLE_PHOTOARCHIVE)
        self._getOb('PhotoGallery').approveThis()

        # create and configure LinkChecker instance
        manage_addLinkChecker(self, ID_LINKCHECKER, TITLE_LINKCHECKER)
        linkchecker_ob = self._getOb(ID_LINKCHECKER)
        linkchecker_ob.manage_edit(proxy='', batch_size=10,
                                   catalog_name=ID_CATALOGTOOL)
        linkchecker_ob.manage_addMetaType(METATYPE_NYURL)
        linkchecker_ob.manage_addProperty(METATYPE_NYURL, 'locator')
        for k, v in self.get_content_urls().items():
            linkchecker_ob.manage_addMetaType(k)
            for p in v:
                linkchecker_ob.manage_addProperty(k, p)

        # set default main topics
        self.getPropertiesTool().manageMainTopics(['convention', 'cooperation',
                                                   'network', 'information'])

        # create NaayaCalendar instance
        manage_addEventCalendar(
            self, id="portal_calendar", title='Calendar of Events',
            description='', day_len='2', start_day='Monday',
            catalog=self.getCatalogTool().id, REQUEST=None)
        calendar = self._getOb('portal_calendar')
        calendar.cal_meta_types = calendar.setCalMetaTypes('Naaya Event')
        # create index for Naaya Calendar
        extra = Extra_for_DateRangeIndex(since_field='start_date',
                                         until_field='end_date')
        self.getCatalogTool().manage_addIndex("resource_interval",
                                              'DateRangeIndex', extra=extra)

        # create and fill glossaries
        if 'coverage' in load_glossaries:
            self.add_glossary_coverage()
        if 'keywords' in load_glossaries:
            self.add_glossary_keywords()
        if 'chm_terms' in load_glossaries:
            self.add_chm_terms_glossary()

        # set glossary for pick lists
        self._p_changed = 1
        # add Forum instance
        addNyForum(self, id='portal_forum', title='CHM Forum', description='',
                   categories=['CHM', 'Biodiversity', 'Other'],
                   file_max_size=0, REQUEST=None)
        # add EC CHM to network portals list
        self.admin_addnetworkportal('EC CHM',
                                    'http://biodiversity-chm.eea.europa.eu/')

        # enable some notifications
        self['portal_notification'].config['enable_monthly'] = True

        portal_layout = self['portal_layout']
        if 'chm3' in portal_layout.objectIds():
            portal_layout['chm3']._setProperty('main_section_image_size',
                                               '978x75')
            portal_layout['chm3']._setProperty('slider_image_size', '978x240')
 def afterSetUp(self):
     self.login()
     portal = self.app.portal
     manage_addLinkChecker(portal, 'linkchecker', 'Link Checker')
Exemplo n.º 9
0
    def loadDefaultData(self, load_glossaries=[], skel_handler=None):
        """ """
        #set default 'Naaya' configuration
        NySite.__dict__['createPortalTools'](self)
        NySite.__dict__['loadDefaultData'](self)

        #remove Naaya default content
        layout_tool = self.getLayoutTool()
        naaya_skins = [
            skin.getId() for skin in layout_tool.objectValues('Naaya Skin')
        ]
        logos = [image.getId() for image in layout_tool.objectValues('Image')]
        layout_tool.manage_delObjects(naaya_skins + logos)

        #load site skeleton - configuration
        if skel_handler is not None:
            self._load_skel_from_handler(skel_handler)

        #set default PhotoFolder
        addNyPhotoGallery(self, id='PhotoGallery', title=TITLE_PHOTOARCHIVE)
        self._getOb('PhotoGallery').approveThis()

        #create and configure LinkChecker instance
        manage_addLinkChecker(self, ID_LINKCHECKER, TITLE_LINKCHECKER)
        linkchecker_ob = self._getOb(ID_LINKCHECKER)
        linkchecker_ob.manage_edit(proxy='',
                                   batch_size=10,
                                   catalog_name=ID_CATALOGTOOL)
        linkchecker_ob.manage_addMetaType(METATYPE_NYURL)
        linkchecker_ob.manage_addProperty(METATYPE_NYURL, 'locator')
        for k, v in self.get_content_urls().items():
            linkchecker_ob.manage_addMetaType(k)
            for p in v:
                linkchecker_ob.manage_addProperty(k, p)

        #set default main topics
        self.getPropertiesTool().manageMainTopics(
            ['convention', 'cooperation', 'network', 'information'])

        #create NaayaCalendar instance
        manage_addEventCalendar(self,
                                id="portal_calendar",
                                title='Calendar of Events',
                                description='',
                                day_len='2',
                                start_day='Monday',
                                catalog=self.getCatalogTool().id,
                                REQUEST=None)
        calendar = self._getOb('portal_calendar')
        calendar.cal_meta_types = calendar.setCalMetaTypes('Naaya Event')
        #create index for Naaya Calendar
        extra = Extra_for_DateRangeIndex(since_field='start_date',
                                         until_field='end_date')
        self.getCatalogTool().manage_addIndex("resource_interval",
                                              'DateRangeIndex',
                                              extra=extra)

        #create and fill glossaries
        if 'coverage' in load_glossaries:
            self.add_glossary_coverage()
        if 'keywords' in load_glossaries:
            self.add_glossary_keywords()
        if 'chm_terms' in load_glossaries:
            self.add_chm_terms_glossary()

        #set glossary for pick lists
        self._p_changed = 1
        #add Forum instance
        addNyForum(self,
                   id='portal_forum',
                   title='CHM Forum',
                   description='',
                   categories=['CHM', 'Biodiversity', 'Other'],
                   file_max_size=0,
                   REQUEST=None)
        #add EC CHM to network portals list
        self.admin_addnetworkportal('EC CHM',
                                    'http://biodiversity-chm.eea.europa.eu/')

        # enable some notifications
        self['portal_notification'].config['enable_monthly'] = True

        portal_layout = self['portal_layout']
        if 'chm3' in portal_layout.objectIds():
            portal_layout['chm3']._setProperty('main_section_image_size',
                                               '978x75')
            portal_layout['chm3']._setProperty('slider_image_size', '978x240')
Exemplo n.º 10
0
 def afterSetUp(self):
     self.login()
     portal = self.app.portal
     manage_addLinkChecker(portal, 'linkchecker', 'Link Checker')
Exemplo n.º 11
0
    def install_finish(self, REQUEST):
        """ """
        install_data = self.getSession(SESSION_INSTALL_DATA, self.getInstallData())
        if install_data['location'] == '': l_location = self.utGetROOT()
        else: l_location = self.unrestrictedTraverse(install_data['location'], self.utGetROOT())

        #create the portal with the default structure
        id = self.utCleanupId(install_data['id'])
        if not id: id = PREFIX_SITE + self.utGenRandomId(6)
        manage_addEnviroWindowsSite(l_location, id=id, title=install_data['site_title'])
        ob = l_location._getOb(id)

        #add user and role (admin)
        if install_data['username'] != '' and install_data['password'] != '':
            ob.getAuthenticationTool().manage_addUser(install_data['username'], install_data['password'], install_data['password'], ['Manager'], '', install_data['administrator_name'], install_data['administrator_name'], install_data['administrator_email'])
        try: REQUEST.SESSION.delete('site_errors')
        except: pass
        try: REQUEST.SESSION.delete('site_infos')
        except: pass

        #add and set defaut language
        properties_tool = ob.getPropertiesTool()
        for lang in install_data['languages']:
            properties_tool.manage_addLanguage(lang)
        #properties_tool.manage_changeDefaultLang(install_data['language'])

        #change portal metadata
        ob.admin_metadata(
            site_title=install_data['site_title'],
            site_subtitle=install_data['subtitle'],
            description=install_data['description'],
            publisher=install_data['publisher'],
            contributor=install_data['contributor'],
            creator=install_data['creator'],
            rights=install_data['rights'],
            )

        #change portal layout
        ob.admin_layout(
            theMasterList=install_data['skin'],
            theSlaveList=install_data['skin_style']
            )

        #change portal logo
        if install_data['site_logo'] != 'Nothing':
            image_ob = ob.getLayoutTool()._getOb('logo.gif')
            image_ob.update_data(data=install_data['site_logo'])
            image_ob._p_changed=1

        #administrator area
        ob.admin_email(mail_server_name=install_data['mail_server_name'],
                       mail_server_port=install_data['mail_server_port'],
                       administrator_email=install_data['administrator_email'],
                       notify_on_errors_email=install_data['notify_on_errors']
                       )
        ob.admin_properties(http_proxy=install_data['http_proxy'],
                            portal_url=install_data['portal_url']
                            )


        #latest uploads & news
        ob.portal_syndication.latestuploads_rdf.manageProperties(title='Latest uploads',
                                                                 description='Latest uploads',
                                                                 numberofitems=install_data['number_latest_uploads']
                                                                 )

        ob.portal_syndication.latestnews_rdf.manageProperties(title='Latest news',
                                                                 description='Latest news',
                                                                 numberofitems=install_data['number_announcements']
                                                                 )

        #additional products
        for l_product in self.getProductsStruct(install_data).keys():
            if l_product == 'Remote links checking':
                if flagNaayaLinkChecker == 1:
                    #product is present, add instance

                    manage_addLinkChecker(ob,
                        self.getKeyForProduct(install_data, l_product, 'id'),
                        self.getKeyForProduct(install_data, l_product, 'title')
                    )
                    linkchecker_metatype = ['Naaya URL', 'Naaya Folder', 'Naaya Document']

                    ob.portal_linkchecker.use_catalog = 1
                    ob.portal_linkchecker.catalog_name="portal_catalog"
                    ob.portal_linkchecker.batch_size = 20

                    #add default Linkchecker metatype
                    for meta in linkchecker_metatype:
                        ob.portal_linkchecker.manage_addMetaType(MetaType=meta)
                        if meta == 'Naaya URL':
                            ob.portal_linkchecker.manage_addProperty(MetaType=meta, Property='description')
                            ob.portal_linkchecker.manage_addProperty(MetaType=meta, Property='locator')

                        elif meta == 'Naaya Folder':
                            ob.portal_linkchecker.manage_addProperty(MetaType=meta, Property='description')

                        elif meta == 'Naaya Document':
                            ob.portal_linkchecker.manage_addProperty(MetaType=meta, Property='description')
                            ob.portal_linkchecker.manage_addProperty(MetaType=meta, Property='body')

            elif l_product == 'Discussion forum':
                if flagNaayaForum == 1:
                   #product is present, add instance
                    manage_addNyForum(ob,
                        self.getKeyForProduct(install_data, l_product, 'id'),
                        self.getKeyForProduct(install_data, l_product, 'title'),
                        self.getKeyForProduct(install_data, l_product, 'description')
                        )
                    current_per = ob.getAuthenticationTool().getPermission('Add comments')
                    current_per['permissions'].append('Add Naaya Forum Message')

                    ob.getAuthenticationTool().editPermission(name='Authenticated', permissions=current_per)

        # send emails to appliants: administrator and contact
        p_to = [install_data['administrator_email'], install_data['contact_email']]
        new_status = APPLICATION_STATUS_APPROVED
        p_from = self.unrestrictedTraverse(install_data['applications_url']).email_from
        #p_from = self.
        manuale = 'http://ew.eea.europa.eu/naaya/'
        p_subject = 'Your portal application on EnviroWindows has been approved'
        p_content = """
You have applied for an EnviroWindows-compliant portal hosted on the EnviroWindows servers.
The application has been approved and your portal has been created at:
%s

An account was created for you on this portal with management rights:
Username: %s
Password: %s

In order to get help on content contribution and portal administration, please consult:
%s

Regards,
EnviroWindows Team

****************************************************
IMPORTANT NOTICE: This is an automatic service.
Please do not reply to this message.
****************************************************
        """ % (ob.absolute_url(), install_data['username'], install_data['password'], manuale)
        self.unrestrictedTraverse(install_data['ewindows_portal_url']).getEmailTool().sendEmail(p_content, p_to, p_from, p_subject)

        DestinationURL = install_data['DestinationURL']
        self.delSession(SESSION_INSTALL_DATA)
        if DestinationURL == 'manage_main': return self.manage_main(self, REQUEST, update_menu=1)
        else: return REQUEST.RESPONSE.redirect('%s?action=finish' % DestinationURL)