Fix: Behebung von Fehlern im Abstimmungs-Feature

Behebt zwei Fehler im kürzlich implementierten Abstimmungs-Feature:
1.  **Fehler bei Mehrfachauswahl:** Ein logischer Fehler in der -View, der
    beim Abstimmen bei Multiple-Choice-Umfragen auftrat, wurde behoben.
    Die inkorrekte Verwendung von  wurde durch eine
    korrekte Iteration ersetzt, die den Benutzer aus den  der
    einzelnen Auswahlmöglichkeiten entfernt.
2.  **Anzahl der Auswahlmöglichkeiten:** Das Formular zur Erstellung von
    Umfragen zeigte nur zwei Felder für Auswahlmöglichkeiten an. Dies wurde
    korrigiert, sodass nun, wie gefordert, bis zu fünf
    Auswahlmöglichkeiten eingegeben werden können.

Änderungen:
- Korrektur der Logik zum Zurücksetzen von Stimmen in  für
  Mehrfachauswahl-Umfragen.
- Anpassung des  in , um die Anzahl der
  angezeigten Auswahlfelder auf 5 zu erhöhen.
This commit is contained in:
Matthias Nagel 2025-11-21 22:58:38 +01:00
parent 001444e0dd
commit 20075fbe1f
2 changed files with 3 additions and 2 deletions

View File

@ -20,4 +20,4 @@ class ChoiceForm(forms.ModelForm):
'choice_text': forms.TextInput(attrs={'class': 'form-control', 'required': True}),
}
ChoiceFormSet = formset_factory(ChoiceForm, extra=2, max_num=5)
ChoiceFormSet = formset_factory(ChoiceForm, extra=5, max_num=5)

View File

@ -104,7 +104,8 @@ def vote(request, poll_id):
if poll.multiple_choice:
selected_choice_ids = request.POST.getlist('choice')
# First, remove user's previous votes for this poll
poll.choices.filter(votes=user).update(votes=None)
for choice in poll.choices.all():
choice.votes.remove(user)
# Then, add new votes
for choice_id in selected_choice_ids:
choice = get_object_or_404(Choice, pk=choice_id)