Hotel/hotel/rooms/views.py

74 lines
2.8 KiB
Python
Raw Normal View History

from django.http import HttpResponse
from django.template import loader
from django.shortcuts import get_object_or_404, render
from .models import *
from .forms import *
2019-01-22 18:39:08 +01:00
import re
2019-01-22 22:20:06 +01:00
import datetime
# Create your views here.
def index(request):
rooms = Room.objects.all()
2019-01-20 11:51:10 +01:00
rooms = rooms.order_by('room_number')
template = loader.get_template('index.html')
return HttpResponse(template.render({'rooms': rooms}, request))
2019-01-13 19:10:01 +01:00
def reservation(request):
room_number, begin_date, end_date = request.POST['room'], request.POST['begindate'], request.POST['enddate']
2019-01-22 22:20:06 +01:00
try:
begin_datetime = datetime.datetime.strptime(begin_date, "%Y-%m-%d")
end_datetime = datetime.datetime.strptime(end_date, "%Y-%m-%d")
except:
return HttpResponse(loader.get_template('error.html').render({'error': "Błąd przy datach"}, request))
if begin_datetime == '' or end_datetime == '' or end_datetime < begin_datetime or begin_datetime < datetime.datetime.today() or end_datetime < datetime.datetime.today():
return HttpResponse(loader.get_template('error.html').render({'error': "Błąd przy datach"}, request))
2019-01-13 19:10:01 +01:00
template = loader.get_template('reservation.html')
error = ""
2019-01-22 22:20:06 +01:00
reservation = Reservation.objects.filter(room_number=room_number).filter(begin_date__gte=begin_date).filter(end_date__lte=end_date)
print(reservation)
if reservation:
status = "Pokój " + str(room_number) + " jest już zarezerwowany"
return HttpResponse(template.render({'status': status}, request))
2019-01-13 19:10:01 +01:00
else:
if request.method == "POST":
2019-01-22 22:20:06 +01:00
try:
client_id = request.POST['id_number']
if check(client_id):
instance = Client.objects.get(id_number=client_id)
client = ClientForm(request.POST, instance=instance)
if not Client.objects.get(id_number=client_id):
client.save()
r = Reservation()
r.room_number = get_object_or_404(Room, room_number=room_number)
r.client_id = get_object_or_404(Client, id_number=client_id)
r.begin_date = begin_date
r.end_date = end_date
r.save()
status = "Pokój " + str(room_number) + " został pomyślnie zarejestrowany"
return HttpResponse(template.render({'status': status}, request))
error = "Numer dowodu nieprawidłowy"
except:
pass
form = ClientForm()
template = loader.get_template('form.html')
return HttpResponse(template.render({'form': form, 'error': error, 'room_number': room_number, 'begin_date': begin_date, 'end_date': end_date}, request))
2019-01-22 18:39:08 +01:00
def check(numer):
pattern = re.compile(r'[A-Z][A-Z][A-Z]\d\d\d\d\d\d')
return pattern.match(numer)