Beispiel #1
0
 def __init__(self, model, **kwargs):
     BaseFieldSet.__init__(self, model, **kwargs)
     self.iface = model
     self.rebind(model)
     self._fields = OrderedDict()
     self._render_fields = OrderedDict()
     self._bound_pk = None
     for name, field in schema.getFieldsInOrder(self.iface):
         klass = field.__class__
         try:
             t = self._fields_mapping[klass]
         except KeyError:
             raise NotImplementedError('%s is not mapped to a type' % klass)
         else:
             self.append(Field(name=name, type=t))
             self._fields[name].label_text = field.title or name
             if field.description:
                 self._fields[name].set(instructions=field.description)
             if field.required:
                 self._fields[name].validators.append(validators.required)
             if klass is schema.Password:
                 self._fields[name].set(renderer=fields.PasswordFieldRenderer)
             if klass is schema.Text:
                 self._fields[name].set(renderer=fields.TextAreaFieldRenderer)
             if klass is schema.List:
                 value_type = self.iface[name].value_type
                 if isinstance(value_type, schema.Choice):
                     self._fields[name].set(options=value_type, multiple=True)
                 else:
                     self._fields[name].set(multiple=True)
             elif klass is schema.Choice:
                 self._fields[name].set(renderer=fields.SelectFieldRenderer,
                                        options=self.iface[name])
Beispiel #2
0
 def __init__(self, model, **kwargs):
     BaseFieldSet.__init__(self, model, **kwargs)
     if model is not None and isinstance(model, schema.Document):
         BaseFieldSet.rebind(self, model.__class__, data=kwargs.get('data', None))
         self.doc = model.__class__
         self.model = model
         self._bound_pk = fields._pk(model)
     else:
         BaseFieldSet.rebind(self, model, data=kwargs.get('data', None))
         self.doc = model
     values = self.doc._properties.values()
     values.sort(lambda a, b: cmp(a.creation_counter, b.creation_counter))
     for v in values:
         if getattr(v, 'name'):
             k = v.name
             sch = None
             if isinstance(v, schema.SchemaListProperty):
                 t = fatypes.List
                 sch = v._schema
             elif isinstance(v, schema.SchemaProperty):
                 t = fatypes.String
                 sch = v._schema
             else:
                 try:
                     t = getattr(fatypes, v.__class__.__name__.replace('Property',''))
                 except AttributeError:
                     raise NotImplementedError('%s is not mapped to a type for field %s (%s)' % (v.__class__, k, v.__class__.__name__))
             self.append(Field(name=k, type=t, schema=sch))
             if v.required:
                 self._fields[k].validators.append(validators.required)
Beispiel #3
0
 def __init__(self, model, **kwargs):
     BaseFieldSet.__init__(self, model, **kwargs)
     self.iface = model
     self.rebind(model)
     self._fields = OrderedDict()
     self._render_fields = OrderedDict()
     self._bound_pk = None
     for name, field in schema.getFieldsInOrder(self.iface):
         klass = field.__class__
         try:
             t = self._fields_mapping[klass]
         except KeyError:
             raise NotImplementedError('%s is not mapped to a type' % klass)
         else:
             self.append(Field(name=name, type=t))
             self._fields[name].label_text = field.title or name
             if field.description:
                 self._fields[name].set(instructions=field.description)
             if field.required:
                 self._fields[name].validators.append(validators.required)
             if klass is schema.Text:
                 self._fields[name].set(
                     renderer=fields.TextAreaFieldRenderer)
             if klass is schema.List:
                 value_type = self.iface[name].value_type
                 if isinstance(value_type, schema.Choice):
                     self._fields[name].set(options=value_type,
                                            multiple=True)
                 else:
                     self._fields[name].set(multiple=True)
             elif klass is schema.Choice:
                 self._fields[name].set(renderer=fields.SelectFieldRenderer,
                                        options=self.iface[name])
Beispiel #4
0
 def __init__(self, model, **kwargs):
     BaseFieldSet.__init__(self, model, **kwargs)
     if model is not None and isinstance(model, schema.Document):
         BaseFieldSet.rebind(self, model.__class__, data=kwargs.get('data', None))
         self.doc = model.__class__
         self.model = model
         self._bound_pk = fields._pk(model)
     else:
         BaseFieldSet.rebind(self, model, data=kwargs.get('data', None))
         self.doc = model
     values = self.doc._properties.values()
     values.sort(lambda a, b: cmp(a.creation_counter, b.creation_counter))
     for v in values:
         if getattr(v, 'name'):
             k = v.name
             sch = None
             if isinstance(v, schema.SchemaListProperty):
                 t = fatypes.List
                 sch = v._schema
             elif isinstance(v, schema.SchemaProperty):
                 t = fatypes.String
                 sch = v._schema
             else:
                 try:
                     t = getattr(fatypes, v.__class__.__name__.replace('Property',''))
                 except AttributeError:
                     raise NotImplementedError('%s is not mapped to a type for field %s (%s)' % (v.__class__, k, v.__class__.__name__))
             self.append(Field(name=k, type=t, schema=sch))
             if v.required:
                 self._fields[k].validators.append(validators.required)
Beispiel #5
0
 def __init__(self, model, **kwargs):
     BaseFieldSet.__init__(self, model, **kwargs)
     BaseFieldSet.rebind(self, model, data=kwargs.get('data', None))
     for k, v in model.__dict__.items():
         if not k.startswith('_'):
             descriptor = type(v)
             t = self._mapping.get(descriptor)
             if t:
                 self.append(Field(name=k, type=t))
Beispiel #6
0
 def __init__(self, model, **kwargs):
     BaseFieldSet.__init__(self, model, **kwargs)
     BaseFieldSet.rebind(self, model, data=kwargs.get("data", None))
     for k, v in model.__dict__.items():
         if not k.startswith("_"):
             descriptor = type(v)
             t = self._mapping.get(descriptor)
             if t:
                 self.append(Field(name=k, type=t))
Beispiel #7
0
    def __init__(self, cls, instances=[], session=None, data=None, request=None, prefix=None):
        if self.__sa__:
            from sqlalchemy.orm import class_mapper

            if not class_mapper(cls):
                raise Exception("Grid must be bound to an SA mapped class")
        FieldSet.__init__(self, model=cls, session=session, data=data, request=request, prefix=prefix)
        self.rows = instances
        self.readonly = False
        self._errors = {}
Beispiel #8
0
 def __init__(self,
              cls,
              instances=[],
              session=None,
              data=None,
              prefix=None):
     if self.__sa__:
         from sqlalchemy.orm import class_mapper
         if not class_mapper(cls):
             raise Exception('Grid must be bound to an SA mapped class')
     FieldSet.__init__(self,
                       model=cls,
                       session=session,
                       data=data,
                       prefix=prefix)
     self.rows = instances
     self.readonly = False
     self._errors = {}