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)
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)