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.
21 lines
832 B
Python
21 lines
832 B
Python
from django.db import models
|
|
from clubs.models import Team
|
|
from accounts.models import CustomUser
|
|
|
|
class Poll(models.Model):
|
|
question = models.CharField(max_length=255)
|
|
team = models.ForeignKey(Team, on_delete=models.CASCADE, related_name='polls')
|
|
creator = models.ForeignKey(CustomUser, on_delete=models.CASCADE, related_name='polls_created')
|
|
multiple_choice = models.BooleanField(default=False)
|
|
created_at = models.DateTimeField(auto_now_add=True)
|
|
|
|
def __str__(self):
|
|
return self.question
|
|
|
|
class Choice(models.Model):
|
|
poll = models.ForeignKey(Poll, on_delete=models.CASCADE, related_name='choices')
|
|
choice_text = models.CharField(max_length=100)
|
|
votes = models.ManyToManyField(CustomUser, related_name='voted_choices', blank=True)
|
|
|
|
def __str__(self):
|
|
return self.choice_text |