entity.py
changeset 2381 caad2367d940
parent 2144 51c84d585456
parent 2320 17dc9661af57
child 2421 08d42928fe36
equal deleted inserted replaced
2374:ea1a44e4ad62 2381:caad2367d940
    11 
    11 
    12 from logilab.common import interface
    12 from logilab.common import interface
    13 from logilab.common.compat import all
    13 from logilab.common.compat import all
    14 from logilab.common.decorators import cached
    14 from logilab.common.decorators import cached
    15 from logilab.common.deprecation import obsolete
    15 from logilab.common.deprecation import obsolete
    16 from logilab.mtconverter import TransformData, TransformError, html_escape
    16 from logilab.mtconverter import TransformData, TransformError, xml_escape
    17 
    17 
    18 from rql.utils import rqlvar_maker
    18 from rql.utils import rqlvar_maker
    19 
    19 
    20 from cubicweb import Unauthorized
    20 from cubicweb import Unauthorized
    21 from cubicweb.rset import ResultSet
    21 from cubicweb.rset import ResultSet
   461                 return self.mtc_transform(value.getvalue(), attrformat, format,
   461                 return self.mtc_transform(value.getvalue(), attrformat, format,
   462                                           encoding)
   462                                           encoding)
   463             return u''
   463             return u''
   464         value = printable_value(self.req, attrtype, value, props, displaytime)
   464         value = printable_value(self.req, attrtype, value, props, displaytime)
   465         if format == 'text/html':
   465         if format == 'text/html':
   466             value = html_escape(value)
   466             value = xml_escape(value)
   467         return value
   467         return value
   468 
   468 
   469     def mtc_transform(self, data, format, target_format, encoding,
   469     def mtc_transform(self, data, format, target_format, encoding,
   470                       _engine=ENGINE):
   470                       _engine=ENGINE):
   471         trdata = TransformData(data, format, encoding, appobject=self)
   471         trdata = TransformData(data, format, encoding, appobject=self)
   664                 except IndexError:
   664                 except IndexError:
   665                     # probably a multisource error
   665                     # probably a multisource error
   666                     self.critical("can't get value for attribute %s of entity with eid %s",
   666                     self.critical("can't get value for attribute %s of entity with eid %s",
   667                                   name, self.eid)
   667                                   name, self.eid)
   668                     if self.e_schema.destination(name) == 'String':
   668                     if self.e_schema.destination(name) == 'String':
       
   669                         # XXX (syt) imo emtpy string is better
   669                         self[name] = value = self.req._('unaccessible')
   670                         self[name] = value = self.req._('unaccessible')
   670                     else:
   671                     else:
   671                         self[name] = value = None
   672                         self[name] = value = None
   672         return value
   673         return value
   673 
   674