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 |