Ejemplo n.º 1
0
    def get(self, request):
        ff = forms.filtertab()

        # print ff

        return render (request,
                       'klausurensammlung/filtertab.html',
                        {'form': ff})
Ejemplo n.º 2
0
    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