Fügt ein neues Abstimmungs-Feature hinzu, das es Head Coaches ermöglicht,
Umfragen innerhalb ihres Teams zu erstellen und zu verwalten.
Teammitglieder können Umfragen ansehen und daran teilnehmen.
Wesentliche Änderungen:
- **Neue 'polls'-App:** Enthält Modelle, Formulare, Views und Templates.
- **Modelle und :** Definieren die Struktur für Umfragen
(Frage, Team, Ersteller, Mehrfachauswahl-Option) und die Auswahlmöglichkeiten
(Text, Stimmen).
- **Formulare und :** Für die Erstellung von Umfragen
und deren Auswahlmöglichkeiten.
- **Views:**
- : Zeigt alle für den Benutzer relevanten Umfragen an.
- : Ermöglicht Head Coaches das Erstellen neuer Umfragen
(inkl. Fehlerbehebung bei der Formularinitialisierung).
- : Zeigt Details einer Umfrage an und ermöglicht die
Stimmabgabe.
- : Zeigt die Ergebnisse einer Umfrage an.
- : Funktion für die Stimmabgabe.
- **Templates:** Spezifische Templates für alle Umfrage-Views.
- **URL-Konfiguration:** Neue URLs für die 'polls'-App und Einbindung in die
Haupt-URL-Konfiguration.
- **Navigationslink:** Ein neuer Link 'Polls' in der Hauptnavigation für
authentifizierte Benutzer.
- **Migrationen:** Datenbankmigrationen für die neuen - und -Modelle.
24 lines
785 B
Python
24 lines
785 B
Python
from django import forms
|
|
from django.forms import formset_factory
|
|
from .models import Poll, Choice
|
|
|
|
class PollForm(forms.ModelForm):
|
|
class Meta:
|
|
model = Poll
|
|
fields = ['question', 'team', 'multiple_choice']
|
|
widgets = {
|
|
'question': forms.TextInput(attrs={'class': 'form-control'}),
|
|
'team': forms.Select(attrs={'class': 'form-control'}),
|
|
'multiple_choice': forms.CheckboxInput(attrs={'class': 'form-check-input'}),
|
|
}
|
|
|
|
class ChoiceForm(forms.ModelForm):
|
|
class Meta:
|
|
model = Choice
|
|
fields = ['choice_text']
|
|
widgets = {
|
|
'choice_text': forms.TextInput(attrs={'class': 'form-control', 'required': True}),
|
|
}
|
|
|
|
ChoiceFormSet = formset_factory(ChoiceForm, extra=2, max_num=5)
|