workflows: include digest for created forms displayed in history (#74213) #93

Merged
fpeters merged 1 commits from wip/74213-create-formdata-display-digest into main 2023-02-10 09:15:15 +01:00
4 changed files with 20 additions and 7 deletions

View File

@ -1772,6 +1772,7 @@ def test_create_formdata_show_link_in_history(pub):
resp = app.get('/source-form/%s/' % formdata.id)
assert 'The form has been recorded on' in resp.text
assert 'New form "target-form" created' in resp.text
assert resp.pyquery('.wf-links a')
# anonymous access via tracking code: no link
app = get_app(pub)
@ -1779,3 +1780,4 @@ def test_create_formdata_show_link_in_history(pub):
resp = resp.follow()
assert 'The form has been recorded on' in resp.text
assert 'New form "target-form" created' not in resp.text
assert not resp.pyquery('.wf-links a')

View File

@ -255,6 +255,16 @@ def test_create_formdata_attach_to_history(pub):
formdata.evolution[-1].parts[0].view()
)
# display digest if it exists
formdata.refresh_from_storage()
target_formdef.digest_templates = {'default': 'hello'}
target_formdef.store()
target_formdata = target_formdef.data_class().get(1)
target_formdata.store() # update digests
assert 'New form "target form" created: <a href="%s1/">1-1 (hello)</a>' % target_formdef.get_url() in str(
formdata.evolution[-1].parts[0].view()
)
# don't crash in case target formdata is removed
formdata.refresh_from_storage()
target_formdef.data_class().wipe()

View File

@ -1292,11 +1292,13 @@ class FormData(StorableObject):
def default_digest(self):
return (self.digests or {}).get('default')
def get_display_label(self, digest_key='default'):
def get_display_label(self, digest_key='default', include_form_name=True):
if include_form_name:
base = self.get_display_name()
else:
base = self.get_display_id()
digest = (self.digests or {}).get(digest_key)
if digest:
return '%s (%s)' % (self.get_display_name(), digest)
return self.get_display_name()
return '%s (%s)' % (base, digest) if digest else base
def get_auto_geoloc(self):
# use proper geolocation if it exists

View File

@ -237,10 +237,9 @@ class LinkedFormdataEvolutionPart(EvolutionPart):
)
result = htmltext('<p class="wf-links">')
result += htmltext(_('New form "%s" created:') % self.formdef.name)
result += htmltext(' <a href="%s">%s-%s</a>') % (
result += htmltext(' <a href="%s">%s</a>') % (
formdata.get_url(backoffice=bool(get_request() and get_request().is_in_backoffice())),
self.formdef_id,
self.formdata_id,
formdata.get_display_label(include_form_name=False),
)
result += htmltext('</p>')
return result