from django.shortcuts import render, get_object_or_404, redirect from django.contrib import messages from .models import PublicBody, Party, Member, Question, Vote def home(request): return render(request, "index.html", {}) def public_bodies(request): items = PublicBody.objects.all() return render(request, "council/public_bodies.html", {"items": items}) def public_body_detail(request, slug: str): body = get_object_or_404(PublicBody, slug=slug) members = body.members.select_related("party").all() parties = Party.objects.filter(members__public_body=body).distinct() votes = body.votes.all() return render( request, "council/public_body_detail.html", {"body": body, "members": members, "parties": parties, "votes": votes}, ) def members(request): items = Member.objects.select_related("public_body", "party").all() return render(request, "council/members.html", {"items": items}) def member_detail(request, pk: int): member = get_object_or_404(Member.objects.select_related("public_body", "party"), pk=pk) questions = member.questions.all() votes = member.votes.select_related("public_body").all() return render( request, "council/member_detail.html", {"member": member, "questions": questions, "votes": votes}, ) def ask_question(request, pk: int): member = get_object_or_404(Member, pk=pk) if request.method != "POST": return redirect("member_detail", pk=member.pk) title = request.POST.get("title", "").strip() asker_first_name = request.POST.get("asker_first_name", "").strip() asker_last_name = request.POST.get("asker_last_name", "").strip() asker_city = request.POST.get("asker_city", "").strip() asker_email = request.POST.get("asker_email", "").strip() if not title or not asker_first_name or not asker_last_name or not asker_city or not asker_email: messages.error(request, "Bitte alle Pflichtfelder ausfüllen.") return redirect("member_detail", pk=member.pk) Question.objects.create( title=title, body=title, member=member, asker_first_name=asker_first_name, asker_last_name=asker_last_name, asker_city=asker_city, asker_email=asker_email, ) messages.success(request, "Frage wurde eingereicht.") return redirect("member_detail", pk=member.pk) def parties(request): items = Party.objects.all() return render(request, "council/parties.html", {"items": items}) def party_detail(request, pk: int): party = get_object_or_404(Party, pk=pk) members = party.members.select_related("public_body").all() public_bodies = PublicBody.objects.filter(members__party=party).distinct() questions = Question.objects.filter(member__party=party).select_related("member").all() return render( request, "council/party_detail.html", {"party": party, "members": members, "public_bodies": public_bodies, "questions": questions}, ) def questions(request): items = Question.objects.select_related("member").all() return render(request, "council/questions.html", {"items": items})