add views booking, contact, place files; update urls.py accordingly

This commit is contained in:
Ruidy Nemausat 2020-04-08 11:30:21 +02:00
parent 19915c83a9
commit cb840433de
4 changed files with 73 additions and 88 deletions

View file

@ -1,7 +1,7 @@
from django.contrib.staticfiles.urls import static, staticfiles_urlpatterns from django.contrib.staticfiles.urls import static, staticfiles_urlpatterns
from django.urls import path from django.urls import path
from villafleurie import settings from villafleurie import settings
from rental.views import home, views from rental.views import home, booking, contact, place
app_name = 'rental' app_name = 'rental'
@ -12,13 +12,13 @@ urlpatterns = [
path('partenaires/', home.Partners.as_view(), name='partners'), path('partenaires/', home.Partners.as_view(), name='partners'),
path('services/', home.Services.as_view(), name='services'), path('services/', home.Services.as_view(), name='services'),
path('contact/', views.contact, name='contact'), path('contact/', contact.view, name='contact'),
path('reservation/', views.reservation, name='reservation'),
path('', views.index, name='index'), path('reservation/', booking.view, name='reservation'),
path('hebergements/', views.liste_location, name='list_place'),
path('<place_name>/', views.location, name='detail_place'), path('', place.index, name='index'),
# path('calendar/<place_name>/', views.calendar, name='calendar'), path('hebergements/', place.all, name='list_place'),
path('<place_name>/', place.view, name='detail_place')
] ]
urlpatterns += staticfiles_urlpatterns() urlpatterns += staticfiles_urlpatterns()

View file

@ -1,58 +1,19 @@
from django.core.exceptions import ValidationError from django.core.exceptions import ValidationError
from django.db import IntegrityError from django.db import IntegrityError
from django.shortcuts import render, get_object_or_404 from django.shortcuts import render, get_object_or_404
from django.utils.translation import gettext_lazy as _
from rental.forms.booking import BookingForm from rental.forms.booking import BookingForm
from rental.forms.contact import ContactForm
from rental.models.booking import Booking from rental.models.booking import Booking
from rental.models.contact import Contact
from rental.models.guest import Guest from rental.models.guest import Guest
from rental.models.place import Place from rental.models.place import Place
from rental.models.testimonial import Testimonial
def index(request): def view(request):
places = Place.objects.all() context, template = handle_booking_form(request)
temoignages = Testimonial.objects.all()
context = {
'places': places,
'temoignages': temoignages
}
return render(request, 'rental/index.html', context)
def liste_location(request):
places = Place.objects.all()
context = {'places': places}
return render(request, 'rental/list_place.html', context)
def location(request, place_name='T2'):
place = get_object_or_404(Place, name=place_name)
images = place.images.all()
context = {
'place': place,
'images': images
}
context, template = handle_reservation_form(
request, context, init_template='rental/detail_place.html')
return render(request, template, context) return render(request, template, context)
def reservation(request): def handle_booking_form(request, context={}, init_template='rental/reservation.html'):
context, template = handle_reservation_form(request)
return render(request, template, context)
def handle_reservation_form(request, context={}, init_template='rental/reservation.html'):
if request.method == 'POST': if request.method == 'POST':
form = BookingForm(request.POST) form = BookingForm(request.POST)
if form.is_valid(): if form.is_valid():
@ -112,42 +73,3 @@ def handle_reservation_form(request, context={}, init_template='rental/reservati
template = init_template template = init_template
return context, template return context, template
def calendar(request, place_name):
"""
returns a list of all related place reservations
"""
# synchronize_calendars()
booked_dates = Booking.objects.all()
bookings = [
booking for booking in booked_dates if booking.place.name == place_name]
context = {
'place_name': place_name,
'bookings': bookings
}
return render(request, 'rental/calendar.html', context)
def contact(request):
if request.method == 'POST':
form = ContactForm(request.POST)
if form.is_valid():
contact = Contact.objects.create(
name=form.cleaned_data['name'],
email=form.cleaned_data['email'],
subject=form.cleaned_data['subject'],
message=form.cleaned_data['message']
)
contact.send_confirmation()
contact.send_notification()
return render(request, 'rental/contact_merci.html', {})
else:
form = ContactForm()
context = {'form': form}
return render(request, 'rental/contact.html', context)

24
rental/views/contact.py Normal file
View file

@ -0,0 +1,24 @@
from django.shortcuts import render
from rental.forms.contact import ContactForm
def view(request):
if request.method == 'POST':
form = ContactForm(request.POST)
if form.is_valid():
contact = Contact.objects.create(
name=form.cleaned_data['name'],
email=form.cleaned_data['email'],
subject=form.cleaned_data['subject'],
message=form.cleaned_data['message']
)
contact.send_confirmation()
contact.send_notification()
return render(request, 'rental/contact_merci.html', {})
else:
form = ContactForm()
context = {'form': form}
return render(request, 'rental/contact.html', context)

39
rental/views/place.py Normal file
View file

@ -0,0 +1,39 @@
from django.shortcuts import render, get_object_or_404
from django.utils.translation import gettext_lazy as _
from rental.models.place import Place
from rental.models.testimonial import Testimonial
def index(request):
places = Place.objects.all()
temoignages = Testimonial.objects.all()
context = {
'places': places,
'temoignages': temoignages
}
return render(request, 'rental/index.html', context)
def all(request):
places = Place.objects.all()
context = {'places': places}
return render(request, 'rental/list_place.html', context)
def view(request, place_name='T2'):
place = get_object_or_404(Place, name=place_name)
images = place.images.all()
context = {
'place': place,
'images': images
}
context, template = handle_reservation_form(
request, context, init_template='rental/detail_place.html')
return render(request, template, context)