summaryrefslogtreecommitdiff
path: root/postgresqleu/confreg/util.py
diff options
context:
space:
mode:
authorMagnus Hagander2020-03-17 21:56:42 +0000
committerMagnus Hagander2020-03-17 21:56:42 +0000
commit1df61d90c7ad035311bc729399711a253ee4dc6e (patch)
tree538c9714d0317a7de9090f5818fb4d8431651c29 /postgresqleu/confreg/util.py
parent85af0d608e9160ed14a7d532ab679b8494930003 (diff)
Add basic registration activity log
This adds a basic log to each registration of activity that happens on it, from creation until possible canceling. More details can be added as we go, but tihs is a good start. One big improvement needed is to track exactly *which* fields changed and to/from what when making changes to a registration (that would help with support cases).
Diffstat (limited to 'postgresqleu/confreg/util.py')
-rw-r--r--postgresqleu/confreg/util.py11
1 files changed, 10 insertions, 1 deletions
diff --git a/postgresqleu/confreg/util.py b/postgresqleu/confreg/util.py
index 8f6d9085..db90ad7a 100644
--- a/postgresqleu/confreg/util.py
+++ b/postgresqleu/confreg/util.py
@@ -19,6 +19,11 @@ from postgresqleu.confreg.jinjapdf import render_jinja_ticket
from .models import PrepaidVoucher, DiscountCode, RegistrationWaitlistHistory
from .models import ConferenceRegistration, Conference
from .models import AttendeeMail
+from .models import ConferenceRegistrationLog
+
+
+def reglog(reg, txt, user=None):
+ ConferenceRegistrationLog(reg=reg, txt=txt, user=user).save()
#
@@ -180,6 +185,8 @@ def send_welcome_email(reg):
def notify_reg_confirmed(reg, updatewaitlist=True):
+ reglog(reg, "Registration confirmed")
+
# This one was off the waitlist, so generate a history entry
if updatewaitlist and hasattr(reg, 'registrationwaitlistentry'):
RegistrationWaitlistHistory(waitlist=reg.registrationwaitlistentry,
@@ -244,7 +251,7 @@ def notify_reg_confirmed(reg, updatewaitlist=True):
send_welcome_email(reg)
-def cancel_registration(reg, is_unconfirmed=False, reason=None):
+def cancel_registration(reg, is_unconfirmed=False, reason=None, user=None):
if reg.canceledat:
raise Exception("Registration is already canceled")
@@ -294,6 +301,8 @@ def cancel_registration(reg, is_unconfirmed=False, reason=None):
reg.canceledat = timezone.now()
reg.save()
+ reglog(reg, "Canceled registration", user)
+
if reg.conference.notifyregs and not is_unconfirmed:
send_conference_mail(reg.conference,
reg.conference.notifyaddr,