Ejemplo n.º 1
0
    '''
    Simple container that displays a small bit of html output
    '''
    def __init__(self, template='pagelets/iframe.html', **kwargs):
        super(IFramePagelet, self).__init__(**kwargs)
        self._template = template

    def _get_context(self):
        context = super(IFramePagelet, self)._get_context()
        context['content'] = Markup("<iframe style='height: 100%; width: 100%; border: none;' src='"+self._data_model.starting_url+"'> </iframe>")
        return context

class BreadCrumbPaglet(BasePagelet):
    def __init__(self, template='pagelets/breadcrumbs.html', **kwargs):
        super(BasePagelet, self).__init__(**kwargs)
        self._template = template
        self._breadcrumbs = []
    
    def append(self, label, url):
        self._breadcrumbs.append((label, url))

    def _get_context(self):
        context = super(BasePagelet, self)._get_context()
        context['breadcrumbs'] = self._breadcrumbs
        return context
    
pagelet_mapper = ContentTypeMapper(BasePagelet)
pagelet_mapper.register('SimplePagelet', SimplePagelet)
pagelet_mapper.register('ApplicationPagelet', ApplicationPagelet)
pagelet_mapper.register('IFrame', IFramePagelet)
Ejemplo n.º 2
0
        if pagelet is not None:
            # TODO: Not sure what want to do when not found, maybe raise an exception? currently returns none.
            pagelet = children.get(pagelet)
        else:
            pagelet = children.itervalues().next()
        return pagelet
    
    def _build_children(self):
        '''
        Builds the children for the page. Cycles through the children in self.page instance and returns a dictionary
        in the structure {<pagelet.name>:<pagelet>, ...}
        '''
        _pagelets = SortedDict()
        from ampcms.models import Pagelet, AmpCmsSite
        site = AmpCmsSite.objects.get_by_request(self.request)
        if not site.private:
            loadable_pagelets = self._data_model.pagelets.active()
            if self.request.user.is_anonymous():
                loadable_pagelets = loadable_pagelets.filter(private=False)
            else:
                loadable_pagelets = loadable_pagelets.filter(Q(private=False) | Q(user=self.request.user) | Q(group__user=self.request.user))
        else:
            loadable_pagelets = Pagelet.objects.active_user_page_pagelets(self.request.user, self._data_model)
        for pagelet in loadable_pagelets:
            pagelet_class = pagelets.pagelet_mapper.get_item(pagelet.pagelet_class)
            _pagelets[pagelet.name] = pagelet_class(request=self.request, request_kwargs=self.request_kwargs, pagelet=pagelet)
        return _pagelets

page_mapper = ContentTypeMapper(BasePage)
page_mapper.register('PageletPage', PageletPage)