Beispiel #1
0
 def resolve_value(self, value):
     if value:
         for history_row in value:
             history_row.value = resolve_object(history_row.value)
     if value is None:
         return fredtypes.Null()
     return value
Beispiel #2
0
 def _set_value(self, value):
     if self.access:
         self._value = self.resolve_value(value)
         self.make_content()
     else:
         self._value = fredtypes.Null()  #None
         self.make_content_no_access()
Beispiel #3
0
 def __setattr__(self, name, value):
     if name == 'content':
         if value == None or value == fredtypes.Null():
             super(WebWidget, self).__setattr__('content', [])
         else:
             super(WebWidget, self).__setattr__('content', list(value))
     elif name in self.tattr_list:
         self.tattr[name] = value
     else:
         super(WebWidget, self).__setattr__(name, value)
Beispiel #4
0
 def render_tattr(self):
     '''Returns space-separated list of widget's tag attributes'''
     rstr = ''
     for key, val in self.tattr.items():
         if val is not None and val != fredtypes.Null():
             val = escape(unicode(val), quote=True)
             if key in self.attr_translation.keys():
                 rstr += u' %s="%s"' % (self.attr_translation[key], val)
             else:
                 rstr += u' %s="%s"' % (key, val)
     return rstr
Beispiel #5
0
 def resolve_value(self, value):
     if value:
         for history_row in value:
             if isinstance(history_row.value, CORBA.Any):
                 object_list = from_any(history_row.value, True)
             else:  # this HistoryRecordList was transformed before (we got here after cache hit), so skip tranformation
                 break
             new_obj_list = []
             for obj in object_list:
                 new_obj_list.append(resolve_object(obj))
             history_row.value = new_obj_list
     if value is None:
         return fredtypes.Null()
     return value
Beispiel #6
0
    def __init__(self, name='', label=None, nperm=None, *content, **kwd):
        super(DField, self).__init__(*content, **kwd)
        self.tag = ''
        self.name = name
        self.label = label
        self._nperm = nperm
        self.owner_form = None
        self._value = fredtypes.Null()  #None
        self.access = True  # if user have nperm for this field, then this will be set to False in Detail.build_fields()
        self.no_access_content = div(attr(cssc='no_access'), _('CENSORED'))

        # Increase the creation counter, and save our local copy.
        self.creation_counter = DField.creation_counter
        DField.creation_counter += 1
Beispiel #7
0
 def _has_changed(self, initial, data):
     """ Returns True if data differs from initial.
     """
     # For purposes of seeing whether something has changed, None is
     # the same as an empty string, if the data or inital value we get
     # is None, replace it w/ u''.
     if data is None:
         data_value = u''
     else:
         data_value = data
     if initial is None or initial == fredtypes.Null():
         initial_value = u''
     else:
         initial_value = initial
     if unicode(initial_value).strip() != unicode(data_value).strip():
         return True
     return False
Beispiel #8
0
    def value_from_data(self, data):
        value = data.get(self.name)

        if value:
            if self.owner_detail.history and len(
                    value) > 1 and not self.owner_detail.is_nested:
                self.displaying_history = True
                self.history_field.owner_detail = self.owner_detail
                self._assign_current_field(self.history_field)
                return value
            else:
                self.normal_field.owner_detail = self.owner_detail
                self._assign_current_field(self.normal_field)
                return recoder.c2u(from_any(value[0].value, True))
        else:
            self.normal_field.owner_detail = self.owner_detail
            self._assign_current_field(self.normal_field)
            return fredtypes.Null()
Beispiel #9
0
 def resolve_value(self, value):
     if value != fredtypes.Null():
         value = _(value._n)
     value = super(CorbaEnumDField, self).resolve_value(value)
     return value
Beispiel #10
0
 def value_from_data(self, data):
     if data.get(self.name) is None:
         return fredtypes.Null()
     else:
         return data.get(self.name)
Beispiel #11
0
 def _get_value(self):
     if self.current_field:
         return self.current_field._value
     else:
         return fredtypes.Null()
Beispiel #12
0
 def resolve_value(self, value):
     if value is None:
         return fredtypes.Null()
     else:
         return value
Beispiel #13
0
 def make_content(self):
     self.content = []
     if self._value == '' or self._value == fredtypes.Null():
         self.add(div(attr(cssc='field_empty')))
     else:
         self.add(self._value)
Beispiel #14
0
 def resolve_value(self, value):
     if value != fredtypes.Null():
         value = unicode(value)
     return value
Beispiel #15
0
 def resolve_value(self, value):
     if value != fredtypes.Null():
         value = editforms.payment_map[value]
     return value
Beispiel #16
0
 def _set_value(self, value):
     if self.access:
         self._value = self.resolve_value(value)
     else:
         self._value = fredtypes.Null()  # None
Beispiel #17
0
 def resolve_value(self, value):
     if value != fredtypes.Null():
         return value  #recoder.corba_to_date(value)
     else:
         return fredtypes.NullDate()