web/views/xbel.py
branchtls-sprint
changeset 1653 8b82227719f0
parent 824 a5e6acffde30
child 1977 606923dff11b
equal deleted inserted replaced
1652:ba0a6b4d04f7 1653:8b82227719f0
     9 
     9 
    10 from logilab.mtconverter import html_escape
    10 from logilab.mtconverter import html_escape
    11 
    11 
    12 from cubicweb.selectors import implements
    12 from cubicweb.selectors import implements
    13 from cubicweb.view import EntityView
    13 from cubicweb.view import EntityView
    14 from cubicweb.web.views.xmlrss import XmlView
    14 from cubicweb.web.views.xmlrss import XMLView
    15 
    15 
    16 
    16 
    17 class XbelView(XmlView):
    17 class XbelView(XMLView):
    18     id = 'xbel'
    18     id = 'xbel'
    19     title = _('xbel')
    19     title = _('xbel')
    20     templatable = False
    20     templatable = False
    21     content_type = 'text/xml' #application/xbel+xml 
    21     content_type = 'text/xml' #application/xbel+xml
    22     
    22 
    23     def cell_call(self, row, col):
    23     def cell_call(self, row, col):
    24         self.wview('xbelitem', self.rset, row=row, col=col)
    24         self.wview('xbelitem', self.rset, row=row, col=col)
    25         
    25 
    26     def call(self):
    26     def call(self):
    27         """display a list of entities by calling their <item_vid> view"""
    27         """display a list of entities by calling their <item_vid> view"""
    28         title = self.page_title()
    28         title = self.page_title()
    29         url = self.build_url(rql=self.req.form.get('rql', ''))
    29         url = self.build_url(rql=self.req.form.get('rql', ''))
    30         self.w(u'<?xml version="1.0" encoding="%s"?>\n' % self.req.encoding)
    30         self.w(u'<?xml version="1.0" encoding="%s"?>\n' % self.req.encoding)
    32         self.w(u'<xbel version="1.0">')
    32         self.w(u'<xbel version="1.0">')
    33         self.w(u'<title>%s</title>' % self.req._('bookmarks'))
    33         self.w(u'<title>%s</title>' % self.req._('bookmarks'))
    34         for i in xrange(self.rset.rowcount):
    34         for i in xrange(self.rset.rowcount):
    35             self.cell_call(i, 0)
    35             self.cell_call(i, 0)
    36         self.w(u"</xbel>")
    36         self.w(u"</xbel>")
    37     
    37 
    38 
    38 
    39 class XbelItemView(EntityView):
    39 class XbelItemView(EntityView):
    40     id = 'xbelitem'
    40     id = 'xbelitem'
    41 
    41 
    42     def cell_call(self, row, col):
    42     def cell_call(self, row, col):
    46         self.w(u'</bookmark>')
    46         self.w(u'</bookmark>')
    47 
    47 
    48     def url(self, entity):
    48     def url(self, entity):
    49         return entity.absolute_url()
    49         return entity.absolute_url()
    50 
    50 
    51         
    51 
    52 class XbelItemBookmarkView(XbelItemView):
    52 class XbelItemBookmarkView(XbelItemView):
    53     __select__ = implements('Bookmark')
    53     __select__ = implements('Bookmark')
    54 
    54 
    55     def url(self, entity):
    55     def url(self, entity):
    56         return entity.actual_url()
    56         return entity.actual_url()
    57         
    57