backoffice: reorder elements in tracking code/draft options dialog (#69523) #818

Merged
fpeters merged 1 commits from wip/69523-tracking-code-and-draft-dialog into main 2023-11-10 08:57:59 +01:00
3 changed files with 40 additions and 28 deletions

View File

@ -258,21 +258,21 @@ def test_forms_edit_tracking_code(pub, formdef):
resp = app.get('/backoffice/forms/1/')
# Tracking code
assert_option_display(resp, 'Tracking Code', 'Disabled')
resp = resp.click('Tracking Code')
assert_option_display(resp, 'Form Tracking', 'Disabled')
resp = resp.click('Form Tracking')
assert resp.forms[0]['enable_tracking_codes'].checked is False
resp.forms[0]['enable_tracking_codes'].checked = True
resp = resp.forms[0].submit()
assert resp.location == 'http://example.net/backoffice/forms/1/'
resp = resp.follow()
assert_option_display(resp, 'Tracking Code', 'Enabled')
assert_option_display(resp, 'Form Tracking', 'Enabled')
assert FormDef.get(1).enable_tracking_codes is True
resp = resp.click('Tracking Code')
resp = resp.click('Form Tracking')
assert resp.forms[0]['drafts_lifespan'].value == ''
resp = resp.forms[0].submit().follow() # check empty value is ok
resp = resp.click('Tracking Code')
resp = resp.click('Form Tracking')
resp.forms[0]['drafts_lifespan'].value = 'xxx'
resp = resp.forms[0].submit()
assert 'Lifespan must be between 2 and 100 days.' in resp
@ -289,7 +289,7 @@ def test_forms_edit_tracking_code(pub, formdef):
fields.ItemField(id='3', label='CannotVerify'),
]
formdef.store()
resp = resp.click('Tracking Code')
resp = resp.click('Form Tracking')
assert '<option value="1">VerifyString</option>' in resp
assert '<option value="2">VerifyDate</option>' in resp
assert 'CannotVerify' not in resp

View File

@ -271,27 +271,8 @@ class OptionsDirectory(Directory):
def tracking_code(self):
form = Form(enctype='multipart/form-data')
form.add(
CheckboxWidget,
'enable_tracking_codes',
title=_('Enable support for tracking codes'),
value=self.formdef.enable_tracking_codes,
)
verify_fields = [(None, '---', None)]
for field in self.formdef.fields:
if field.key in ('string', 'date', 'email', 'computed'):
verify_fields.append((field.id, field.label, field.id))
form.add(
WidgetList,
'tracking_code_verify_fields',
title=_('Fields to check after entering the tracking code'),
element_type=SingleSelectWidget,
value=self.formdef.tracking_code_verify_fields,
add_element_label=_('Add verification Field'),
element_kwargs={'render_br': False, 'options': verify_fields},
hint=_('Only text, date, email and computed fields can be used.'),
)
form.widgets.append(HtmlWidget(htmltext('<h3>%s</h3>') % _('Draft')))
Review

Ajout d'intertitre.

Ajout d'intertitre.
widget = form.add(
WcsExtraStringWidget,
'drafts_lifespan',
@ -309,7 +290,34 @@ class OptionsDirectory(Directory):
widget.validation_function = check_lifespan
widget.validation_function_error_message = _('Lifespan must be between 2 and 100 days.')
return self.handle(form, _('Tracking Code'))
form.widgets.append(HtmlWidget(htmltext('<h3>%s</h3>') % _('Tracking Code')))
Review

Ajout d'intertitre.

Ajout d'intertitre.
form.add(
CheckboxWidget,
'enable_tracking_codes',
title=_('Enable support for tracking codes'),
Review

Déplacement de la partie "code de suivi" sous la partie brouillon.

Déplacement de la partie "code de suivi" sous la partie brouillon.
value=self.formdef.enable_tracking_codes,
attrs={'data-dynamic-display-parent': 'true'},
)
verify_fields = [(None, '---', None)]
for field in self.formdef.fields:
if field.key in ('string', 'date', 'email', 'computed'):
verify_fields.append((field.id, field.label, field.id))
form.add(
WidgetList,
'tracking_code_verify_fields',
title=_('Fields to check after entering the tracking code'),
element_type=SingleSelectWidget,
value=self.formdef.tracking_code_verify_fields,
add_element_label=_('Add verification Field'),
element_kwargs={'render_br': False, 'options': verify_fields},
hint=_('Only text, date, email and computed fields can be used.'),
attrs={
'data-dynamic-display-child-of': 'enable_tracking_codes',
Review

Affichage de la partie "champs à vérifier" uniquement quand le code de suivi est activé.

Affichage de la partie "champs à vérifier" uniquement quand le code de suivi est activé.
'data-dynamic-display-checked': 'true',
},
)
return self.handle(form, _('Form Tracking'))
def captcha(self):
form = Form(enctype='multipart/form-data')
@ -761,7 +769,7 @@ class FormDefPage(Directory, TempfileDirectoryMixin):
),
'tracking_code': self.add_option_line(
'options/tracking_code',
_('Tracking Code'),
_('Form Tracking'),
Review

Modification du libellé, "Form Tracking" pour traduction en "Suivi de la demande" (ça n'est pas un terme que j'ai trouvé dans les traductions existantes).

Modification du libellé, "Form Tracking" pour traduction en "Suivi de la demande" (ça n'est pas un terme que j'ai trouvé dans les traductions existantes).
self.formdef.enable_tracking_codes
and pgettext_lazy('tracking code', 'Enabled')
or pgettext_lazy('tracking code', 'Disabled'),

View File

@ -1988,6 +1988,10 @@ aside#sidebar div.MapWidget {
width: auto;
}
.ui-dialog form h3 {
margin-top: 0;
}
div#backoffice-map {
height: 70vh;
margin-bottom: 1em;