caFICteria-aaS/web/daily_menu/views.py
2024-12-02 18:40:31 +01:00

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)