update module

This commit is contained in:
Jonas Heinrich 2025-08-21 10:43:39 +02:00
parent 41e8bce03c
commit 08bf161f09
7 changed files with 114 additions and 6 deletions

View file

@ -55,6 +55,11 @@ class Question(models.Model):
body = models.TextField()
member = models.ForeignKey(Member, related_name="questions", on_delete=models.CASCADE)
created_at = models.DateTimeField(auto_now_add=True)
# asker metadata
asker_first_name = models.CharField(max_length=150, blank=True)
asker_last_name = models.CharField(max_length=150, blank=True)
asker_city = models.CharField(max_length=150, blank=True)
asker_email = models.EmailField(blank=True)
class Meta:
verbose_name = "Frage"

View file

@ -7,6 +7,7 @@ urlpatterns = [
path("gemeinden/<slug:slug>/", views.public_body_detail, name="public_body_detail"),
path("mitglieder/", views.members, name="members"),
path("mitglieder/<int:pk>/", views.member_detail, name="member_detail"),
path("mitglieder/<int:pk>/frage/stellen", views.ask_question, name="ask_question"),
path("parteien/", views.parties, name="parties"),
path("parteien/<int:pk>/", views.party_detail, name="party_detail"),
path("fragen/", views.questions, name="questions"),

View file

@ -1,4 +1,5 @@
from django.shortcuts import render, get_object_or_404
from django.shortcuts import render, get_object_or_404, redirect
from django.contrib import messages
from .models import PublicBody, Party, Member, Question, Vote
@ -39,6 +40,34 @@ def member_detail(request, pk: int):
)
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})