def stat_ausgabe(self, res, liste, item_auswahl): """Ausgabe der Fachstatistik für die verschiedenen Abfragen. Parameter res ist eine Liste, an die HTML-Strings angehängt werden. Die Strings sind <tr>-Elemente. """ if not liste: raise EE("Keine Datensätze") auszaehlungen = [] session_key = self.__class__.__name__ liste0 = liste1 = None if isinstance(liste[0], tuple): liste0 = [el[0] for el in liste] liste1 = [el[1] for el in liste] listen = [l for l in (liste, liste0, liste1) if l] if 'teilmengen' in item_auswahl: auszaehlungen += self.get_teilmengen_auszaehlungen(listen[0], session_key) if 'regional' in item_auswahl: auszaehlungen += self.get_regional_auszaehlungen( liste0 and liste0 or liste, session_key) for list in listen: klass_name = list[0].__class__.__name__ if 'fs_gesamt' in item_auswahl: if klass_name == 'Fachstatistik': auszaehlungen += self.get_fachstatistik_auszaehlungen(list, session_key) if 'jgh_gesamt' in item_auswahl: if klass_name == 'Jugendhilfestatistik': auszaehlungen += self.get_jgh_auszaehlungen(list, session_key) if klass_name == 'Jugendhilfestatistik2007': auszaehlungen += self.get_jgh07_auszaehlungen(list, session_key) ## if not plraum_tabelle: ## # In der Regel das letzte Element löschen ## del auszaehlungen[-1] self.session.data[session_key] = {} # alle früheren in der Session löschen # im session-Objekt ablegen for a in auszaehlungen: if not isinstance(a, Ueberschrift): self.session.data[session_key][a.id] = a # Menu res.append(jghstat_menue_head_t) res.append(jghstat_menue_t % ("top","- Gehe zu ...")) for a in auszaehlungen: res.append(jghstat_menue_t % (a.identname, a.title)) res.append(jghstat_menue_end_t) # Ergebnistabellen mit links auf Einzeltabelle und Chart hinzufügen for a in auszaehlungen: if isinstance(a, Ueberschrift): a.ueberschrift_einfuegen(res) else: erg = auszergebnis() erg.auszaehlung = a erg.add_tabelle(res)
def stat_ausgabe(self, res, liste, item_auswahl, anzeige_gg, query): """Ausgabe der Fachstatistik für die verschiedenen Abfragen. Parameter res ist eine Liste, an die HTML-Strings angehängt werden. Die Strings sind <tr>-Elemente. Die Auszählungsergebnisse, die textuelle Beschreibung der Abfrage (anzeige_gg) und das query-Objekt werden in der Session gespeichert, so dass sie für weitere Abfragen zur Verfügung stehen. """ if not liste: raise EE("Keine Datensätze") auszaehlungen = [] session_key = self.__class__.__name__ liste0 = liste1 = None if isinstance(liste[0], tuple): liste0 = [el[0] for el in liste] liste1 = [el[1] for el in liste] listen = [l for l in (liste, liste0, liste1) if l] if 'teilmengen' in item_auswahl: auszaehlungen += self.get_teilmengen_auszaehlungen(listen[0], session_key) if 'regional' in item_auswahl: auszaehlungen += self.get_regional_auszaehlungen( liste0 and liste0 or liste, session_key) for list in listen: klass_name = list[0].__class__.__name__ if 'fs_gesamt' in item_auswahl: if klass_name == 'Fachstatistik': auszaehlungen += self.get_fachstatistik_auszaehlungen(list, session_key) if 'jgh_gesamt' in item_auswahl: if klass_name == 'Jugendhilfestatistik': auszaehlungen += self.get_jgh_auszaehlungen(list, session_key) if klass_name == 'Jugendhilfestatistik2007': auszaehlungen += self.get_jgh07_auszaehlungen(list, session_key) ## if not plraum_tabelle: ## # In der Regel das letzte Element löschen ## del auszaehlungen[-1] self.session.data[session_key] = {} # alle früheren in der Session löschen self.session.data[session_key]['seq'] = [] # Liste mit auszählungen, so dass Ergebnisse in der # richtigen Reihenfolge ausgegeben werden können # im session-Objekt ablegen seq = self.session.data[session_key]['seq'] for a in auszaehlungen: if not isinstance(a, Ueberschrift): self.session.data[session_key][a.id] = a seq.append(a) # fuer die druckfreundliche Ausgabe self.session.data[session_key]['query'] = query self.session.data[session_key]['anzeige_gg'] = anzeige_gg self.session.data[session_key]['anzahl'] = len(liste) # siehe statistik_ergebnis.auszergebnis.add_tabelle taball_url = "newXX auszergebnis?typ=taball&session_key=%s" % (session_key,) csvall_url = "newXX auszergebnis?typ=csvall&session_key=%s" % (session_key,) menu = h.FieldsetInputTable( legend='Auswahlmenü', daten=[[h.SelectGoto(name='Auswahl', options='<option value="#top">- Gehe zu ...</option>\n' + '\n'.join([ '<option value="#%s">%s' % (a.identname, a.title) for a in auszaehlungen])), h.Button(value="Drucken", tip="Druckfreundliche Ausgabe aller Tabellen", onClick="go_to_url('%s')" % taball_url, ), h.Button(value="CSV-Datei", tip="Alle Daten im CSV-Format für die Tabellenkalkulation exportieren", onClick="go_to_url('%s')" % csvall_url, ), ]]) res.append(menu.display()) # Ergebnistabellen mit links auf Einzeltabelle und Chart hinzufügen for a in auszaehlungen: if isinstance(a, Ueberschrift): a.ueberschrift_einfuegen(res) else: erg = auszergebnis() erg.auszaehlung = a erg.add_tabelle(res)