def preparePage(self, query): # Set up memcacheid based on language memcacheid = "mainView_pageTree_%s" % self.lang pageTree = memcache.get(memcacheid) #@UndefinedVariable # If pageTree is not in memcache, build pageTree and store it in memcache if pageTree is None or self.pageRefresh: pageTree = UI.getPageTreeForMainView(self.lang, memcacheid) # Set currentPage to None as a precaution self.toTemplate.currentPage = None # Bind pageTree to view self.toTemplate.pageTree = pageTree #How to get pagecontainer items self.toTemplate.footerPageTree = UI.getFooterPageTree(self.lang)
def __init__(self, **kwargs): Pages.__init__(self, **kwargs) self.templateFile = 'newpage.html' self.permissionLevel = 1 self.isEdit = True self.toTemplate.templatesList = UI.getPageTemplates()
def renderPage(self, query): # If we are at root page in URL if self.path == '/' + self.lang + '/': self.toTemplate.currentPage = UI.getStartPage(self.lang, self.pageRefresh) # We need at least one page as startpage if self.toTemplate.currentPage is None: self.toTemplate.error = { 'code' : '500', 'message' : 'Missing startpage. Select a start page under tab "Page Settings"' } return False # Get page modules associated with startpage pageModule = PageModules.getByPageKeyAndLanguage(self.toTemplate.currentPage.key(), self.lang) else: # Get page modules associated with url path pageModule = PageModules.getByPath(self.path) # We need at least one pageModule to display any page if pageModule is None: self.toTemplate.error = { 'code' : '404', 'message' : 'Can\'t find request page' } return False else: # If no current page is set, set pageModules's page as currentpage if not self.toTemplate.currentPage: # TODO: Remove reference property since it causes an extra query. #self.toTemplate.currentPage = Pages.getByKeyForMainView(pageModule.pageKey.key()) self.toTemplate.currentPage = pageModule.pageKey # templateType is stored with entire class path, we only need the last name pageTemplateType = self.toTemplate.currentPage.templateType.split('.')[-1] # Set up memcacheid based on language memcacheid = "mainView_pageTemplate_%s" % self.path pageTemplate = memcache.get(memcacheid) # If pageTemplate is not in memcache if pageTemplate is None or self.pageRefresh: # Find pageTemplate class pageTemplateClass = getattr(PageTemplates, pageTemplateType, None) #invoke class and store it in memcache pageTemplate = pageTemplateClass(page = self.toTemplate.currentPage, query = query, language = self.lang) pageTemplate.postRender(self.lang, query) memcache.set(memcacheid, pageTemplate, Settings.memcacheTimeout) # Do stuff after saved to cache pageTemplate.postCache(self.lang, query) # Bind pageTemplate to view self.toTemplate.pageTemplate = pageTemplate self.templateFile = pageTemplate.templateFile self.toTemplate.pageType = pageTemplateType self.toTemplate.pageModule = self.toTemplate.pageTemplate.pageModules[self.lang] self.toTemplate.pageContent = self.toTemplate.pageTemplate.pageData[self.lang] self.toTemplate.language = self.lang
def __init__(self, **kwargs): View.__init__(self, **kwargs) self.templateFile = 'pages.html' self.permissionLevel = 1 self.isEdit = True self.toTemplate.pageTree = UI.getPageTreeForEditView() query = kwargs['query'] if query.getvalue('item_id'): self.toTemplate.itemId = str(query.getvalue('item_id')) self.currentPage = UI.Pages.getById(self.toTemplate.itemId) if self.currentPage: templateStr = self.currentPage.templateType.split('.')[-1] template = getattr(PageTemplates, templateStr) self.toTemplate.pageTemplate = template(page = self.currentPage) # Add modules for EditView self.toTemplate.pageTemplate.renderEditPage(query)
def __init__(self, **kwargs): View.__init__(self, **kwargs) self.templateFile = 'pages.html' self.permissionLevel = 1 self.isEdit = True self.toTemplate.pageTree = UI.getPageTreeForEditView() query = kwargs['query'] if query.getvalue('item_id'): self.toTemplate.itemId = str(query.getvalue('item_id')) self.currentPage = UI.Pages.getById(self.toTemplate.itemId) if self.currentPage: templateStr = self.currentPage.templateType.split('.')[-1] template = getattr(PageTemplates, templateStr) self.toTemplate.pageTemplate = template(page=self.currentPage) # Add modules for EditView self.toTemplate.pageTemplate.renderEditPage(query)
def test_get_page_templates_list(self): templatesList = UI.getPageTemplates() self.assertTrue(len(templatesList) > 0)
def renderPage(self, query): # If we are at root page in URL if self.path == '/' + self.lang + '/': self.toTemplate.currentPage = UI.getStartPage( self.lang, self.pageRefresh) # We need at least one page as startpage if self.toTemplate.currentPage is None: self.toTemplate.error = { 'code': '500', 'message': 'Missing startpage. Select a start page under tab "Page Settings"' } return False # Get page modules associated with startpage pageModule = PageModules.getByPageKeyAndLanguage( self.toTemplate.currentPage.key(), self.lang) else: # Get page modules associated with url path pageModule = PageModules.getByPath(self.path) # We need at least one pageModule to display any page if pageModule is None: self.toTemplate.error = { 'code': '404', 'message': 'Can\'t find request page' } return False else: # If no current page is set, set pageModules's page as currentpage if not self.toTemplate.currentPage: # TODO: Remove reference property since it causes an extra query. #self.toTemplate.currentPage = Pages.getByKeyForMainView(pageModule.pageKey.key()) self.toTemplate.currentPage = pageModule.pageKey # templateType is stored with entire class path, we only need the last name pageTemplateType = self.toTemplate.currentPage.templateType.split( '.')[-1] # Set up memcacheid based on language memcacheid = "mainView_pageTemplate_%s" % self.path pageTemplate = memcache.get(memcacheid) # If pageTemplate is not in memcache if pageTemplate is None or self.pageRefresh: # Find pageTemplate class pageTemplateClass = getattr(PageTemplates, pageTemplateType, None) #invoke class and store it in memcache pageTemplate = pageTemplateClass( page=self.toTemplate.currentPage, query=query, language=self.lang) pageTemplate.postRender(self.lang, query) memcache.set(memcacheid, pageTemplate, Settings.memcacheTimeout) # Do stuff after saved to cache pageTemplate.postCache(self.lang, query) # Bind pageTemplate to view self.toTemplate.pageTemplate = pageTemplate self.templateFile = pageTemplate.templateFile self.toTemplate.pageType = pageTemplateType self.toTemplate.pageModule = self.toTemplate.pageTemplate.pageModules[ self.lang] self.toTemplate.pageContent = self.toTemplate.pageTemplate.pageData[ self.lang] self.toTemplate.language = self.lang