fix: ignore micro-sec for booking timestamp
This commit is contained in:
2
.gitignore
vendored
2
.gitignore
vendored
@@ -1 +1 @@
|
|||||||
data/db.sqlite3
|
data/*.sqlite3*
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ if TYPE_CHECKING:
|
|||||||
from django.db.models import OuterRef
|
from django.db.models import OuterRef
|
||||||
from app.base.models.person import Person
|
from app.base.models.person import Person
|
||||||
from app.base.models.booking_type import BookingType
|
from app.base.models.booking_type import BookingType
|
||||||
from datetime import timedelta
|
from datetime import timedelta # noqa F401
|
||||||
|
|
||||||
|
|
||||||
class Booking(models.Model):
|
class Booking(models.Model):
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
from datetime import timedelta
|
||||||
from django.contrib.auth.mixins import LoginRequiredMixin
|
from django.contrib.auth.mixins import LoginRequiredMixin
|
||||||
from django.shortcuts import redirect
|
from django.shortcuts import redirect
|
||||||
from django.utils import timezone
|
from django.utils import timezone
|
||||||
@@ -11,17 +12,17 @@ class ToggleCheckinView(LoginRequiredMixin, View):
|
|||||||
user = Person.objects.get(id=kwargs['user_id'])
|
user = Person.objects.get(id=kwargs['user_id'])
|
||||||
next = self.request.GET.get('next')
|
next = self.request.GET.get('next')
|
||||||
booking = user.current_checkin # performs db query
|
booking = user.current_checkin # performs db query
|
||||||
|
now = timezone.now()
|
||||||
|
now -= timedelta(microseconds=now.microsecond) # remove precision
|
||||||
|
|
||||||
if booking:
|
if booking:
|
||||||
booking.end_time = timezone.now()
|
booking.end_time = now
|
||||||
booking.save()
|
booking.save()
|
||||||
else:
|
else:
|
||||||
plan = self.request.GET.get('plan')
|
plan = self.request.GET.get('plan')
|
||||||
# get() throws exception if not-exist. This is intended behavior!
|
# get() throws exception if not-exist. This is intended behavior!
|
||||||
# If you need `None` instead, use `filter().first()`
|
# If you need `None` instead, use `filter().first()`
|
||||||
book_type = BookingType.objects.get(key=plan)
|
book_type = BookingType.objects.get(key=plan)
|
||||||
Booking.objects.create(
|
Booking.objects.create(user=user, type=book_type, begin_time=now)
|
||||||
user=user, type=book_type, begin_time=timezone.now()
|
|
||||||
)
|
|
||||||
|
|
||||||
return redirect(next)
|
return redirect(next)
|
||||||
|
|||||||
Reference in New Issue
Block a user