48 lines
1.5 KiB
Python
48 lines
1.5 KiB
Python
from django.shortcuts import render, redirect
|
|
from django.contrib import messages
|
|
from django.http import JsonResponse, Http404
|
|
from .utils import get_menu
|
|
from .forms import DateSelectionForm
|
|
|
|
|
|
def select_menu_form(request):
|
|
if request.method == 'POST':
|
|
form = DateSelectionForm(request.POST)
|
|
|
|
if form.is_valid():
|
|
return redirect('daily_menu:show_menu', form.cleaned_data['date'].strftime("%d-%m-%Y"))
|
|
else:
|
|
form = DateSelectionForm()
|
|
|
|
return render(request, 'main/show_form.html', {'form_header': 'Introduce una fecha para ver el menú', 'form': form})
|
|
|
|
|
|
def show_menu(request, date):
|
|
try:
|
|
date, menu = get_menu(date)
|
|
except KeyError:
|
|
if date == "today":
|
|
messages.error(
|
|
request, "El menú de hoy (aún) no está disponible")
|
|
else:
|
|
messages.error(
|
|
request, "No hay ningún menú ese día")
|
|
|
|
return redirect('daily_menu:select_menu_form')
|
|
|
|
courses = menu["courses"]
|
|
|
|
return render(request, 'daily_menu/show_menu.html', {'date': date,
|
|
'first_courses': courses[0],
|
|
'second_courses': courses[1],
|
|
'tg_message': menu["message"]})
|
|
|
|
|
|
def get_menu_json(request, date):
|
|
try:
|
|
date, menu = get_menu(date)
|
|
except KeyError:
|
|
return JsonResponse({"error": "There is no menu for that date"}, status=404)
|
|
|
|
return JsonResponse(menu)
|