fix: ignore micro-sec for booking timestamp

This commit is contained in:
relikd
2023-06-02 02:17:55 +02:00
parent 347d70699f
commit e0a0c58948
3 changed files with 7 additions and 6 deletions

2
.gitignore vendored
View File

@@ -1 +1 @@
data/db.sqlite3
data/*.sqlite3*

View File

@@ -11,7 +11,7 @@ if TYPE_CHECKING:
from django.db.models import OuterRef
from app.base.models.person import Person
from app.base.models.booking_type import BookingType
from datetime import timedelta
from datetime import timedelta # noqa F401
class Booking(models.Model):

View File

@@ -1,3 +1,4 @@
from datetime import timedelta
from django.contrib.auth.mixins import LoginRequiredMixin
from django.shortcuts import redirect
from django.utils import timezone
@@ -11,17 +12,17 @@ class ToggleCheckinView(LoginRequiredMixin, View):
user = Person.objects.get(id=kwargs['user_id'])
next = self.request.GET.get('next')
booking = user.current_checkin # performs db query
now = timezone.now()
now -= timedelta(microseconds=now.microsecond) # remove precision
if booking:
booking.end_time = timezone.now()
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=timezone.now()
)
Booking.objects.create(user=user, type=book_type, begin_time=now)
return redirect(next)