0001-fold-summary-if-form-has-already-been-seen-9175.patch
tests/test_backoffice_pages.py | ||
---|---|---|
1666 | 1666 |
resp = resp.follow() |
1667 | 1667 |
assert sms_mocking.sms[-1]['destinations'] == ['0123456789'] |
1668 | 1668 |
assert form_class.get(number31.id).tracking_code in sms_mocking.sms[-1]['text'] |
1669 | ||
1670 |
def test_backoffice_resume_folded(pub): |
|
1671 |
user = create_user(pub) |
|
1672 |
create_environment(pub) |
|
1673 |
form_class = FormDef.get_by_urlname('form-title').data_class() |
|
1674 |
number31 = [x for x in form_class.select() if x.data['1'] == 'FOO BAR 30'][0] |
|
1675 |
app = login(get_app(pub)) |
|
1676 | ||
1677 |
# formdata is mine : fold |
|
1678 |
number31.user_id = user.id |
|
1679 |
number31.store() |
|
1680 |
resp = app.get('/backoffice/management/form-title/%s/' % number31.id) |
|
1681 |
assert '<h2 class="foldable folded">Summary</h2>' in resp.body |
|
1682 | ||
1683 |
# formdata is not mine : don't fold |
|
1684 |
number31.user_id = None |
|
1685 |
number31.store() |
|
1686 |
resp = app.get('/backoffice/management/form-title/%s/' % number31.id) |
|
1687 |
assert '<h2 class="foldable">Summary</h2>' in resp.body |
|
1688 | ||
1689 |
# do something on this formdata : fold |
|
1690 |
resp = resp.form.submit('button_commentable') |
|
1691 |
resp = resp.follow() |
|
1692 |
assert '<h2 class="foldable folded">Summary</h2>' in resp.body |
wcs/forms/common.py | ||
---|---|---|
347 | 347 |
raise errors.AccessForbiddenError() |
348 | 348 |
return user |
349 | 349 | |
350 |
def receipt(self, |
|
351 |
always_include_user = False, |
|
352 |
show_status = True, |
|
353 |
form_url = ''): |
|
350 |
def receipt(self, always_include_user=False, show_status=True, form_url='', folded=False): |
|
354 | 351 |
user = get_request().user |
355 | 352 |
if not always_include_user and get_request().user and \ |
356 | 353 |
get_request().user.id == self.filled.user_id: |
... | ... | |
372 | 369 | |
373 | 370 |
r = TemplateIO(html=True) |
374 | 371 |
r += htmltext('<div class="bo-block" id="summary">') |
375 |
r += htmltext('<h2 class="foldable">%s</h2>') % _('Summary') |
|
372 |
klasses = 'foldable' |
|
373 |
if folded: |
|
374 |
klasses += ' folded' |
|
375 |
r += htmltext('<h2 class="%s">' % klasses) |
|
376 |
r += htmltext('%s</h2>') % _('Summary') |
|
376 | 377 |
r += htmltext('<div class="dataview">') |
377 | 378 | |
378 | 379 |
if user: |
... | ... | |
494 | 495 | |
495 | 496 |
r += htmltext(self.workflow_messages()) |
496 | 497 | |
497 |
r += self.receipt(always_include_user = True) |
|
498 |
# fold the summary if the form has already been seen by the user, i.e. if the user is |
|
499 |
# present in the formdata log (evolution). |
|
500 |
folded = False |
|
501 |
if user and self.filled.evolution: |
|
502 |
for evo in self.filled.evolution: |
|
503 |
if (str(evo.who) == str(user.id) or |
|
504 |
(evo.who == '_submitter' and self.filled.is_submitter(user))): |
|
505 |
folded = True |
|
506 |
break |
|
507 | ||
508 |
r += self.receipt(always_include_user=True, folded=folded) |
|
498 | 509 | |
499 | 510 |
r += self.history() |
500 | 511 | |
501 |
- |