Revert "fixup! api: use custom digest for carddata view if defined (#55173)"

This reverts commit be5c0dfba1.
This commit is contained in:
Lauréline Guérin 2021-08-17 09:52:17 +02:00
parent be5c0dfba1
commit 1aea2407ce
No known key found for this signature in database
GPG Key ID: 1FAB9B9B4F93D473
4 changed files with 17 additions and 58 deletions

View File

@ -121,37 +121,6 @@ def test_cards_delete(pub):
carddata.remove_self() # don't keep leftovers
def test_cards_in_use_delete(pub):
CardDef.wipe()
carddef = CardDef()
carddef.name = 'card title'
carddef.fields = []
carddef.store()
FormDef.wipe()
formdef = FormDef()
formdef.name = 'form title'
formdef.fields = [
fields.ItemField(id='0', label='string', type='item', data_source={'type': 'carddef:card-title'}),
]
formdef.store()
create_superuser(pub)
app = login(get_app(pub))
resp = app.get('http://example.net/backoffice/cards/1/')
resp = resp.click('Delete')
print(resp.text)
assert 'Deletion is not possible as it is still used as datasource.' in resp.text
assert 'delete-button' not in resp.text
formdef.fields = []
formdef.store()
resp = app.get('http://example.net/backoffice/cards/1/')
resp = resp.click('Delete')
assert 'delete-button' in resp.text
def test_cards_duplicate(pub):
CardDef.wipe()
carddef = CardDef()

View File

@ -1203,7 +1203,7 @@ class FormDefPage(Directory):
self.formdefui.formdef.store()
return redirect('../%s/' % self.formdefui.formdef.id)
def get_check_deletion_message(self):
def get_check_count_before_deletion_message(self):
if not get_publisher().is_using_postgresql():
return None
from wcs import sql
@ -1219,7 +1219,7 @@ class FormDefPage(Directory):
def delete(self):
form = Form(enctype='multipart/form-data')
check_count_message = self.get_check_deletion_message()
check_count_message = self.get_check_count_before_deletion_message()
if check_count_message:
form.widgets.append(HtmlWidget('<p>%s</p>' % check_count_message))
else:

View File

@ -209,13 +209,9 @@ class CardDefPage(FormDefPage):
self.formdefui.formdef.store()
return response
def get_check_deletion_message(self):
if self.formdef.is_used():
return _('Deletion is not possible as it is still used as datasource.')
def get_check_count_before_deletion_message(self):
if not get_publisher().is_using_postgresql():
return None
criterias = [
NotEqual('status', 'draft'),
Null('anonymised'),

View File

@ -243,28 +243,22 @@ class CardDef(FormDef):
items.sort(key=lambda x: misc.simplify(x['text']))
return items
def is_used(self):
for formdef in get_formdefs_of_all_kinds():
if self.is_used_in_formdef(formdef):
return True
return False
def is_used_in_formdef(self, formdef):
for field in formdef.fields or []:
data_source = getattr(field, 'data_source', None)
if not (data_source and data_source.get('type')):
continue
data_source_id = 'carddef:%s' % self.url_name
if data_source.get('type') == data_source_id:
return True
if data_source.get('type').startswith('%s:' % data_source_id):
# custom view
return True
return False
def usage_in_formdefs(self):
def is_used_in_formdef(formdef):
for field in formdef.fields or []:
data_source = getattr(field, 'data_source', None)
if not (data_source and data_source.get('type')):
continue
data_source_id = 'carddef:%s' % self.url_name
if data_source.get('type') == data_source_id:
return True
if data_source.get('type').startswith('%s:' % data_source_id):
# custom view
return True
return False
for formdef in get_formdefs_of_all_kinds():
if self.is_used_in_formdef(formdef):
if is_used_in_formdef(formdef):
yield formdef
@classmethod