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)