Mercurial > libervia-web
view src/pages/blog_new/page_meta.py @ 960:e59edcae4c18
pages(session): added method to handle reload resistant page specific data:
Liberiva Page can now register session data specific to a page using ISatSession methods (see docstrings for details). Those data can resist a page reload, are specific to a session and a page.
author | Goffi <goffi@goffi.org> |
---|---|
date | Fri, 27 Oct 2017 18:31:42 +0200 |
parents | 96a56856d357 |
children | d042f194624a |
line wrap: on
line source
#!/usr/bin/env python2.7 # -*- coding: utf-8 -*- from libervia.server.constants import Const as C from twisted.internet import defer from twisted.words.protocols.jabber import jid from sat.tools.common import data_objects access = C.PAGES_ACCESS_PUBLIC # can be a callable template = u"blog/articles.html" @defer.inlineCallbacks def parse_url(self, request): try: prof_requested = self.nextPath(request) except IndexError: self.pageError(request) template_data = request.template_data target_profile = yield self.host.bridge.profileNameGet(prof_requested) template_data[u'target_profile'] = target_profile target_jid = yield self.host.bridge.asyncGetParamA('JabberID', 'Connection', 'value', profile_key=target_profile) target_jid = jid.JID(target_jid).userhost() template_data[u'target_jid'] = target_jid @defer.inlineCallbacks def prepare_render(self, request): target_jid = request.template_data[u'target_jid'] blog_data = yield self.host.bridge.mbGet( target_jid, "", 10, [], {}, C.SERVICE_PROFILE) request.template_data[u'items'] = data_objects.BlogItems(blog_data)