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) |