def get(self, request): ff = forms.filtertab() # print ff return render (request, 'klausurensammlung/filtertab.html', {'form': ff})
def post(self, request): ff = forms.filtertab(request.POST) if ff.is_valid(): print "form is valid" else: print "form not valid" return render (request, 'klausurensammlung/filtertab.html', {'form': ff}) # print ff.cleaned_data if 'filter' in request.POST: ########################### # Reihe wird durch Ersteller, FAch, Stufe gefiltert qsReihe = models.Reihe.objects.all() qsSchlagwworte = models.Schlagwort.objects.all() qsFragen = models.basicFrage.objects.all() if ff.cleaned_data['Ersteller']: qsTmp = models.basicFrage.objects.filter (creator__in = ff.cleaned_data['Ersteller']) qsFragen = qsFragen & qsTmp qsReihe = qsReihe.filter(basicfrage__id__in = qsTmp).distinct() qsSchlagwworte = qsSchlagwworte.filter (basicfrage__id__in = qsTmp).distinct() if ff.cleaned_data['Fach']: qsTmp = models.basicFrage.objects.filter (fach__in = ff.cleaned_data['Fach']) qsFragen = qsFragen & qsTmp qsReihe = qsReihe.filter(basicfrage__in = qsTmp).distinct() qsSchlagwworte = qsSchlagwworte.filter (basicfrage__id__in = qsTmp).distinct() if ff.cleaned_data['Stufe']: qsTmp = models.basicFrage.objects.filter (stufe__in = ff.cleaned_data['Stufe']) qsFragen = qsFragen & qsTmp qsReihe = qsReihe.filter(basicfrage__id__in = qsTmp).distinct() qsSchlagwworte = qsSchlagwworte.filter (basicfrage__id__in = qsTmp).distinct() if ff.cleaned_data['Reihe']: qsTmp = models.basicFrage.objects.filter (reihe__in = ff.cleaned_data['Reihe']) qsFragen = qsFragen & qsTmp qsSchlagwworte = qsSchlagwworte.filter (basicfrage__id__in = qsTmp).distinct() # and now find the actual questions qsSt = models.StandardFrage.objects.filter(id__in = qsFragen) qsMC = models.MCFrage.objects.filter(id__in = qsFragen) # add in all the questions, reihe, schlagworte that had already been selected if ff.cleaned_data['Reihe']: qsReihe = qsReihe | models.Reihe.objects.filter(id__in = ff.cleaned_data['Reihe']).distinct() if ff.cleaned_data['Schlagworte']: qsSchlagwworte = qsSchlagwworte | models.Schlagwort.objects.filter(id__in = ff.cleaned_data['Schlagworte']).distinct() if ff.cleaned_data['stfragenliste']: qsSt = qsSt | models.StandardFrage.objects.filter(id__in = ff.cleaned_data['stfragenliste']) if ff.cleaned_data['mcfragenliste']: qsMC = qsMC | models.MCFrage.objects.filter(id__in = ff.cleaned_data['mcfragenliste']) ################################## # put these QSs into the form fields ff.fields['Schlagworte'].queryset = qsSchlagwworte ff.fields['Reihe'].queryset = qsReihe ff.fields['stfragenliste'].queryset = qsSt ff.fields['mcfragenliste'].queryset = qsMC return render (request, 'klausurensammlung/filtertab.html', {'form': ff}) elif 'klausur' in request.POST: return redirect ('/klausurensammlung/makePDF/st=%s/mc=%s/' % (','.join([str(x.pk) for x in ff.cleaned_data['stfragenliste']]), ','.join([str(x.pk) for x in ff.cleaned_data['mcfragenliste']]))) pass