web/views/boxes.py
changeset 142 0425ee84cfa6
parent 125 979dbe0cade3
child 143 c4f11f70b75e
equal deleted inserted replaced
126:80c65c9f7c41 142:0425ee84cfa6
    15 """
    15 """
    16 __docformat__ = "restructuredtext en"
    16 __docformat__ = "restructuredtext en"
    17 
    17 
    18 from logilab.mtconverter import html_escape
    18 from logilab.mtconverter import html_escape
    19 
    19 
    20 from cubicweb.common.selectors import rset_selector, nfentity_selector, onelinerset_selector
    20 from cubicweb.common.selectors import (rset_selector, appobject_selectable)
    21 from cubicweb.web.htmlwidgets import BoxWidget, BoxMenu, BoxHtml, RawBoxItem
    21 from cubicweb.web.htmlwidgets import BoxWidget, BoxMenu, BoxHtml, RawBoxItem
    22 from cubicweb.web.box import BoxTemplate, ExtResourcesBoxTemplate
    22 from cubicweb.web.box import BoxTemplate, ExtResourcesBoxTemplate
    23 
    23 
    24 _ = unicode
    24 _ = unicode
    25 
    25 
   163 
   163 
   164 class PossibleViewsBox(BoxTemplate):
   164 class PossibleViewsBox(BoxTemplate):
   165     """display a box containing links to all possible views"""
   165     """display a box containing links to all possible views"""
   166     id = 'possible_views_box'
   166     id = 'possible_views_box'
   167     
   167     
   168     
       
   169     title = _('possible views')
   168     title = _('possible views')
   170     order = 10
   169     order = 10
   171     require_groups = ('users', 'managers')
   170     require_groups = ('users', 'managers')
   172     visible = False
   171     visible = False
   173 
   172 
   184             box.render(self.w)
   183             box.render(self.w)
   185 
   184 
   186 
   185 
   187 class RSSIconBox(ExtResourcesBoxTemplate):
   186 class RSSIconBox(ExtResourcesBoxTemplate):
   188     """just display the RSS icon on uniform result set"""
   187     """just display the RSS icon on uniform result set"""
   189     __selectors__ = ExtResourcesBoxTemplate.__selectors__ + (nfentity_selector,)
   188     __selectors__ = ExtResourcesBoxTemplate.__selectors__ + (appobject_selectable('components', 'rss_feed_url'),)
   190     
   189     
   191     id = 'rss'
   190     id = 'rss'
   192     order = 999
   191     order = 999
   193     need_resources = 'RSS_LOGO',
   192     need_resources = 'RSS_LOGO',
   194     visible = False
   193     visible = False
   195     
   194     
   196     def call(self, **kwargs):
   195     def call(self, **kwargs):
   197         url = html_escape(self.build_url(rql=self.limited_rql(), vid='rss'))
   196         urlgetter = self.vreg.select_component('rss_feed_url', self.req, self.rset)
       
   197         url = urlgetter.feed_url()
   198         rss = self.req.external_resource('RSS_LOGO')
   198         rss = self.req.external_resource('RSS_LOGO')
   199         self.w(u'<a href="%s"><img src="%s" border="0" /></a>\n' % (url, rss))
   199         self.w(u'<a href="%s"><img src="%s" border="0" /></a>\n' % (html_escape(url), rss))
   200 
   200 
   201 class EntityRSSIconBox(RSSIconBox):
   201 class EntityRSSIconBox(RSSIconBox):
   202     """just display the RSS icon on uniform result set for a single entity"""
   202     """just display the RSS icon on uniform result set for a single entity"""
   203     __selectors__ = RSSIconBox.__selectors__ + (onelinerset_selector,)
   203     __selectors__ = RSSIconBox.__selectors__ + (onelinerset_selector,)
   204 
   204