2019-01-13 11:33:21 +01:00
|
|
|
from django.http import HttpResponse
|
|
|
|
from django.template import loader
|
|
|
|
from django.shortcuts import get_object_or_404, render
|
|
|
|
from .models import *
|
2019-01-20 11:57:24 +01:00
|
|
|
from .forms import *
|
2019-01-22 18:39:08 +01:00
|
|
|
import re
|
2019-01-22 22:20:06 +01:00
|
|
|
import datetime
|
2019-01-13 11:33:21 +01:00
|
|
|
|
|
|
|
# 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')
|
2019-01-13 11:33:21 +01:00
|
|
|
template = loader.get_template('index.html')
|
|
|
|
|
|
|
|
return HttpResponse(template.render({'rooms': rooms}, request))
|
2019-01-13 19:10:01 +01:00
|
|
|
|
|
|
|
|
|
|
|
def reservation(request):
|
2019-01-22 21:24:46 +01:00
|
|
|
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')
|
2019-01-22 21:24:46 +01:00
|
|
|
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)
|
|
|
|
if reservation:
|
2019-01-22 21:24:46 +01:00
|
|
|
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:
|
2019-01-22 21:24:46 +01:00
|
|
|
if request.method == "POST":
|
2019-01-22 22:20:06 +01:00
|
|
|
try:
|
|
|
|
client_id = request.POST['id_number']
|
|
|
|
|
2019-01-23 00:04:23 +01:00
|
|
|
if check(client_id):
|
|
|
|
if Client.objects.filter(id_number=client_id).first() is None:
|
|
|
|
client = ClientForm(request.POST)
|
2019-01-22 22:20:06 +01:00
|
|
|
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
|
2019-01-22 21:24:46 +01:00
|
|
|
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)
|
|
|
|
|
|
|
|
|
2019-01-20 12:01:23 +01:00
|
|
|
|