web/views/idownloadable.py
branchtls-sprint
changeset 1554 3a3263df6cdd
parent 1498 2c6eec0b46b9
child 1639 375c857aa0f5
equal deleted inserted replaced
1553:3f91ef2397d0 1554:3a3263df6cdd
    92         entity = self.entity(row, col)
    92         entity = self.entity(row, col)
    93         url = html_escape(entity.download_url())
    93         url = html_escape(entity.download_url())
    94         self.w(u'<a href="%s">%s</a>' % (url, html_escape(title or entity.dc_title())))
    94         self.w(u'<a href="%s">%s</a>' % (url, html_escape(title or entity.dc_title())))
    95 
    95 
    96 
    96 
    97 
       
    98 class IDownloadablePrimaryView(baseviews.PrimaryView):
    97 class IDownloadablePrimaryView(baseviews.PrimaryView):
    99     __select__ = implements(IDownloadable)
    98     __select__ = implements(IDownloadable)
   100     # XXX File/Image attributes but this is not specified in the IDownloadable interface
       
   101     skip_attrs = baseviews.PrimaryView.skip_attrs + ('data', 'name')
       
   102 
    99 
   103     def render_entity_title(self, entity):
   100     def render_entity_attributes(self, entity):
   104         self.w(u'<h1>%s %s</h1>'
   101         super(IDownloadablePrimaryView, self).render_entity_attributes(entity)
   105                % (entity.dc_type().capitalize(),
       
   106                   html_escape(entity.dc_title())))
       
   107 
       
   108     def render_entity_attributes(self, entity, siderelations):
       
   109         super(IDownloadablePrimaryView, self).render_entity_attributes(entity, siderelations)
       
   110         self.w(u'<div class="content">')
   102         self.w(u'<div class="content">')
   111         contenttype = entity.download_content_type()
   103         contenttype = entity.download_content_type()
   112         if contenttype.startswith('image/'):
   104         if contenttype.startswith('image/'):
   113             self.wview('image', entity.rset, row=entity.row)
   105             self.wview('image', entity.rset, row=entity.row)
   114         else:
   106         else:
   120                 pass
   112                 pass
   121             except Exception, ex:
   113             except Exception, ex:
   122                 msg = self.req._("can't display data, unexpected error: %s") % ex
   114                 msg = self.req._("can't display data, unexpected error: %s") % ex
   123                 self.w('<div class="error">%s</div>' % msg)
   115                 self.w('<div class="error">%s</div>' % msg)
   124         self.w(u'</div>')
   116         self.w(u'</div>')
   125 
       
   126     def is_side_related(self, rschema, eschema):
       
   127         """display all relations as side related"""
       
   128         return True
       
   129 
   117 
   130 
   118 
   131 class IDownloadableLineView(baseviews.OneLineView):
   119 class IDownloadableLineView(baseviews.OneLineView):
   132     __select__ = implements(IDownloadable)
   120     __select__ = implements(IDownloadable)
   133 
   121