0001-admin-warning-on-only_allow_one-field-56788.patch
tests/admin_pages/test_form.py | ||
---|---|---|
150 | 150 | |
151 | 151 |
def test_forms_edit_limit_one_form(pub, formdef): |
152 | 152 |
create_superuser(pub) |
153 |
create_role(pub) |
|
153 |
role = create_role(pub)
|
|
154 | 154 | |
155 | 155 |
app = login(get_app(pub)) |
156 | 156 |
resp = app.get('/backoffice/forms/1/') |
157 | 157 | |
158 | 158 |
# Limit to one form |
159 |
assert formdef.roles is None |
|
159 | 160 |
assert_option_display(resp, 'Limit to one form', 'Disabled') |
160 | 161 |
resp = resp.click('Limit to one form') |
162 |
assert ( |
|
163 |
'Warning: this option concerns logged in users only, however this form is accessible anonymously. Consider adding an sender role.' |
|
164 |
in resp |
|
165 |
) |
|
161 | 166 |
assert resp.forms[0]['only_allow_one'].checked is False |
162 | 167 |
resp.forms[0]['only_allow_one'].checked = True |
163 | 168 |
resp = resp.forms[0].submit() |
... | ... | |
166 | 171 |
assert_option_display(resp, 'Limit to one form', 'Enabled') |
167 | 172 |
assert FormDef.get(1).only_allow_one is True |
168 | 173 | |
174 |
formdef.roles = ['logged-users'] |
|
175 |
formdef.store() |
|
176 |
resp = app.get('/backoffice/forms/1/options/only_allow_one') |
|
177 |
assert ( |
|
178 |
'Warning: this option concerns logged in users only, however this form is accessible anonymously. Consider adding an sender role.' |
|
179 |
not in resp |
|
180 |
) |
|
181 | ||
182 |
formdef.roles = [str(role.id)] |
|
183 |
formdef.store() |
|
184 |
resp = app.get('/backoffice/forms/1/options/only_allow_one') |
|
185 |
assert ( |
|
186 |
'Warning: this option concerns logged in users only, however this form is accessible anonymously. Consider adding an sender role.' |
|
187 |
not in resp |
|
188 |
) |
|
189 | ||
190 |
formdef.roles = [] |
|
191 |
formdef.store() |
|
192 |
resp = app.get('/backoffice/forms/1/options/only_allow_one') |
|
193 |
assert ( |
|
194 |
'Warning: this option concerns logged in users only, however this form is accessible anonymously. Consider adding an sender role.' |
|
195 |
in resp |
|
196 |
) |
|
197 | ||
169 | 198 | |
170 | 199 |
def test_forms_edit_management(pub, formdef): |
171 | 200 |
create_superuser(pub) |
wcs/admin/forms.py | ||
---|---|---|
234 | 234 | |
235 | 235 |
def only_allow_one(self): |
236 | 236 |
form = Form(enctype='multipart/form-data') |
237 |
hint = None |
|
238 |
if not self.formdef.roles: |
|
239 |
hint = _( |
|
240 |
'Warning: this option concerns logged in users only, however this form is accessible anonymously. ' |
|
241 |
'Consider adding an sender role.' |
|
242 |
) |
|
237 | 243 |
form.add( |
238 | 244 |
CheckboxWidget, |
239 | 245 |
'only_allow_one', |
240 | 246 |
title=_('Only allow one form per user'), |
241 | 247 |
value=self.formdef.only_allow_one, |
248 |
hint=hint, |
|
242 | 249 |
) |
243 | 250 |
return self.handle(form, _('Limit to one form')) |
244 | 251 | |
245 |
- |