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:
parent
f647cd28f4
commit
24e4027153
|
@ -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('.')
|
||||
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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:
|
||||
|
|
14
wcs/users.py
14
wcs/users.py
|
@ -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)])
|
||||
|
||||
|
|
Loading…
Reference in New Issue