27 lines
876 B
Python
27 lines
876 B
Python
from django.db import transaction
|
|
from django.utils import timezone
|
|
|
|
from apps.events.models import Registration
|
|
|
|
|
|
@transaction.atomic
|
|
def verify_registration_attendance(registration, *, verifier=None, source=None):
|
|
if source is None:
|
|
source = (
|
|
Registration.AttendanceVerificationSource.SYSTEM
|
|
if verifier is None
|
|
else Registration.AttendanceVerificationSource.STAFF_API
|
|
)
|
|
registration.status = Registration.StatusChoices.ATTENDED
|
|
registration.attendance_verified_at = timezone.now()
|
|
registration.attendance_verified_by = verifier
|
|
registration.attendance_verification_source = source
|
|
registration.save(update_fields=[
|
|
"status",
|
|
"attendance_verified_at",
|
|
"attendance_verified_by",
|
|
"attendance_verification_source",
|
|
"updated_at",
|
|
])
|
|
return registration
|