fold summary if form has already been seen (#9175)
This commit is contained in:
parent
3c0c1ea243
commit
a96492fae7
|
@ -1666,3 +1666,18 @@ def test_360_user_view_tracking_code(pub):
|
|||
resp = resp.follow()
|
||||
assert sms_mocking.sms[-1]['destinations'] == ['0123456789']
|
||||
assert form_class.get(number31.id).tracking_code in sms_mocking.sms[-1]['text']
|
||||
|
||||
def test_backoffice_resume_folded(pub):
|
||||
user = create_user(pub)
|
||||
create_environment(pub)
|
||||
form_class = FormDef.get_by_urlname('form-title').data_class()
|
||||
number31 = [x for x in form_class.select() if x.data['1'] == 'FOO BAR 30'][0]
|
||||
app = login(get_app(pub))
|
||||
|
||||
# first access: summary is not folded
|
||||
resp = app.get('/backoffice/management/form-title/%s/' % number31.id)
|
||||
assert '<h2 class="foldable">Summary</h2>' in resp.body
|
||||
# do something: summary is folded
|
||||
resp = resp.form.submit('button_commentable')
|
||||
resp = resp.follow()
|
||||
assert '<h2 class="foldable folded">Summary</h2>' in resp.body
|
||||
|
|
|
@ -359,10 +359,7 @@ class FormStatusPage(Directory):
|
|||
raise errors.AccessForbiddenError()
|
||||
return user
|
||||
|
||||
def receipt(self,
|
||||
always_include_user = False,
|
||||
show_status = True,
|
||||
form_url = ''):
|
||||
def receipt(self, always_include_user=False, show_status=True, form_url='', folded=False):
|
||||
user = get_request().user
|
||||
if not always_include_user and get_request().user and \
|
||||
get_request().user.id == self.filled.user_id:
|
||||
|
@ -384,7 +381,11 @@ class FormStatusPage(Directory):
|
|||
|
||||
r = TemplateIO(html=True)
|
||||
r += htmltext('<div class="bo-block" id="summary">')
|
||||
r += htmltext('<h2 class="foldable">%s</h2>') % _('Summary')
|
||||
klasses = 'foldable'
|
||||
if folded:
|
||||
klasses += ' folded'
|
||||
r += htmltext('<h2 class="%s">' % klasses)
|
||||
r += htmltext('%s</h2>') % _('Summary')
|
||||
r += htmltext('<div class="dataview">')
|
||||
|
||||
if user:
|
||||
|
@ -506,7 +507,17 @@ class FormStatusPage(Directory):
|
|||
|
||||
r += htmltext(self.workflow_messages())
|
||||
|
||||
r += self.receipt(always_include_user = True)
|
||||
# fold the summary if the form has already been seen by the user, i.e. if the user is
|
||||
# present in the formdata log (evolution).
|
||||
folded = False
|
||||
if user and self.filled.evolution:
|
||||
for evo in self.filled.evolution:
|
||||
if (str(evo.who) == str(user.id) or
|
||||
(evo.who == '_submitter' and self.filled.is_submitter(user))):
|
||||
folded = True
|
||||
break
|
||||
|
||||
r += self.receipt(always_include_user=True, folded=folded)
|
||||
|
||||
r += self.history()
|
||||
|
||||
|
|
Loading…
Reference in New Issue