summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMagnus Hagander2023-07-12 10:52:22 +0000
committerMagnus Hagander2023-07-12 10:52:22 +0000
commita66b28d89b7f8d3423b0b9e9a534804337ae4bda (patch)
treec32f756d8ea7b9f35e3bd7ba8f43d6cb0cae949b
parentbe8ad0fab6c3ced4c32845126f973048b33e37d1 (diff)
Don't try to store DigisignDocument for non-digisign contracts
Merge mistake when merging the dev code. We never store a DigisignDocument for non-digital contracts, and should thus not do it when re-sending the contract either.
-rw-r--r--postgresqleu/confsponsor/views.py30
1 files changed, 16 insertions, 14 deletions
diff --git a/postgresqleu/confsponsor/views.py b/postgresqleu/confsponsor/views.py
index 5413048d..615128ee 100644
--- a/postgresqleu/confsponsor/views.py
+++ b/postgresqleu/confsponsor/views.py
@@ -1158,20 +1158,22 @@ def sponsor_admin_sponsor_resendcontract(request, confurlname, sponsorid):
if error:
messages.error(request, "Failed to generate and send sponsor contract. Old contract still remains.")
else:
- # If there is *already* a digital contract for this sponsor, it must be canceled.
- if sponsor.contract:
- err = conference.contractprovider.get_implementation().cancel_contract(sponsor.contract.documentid)
- if err:
- messages.error(request, "Error occurred when canceling the old contract. New contract is still processed, old contract may be orphaned! Error: {}".format(err))
- sponsor.contract = None
-
- sponsor.contract = DigisignDocument(
- provider=conference.contractprovider,
- documentid=contractid,
- handler='confsponsor',
- )
- sponsor.contract.save()
- sponsor.save(update_fields=['contract', ])
+ if sponsor.signmethod == 0:
+ # If there is *already* a digital contract for this sponsor, it must be canceled.
+ if sponsor.contract:
+ err = conference.contractprovider.get_implementation().cancel_contract(sponsor.contract.documentid)
+ if err:
+ messages.error(request, "Error occurred when canceling the old contract. New contract is still processed, old contract may be orphaned! Error: {}".format(err))
+ sponsor.contract = None
+
+ # Store the new digital contract reference
+ sponsor.contract = DigisignDocument(
+ provider=conference.contractprovider,
+ documentid=contractid or '',
+ handler='confsponsor',
+ )
+ sponsor.contract.save()
+ sponsor.save(update_fields=['contract', ])
send_conference_sponsor_notification(
conference,