web/formfields.py
changeset 4171 f1b9f0ed1253
parent 4170 c325c62cec8e
child 4181 c79135c217df
equal deleted inserted replaced
4170:c325c62cec8e 4171:f1b9f0ed1253
   788         return value
   788         return value
   789 
   789 
   790     def process_form_value(self, form):
   790     def process_form_value(self, form):
   791         """process posted form and return correctly typed value"""
   791         """process posted form and return correctly typed value"""
   792         widget = self.get_widget(form)
   792         widget = self.get_widget(form)
   793         value = widget.process_field_data(form, self)
   793         values = widget.process_field_data(form, self)
   794         if value is None:
   794         if values is None:
   795             return ()
   795             values = ()
   796         elif not isinstance(value, list):
   796         elif not isinstance(values, list):
   797             return (value,)
   797             values = (values,)
   798         return value
   798         eids = set()
       
   799         for eid in values:
       
   800             if not eid: # AutoCompletionWidget XXX deal with this in the widget
       
   801                 continue
       
   802             typed_eid = form.actual_eid(eid)
       
   803             if typed_eid is None:
       
   804                 form._cw.data['pendingfields'].append( (form, self) )
       
   805                 return None
       
   806             eids.add(typed_eid)
       
   807         return eids
       
   808 
   799 
   809 
   800 class CompoundField(Field):
   810 class CompoundField(Field):
   801     def __init__(self, fields, *args, **kwargs):
   811     def __init__(self, fields, *args, **kwargs):
   802         super(CompoundField, self).__init__(*args, **kwargs)
   812         super(CompoundField, self).__init__(*args, **kwargs)
   803         self.fields = fields
   813         self.fields = fields