settings: add search result template to minimal user templates page (#52665)

This commit is contained in:
Frédéric Péters 2021-04-02 11:25:15 +02:00
parent f3eb47d6f3
commit 3a427853a3
2 changed files with 16 additions and 8 deletions

View File

@ -433,13 +433,15 @@ def test_settings_user(pub):
pub.site_options.write(fd)
resp = app.get('/backoffice/settings/')
resp = resp.click('Users', href='user-template')
resp = resp.click('Users', href='user-templates')
resp.forms['template']['sidebar_template'] = '{% if True %}'
resp = resp.forms['template'].submit()
assert 'syntax error in Django template' in resp
resp.forms['template']['sidebar_template'] = 'hello {{ form_user_display_name }}'
resp.forms['template']['search_result_template'] = '{{ form_user_display_name }}'
resp = resp.forms['template'].submit()
assert pub.cfg['users']['sidebar_template'] == 'hello {{ form_user_display_name }}'
assert pub.cfg['users']['search_result_template'] == '{{ form_user_display_name }}'
# restore config
pub.cfg['users']['field_email'] = None

View File

@ -507,7 +507,7 @@ class SettingsDirectory(QommonSettingsDirectory):
'geolocation',
'theme_preview',
'filetypes',
('user-template', 'user_template'),
('user-templates', 'user_templates'),
('data-sources', 'data_sources'),
'wscalls',
'logs',
@ -659,9 +659,9 @@ class SettingsDirectory(QommonSettingsDirectory):
r += htmltext('<dt><a href="users/">%s</a></dt> <dd>%s</dd>') % (_('Users'), _('Configure users'))
else:
# minimal options
r += htmltext('<dt><a href="user-template">%s</a></dt> <dd>%s</dd>') % (
r += htmltext('<dt><a href="user-templates">%s</a></dt> <dd>%s</dd>') % (
_('Users'),
_('Configure sidebar template for users'),
_('Configure templates for users'),
)
if enabled('emails'):
r += htmltext('<dt><a href="emails/">%s</a></dt> <dd>%s</dd>') % (
@ -1374,19 +1374,25 @@ class SettingsDirectory(QommonSettingsDirectory):
r += form.render()
return r.getvalue()
def user_template(self):
form = UserFieldsDirectory.sidebar_template_form(action='user-template')
def user_templates(self):
form = UserFieldsDirectory.sidebar_template_form(action='user-templates')
form.get_widget('sidebar_template').set_title(_('Sidebar Template'))
form.add_submit('cancel', _('Cancel'))
form2 = UserFieldsDirectory.search_result_template_form(action='user-templates')
widget = form2.get_widget('search_result_template')
widget.set_title(_('Search Result Template'))
form.widgets.append(widget)
form._names['search_result_template'] = widget
if form.get_widget('cancel').parse():
return redirect('.')
if form.is_submitted() and not form.has_errors():
cfg_submit(form, 'users', ['sidebar_template'])
cfg_submit(form, 'users', ['sidebar_template', 'search_result_template'])
return redirect('.')
get_response().breadcrumb.append(('user-template', _('Users')))
get_response().breadcrumb.append(('user-templates', _('Users')))
html_top('settings', title=_('Users'))
r = TemplateIO(html=True)
r += htmltext('<h2>%s</h2>') % _('Users')