web/formfields.py
changeset 6142 8bc6eac1fac1
parent 6139 f76599a96238
child 6225 a176e68b7d0d
equal deleted inserted replaced
6141:b8287e54b528 6142:8bc6eac1fac1
   331         """Return the correctly typed value for this field in the form context.
   331         """Return the correctly typed value for this field in the form context.
   332         """
   332         """
   333         if self.eidparam and self.role is not None:
   333         if self.eidparam and self.role is not None:
   334             entity = form.edited_entity
   334             entity = form.edited_entity
   335             if form._cw.vreg.schema.rschema(self.name).final:
   335             if form._cw.vreg.schema.rschema(self.name).final:
   336                 if entity.has_eid() or self.name in entity:
   336                 if entity.has_eid() or self.name in entity.cw_attr_cache:
   337                     value = getattr(entity, self.name)
   337                     value = getattr(entity, self.name)
   338                     if value is not None or not self.fallback_on_none_attribute:
   338                     if value is not None or not self.fallback_on_none_attribute:
   339                         return value
   339                         return value
   340             elif entity.has_eid() or entity.cw_relation_cached(self.name, self.role):
   340             elif entity.has_eid() or entity.cw_relation_cached(self.name, self.role):
   341                 value = [r[0] for r in entity.related(self.name, self.role)]
   341                 value = [r[0] for r in entity.related(self.name, self.role)]
   426     def format(self, form):
   426     def format(self, form):
   427         """return MIME type used for the given (text or bytes) field"""
   427         """return MIME type used for the given (text or bytes) field"""
   428         if self.eidparam and self.role == 'subject':
   428         if self.eidparam and self.role == 'subject':
   429             entity = form.edited_entity
   429             entity = form.edited_entity
   430             if entity.e_schema.has_metadata(self.name, 'format') and (
   430             if entity.e_schema.has_metadata(self.name, 'format') and (
   431                 entity.has_eid() or '%s_format' % self.name in entity):
   431                 entity.has_eid() or '%s_format' % self.name in entity.cw_attr_cache):
   432                 return form.edited_entity.cw_attr_metadata(self.name, 'format')
   432                 return form.edited_entity.cw_attr_metadata(self.name, 'format')
   433         return form._cw.property_value('ui.default-text-format')
   433         return form._cw.property_value('ui.default-text-format')
   434 
   434 
   435     def encoding(self, form):
   435     def encoding(self, form):
   436         """return encoding used for the given (text) field"""
   436         """return encoding used for the given (text) field"""