web/views/schema.py
changeset 2381 caad2367d940
parent 2293 7ded2a1416e4
parent 2312 af4d8f75c5db
child 2387 ea1defea9636
equal deleted inserted replaced
2374:ea1a44e4ad62 2381:caad2367d940
     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