merged urls

This commit is contained in:
Aubele 2018-06-09 07:51:37 +02:00
commit f3bde41755
13 changed files with 243 additions and 123 deletions

View File

@ -20,7 +20,6 @@ from rest_framework.documentation import include_docs_urls
from rest_framework.permissions import AllowAny from rest_framework.permissions import AllowAny
from django.contrib.auth import views as auth_views from django.contrib.auth import views as auth_views
urlpatterns = [ urlpatterns = [
path('admin/', admin.site.urls), path('admin/', admin.site.urls),
path('', include('roomservice.urls')), path('', include('roomservice.urls')),
@ -28,9 +27,8 @@ urlpatterns = [
path('login/', auth_views.login, {'template_name': 'login.jinja'}, name='login'), path('login/', auth_views.login, {'template_name': 'login.jinja'}, name='login'),
path('logout/', auth_views.logout, name='logout'), path('logout/', auth_views.logout, name='logout'),
# APIs # APIs
# path('api/', include('respool.api.urls')), path('api/', include('roomservice.api.urls')),
# API Docs # API Docs
# path('api/docs/', include_docs_urls(title='Respool API Docs', public=True, # path('api/docs/', include_docs_urls(title='Respool API Docs', public=True,

View File

View File

@ -0,0 +1,20 @@
from roomservice.models import Booking, Room
from rest_framework import serializers
class RoomSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = Room
fields = ('id',)
class BookingSerializer(serializers.HyperlinkedModelSerializer):
room = RoomSerializer(many=False, read_only=True)
start_date = serializers.DateField(format='iso-8601')
end_date = serializers.DateField(format='iso-8601')
start_time = serializers.TimeField(format='iso-8601')
end_time = serializers.TimeField(format='iso-8601')
class Meta:
model = Booking
fields = ('id', 'room', 'start_date', 'end_date', 'start_time', 'end_time')

View File

@ -0,0 +1,7 @@
from django.urls import path
from . import views
app_name = 'roomservice.api'
urlpatterns = [
path('booking', views.ApiBooking.as_view(), name='api-booking'),
]

View File

@ -0,0 +1,21 @@
from __future__ import unicode_literals
from roomservice.models import Booking
from roomservice.api.serializers import BookingSerializer
from rest_framework import generics
from rest_framework.decorators import permission_classes
from rest_framework.permissions import IsAuthenticated, AllowAny
@permission_classes((AllowAny,))
class ApiBooking(generics.ListAPIView):
serializer_class = BookingSerializer
def get_queryset(self):
queryset = Booking.objects.all()
roomId = self.request.query_params.get('room_id')
if roomId:
queryset = queryset.filter(room=roomId)
return queryset

View File

@ -0,0 +1,9 @@
from django.db import models
from .models import Favorite
from django.forms import ModelForm
class AuthorForm(ModelForm):
class Meta:
model = Favorite
fields = ['room', 'staff']

View File

@ -142,7 +142,7 @@ def create_num_equipment():
def create_access_point(): def create_access_point():
for i in range(1, 25): for i in range(1, 25):
access_point, _ = AccessPoint.objects.get_or_create(mac_address=''.join( access_point, _ = AccessPoint.objects.get_or_create(mac_address=''.join(
random.choices(['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'], k=12)), ) random.choices(['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'], k=12)))
for i in range(1, random.randint(1, 4)): for i in range(1, random.randint(1, 4)):
access_point.rooms.add(random.choice(Room.objects.all())) access_point.rooms.add(random.choice(Room.objects.all()))
access_point.save() access_point.save()

View File

@ -1,12 +1,14 @@
from django.urls import path from django.urls import path, include
from . import views from . import views
app_name = 'roomservice' app_name = 'roomservice'
urlpatterns = [ urlpatterns = [
path('', views.favorites, name='home'), path('', views.favorites, name='home'),
path('favorite', views.add_favorites, name='add-fav'),
path('adminpage', views.admin, name='admin'), path('adminpage', views.admin, name='admin'),
path('booking', views.booking, name='booking'), path('booking', views.booking, name='booking'),
path('search', views.search, name='search'), path('search', views.search, name='search'),
path('location_search', views.location_based_search, name='location-based-search'), path('location_search', views.location_based_search, name='location-based-search'),
path('filter_search', views.filter_search, name='filter-search'), path('filter_search', views.filter_search, name='filter-search')]
]

View File

@ -1,5 +1,6 @@
from roomservice.models import Room, Favorite from roomservice.models import Room, Favorite, Booking
from django.shortcuts import render, redirect import datetime
from django.shortcuts import render
import logging import logging
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
@ -14,9 +15,47 @@ def search(request):
def booking(request): def booking(request):
room_id = request.POST["room"] room_id = request.POST["room"]
room = Room.objects.get(id=room_id) room = Room.objects.get(id=room_id)
logger.info(room_id) startdate = datetime.date.today()
logger.info(room) weekday = startdate.weekday()
return render(request, 'booking.jinja', {"title": "rooF(i)S is love rooF(i)S is live!!", "room": room}) logger.info(weekday)
enddate = startdate + datetime.timedelta(7)
multd = []
bookings = Booking.objects.filter(room_id=room.id, start_date__gte=startdate, end_date__lte=enddate)
logger.info(bookings)
for booking in bookings:
logger.info(booking)
sdate = booking.start_date
logger.info(sdate)
edate = booking.end_date
logger.info(edate)
stime = booking.start_time.hour
logger.info(stime)
etime = booking.end_time.hour + 1
logger.info(etime)
if edate != sdate:
break
else:
if weekday == 0:
day = "Monday"
elif weekday == 1:
day = "Tuesday"
elif weekday == 2:
day = "Wednesday"
elif weekday == 3:
day = "Thursday"
elif weekday == 4:
day = "Friday"
elif weekday == 5:
day = "Saturday"
elif weekday == 6:
day = "Sunday"
timediff = etime - stime
if timediff > 1:
while timediff > 1:
multd.append(day + (stime + timediff - 1).__str__() + "-" + (stime + timediff).__str__())
timediff = timediff - 1
logger.info(multd)
return render(request, 'booking.jinja', {"title": "rooF(i)S is love rooF(i)S is live!!", "multd": multd})
def admin(request): def admin(request):
@ -32,6 +71,13 @@ def favorites(request):
{"title": "rooF(i)S is love rooF(i)S is live!!"}) {"title": "rooF(i)S is love rooF(i)S is live!!"})
def add_favorites(request):
if request.method == 'POST':
pass
else:
return render(request, 'add_fav.jinja', {"title": "Add a new Favorite"})
def location_based_search(request): def location_based_search(request):
return render(request, 'favorites.jinja', {"title": "rooF(i)S is love rooF(i)S is live!!"}) return render(request, 'favorites.jinja', {"title": "rooF(i)S is love rooF(i)S is live!!"})

View File

@ -5,4 +5,10 @@
line-height: 3.5em; line-height: 3.5em;
vertical-align: middle; vertical-align: middle;
padding-left: -1em; padding-left: -1em;
}
td{
background-color: lawngreen;
}
.booked{
background-color: red;
} }

