wip/73775-delete-custom-view-digest (#73775) #69
|
@ -455,7 +455,7 @@ def test_backoffice_custom_view_status_filter(pub):
|
|||
|
||||
|
||||
def test_backoffice_custom_view_delete(pub):
|
||||
create_superuser(pub)
|
||||
user = create_superuser(pub)
|
||||
|
||||
FormDef.wipe()
|
||||
pub.custom_view_class.wipe()
|
||||
|
@ -481,6 +481,42 @@ def test_backoffice_custom_view_delete(pub):
|
|||
resp = resp.follow()
|
||||
assert 'custom test view' not in resp.text
|
||||
|
||||
CardDef.wipe()
|
||||
carddef = CardDef()
|
||||
carddef.name = 'foo'
|
||||
carddef.fields = [
|
||||
fields.StringField(id='1', label='Test', type='string', varname='foo'),
|
||||
]
|
||||
carddef.backoffice_submission_roles = user.roles
|
||||
carddef.workflow_roles = {'_editor': user.roles[0]}
|
||||
carddef.digest_templates = {
|
||||
'default': 'plop',
|
||||
'custom-view:custom-test-view': 'FOO {{ form_var_foo }}',
|
||||
'custom-view:another-view': '{{ form_var_foo }}',
|
||||
}
|
||||
carddef.store()
|
||||
|
||||
custom_view = pub.custom_view_class()
|
||||
custom_view.title = 'custom test view'
|
||||
custom_view.formdef = carddef
|
||||
custom_view.visibility = 'datasource'
|
||||
custom_view.columns = {'list': [{'id': 'id'}]}
|
||||
custom_view.filters = {}
|
||||
custom_view.store()
|
||||
|
||||
resp = app.get('/backoffice/data/foo/custom-test-view/')
|
||||
resp = resp.click('Delete')
|
||||
resp = resp.form.submit()
|
||||
assert resp.location.endswith('/data/foo/')
|
||||
resp = resp.follow()
|
||||
assert 'custom test view' not in resp.text
|
||||
|
||||
carddef.refresh_from_storage()
|
||||
assert carddef.digest_templates == {
|
||||
'default': 'plop',
|
||||
'custom-view:another-view': '{{ form_var_foo }}',
|
||||
}
|
||||
|
||||
|
||||
def test_backoffice_custom_map_view(pub):
|
||||
user = create_superuser(pub)
|
||||
|
|
|
@ -65,6 +65,18 @@ class CustomView(StorableObject):
|
|||
self.formdef_id = str(value.id)
|
||||
self.formdef_type = value.xml_root_node
|
||||
|
||||
def remove_self(self):
|
||||
try:
|
||||
formdef = self.formdef
|
||||
except KeyError:
|
||||
pass
|
||||
else:
|
||||
view_digest_key = 'custom-view:%s' % self.get_url_slug()
|
||||
if view_digest_key in (formdef.digest_templates or {}):
|
||||
del formdef.digest_templates[view_digest_key]
|
||||
formdef.store()
|
||||
super().remove_self()
|
||||
|
||||
def match(self, user, formdef):
|
||||
if self.formdef_type != formdef.xml_root_node:
|
||||
return False
|
||||
|
|
|
@ -333,14 +333,6 @@ class FormData(StorableObject):
|
|||
self.submission_agent_id = str(self.submission_context.get('agent_id'))
|
||||
changed = True
|
||||
|
||||
if 'digest' in self.__dict__: # 2021-06-24
|
||||
# migration from a simple digest to digests
|
||||
if not self.digests:
|
||||
self.digests = {}
|
||||
self.digests['default'] = self.__dict__['digest']
|
||||
del self.__dict__['digest']
|
||||
changed = True
|
||||
|
||||
if changed:
|
||||
self.store()
|
||||
|
||||
|
|
|
@ -225,14 +225,6 @@ class FormDef(StorableObject):
|
|||
# don't run migration on lightweight objects
|
||||
return
|
||||
|
||||
if 'digest_template' in self.__dict__:
|
||||
# 2021-06-22 - migration from a simple template to templates
|
||||
if not self.digest_templates:
|
||||
self.digest_templates = {}
|
||||
self.digest_templates['default'] = self.__dict__['digest_template']
|
||||
del self.__dict__['digest_template']
|
||||
changed = True
|
||||
|
||||
if self.max_field_id is None and self.fields:
|
||||
self.max_field_id = max(lax_int(x.id) for x in self.fields)
|
||||
changed = True
|
||||
|
|
Loading…
Reference in New Issue