diff options
author | Magnus Hagander | 2023-06-02 18:47:43 +0000 |
---|---|---|
committer | Magnus Hagander | 2023-06-02 18:47:43 +0000 |
commit | abc3c464c717aec220ea540d02be4653100de5bb (patch) | |
tree | b00c729416c764b2b4ca70267ca392d5f8398223 /postgresqleu/digisign | |
parent | f6c403e09cfe2cd8f9fa8db3d31c05d28e253305 (diff) |
Add a log view that shows full debug details of digisign logs
Diffstat (limited to 'postgresqleu/digisign')
-rw-r--r-- | postgresqleu/digisign/backendviews.py | 18 | ||||
-rw-r--r-- | postgresqleu/digisign/implementations/__init__.py | 1 | ||||
-rw-r--r-- | postgresqleu/digisign/implementations/signwell.py | 1 | ||||
-rw-r--r-- | postgresqleu/digisign/models.py | 6 |
4 files changed, 26 insertions, 0 deletions
diff --git a/postgresqleu/digisign/backendviews.py b/postgresqleu/digisign/backendviews.py index c93885d3..677a75f5 100644 --- a/postgresqleu/digisign/backendviews.py +++ b/postgresqleu/digisign/backendviews.py @@ -61,6 +61,7 @@ def view_provider_log(request, providerid): return render(request, 'digisign/digisign_backend_log.html', { 'log': DigisignLog.objects.filter(provider=provider).order_by('-id')[:100], + 'hasdetails': provider.get_implementation().has_log_details, 'breadcrumbs': [ ('/admin/digisign/providers/', 'Digital signature providers'), ('/admin/digisign/providers/{}/'.format(provider.id), provider.name), @@ -68,6 +69,23 @@ def view_provider_log(request, providerid): }) +def view_provider_log_details(request, providerid, logid): + if not request.user.is_superuser: + raise PermissionDenied("Access denied") + + provider = get_object_or_404(DigisignProvider, pk=providerid) + log = get_object_or_404(DigisignLog, provider=provider, pk=logid) + + return render(request, 'digisign/digisign_backend_log_details.html', { + 'log': log, + 'breadcrumbs': [ + ('/admin/digisign/providers/', 'Digital signature providers'), + ('/admin/digisign/providers/{}/'.format(provider.id), provider.name), + ('/admin/digisign/providers/{}/log/'.format(provider.id), "Log"), + ] + }) + + def pdf_field_editor(request, conference, pdf, available_fields, fielddata, savecallback=None, breadcrumbs=[]): import fitz diff --git a/postgresqleu/digisign/implementations/__init__.py b/postgresqleu/digisign/implementations/__init__.py index 31b67144..cfd5e30d 100644 --- a/postgresqleu/digisign/implementations/__init__.py +++ b/postgresqleu/digisign/implementations/__init__.py @@ -1,5 +1,6 @@ class BaseProvider: can_send_preview = False + has_log_details = False webhookcode = None def __init__(self, id, provider): diff --git a/postgresqleu/digisign/implementations/signwell.py b/postgresqleu/digisign/implementations/signwell.py index 5afe5747..af2e36bb 100644 --- a/postgresqleu/digisign/implementations/signwell.py +++ b/postgresqleu/digisign/implementations/signwell.py @@ -79,6 +79,7 @@ On the Signwell account, open up the API application and specify class Signwell(BaseProvider): backend_form_class = SignwellBackendForm can_send_preview = True + has_log_details = True webhookcode = "sw" def description_text(self, signeremail): diff --git a/postgresqleu/digisign/models.py b/postgresqleu/digisign/models.py index 913f5460..674e71ab 100644 --- a/postgresqleu/digisign/models.py +++ b/postgresqleu/digisign/models.py @@ -1,5 +1,7 @@ from django.db import models +import json + class DigisignProvider(models.Model): name = models.CharField(max_length=100, null=False, blank=False, unique=True) @@ -47,3 +49,7 @@ class DigisignLog(models.Model): indexes = [ models.Index(fields=('document', '-time')) ] + + @property + def fulldata_pretty(self): + return json.dumps(self.fulldata, indent=2) |