Files
mkspc-mgmt/app/base/views/trigger/toggle_checkin.py
2023-06-02 17:05:59 +02:00

27 lines
963 B
Python
Executable File

from django.contrib.auth.mixins import LoginRequiredMixin
from django.shortcuts import redirect
from django.views import View
from app.base.forms.utils import datetime_now
from app.base.models import Person, Booking, BookingType
class ToggleCheckinView(LoginRequiredMixin, View):
def get(self, *args, **kwargs):
user = Person.objects.get(id=kwargs['user_id'])
next = self.request.GET.get('next')
booking = user.current_checkin # performs db query
now = datetime_now()
if booking:
booking.end_time = now
booking.save()
else:
plan = self.request.GET.get('plan')
# get() throws exception if not-exist. This is intended behavior!
# If you need `None` instead, use `filter().first()`
book_type = BookingType.objects.get(key=plan)
Booking.objects.create(user=user, type=book_type, begin_time=now)
return redirect(next)