Beispiel #1
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)
Beispiel #2
0
    def loadDefaultData(self):
        """ """
        #set default 'Naaya' configuration
        NySite.__dict__['createPortalTools'](self)
        NySite.__dict__['loadDefaultData'](self)

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

        #custom indexes
        try:    self.getCatalogTool().manage_addIndex('resource_area', 'TextIndexNG2', extra={'default_encoding': 'utf-8', 'splitter_single_chars': 1})
        except: pass
        try:    self.getCatalogTool().manage_addIndex('resource_focus', 'TextIndexNG2', extra={'default_encoding': 'utf-8', 'splitter_single_chars': 1})
        except: pass
        try:    self.getCatalogTool().manage_addIndex('resource_area_exp', 'TextIndexNG2', extra={'default_encoding': 'utf-8', 'splitter_single_chars': 1})
        except: pass
        try:    self.getCatalogTool().manage_addIndex('resource_focus_exp', 'TextIndexNG2', extra={'default_encoding': 'utf-8', 'splitter_single_chars': 1})
        except: pass
        try:    self.getCatalogTool().manage_addIndex('resource_country', 'TextIndexNG2', extra={'default_encoding': 'utf-8', 'splitter_single_chars': 1})
        except: pass

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

        #set default 'Main topics'
        try:    self.getPropertiesTool().manageMainTopics(['fol120392', 'fol657555', 'fol112686', 'fol034934', 'test1'])
        except: pass

        #set portal index's right portlets
        self.getPortletsTool().set_right_portlets_locations('', ['portlet_rdfcalendar'])

        #default Forum instance
        manage_addNyForum(self, id=ID_FORUM, title=TITLE_FORUM)

        #default RDF Calendar settings
        manage_addRDFCalendar(self, id=ID_RDFCALENDAR, title=TITLE_RDFCALENDAR, week_day_len=1)
        #to be done after add
        #rdfcalendar_ob = self._getOb(ID_RDFCALENDAR)
        #manage_addRDFSummary(rdfcalendar_ob, 'events', 'Events',
        #                     'http://smap.ewindows.eu.org/events/index_rdf', '', 'no')
        #rdfcal_ob = self._getOb(ID_RDFCALENDAR)
        #rdfcal_ob._getOb('events').update()
        country_folder = self._getOb('fol112686')
        country_folder.manage_role('Authenticated', ['Naaya - Add Naaya Contact objects', 'Naaya - Add Naaya Event objects', 'Naaya - Add Naaya Document objects', 'Naaya - Add Naaya Extended File objects', 'Naaya - Add Naaya File objects', 'Naaya - Access administrative area', 'Naaya - Add Naaya Folder objects', 'Naaya - Add Naaya GeoPoint objects', 'Naaya - Add Naaya Media File objects', 'Naaya - Add Naaya News objects', 'Naaya - Add Naaya Pointer objects', 'Naaya - Add Naaya SMAP Expert objects', 'Naaya - Add Naaya SMAP Project objects'])

        #portal_map custom index
        custom_map_index = self.futRead(join(SMAP_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='')
Beispiel #3
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)
Beispiel #4
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,
        )
Beispiel #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)