This repository has been archived on 2019-10-13. You can view files and clone it, but cannot push or open issues or pull requests.
2018-01-22 11:07:02 +01:00

141 lines
5.3 KiB
Python

# -*- coding: utf-8 -*-
from __future__ import unicode_literals
import datetime
from django.http import HttpResponse
from django.shortcuts import render
from apps.food.forms import UploadImageForm
from apps.food.models import Menu, HappyHour, SingleFood, UserRating, UserFoodImage, FoodImage
# Create your views here.
def daily_food(request):
today = datetime.datetime.now()
start_week = today - datetime.timedelta(today.weekday())
end_week = start_week + datetime.timedelta(7)
feki_menu = Menu.objects.filter(date__exact=today).filter(location__contains=Menu.FEKI).last()
austr_menu = Menu.objects.filter(date__exact=today).filter(location__contains=Menu.AUSTRASSE).last()
erba_cafete = Menu.objects.filter(date__exact=today).filter(location__contains=Menu.ERBA).last()
markus_cafete = Menu.objects.filter(date__exact=today).filter(location__contains=Menu.MARKUSPLATZ).last()
happy_hours = HappyHour.objects.filter(date__exact=today)
weekly_menus = Menu.objects.filter(date__gte=start_week, date__lte=end_week)
weekly_feki_menu = weekly_menus.filter(location__contains=Menu.FEKI)
weekly_austr_menu = weekly_menus.filter(location__contains=Menu.AUSTRASSE)
weekly_erba_cafete = weekly_menus.filter(location__contains=Menu.ERBA)
weekly_markus_cafete = weekly_menus.filter(location__contains=Menu.MARKUSPLATZ)
return render(request, "food/daily_food.jinja", {
'day': today,
'happy_hours': happy_hours,
'feki_menu': feki_menu,
'austr_menu': austr_menu,
'erba_cafete': erba_cafete,
'markus_cafete': markus_cafete,
'weekly_feki_menu': weekly_feki_menu,
'weekly_austr_menu': weekly_austr_menu,
'weekly_erba_cafete': weekly_erba_cafete,
'weekly_markus_cafete': weekly_markus_cafete,
})
def weekly_food(request):
today = datetime.datetime.now()
lastday = today + datetime.timedelta(7)
weekly_menus = Menu.objects.filter(date__gte=today, date__lte=lastday)
feki_menu = weekly_menus.filter(location__contains="Feldkirchenstraße")
austr_menu = weekly_menus.filter(location__contains="Austraße")
erba_cafete = weekly_menus.filter(location__contains="Erba")
markus_cafete = weekly_menus.filter(location__contains="markus")
happy_hours = HappyHour.objects.filter(date__gte=today, date__lte=lastday)
return render(request, "food/weekly_food.jinja", {
'day': today,
'lastday': lastday,
'happy_hours': happy_hours,
'feki_menu': feki_menu,
'austr_menu': austr_menu,
'erba_cafete': erba_cafete,
'markus_cafete': markus_cafete,
})
def food_detail(request, id):
if request.method == 'POST':
if pic_upload(request, id) == False:
return HttpResponse(status=404)
food = SingleFood.objects.get(id=id)
if request.user.is_authenticated:
images = UserFoodImage.objects.filter(food=id, user=request.user)
return render(request, "food/detailed_food.jinja", {'food': food, 'images': images})
else:
return render(request, "food/detailed_food.jinja", {'food': food})
def all_food(request):
menus = Menu.objects.all()
feki_menu = menus.filter(location__contains="Feldkirchenstraße")
austr_menu = menus.filter(location__contains="Austraße")
erba_cafete = menus.filter(location__contains="Erba")
markus_cafete = menus.filter(location__contains="markus")
happy_hours = HappyHour.objects.all()
return render(request, "food/daily_food.jinja", {
'happy_hours': happy_hours,
'feki_menu': feki_menu,
'austr_menu': austr_menu,
'erba_cafete': erba_cafete,
'markus_cafete': markus_cafete,
})
def food(request):
return render(request, "food/home.jinja", {})
def food_rating(request):
if (request.user.is_authenticated):
food_id = request.GET.get('food_id', None)
rating = request.GET.get('rating', None)
if food_id and rating:
food = SingleFood.objects.get(id=food_id)
user_rating, created = UserRating.objects.get_or_create(user=request.user,
food=food)
user_rating.rating = rating
user_rating.save()
food_user_ratings = UserRating.objects.all().filter(food=food)
sum = 0
for food_user_rating in food_user_ratings:
sum += food_user_rating.rating
food.rating = sum / food_user_ratings.count()
food.save()
return HttpResponse(status=200)
return HttpResponse(status=404)
return HttpResponse(status=403)
def food_image(request):
food_id = request.GET.get('food_id', None)
img = request.GET.get('img', None)
if food_id and img:
food = SingleFood.objects.get(id=food_id)
food.image = img
food.save()
return HttpResponse(status=200)
return HttpResponse(status=404)
def pic_upload(request, id):
form = UploadImageForm(request.POST, request.FILES)
if form.is_valid():
pic = form.save(commit=True)
food = SingleFood.objects.get(id=id)
userPic, success = UserFoodImage.objects.get_or_create(user_id=request.user, image=pic, food=food)
userPic.save()
return True
else:
return False