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 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='')
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)
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_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)