Remove custom Field class, add more validation to fields

This commit is contained in:
Benjamin Dauvergne 2010-06-10 13:07:30 +02:00
parent 858be22d56
commit 220d044522
1 changed files with 15 additions and 26 deletions

View File

@ -1,31 +1,13 @@
import authentic.identities as auth_id
from authentic.identities import Field
import qommon.form as form
class Field:
def __init__(self, key, title, on_register = True,
widget_class = 'StringWidget', read_only = False, **keywords):
self.key = key
self.title = title
self.widget_class = getattr(form, widget_class)
self.on_register = on_register
self.keywords = keywords
self.read_only = read_only
def add_to_form(self, form, value = None, admin = False):
keywords = dict(self.keywords)
if value:
keywords['value'] = value
if not self.read_only or admin:
form.add(self.widget_class, self.key, title = _(self.title),
**keywords)
return form.get_widget(self.key)
auth_id.fields = [
Field('sn', N_('Nom'), required = True),
Field('givenName', N_('Prenom'), required = True),
Field('sn', N_('Nom'), required = True, admin_required = True),
Field('givenName', N_('Prenom'), required = True, admin_required = True),
Field('street', N_('Adresse'), required = True),
Field('postalCode', N_('Code postal'), widget_class = 'ValidatedStringWidget',
regex = r'[0-9]{5}', required = True),
regex = r'[0-9]{5}', required = True, hint = _('Ce champ doit contenir cinq chiffres')),
Field('l', N_('Ville pro'), required = True),
Field('email', N_('Adresse email'), required=True, ldap_field = 'mail'),
Field('personalTitle', N_('Personal Title'),
@ -35,18 +17,25 @@ auth_id.fields = [
('M.', N_('Monsieur'), '1'),
('Mme', N_('Madame'), '2'),
('Mlle', N_('Mademoiselle'), '3')]),
Field('mobile', N_('Telephone mobile'), on_register = False),
Field('mobile', N_('Telephone mobile'),
hint = _('Ce champ ne doit contenir que des chiffres, des points ou des espaces.'),
widget_class = 'ValidatedStringWidget',
regex = r'^ *(|[0-9][0-9. ]*) *$', on_register = False),
Field('dateOfBirth', N_('Date de naissance'), on_register = False, widget_class = 'DateWidget'),
# Field('placeOfBirth', N_('Lieu de naissance')),
Field('st', N_('Region pro'), on_register = False),
Field('department', N_('Departement pro'), on_register = False),
Field('telephoneNumber', N_('Telephone pro'), on_register = False),
Field('telephoneNumber', N_('Telephone pro'),
hint = _('Ce champ ne doit contenir que des chiffres, des points ou des espaces.'),
widget_class = 'ValidatedStringWidget',
regex = r'^ *(|[0-9][0-9. ]*) *$', on_register = False),
Field('homeStreetAddress', N_('Adresse perso'), on_register = False),
Field('homePostalCode', N_('Code postal perso'), widget_class = 'ValidatedStringWidget',
regex = r'[0-9]{5}', on_register = False),
regex = r'[0-9]{5}', on_register = False, hint = _('Ce champ doit contenir cinq chiffres')),
Field('homeLocalityName', N_('Ville perso'), on_register = False),
Field('homeStateOrProvinceName', N_('Region perso'), on_register = False),
Field('homeDepartment', N_('Departement perso'), on_register = False),
Field('homeDepartment', N_('Departement perso'),
on_register = False),
Field('homePhone', N_('Telephone perso'), on_register = False),
Field('userClass', N_('Classe d\'utilisateur'), read_only = True, value = 'GRAND.PUBLIC',
required = True, size = 4, widget_class = 'SingleSelectWidget',