HiLo/homepage/views.py
2020-08-26 23:58:06 -04:00

93 lines
2.0 KiB
Python
Executable File

from django.shortcuts import render, redirect
from django.contrib import messages
from django.shortcuts import get_object_or_404
from django.http import HttpResponseNotFound
from .forms import PollForm
from .models import Poll, Location, Answer
# Create your views here.
def homepage (request, slug="arlington"):
location = get_object_or_404(Location, slug=slug)
try:
poll = location.poll
except:
return HttpResponseNotFound(f'404: No poll was found for {location}!')
if poll.ask_hi:
hi_text = poll.hi_text
else:
hi_text = None
if poll.ask_lo:
lo_text = poll.lo_text
else:
lo_text = None
if poll.ask_emotion:
emotion_text = poll.emotion_text
else:
emotion_text = None
if poll.ask_name:
name_text = poll.name_text
else:
name_text = None
if poll.ask_place:
place_text = poll.place_text
else:
place_text = None
if poll.ask_question:
question_text = poll.question_text
else:
question_text = None
if request.method == 'POST':
print(request.POST)
form = PollForm(request.POST)
if form.is_valid():
print("valid form!")
instance = form.save(commit=False)
instance.poll = poll
instance.save()
return redirect(f'/{location.slug}/results')
else:
messages.error(request, 'Looks like there were some problems with your form!', extra_tags='danger')
print("invalid form!")
else:
form = PollForm()
context = {
'form': form,
'poll': poll,
'location': location,
'hi_text': hi_text,
'lo_text': lo_text,
'emotion_text': emotion_text,
'place_text': place_text,
'name_text': name_text,
'question_text': question_text,
}
return render(request, 'homepage/index.html', context=context)
def results (request, slug="arlington"):
location = get_object_or_404(Location, slug=slug)
try:
poll = location.poll
except:
return HttpResponseNotFound(f'404: No poll was found for {location}!')
answers = Answer.objects.filter(poll=poll)
context = {
'location':location,
'poll':poll,
'answers':answers,
}
return render(request, 'homepage/results.html', context=context)