equal
deleted
inserted
replaced
5 :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr |
5 :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr |
6 :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses |
6 :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses |
7 """ |
7 """ |
8 __docformat__ = "restructuredtext en" |
8 __docformat__ = "restructuredtext en" |
9 |
9 |
10 from logilab.mtconverter import html_escape |
10 from itertools import cycle |
|
11 |
|
12 from logilab.mtconverter import xml_escape |
11 from yams import schema2dot as s2d |
13 from yams import schema2dot as s2d |
12 |
14 |
13 from cubicweb.selectors import implements, yes |
15 from cubicweb.selectors import implements, yes |
14 from cubicweb.schema import META_RELATIONS_TYPES, SCHEMA_TYPES |
16 from cubicweb.schema import META_RELATIONS_TYPES, SCHEMA_TYPES |
15 from cubicweb.schemaviewer import SchemaViewer |
17 from cubicweb.schemaviewer import SchemaViewer |
45 cache_max_age = 60*60*2 # stay in http cache for 2 hours by default |
47 cache_max_age = 60*60*2 # stay in http cache for 2 hours by default |
46 |
48 |
47 def render_entity_title(self, entity): |
49 def render_entity_title(self, entity): |
48 self.w(u'<h1><span class="etype">%s</span> %s</h1>' |
50 self.w(u'<h1><span class="etype">%s</span> %s</h1>' |
49 % (entity.dc_type().capitalize(), |
51 % (entity.dc_type().capitalize(), |
50 html_escape(entity.dc_long_title()))) |
52 xml_escape(entity.dc_long_title()))) |
51 |
53 |
52 |
54 |
53 # CWEType ###################################################################### |
55 # CWEType ###################################################################### |
54 |
56 |
55 class CWETypeOneLineView(baseviews.OneLineView): |
57 class CWETypeOneLineView(baseviews.OneLineView): |
121 |
123 |
122 def cell_call(self, row, col): |
124 def cell_call(self, row, col): |
123 entity = self.entity(row, col) |
125 entity = self.entity(row, col) |
124 url = entity.absolute_url(vid='schemagraph') |
126 url = entity.absolute_url(vid='schemagraph') |
125 self.w(u'<img src="%s" alt="%s"/>' % ( |
127 self.w(u'<img src="%s" alt="%s"/>' % ( |
126 html_escape(url), |
128 xml_escape(url), |
127 html_escape(self.req._('graphical schema for %s') % entity.name))) |
129 xml_escape(self.req._('graphical schema for %s') % entity.name))) |
128 |
130 |
129 class CWETypeSPermView(EntityView): |
131 class CWETypeSPermView(EntityView): |
130 id = 'cwetype-schema-permissions' |
132 id = 'cwetype-schema-permissions' |
131 __select__ = EntityView.__select__ & implements('CWEType') |
133 __select__ = EntityView.__select__ & implements('CWEType') |
132 |
134 |
159 |
161 |
160 def cell_call(self, row, col): |
162 def cell_call(self, row, col): |
161 entity = self.entity(row, col) |
163 entity = self.entity(row, col) |
162 if entity.reverse_state_of: |
164 if entity.reverse_state_of: |
163 self.w(u'<img src="%s" alt="%s"/>' % ( |
165 self.w(u'<img src="%s" alt="%s"/>' % ( |
164 html_escape(entity.absolute_url(vid='ewfgraph')), |
166 xml_escape(entity.absolute_url(vid='ewfgraph')), |
165 html_escape(self.req._('graphical workflow for %s') % entity.name))) |
167 xml_escape(self.req._('graphical workflow for %s') % entity.name))) |
166 else: |
168 else: |
167 self.w(u'<p>%s</p>' % _('There is no workflow defined for this entity.')) |
169 self.w(u'<p>%s</p>' % _('There is no workflow defined for this entity.')) |
168 |
170 |
169 # CWRType ###################################################################### |
171 # CWRType ###################################################################### |
170 |
172 |