This commit is contained in:
parent
36cc71044c
commit
3eacdf75ff
|
@ -846,6 +846,7 @@ def test_lazy_formdata(pub, variable_test_data):
|
|||
assert lazy_formdata.backoffice_submission_url == formdef.get_backoffice_submission_url()
|
||||
assert lazy_formdata.frontoffice_submission_url == formdef.get_url()
|
||||
assert lazy_formdata.api_url == formdata.get_api_url()
|
||||
assert lazy_formdata.short_url == formdata.get_short_url()
|
||||
assert lazy_formdata.attachments
|
||||
assert lazy_formdata.geoloc['base'] == {'lat': 1, 'lon': 2}
|
||||
assert lazy_formdata.geoloc['base_lon'] == 2
|
||||
|
@ -5748,3 +5749,29 @@ def test_reverse_links(pub):
|
|||
assert context['form_reverse_links_formdef_foobar_bar_1_form_internal_id'] == formdata2.id
|
||||
assert len(context['form_reverse_links_carddef_card_2_foo']) == 1
|
||||
assert context['form_reverse_links_carddef_card_2_foo_0_form_internal_id'] == carddata2.id
|
||||
|
||||
|
||||
def test_no_short_url(pub):
|
||||
CardDef.wipe()
|
||||
carddef = CardDef()
|
||||
carddef.name = 'card'
|
||||
carddef.store()
|
||||
carddata = carddef.data_class()()
|
||||
carddata.just_created()
|
||||
carddata.store()
|
||||
|
||||
lazy_carddata = LazyFormData(carddata)
|
||||
assert 'short_url' not in lazy_carddata.inspect_keys()
|
||||
|
||||
FormDef.wipe()
|
||||
formdef = FormDef()
|
||||
formdef.name = 'form'
|
||||
formdef.store()
|
||||
formdata = formdef.data_class()()
|
||||
|
||||
lazy_formdata = LazyFormData(formdata)
|
||||
assert 'short_url' not in lazy_formdata.inspect_keys()
|
||||
|
||||
formdata.just_created()
|
||||
formdata.store()
|
||||
assert 'short_url' in lazy_formdata.inspect_keys()
|
||||
|
|
|
@ -261,3 +261,6 @@ def test_short_url_redirect(pub, formdef1):
|
|||
assert resp.location == formdef1.get_url()
|
||||
resp = app.get(f'/r/{formdef1.id}-{formdata.id}', status=302)
|
||||
assert resp.location == formdata.get_url()
|
||||
assert formdata.get_short_url() == f'http://example.net/r/{formdef1.id}-{formdata.id}'
|
||||
resp = app.get(formdata.get_short_url(), status=302)
|
||||
assert resp.location == formdata.get_url()
|
||||
|
|
|
@ -899,6 +899,10 @@ class FormData(StorableObject):
|
|||
token.store()
|
||||
return urllib.parse.urljoin(get_publisher().get_frontoffice_url(), f'/code/{token.id}/load')
|
||||
|
||||
def get_short_url(self):
|
||||
assert self.id
|
||||
return urllib.parse.urljoin(get_publisher().get_frontoffice_url(), f'/r/{self.formdef.id}-{self.id}')
|
||||
|
||||
def get_display_id(self):
|
||||
return str(self.id_display or self.id)
|
||||
|
||||
|
|
|
@ -765,7 +765,9 @@ class LazyFormData(LazyFormDef):
|
|||
self._formdata = formdata
|
||||
|
||||
def inspect_keys(self):
|
||||
hidden_keys = ('field', 'inspect_keys', 'page_no', 'formdef', 'objects')
|
||||
hidden_keys = {'field', 'inspect_keys', 'page_no', 'formdef', 'objects'}
|
||||
if self.type != 'formdef' or not self._formdata.id:
|
||||
hidden_keys.add('short_url')
|
||||
for key in dir(self):
|
||||
if key[0] == '_' or key in hidden_keys:
|
||||
continue
|
||||
|
@ -831,6 +833,10 @@ class LazyFormData(LazyFormDef):
|
|||
def api_url(self):
|
||||
return self._formdata.get_api_url()
|
||||
|
||||
@property
|
||||
def short_url(self):
|
||||
return self._formdata.get_short_url()
|
||||
|
||||
@property
|
||||
def uri(self):
|
||||
return '%s/%s/' % (self._formdef.url_name, self._formdata.id)
|
||||
|
|
Loading…
Reference in New Issue