add is_available method to place and update_calendar to BookingManager

This commit is contained in:
Ruidy Nemausat 2020-04-07 17:05:26 +02:00
parent 0c196ce5e5
commit 431a041db3
4 changed files with 16 additions and 15 deletions

View file

@ -2,7 +2,7 @@ from datetime import datetime
from django.db import models
from rental.models.guest import Guest
from rental.models.place import Place
# from rental.services.calendar import update_calendar
import rental.services.calendar as calendar
class BookingManager(models.Manager):
@ -15,7 +15,7 @@ class BookingManager(models.Manager):
updates the remote calendar. """
booking = self.create(**kwargs)
booking.price = booking.get_price()
# update_calendar(booking)
calendar.update_calendar(booking)
return booking

View file

@ -1,5 +1,6 @@
from django.db import models
from rental.models.picture import Picture
import rental.services.calendar as calendar
class Place(models.Model):
@ -22,3 +23,6 @@ class Place(models.Model):
Picture, on_delete=models.CASCADE, blank=True, null=True)
images = models.ManyToManyField(Picture, related_name="places", blank=True)
calendar = models.CharField(max_length=350, blank=True, null=True)
def is_available(self, start, end):
return calendar.check_availability(self, start, end)

View file

@ -6,12 +6,9 @@ import os.path
import pickle
from villafleurie.settings import BASE_DIR
from django.shortcuts import get_object_or_404
from rental.models.contact import Contact
from rental.models.guest import Guest
from rental.models.picture import Picture
from rental.models.place import Place
from rental.models.testimonial import Testimonial
from rental.models.booking import Booking
import rental.models.place as _place
import rental.models.booking as _booking
def build_calendar_api_service():
@ -76,11 +73,11 @@ def get_calendar_reservations(place):
def synchronize_calendars(place):
""" Get a complete list of existing bookings in calendar
Creates reservation if not in db, update if already in db
Delete from db reservation deleted from cal """
Creates reservation if not in db, update if already in db
Delete from db reservation deleted from cal """
reservation = get_calendar_reservations(place)
place = get_object_or_404(Place, name=place.name)
place = get_object_or_404(_place.Place, name=place.name)
start = reservation['start']
end = reservation['end']
@ -90,11 +87,11 @@ def synchronize_calendars(place):
guest = Guest.objects.create(name=reservation['guest'])
else:
guest = guest.first()
db_booking = Booking.objects.filter(
db_booking = _booking.Booking.objects.filter(
guest=guest
)
if not db_booking.exists():
Booking.objects.create_booking(
_booking.Booking.objects.create_booking(
place=place,
guest=guest,
start=start,
@ -112,7 +109,7 @@ def get_bookings(place):
Returns a list of all related place reservations """
synchronize_calendars(place)
booked_dates = Booking.objects.filter(place=place)
booked_dates = _booking.Booking.objects.filter(place=place)
return [booking for booking in booked_dates]

View file

@ -79,9 +79,9 @@ def handle_reservation_form(request, context={}, init_template='rental/reservati
guest = guest.first()
place = get_object_or_404(Place, name=place_name)
available = check_availability(place, start, end)
# available = check_availability(place, )
if available:
if place.is_available(start, end):
reservation = Booking.objects.create_booking(
guest=guest,
place=place,