View File

@ -0,0 +1,15 @@
{% extends 'base.jinja' %}
{% block content %}
<div class="row container">
<div class="col-12"><h2>Add Favorite</h2></div>
<div class="col-2"></div>
<div class="col-8">
<form method="post">
<input type="hidden" name="csrfmiddlewaretoken" value="{{ csrf_token }}">
{{ form.as_p() }}
<button type="submit">Login</button>
</form>
</div>
<div class="col-2"></div>
</div>
{% endblock %}

View File

@ -1,6 +1,12 @@
{% extends 'base.jinja' %} {% extends 'base.jinja' %}
{% block content %} {% block content %}
<table class="table table-hover table-light"> {% for day in multd%}
<script>
var el = document.getElementById("{{day}}");
el.classList.add("booked");
</script>
{% endfor %}
<table class="table table-light">
<thead> <thead>
<tr> <tr>
<th scope="col">Time</th> <th scope="col">Time</th>
@ -12,157 +18,147 @@
<th scope="col">Saturday</th> <th scope="col">Saturday</th>
<th scope="col">Sunday</th> <th scope="col">Sunday</th>
</tr> </tr>
</head> </thead>
<tbody> <tbody>
<tr> <tr>
<th scope="row">6:00 - 7:00</th> <th scope="row">6:00 - 7:00</th>
<td></td> <td id="Monday6-7" class=""></td>
<td></td> <td id="Tuesday6-7" class=""></td>
<td></td> <td id="Wednesday6-7" class=""></td>
<td></td> <td id="Thursday6-7" class=""></td>
<td></td> <td id="Friday6-7" class=""></td>
<td></td> <td id="Saturday6-7" class=""></td>
<td></td> <td id="Sunday6-7" class=""></td>
</tr> </tr>
<tr> <tr>
<th scope="row">7:00 - 8:00</th> <th scope="row">7:00 - 8:00</th>
<td></td> <td id="Monday7-8" class=""></td>
<td></td> <td id="Tuesday7-8" class=""></td>
<td></td> <td id="Wednesday7-8" class=""></td>
<td></td> <td id="Thursday7-8" class=""></td>
<td></td> <td id="Friday7-8" class=""></td>
<td></td> <td id="Saturday7-8" class=""></td>
<td></td> <td id="Sunday7-8" class=""></td>
</tr> </tr>
<tr> <tr>
<th scope="row">8:00 - 9:00</th> <th scope="row">8:00 - 9:00</th>
<td></td> <td id="Monday8-9" class=""></td>
<td></td> <td id="Tuesday8-9" class=""></td>
<td></td> <td id="Wednesday8-9" class=""></td>
<td></td> <td id="Thursday8-9" class=""></td>
<td></td> <td id="Friday8-9" class=""></td>
<td></td> <td id="Saturday8-9" class=""></td>
<td></td> <td id="Sunday8-9" class=""></td>
</tr> </tr>
<tr> <tr>
<th scope="row">9:00 - 10:00</th> <th scope="row">9:00 - 10:00</th>
<td></td> <td id="Monday9-10" class=""></td>
<td></td> <td id="Tuesday9-10" class=""></td>
<td></td> <td id="Wednesday9-10" class=""></td>
<td></td> <td id="Thursday9-10" class=""></td>
<td></td> <td id="Friday9-10" class=""></td>
<td></td> <td id="Saturday9-10" class=""></td>
<td></td> <td id="Sunday9-10" class=""></td>
</tr> </tr>
<tr> <tr>
<th scope="row">10:00 - 11:00</th> <th scope="row">10:00 - 11:00</th>
<td></td> <td id="Monday10-11" class=""></td>
<td></td> <td id="Tuesday10-11" class=""></td>
<td></td> <td id="Wednesday10-11" class=""></td>
<td></td> <td id="Thursday10-11" class=""></td>
<td></td> <td id="Friday10-11" class=""></td>
<td></td> <td id="Saturday10-11" class=""></td>
<td></td> <td id="Sunday10-11" class=""></td>
</tr> </tr>
<tr> <tr>
<th scope="row">11:00 - 12:00</th> <th scope="row">11:00 - 12:00</th>
<td></td> <td id="Monday11-12" class=""></td>
<td></td> <td id="Tuesday11-12" class=""></td>
<td></td> <td id="Wednesday11-12" class=""></td>
<td></td> <td id="Thursday11-12" class=""></td>
<td></td> <td id="Friday11-12" class=""></td>
<td></td> <td id="Saturday11-12" class=""></td>
<td></td> <td id="Sunday11-12" class=""></td>
</tr> </tr>
<tr> <tr>
<th scope="row">12:00 - 13:00</th> <th scope="row">12:00 - 13:00</th>
<td></td> <td id="Monday12-13" class=""></td>
<td></td> <td id="Tuesday12-13" class=""></td>
<td></td> <td id="Wednesday12-13" class=""></td>
<td></td> <td id="Thursday12-13" class=""></td>
<td></td> <td id="Friday12-13" class=""></td>
<td></td> <td id="Saturday12-13" class=""></td>
<td></td> <td id="Sunday12-13" class=""></td>
</tr> </tr>
<tr> <tr>
<th scope="row">13:00 - 14:00</th> <th scope="row">13:00 - 14:00</th>
<td></td> <td id="Monday13-14" class=""></td>
<td></td> <td id="Tuesday13-14" class=""></td>
<td></td> <td id="Wednesday13-14" class=""></td>
<td></td> <td id="Thursday13-14" class=""></td>
<td></td> <td id="Friday13-14" class=""></td>
<td></td> <td id="Saturday13-14" class=""></td>
<td></td> <td id="Sunday13-14" class=""></td>
</tr> </tr>
<tr> <tr>
<th scope="row">14:00 - 15:00</th> <th scope="row">14:00 - 15:00</th>
<td></td> <td id="Monday14-15" class=""></td>
<td></td> <td id="Tuesday14-15" class=""></td>
<td></td> <td id="Wednesday14-15" class=""></td>
<td></td> <td id="Thursday14-15" class=""></td>
<td></td> <td id="Friday14-15" class=""></td>
<td></td> <td id="Saturday14-15" class=""></td>
<td></td> <td id="Sunday14-15" class=""></td>
</tr> </tr>
<tr> <tr>
<th scope="row">15:00 - 16:00</th> <th scope="row">15:00 - 16:00</th>
<td></td> <td id="Monday15-16" class=""></td>
<td></td> <td id="Tuesday15-16" class=""></td>
<td></td> <td id="Wednesday15-16" class=""></td>
<td></td> <td id="Thursday15-16" class=""></td>
<td></td> <td id="Friday15-16" class=""></td>
<td></td> <td id="Saturday15-16" class=""></td>
<td></td> <td id="Sunday15-16" class=""></td>
</tr> </tr>
<tr> <tr>
<th scope="row">16:00 - 17:00</th> <th scope="row">16:00 - 17:00</th>
<td></td> <td id="Monday16-17" class=""></td>
<td></td> <td id="Tuesday16-17" class=""></td>
<td></td> <td id="Wednesday16-17" class=""></td>
<td></td> <td id="Thursday16-17" class=""></td>
<td></td> <td id="Friday16-17" class=""></td>
<td></td> <td id="Saturday16-17" class=""></td>
<td></td> <td id="Sunday16-17" class=""></td>
</tr> </tr>
<tr> <tr>
<th scope="row">17:00 - 18:00</th> <th scope="row">17:00 - 18:00</th>
<td></td> <td id="Monday17-18" class=""></td>
<td></td> <td id="Tuesday17-18" class=""></td>
<td></td> <td id="Wednesday17-18" class=""></td>
<td></td> <td id="Thursday17-18" class=""></td>
<td></td> <td id="Friday17-18" class=""></td>
<td></td> <td id="Saturday17-18" class=""></td>
<td></td> <td id="Sunday17-18" class=""></td>
</tr> </tr>
<tr> <tr>
<th scope="row">18:00 - 19:00</th> <th scope="row">18:00 - 19:00</th>
<td></td> <td id="Monday18-19" class=""></td>
<td></td> <td id="Tuesday18-19" class=""></td>
<td></td> <td id="Wednesday18-19" class=""></td>
<td></td> <td id="Thursday18-19" class=""></td>
<td></td> <td id="Friday18-19" class=""></td>
<td></td> <td id="Saturday18-19" class=""></td>
<td></td> <td id="Sunday18-19" class=""></td>
</tr> </tr>
<tr> <tr>
<th scope="row">19:00 - 20:00</th> <th scope="row">19:00 - 20:00</th>
<td></td> <td id="Monday19-20" class=""></td>
<td></td> <td id="Tuesday19-20" class=""></td>
<td></td> <td id="Wednesday19-20" class=""></td>
<td></td> <td id="Thursday19-20" class=""></td>
<td></td> <td id="Friday19-20" class=""></td>
<td></td> <td id="Saturday19-20" class=""></td>
<td></td> <td id="Sunday19-20" class=""></td>
</tr>
<tr>
<th scope="row">20:00 - 6:00</th>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr> </tr>
</tbody> </tbody>
</table> </table>

View File

@ -18,7 +18,7 @@
</div> </div>
{% endfor %} {% endfor %}
<div class="col-6"> <div class="col-6">
{{ macros.home_item_with_icon(icon='fa-plus', icon_size='fa-4x', url_id='', link='', title='Add Fav', attr='') }} {{ macros.home_item_with_icon(icon='fa-plus', icon_size='fa-4x', url_id='roomservice:add-fav', link='', title='Add Fav', attr='') }}
</div> </div>
{% if request.user.is_superuser %} {% if request.user.is_superuser %}
<div class="col-6"> <div class="col-6">