def postRender(self, language, query): galleryPages = Pages.getPagesByStringKey(str(self.pageKey)) self.childGalleryPages = [] for page in galleryPages: pageModule = PageModules.getByPageKeyAndLanguage(page.key(), language) contentModule = ContentModules.getByNameAndPageModuleKey('AlbumThumbnail', pageModule.key()) image = ImageStore.getImageWithDescription(contentModule.content, language) self.childGalleryPages.append(dict(name = pageModule.name, path = pageModule.path, image = image))
def postRender(self, language, query): galleryPages = Pages.getPagesByStringKey(str(self.pageKey)) self.childGalleryPages = [] for page in galleryPages: pageModule = PageModules.getByPageKeyAndLanguage( page.key(), language) contentModule = ContentModules.getByNameAndPageModuleKey( 'AlbumThumbnail', pageModule.key()) image = ImageStore.getImageWithDescription(contentModule.content, language) self.childGalleryPages.append( dict(name=pageModule.name, path=pageModule.path, image=image))
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 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