コード例 #1
0
 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))
コード例 #2
0
 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))
コード例 #3
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
コード例 #4
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