possibility to define more than one field as user name field; so that first and

last name fields can be concatenated.
This commit is contained in:
Frédéric Péters 2007-06-04 16:42:09 +00:00
parent f647cd28f4
commit 24e4027153
5 changed files with 25 additions and 17 deletions

View File

@ -96,9 +96,14 @@ class UserFieldsDirectory(FieldsDirectory):
(x.id, x.label, x.id) for x in self.objectdef.fields]
form = Form(action = 'mapping', enctype='multipart/form-data')
form.add(SingleSelectWidget, 'field_name', title = _('Field for Name'),
value = users_cfg.get('field_name'),
options = options)
field_name_value = users_cfg.get('field_name')
if type(field_name_value) is str:
field_name_value = [field_name_value]
form.add(WidgetList, 'field_name', title = _('Field(s) for Name'),
element_type = SingleSelectWidget, value = field_name_value,
element_kwargs = {
'render_br': False,
'options': options})
form.add(SingleSelectWidget, 'field_email', title = _('Field for Email'),
value = users_cfg.get('field_email'),
options = options)
@ -108,7 +113,6 @@ class UserFieldsDirectory(FieldsDirectory):
def mapping(self):
form = self.mapping_form()
cfg_submit(form, 'users', ['field_name', 'field_email'])
print get_cfg('users', {})
return redirect('.')

View File

@ -64,11 +64,7 @@ class UserUI:
setattr(self.user, f, widget.parse())
if formdef:
data = formdef.get_data(form)
users_cfg = get_cfg('users', {})
if users_cfg.get('field_name'):
self.user.name = data.get(users_cfg.get('field_name'))
if users_cfg.get('field_email'):
self.user.email = data.get(users_cfg.get('field_email'))
self.user.set_attributes_from_formdata(data)
self.user.form_data = data
# user is stored first so it get an id; necessary for some ident

View File

@ -132,10 +132,7 @@ class MethodDirectory(Directory):
if formdef:
users_cfg = get_cfg('users', {})
data = formdef.get_data(form)
if users_cfg.get('field_name'):
user.name = data.get(users_cfg.get('field_name'))
if users_cfg.get('field_email'):
user.email = data.get(users_cfg.get('field_email'))
user.set_attributes_from_formdata(data)
user.form_data = data
if get_publisher().user_class.count() == 0:

View File

@ -384,10 +384,7 @@ class MethodDirectory(Directory):
user.name = username
if formdef:
data = formdef.get_data(form)
if users_cfg.get('field_name'):
user.name = data.get(users_cfg.get('field_name'))
if users_cfg.get('field_email'):
user.email = data.get(users_cfg.get('field_email'))
user.set_attributes_from_formdata(data)
user.form_data = data
if get_publisher().user_class.count() == 0:

View File

@ -3,6 +3,7 @@ import os
from quixote import get_publisher
from qommon.storage import StorableObject
from qommon import get_cfg
class User(StorableObject):
_names = 'users'
@ -55,3 +56,16 @@ class User(StorableObject):
return _('Unknown User')
display_name = property(get_display_name)
def set_attributes_from_formdata(self, formdata):
users_cfg = get_cfg('users', {})
field_email = users_cfg.get('field_email')
if field_email:
self.email = formdata.get(field_email)
field_name_values = users_cfg.get('field_name')
if type(field_name_values) is str: # it was a string in previous versions
field_name_values = [field_name_values]
if field_name_values:
self.name = ' '.join([formdata.get(x) for x in field_name_values if formdata.get(x)])