Also ich soll den Lehrkräften die Möglichkeit geben, zu überprüfen wie viele Aufgaben ihre Schülerinnen und Schüler in der letzten Woche gemacht haben. Da manchmal die Überprüfung erst ein oder zwei Tage später erfolgt, soll das etwa so aussehen:
Ausschnitt aus dem Template dazu:
Code: Alles auswählen
<form action="{% url 'gruppe_uebersicht' gruppe_id %}" method="POST">
{% csrf_token %}
<h2 style= "text-align: left;">Entweder hier einen Fiter:
{{form_filter}}
<input name="filter" type="submit" value="anwenden">
... oder Aufgaben seit:
{{tag_wahl}}
<input name="datum" type="submit" value="wählen">
</h2>
</form>
forms.py:
Code: Alles auswählen
class ProtokollFilter_Gruppe(forms.Form):
auswahl = forms.ChoiceField(label='', choices=[("Halbjahr",'aktuelles Halbjahr'),('Woche','Woche'), ("Schuljahr",'aktuelles Schuljahr'), ('heute','heute'), ("all",'Alle Aufgaben'),("next",'nächstes Halbjahr'), ])
class Datum_Form(forms.Form):
aufgaben_seit = forms.DateField(label="", widget = forms.SelectDateWidget())
Code: Alles auswählen
def gruppe_uebersicht(req, gruppe_id):
gruppe = get_object_or_404(Lerngruppe, pk=gruppe_id)
wahl = "aktuelles Halbjahr"
form_filter = ProtokollFilter_Gruppe
tag_wahl = Datum_Form
if gruppe.lehrer != req.user and not req.user.is_superuser:
return HttpResponse("Zugriff verweigert")
titel = f"{gruppe.name}, {gruppe.lehrer.profil.vorname} {gruppe.lehrer.profil.nachname}"
protokoll = Protokoll.objects.filter(user__gruppe = gruppe) # alle Protokollobjekte der Gruppe
if req.method == 'POST':
auswahl = form_filter(req.POST)
#tag = tag_wahl(req.Post)
filter = auswahl.fields['auswahl'].choices
auswahl_liste = dict(filter)
if auswahl.is_valid():
auswahl = auswahl.cleaned_data['auswahl']
print(auswahl)
protokoll = protokoll_zeit_filter(protokoll, auswahl)
wahl = auswahl_liste[auswahl]
print(wahl)
Ich habe es auch mit einem formset probiert:
Code: Alles auswählen
class FilterForm(forms.Form):
auswahl = forms.ChoiceField(label='entweder hier einen Filter', choices=[("Halbjahr",'aktuelles Halbjahr'),('Woche','Woche'), ("Schuljahr",'aktuelles Schuljahr'), ('heute','heute'), ("all",'Alle Aufgaben'),("next",'nächstes Halbjahr'), ])
aufgaben_seit = forms.DateField(label='...oder Aufgaben seit', widget = forms.SelectDateWidget())
Code: Alles auswählen
<h2 style= "text-align: left;">
<form action="{% url 'gruppe_uebersicht' gruppe_id %}" method="POST">
{% csrf_token %}
{%for form in formset%}
{{form}}
<input type="submit" value="anwenden">
{%endfor%}
</form>
</h2>