view src/pages/blog_new/page_meta.py @ 980:bcacf970f970

core (pages redirection): inverted redirection + getSubPageURL: - page redirection now also work in other redirection meaning that if "/redirecting_url" => "/page_name/arg_1/arg_2" is used, a getURL(page_name, arg_1, arg_2) will return the redirecting_url. query_args are not handled yet by getURL. - page redirection dict now use path_args and query_args insteand of args and kwargs, which show the relation with URL. - new getSubPageURL return absolute URL to a subpage, which is more solid than relative URL and allows to use it in sub-hierarchy.
author Goffi <goffi@goffi.org>
date Tue, 14 Nov 2017 08:35:17 +0100
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)