From 0cbacbb959ac23786dc60b46bcc6949947eea4e3 Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Tue, 14 Aug 2018 08:56:53 +0200 Subject: [PATCH] Fix checking in something that is checked in multiple times --- src/pretix/base/services/checkin.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/pretix/base/services/checkin.py b/src/pretix/base/services/checkin.py index fed025224b..f6c6dca8e2 100644 --- a/src/pretix/base/services/checkin.py +++ b/src/pretix/base/services/checkin.py @@ -116,10 +116,13 @@ def perform_checkin(op: OrderPosition, clist: CheckinList, given_answers: dict, require_answers ) else: - ci, created = Checkin.objects.get_or_create(position=op, list=clist, defaults={ - 'datetime': dt, - 'nonce': nonce, - }) + try: + ci, created = Checkin.objects.get_or_create(position=op, list=clist, defaults={ + 'datetime': dt, + 'nonce': nonce, + }) + except Checkin.MultipleObjectsReturned: + ci, created = Checkin.objects.filter(position=op, list=clist).last(), False if created or (nonce and nonce == ci.nonce): if created: