# -*- 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