forms: fold form summary for submitter (#34833)
This commit is contained in:
parent
f8da77c8f9
commit
e6a9520100
|
@ -408,6 +408,7 @@ def test_form_submit(pub):
|
|||
assert 'The form has been recorded' in next_page.body
|
||||
assert not 'None' in next_page.body
|
||||
assert formdef.data_class().count() == 1
|
||||
assert '<div class="section foldable folded" id="summary">' in next_page.body
|
||||
|
||||
def test_form_submit_no_confirmation(pub):
|
||||
formdef = create_formdef()
|
||||
|
@ -1105,6 +1106,7 @@ def test_form_submit_with_user(pub, emails):
|
|||
next_page = next_page.follow()
|
||||
assert 'The form has been recorded' in next_page.body
|
||||
assert formdef.data_class().count() == 1
|
||||
assert '<div class="section foldable folded" id="summary">' in next_page.body
|
||||
# check the user received a copy by email
|
||||
assert emails.emails.get('New form (test)')
|
||||
assert emails.emails.get('New form (test)')['email_rcpt'] == ['foo@localhost']
|
||||
|
|
|
@ -316,8 +316,8 @@ class FormStatusPage(Directory, FormTemplateMixin):
|
|||
raise errors.AccessForbiddenError()
|
||||
return user
|
||||
|
||||
def receipt(self, always_include_user=False, show_status=True, form_url='', folded=False):
|
||||
user = get_request().user
|
||||
def receipt(self, always_include_user=False, show_status=True, form_url='', mine=True):
|
||||
request_user = user = get_request().user
|
||||
if not always_include_user and get_request().user and \
|
||||
get_request().user.id == self.filled.user_id:
|
||||
user = None
|
||||
|
@ -338,8 +338,21 @@ class FormStatusPage(Directory, FormTemplateMixin):
|
|||
|
||||
r = TemplateIO(html=True)
|
||||
klasses = 'foldable'
|
||||
# fold the summary if the form has already been seen by the user, i.e.
|
||||
# if it's user own form or if the user is present in the formdata log
|
||||
# (evolution).
|
||||
folded = False
|
||||
if mine or (request_user and self.filled.is_submitter(request_user)):
|
||||
folded = True
|
||||
elif request_user and self.filled.evolution:
|
||||
for evo in self.filled.evolution:
|
||||
if (str(evo.who) == str(request_user.id) or
|
||||
(evo.who == '_submitter' and self.filled.is_submitter(request_user))):
|
||||
folded = True
|
||||
break
|
||||
if folded:
|
||||
klasses += ' folded'
|
||||
|
||||
r += htmltext('<div class="section %s" id="summary">' % klasses)
|
||||
r += htmltext('<h2>%s</h2>') % _('Summary')
|
||||
r += htmltext('<div class="dataview">')
|
||||
|
@ -500,18 +513,7 @@ class FormStatusPage(Directory, FormTemplateMixin):
|
|||
r = TemplateIO(html=True)
|
||||
|
||||
r += htmltext(self.workflow_messages())
|
||||
|
||||
# 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.receipt(always_include_user=True, mine=False)
|
||||
r += self.backoffice_fields_section()
|
||||
|
||||
r += self.history()
|
||||
|
|
Loading…
Reference in New Issue