def init_resource(self, **kw): kw['website_is_open'] = 'extranet' # TODO allow to choose language at website creation default_language = 'en' # Initialize ikaaro website (Parent class) WebSite.init_resource(self, **kw) # Init bars Website_BarAware.init_resource(self, **kw) # Add a sitemap self.make_resource('sitemap.xml', self.sitemap_class) # Create Robots.txt self.make_resource('robots.txt', RobotsTxt) # Add an image folder self.make_resource('images', Folder) # Tags self.make_resource('tags', self.tagsfolder_class, language=default_language) # Add default news folder self.make_resource('news', self.newsfolder_class) # About self.make_resource('about-itws', AboutITWS, title={default_language: MSG(u'About ITWS').gettext()}) # Add link to news in menu theme = self.get_resource('theme') menu = theme.get_resource('menu/menu') menu.add_new_record({'path': '/news/', 'title': Property(MSG(u'News').gettext(), language='en')}) # Create a 'Welcome' html-content item in ws-data # Order this item in the contentbar path = get_abspath(self.first_contenbar) handler = ro_database.get_handler('%s.%s' % (path, default_language), XHTMLFile) ws_data = self.get_resource('ws-data') ws_data.make_resource('welcome', HTMLContent, title={default_language: MSG(u'Welcome').gettext()}, state='public', display_title=True, body=handler.to_str(), language=default_language) table = ws_data.get_resource('order-contentbar') table.add_new_record({'name': 'welcome'}) # Create a 'Welcome' html-content item in repository # Order this item in the sidebar path = get_abspath(self.first_sidebar) handler = ro_database.get_handler('%s.%s' % (path, default_language), XHTMLFile) repository = self.get_resource('repository') repository.make_resource('first-sidebar', HTMLContent, title={default_language: MSG(u'My first sidebar').gettext()}, state='public', display_title=True, body=handler.to_str(), language=default_language) table = ws_data.get_resource('order-sidebar') table.add_new_record({'name': 'first-sidebar'})
def get_document_types(self): types = WebSite.get_document_types(self) # News Folder can only be instanciated once if self.newsfolder_class: if self.get_news_folder(get_context()) is None: types.append(self.newsfolder_class) return types + [Section, RssFeeds]
def _get_resource(self, name): if name == 'ui': ui = UI(ui_path) ui.database = self.metadata.database return ui root = self.get_root() if name in ('users', 'users.metadata'): return self.parent._get_resource(name) if name in ('chapters', 'chapters.metadata'): return root._get_resource(name) if name in ('countries', 'countries.metadata'): return root._get_resource(name) if name in ('phoenix', 'phoenix.metadata'): return root._get_resource(name) if name in ('projects', 'cprojects.metadata'): return root._get_resource(name) return BaseWebSite._get_resource(self, name)
def update_20100701(self): # Fix website vhosts WebSite.update_20100430(self)
def get_skin(self, context): # TODO It's an interesting mechanism (add in ikaaro) if (context.get_query_value('is_admin_popup', type=Boolean) is True or getattr(context.view, 'is_popup', False)): return self.get_resource('/ui/admin-popup/') return WebSite.get_skin(self, context)
def get_catalog_values(self): return merge_dicts(WebSite.get_catalog_values(self), Website_BarAware.get_catalog_values(self))
def _get_catalog_values(self): values = BaseWebSite._get_catalog_values(self) values['vhosts'] = self.get_property('vhosts') return values