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