src/pyams_content/shared/form/field.py
changeset 1336 c988a8a803a1
parent 1240 921ff38f1aae
child 1343 530cbb970243
equal deleted inserted replaced
1335:e090134614d2 1336:c988a8a803a1
    65 class FormFieldContainer(OrderedContainer):
    65 class FormFieldContainer(OrderedContainer):
    66     """Form fields container persistent class"""
    66     """Form fields container persistent class"""
    67 
    67 
    68     def get_fields(self):
    68     def get_fields(self):
    69         registry = get_global_registry()
    69         registry = get_global_registry()
    70         fields = []
       
    71         for field in self.values():
    70         for field in self.values():
    72             if field.visible:
    71             if field.visible:
    73                 factory = registry.queryUtility(IFormFieldFactory, name=field.field_type)
    72                 factory = registry.queryUtility(IFormFieldFactory, name=field.field_type)
    74                 if factory is not None:
    73                 if factory is not None:
    75                     fields.append(factory.get_schema_field(field))
    74                     yield factory.get_schema_field(field)
    76         return fields
    75 
       
    76     def find_fields(self, factory):
       
    77         for field in self.values():
       
    78             if field.field_type == factory:
       
    79                 yield field
    77 
    80 
    78 
    81 
    79 @adapter_config(context=IFormFieldContainerTarget, provides=IFormFieldContainer)
    82 @adapter_config(context=IFormFieldContainerTarget, provides=IFormFieldContainer)
    80 def form_field_container_factory(context):
    83 def form_field_container_factory(context):
    81     """Form fields container factory"""
    84     """Form fields container factory"""
   185     weight = 5
   188     weight = 5
   186 
   189 
   187     field_factory = Decimal
   190     field_factory = Decimal
   188 
   191 
   189 
   192 
       
   193 @utility_config(name='date', provides=IFormFieldFactory)
       
   194 class DateFieldFactory(BaseFormFieldFactory):
       
   195     """Date field factory"""
       
   196 
       
   197     label = _("Date")
       
   198     weight = 6
       
   199 
       
   200     field_factory = Date
       
   201 
       
   202 
       
   203 @utility_config(name='phone_number', provides=IFormFieldFactory)
       
   204 class PhoneNumberFieldFactory(BaseFormFieldFactory):
       
   205     """Phone number field factory"""
       
   206 
       
   207     label = _("Phone number")
       
   208     weight = 10
       
   209 
       
   210     field_factory = TextLine
       
   211 
       
   212 
   190 @utility_config(name='mail', provides=IFormFieldFactory)
   213 @utility_config(name='mail', provides=IFormFieldFactory)
   191 class MailFieldFactory(BaseFormFieldFactory):
   214 class MailFieldFactory(BaseFormFieldFactory):
   192     """Mail field factory"""
   215     """Mail field factory"""
   193 
   216 
   194     label = _("E-mail address")
   217     label = _("E-mail address")
   195     weight = 10
   218     weight = 15
   196 
   219 
   197     field_factory = MailAddressField
   220     field_factory = MailAddressField
   198 
   221 
   199 
   222 
   200 @utility_config(name='uri', provides=IFormFieldFactory)
   223 @utility_config(name='uri', provides=IFormFieldFactory)
   201 class URIFieldFactory(BaseFormFieldFactory):
   224 class URIFieldFactory(BaseFormFieldFactory):
   202     """URI field factory"""
   225     """URI field factory"""
   203 
   226 
   204     label = _("URI")
   227     label = _("URI")
   205     weight = 11
   228     weight = 20
   206 
   229 
   207     field_factory = URI
   230     field_factory = URI
   208 
       
   209 
       
   210 @utility_config(name='date', provides=IFormFieldFactory)
       
   211 class DateFieldFactory(BaseFormFieldFactory):
       
   212     """Date field factory"""
       
   213 
       
   214     label = _("Date")
       
   215     weight = 15
       
   216 
       
   217     field_factory = Date
       
   218 
   231 
   219 
   232 
   220 class ValuesFieldFactory(BaseFormFieldFactory):
   233 class ValuesFieldFactory(BaseFormFieldFactory):
   221     """Values-based field factory"""
   234     """Values-based field factory"""
   222 
   235 
   224 @utility_config(name='choice', provides=IFormFieldFactory)
   237 @utility_config(name='choice', provides=IFormFieldFactory)
   225 class ChoiceFieldFactory(ValuesFieldFactory):
   238 class ChoiceFieldFactory(ValuesFieldFactory):
   226     """Choice field factory"""
   239     """Choice field factory"""
   227 
   240 
   228     label = _("Choice")
   241     label = _("Choice")
   229     weight = 20
   242     weight = 30
   230 
   243 
   231     field_factory = Choice
   244     field_factory = Choice
   232 
   245 
   233     def get_schema_field(self, field):
   246     def get_schema_field(self, field):
   234         i18n = II18n(field)
   247         i18n = II18n(field)
   244 @utility_config(name='list', provides=IFormFieldFactory)
   257 @utility_config(name='list', provides=IFormFieldFactory)
   245 class ListFieldFactory(ValuesFieldFactory):
   258 class ListFieldFactory(ValuesFieldFactory):
   246     """List field factory"""
   259     """List field factory"""
   247 
   260 
   248     label = _("List")
   261     label = _("List")
   249     weight = 51
   262     weight = 40
   250 
   263 
   251     field_factory = List
   264     field_factory = List
   252 
   265 
   253     def get_schema_field(self, field):
   266     def get_schema_field(self, field):
   254         i18n = II18n(field)
   267         i18n = II18n(field)