backoffice: list errors related to current form/carddef only (#49266)
This commit is contained in:
parent
b58c13e6c3
commit
8ba1421c08
|
@ -4730,14 +4730,24 @@ def test_backoffice_logged_errors(pub):
|
||||||
formdef.fields = []
|
formdef.fields = []
|
||||||
formdef.store()
|
formdef.store()
|
||||||
|
|
||||||
|
# create a carddef with the same id
|
||||||
|
CardDef.wipe()
|
||||||
|
carddef = CardDef()
|
||||||
|
carddef.id = '34'
|
||||||
|
carddef.name = 'test'
|
||||||
|
carddef.fields = []
|
||||||
|
carddef.store()
|
||||||
|
|
||||||
LoggedError.wipe()
|
LoggedError.wipe()
|
||||||
|
|
||||||
create_superuser(pub)
|
create_superuser(pub)
|
||||||
app = login(get_app(pub))
|
app = login(get_app(pub))
|
||||||
resp = app.get('/backoffice/forms/%s/' % formdef.id)
|
resp = app.get('/backoffice/forms/%s/' % formdef.id)
|
||||||
assert not 'ZeroDivisionError' in resp.text
|
assert 'ZeroDivisionError' not in resp.text
|
||||||
|
resp = app.get('/backoffice/cards/%s/' % carddef.id)
|
||||||
|
assert 'ZeroDivisionError' not in resp.text
|
||||||
resp = app.get('/backoffice/workflows/%s/' % workflow.id)
|
resp = app.get('/backoffice/workflows/%s/' % workflow.id)
|
||||||
assert not 'ZeroDivisionError' in resp.text
|
assert 'ZeroDivisionError' not in resp.text
|
||||||
|
|
||||||
app = get_app(pub)
|
app = get_app(pub)
|
||||||
resp = app.get('/test/')
|
resp = app.get('/test/')
|
||||||
|
@ -4750,6 +4760,8 @@ def test_backoffice_logged_errors(pub):
|
||||||
assert 'Failed to evaluate condition' in resp.text
|
assert 'Failed to evaluate condition' in resp.text
|
||||||
assert 'ZeroDivisionError' in resp.text
|
assert 'ZeroDivisionError' in resp.text
|
||||||
resp = resp.click('1 error')
|
resp = resp.click('1 error')
|
||||||
|
resp = app.get('/backoffice/cards/%s/' % carddef.id)
|
||||||
|
assert 'ZeroDivisionError' not in resp.text
|
||||||
|
|
||||||
resp = app.get('/backoffice/workflows/%s/' % workflow.id)
|
resp = app.get('/backoffice/workflows/%s/' % workflow.id)
|
||||||
resp2 = resp.click('1 error')
|
resp2 = resp.click('1 error')
|
||||||
|
|
|
@ -457,7 +457,7 @@ class FormDefPage(Directory):
|
||||||
self.role = WorkflowRoleDirectory(self.formdef)
|
self.role = WorkflowRoleDirectory(self.formdef)
|
||||||
self.role.html_top = self.html_top
|
self.role.html_top = self.html_top
|
||||||
self.options = self.options_directory_class(self.formdef)
|
self.options = self.options_directory_class(self.formdef)
|
||||||
self.logged_errors_dir = LoggedErrorsDirectory(parent_dir=self, formdef_id=self.formdef.id)
|
self.logged_errors_dir = LoggedErrorsDirectory(parent_dir=self, formdef_class=self.formdef_class, formdef_id=self.formdef.id)
|
||||||
self.snapshots_dir = SnapshotsDirectory(self.formdef)
|
self.snapshots_dir = SnapshotsDirectory(self.formdef)
|
||||||
|
|
||||||
def html_top(self, title):
|
def html_top(self, title):
|
||||||
|
@ -702,7 +702,7 @@ class FormDefPage(Directory):
|
||||||
if qrcode is not None:
|
if qrcode is not None:
|
||||||
r += htmltext('<li><a href="qrcode" rel="popup">%s</a></li>') % _('Display QR Code')
|
r += htmltext('<li><a href="qrcode" rel="popup">%s</a></li>') % _('Display QR Code')
|
||||||
r += htmltext('</ul>')
|
r += htmltext('</ul>')
|
||||||
r += LoggedErrorsDirectory.errors_block(formdef_id=self.formdef.id)
|
r += LoggedErrorsDirectory.errors_block(formdef_class=self.formdef_class, formdef_id=self.formdef.id)
|
||||||
return r.getvalue()
|
return r.getvalue()
|
||||||
|
|
||||||
def public_url(self):
|
def public_url(self):
|
||||||
|
|
|
@ -115,17 +115,17 @@ class LoggedErrorsDirectory(Directory):
|
||||||
_q_exports = ['']
|
_q_exports = ['']
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def get_errors(cls, formdef_id=None, workflow_id=None):
|
def get_errors(cls, formdef_class=None, formdef_id=None, workflow_id=None):
|
||||||
errors = []
|
errors = []
|
||||||
if formdef_id:
|
if formdef_id and formdef_class:
|
||||||
errors = LoggedError.get_with_indexed_value('formdef_id', formdef_id)
|
errors = [e for e in LoggedError.get_with_indexed_value('formdef_id', formdef_id) if e.formdef_class == formdef_class.__name__]
|
||||||
elif workflow_id:
|
elif workflow_id:
|
||||||
errors = LoggedError.get_with_indexed_value('workflow_id', workflow_id)
|
errors = LoggedError.get_with_indexed_value('workflow_id', workflow_id)
|
||||||
return list(errors)
|
return list(errors)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def errors_block(cls, formdef_id=None, workflow_id=None):
|
def errors_block(cls, formdef_class=None, formdef_id=None, workflow_id=None):
|
||||||
errors = cls.get_errors(formdef_id=formdef_id, workflow_id=workflow_id)
|
errors = cls.get_errors(formdef_class=formdef_class, formdef_id=formdef_id, workflow_id=workflow_id)
|
||||||
if not errors:
|
if not errors:
|
||||||
return ''
|
return ''
|
||||||
errors.sort(key=lambda x: x.id, reverse=True)
|
errors.sort(key=lambda x: x.id, reverse=True)
|
||||||
|
@ -151,8 +151,9 @@ class LoggedErrorsDirectory(Directory):
|
||||||
r += htmltext('</div>')
|
r += htmltext('</div>')
|
||||||
return r.getvalue()
|
return r.getvalue()
|
||||||
|
|
||||||
def __init__(self, parent_dir, formdef_id=None, workflow_id=None):
|
def __init__(self, parent_dir, formdef_class=None, formdef_id=None, workflow_id=None):
|
||||||
self.parent_dir = parent_dir
|
self.parent_dir = parent_dir
|
||||||
|
self.formdef_class = formdef_class
|
||||||
self.formdef_id = formdef_id
|
self.formdef_id = formdef_id
|
||||||
self.workflow_id = workflow_id
|
self.workflow_id = workflow_id
|
||||||
|
|
||||||
|
@ -162,7 +163,7 @@ class LoggedErrorsDirectory(Directory):
|
||||||
return template.QommonTemplateResponse(
|
return template.QommonTemplateResponse(
|
||||||
templates=['wcs/backoffice/logged-errors.html'],
|
templates=['wcs/backoffice/logged-errors.html'],
|
||||||
context={
|
context={
|
||||||
'errors': self.get_errors(formdef_id=self.formdef_id, workflow_id=self.workflow_id),
|
'errors': self.get_errors(formdef_class=self.formdef_class, formdef_id=self.formdef_id, workflow_id=self.workflow_id),
|
||||||
})
|
})
|
||||||
|
|
||||||
def _q_lookup(self, component):
|
def _q_lookup(self, component):
|
||||||
|
|
|
@ -220,7 +220,7 @@ class CardDefPage(FormDefPage):
|
||||||
r += htmltext('<li><a href="history/">%s</a></li>') % _('History')
|
r += htmltext('<li><a href="history/">%s</a></li>') % _('History')
|
||||||
r += htmltext('</ul>')
|
r += htmltext('</ul>')
|
||||||
|
|
||||||
r += LoggedErrorsDirectory.errors_block(formdef_id=self.formdef.id)
|
r += LoggedErrorsDirectory.errors_block(formdef_class=self.formdef_class, formdef_id=self.formdef.id)
|
||||||
return r.getvalue()
|
return r.getvalue()
|
||||||
|
|
||||||
def get_check_count_before_deletion_message(self):
|
def get_check_count_before_deletion_message(self):
|
||||||
|
|
Loading…
Reference in New Issue