Exemplo n.º 1
0
    def constructAccordion (self, request):

        # wie ueblich zunaechst eine Uberblick ueber Zusagen, gefiltert

        pp(self.ff.cleaned_data)
        
        qs = standardfilters (Zusage.objects.all(),
                              [('Fachgebiet', 'fachgebiet__kuerzel__exact'),
                               ('Wertigkeit', 'wertigkeit__wertigkeit__exact'),],
                              self.ff.cleaned_data)

        print qs
        
        overviewtab = tables.ZusagenTable (qs)
        RequestConfig (request).configure(overviewtab)

        a = accordion.Accordion ("Zusagen insgesamt")
        a.addContent (overviewtab)

        self.renderDir['Accordion'].append(a)


        ########################################


        # Zusagen nach Wertigkeit gruppiert ausgeben
        tgWertigkeit = TimelineGroups(qs, 'wertigkeit', Stellenwertigkeit, 'wertigkeit')
        tgWertigkeit.asAccordion ("Zusagen, nach Wertigkeit gruppiert",
                                  self.renderDir, request)
        
        ########################################


        ## # Zusagen, nach Fachgebiet gruppiert
        ## # Achtung, das ist sinnlos!
        ## # Man könnte das höchstens mit Personalpunkten gewichten  - TODO!! 
        ## tgFachgebiet = TimelineGroups(qs, 'fachgebiet')
        ## tgFachgebiet.asAccordion ("Zusagen, nach Fachgebiet gruppiert",
        ##                           self.renderDir, request)

        ########################################

        # Zusagen nach Wertigkeit gruppiert ausgeben - davon die entsprechenden
        # gruppierten ZuORDNUNGEN abziehen

        qsZuordnung = standardfilters (Zuordnung.objects.all(),
                                       [('Fachgebiet', 'fachgebiet__kuerzel__exact'),],
                                       self.ff.cleaned_data)
        if not self.fieldEmpty ('Wertigkeit'):
            qsZuordnung = qsZuordnung.filter (stelle__wertigkeit__wertigkeit__exact =
                                              self.ff.cleaned_data['Wertigkeit'])
        tgZuordnungWertigkeit = TimelineGroups(qsZuordnung, 'stelle__wertigkeit', Stellenwertigkeit, 'wertigkeit')
        
        tgZusagenOhneZuordnung = tgWertigkeit.subtract(tgZuordnungWertigkeit)
        tgZusagenOhneZuordnung.asAccordion ("Offene Zusagen (Zuordnungen sind abgezogen), nach Wertigkeit gruppiert",
                                            self.renderDir, request)
Exemplo n.º 2
0
    def constructAccordion (self, request):

        #  die Stellen wie üblich filtern: 
        allStellen = Stelle.objects.all()

        # alle Stellen nach Standardfilter

        # Beispiele fuer queries; Komplikation: wir gehen durch foreign keys
        # qs = allStellen.filter(wertigkeit__wertigkeit__exact='E13')
        # qs = allStellen.filter(art__stellenart__exact='Drittmittel')
        # print qs

        qs = standardfilters (allStellen,
                              [('Wertigkeit', 'wertigkeit__wertigkeit__exact'),
                               ('Art', 'art__stellenart__exact')],
                              self.ff.cleaned_data)

        print "stellen nach Filter: "
        print qs

        stellentab = tables.StellenTable (qs) 
        RequestConfig (request).configure(stellentab)

        a = accordion.Accordion ("Stellen insgesamt")
        a.addContent (stellentab)

        self.renderDir['Accordion'].append(a)

        ########################################

        # gefilterte Stellen nach Wertigkeit zusammenfassen
        tgWertigkeit = TimelineGroups (qs,'wertigkeit', Stellenwertigkeit, 'wertigkeit')
        tgWertigkeit.asAccordion ("Stellen nach Wertigkeit gruppiert",
                                  self.renderDir, request)

        #########

        # gefilterte Stellen nach Finanzierung zusammenfassen
        TimelineGroups (qs,'art', Stellenart, 'stellenart').asAccordion ("Stellen nach Finanzierung gruppiert",
                                                                         self.renderDir, request)



        ########################################

        # von den Stellen die Zusagen abziehen
        # ziehe von den Stellen die Zusagen ab.
        # Dazu erstmal die Zusagen entsprechend filtern,
        # dann ueber timelinegroups verarbeiten.
        # Da nur StellenTYPEN, aber nicht spezifischer STellen
        # zugesagt werdne, macht es keinen Sinn,
        # das individuell pro Stellen zu machen, sondern nur für
        # entsprechende Aggregierungen


        zusageQs = standardfilters (Zusage.objects.all(),
                                    [('Wertigkeit', 'wertigkeit__wertigkeit__exact'),],
                                    self.ff.cleaned_data)
        tgZusageWertigkeit = TimelineGroups (zusageQs, 'wertigkeit', Stellenwertigkeit, 'wertigkeit')
        tgWertigkeitOhneZusagen = tgWertigkeit.subtract(tgZusageWertigkeit)

        tgWertigkeitOhneZusagen.asAccordion ("Stellen nach Wertigkeit gruppiert, ZUSAGEN abgezogen",
                                             self.renderDir, request)
        
        ########################################
        # und noch mal fast das gleiche, nur jetzt die ZUORDNUNGEN abziehen, 

        qsZuordnung = standardfilters (Zuordnung.objects.all(),
                                        [],
                                       self.ff.cleaned_data)
        
        if not self.fieldEmpty('Wertigkeit'):
            qsZuordnung = qsZuordnung.filter (stelle__wertigkeit__wertigkeit__exact =
                                              self.ff.cleaned_data['Wertigkeit'])
        tgZuordnungWertigkeit = TimelineGroups(qsZuordnung, 'stelle__wertigkeit', Stellenwertigkeit, 'wertigkeit')
        

        tgWertigkeitOhneZuordnung = tgWertigkeit.subtract(tgZuordnungWertigkeit)

        tgWertigkeitOhneZuordnung.asAccordion ("Stellen nach Wertigkeit gruppiert, ZUORDNUNGEN abgezogen",
                                             self.renderDir, request)