def _hauptmenu_admin(self): mitarbeiter = h.FieldsetInputTable( legend='Mitarbeiter', daten=[[h.Button(value='Bearbeiten', onClick="go_to_url('mitausw')", tip="Merkmale von Mitarbeitern bearbeiten", ), h.Button(value='Neu', onClick="go_to_url('mitneu')", tip="Neuen Mitarbeiter eintragen", ), ]], ) akten = h.FieldsetInputTable( legend='Akten', daten=[[h.Button(value='Löschen/Datenschutz', onClick="go_to_url('rmakten')", tip="Löschen von Akten nach Ablauf der Löschfrist", class_="buttonbig", ), h.Button(value='Altdaten importieren', onClick="go_to_url('altimport')", tip="Importieren von Klientendaten aus früheren Systemen", class_="buttonbig", ), ], [h.Button(value='Löschen/Fehlerkorrektur', onClick="go_to_url('rmaktenf')", tip="Löschen von fehlerhaften Fällen und Akten", class_="buttonbig", ), h.DummyItem(), ]], ) bundesstatistik = h.FieldsetInputTable( legend='Bundesstatistik', daten=[[h.Button(value='Exportieren', onClick="go_to_url('formabfrjghexport')", tip="Bundesstatistik im amtlichen Format erstellen", ), h.Button(value='Download', onClick="go_to_url('jghexportlist')", tip="Bundesstatistik herunterladen", ), ]], ) fachstatistik = h.FieldsetInputTable( legend='Fachstatistik', daten=[[h.Button(value='Konfigurieren', onClick="go_to_url('fskonfig')", tip="Fachstatistik konfigurieren", ), ]], ) # Tabellen, die Kategorien verwenden klassen = [t['klasse'] for t in TabelleList(where='feld.kat_id IS NOT NULL', join=[('feld', 'tabelle.id=feld.tab_id')]).sorted('klasse')] options = '<option value="nothing">[Tabelle auswählen]</option>\n' options += '<option value="codelist?tbl=Alle">Alle Tabellen</option>\n' options += '\n'.join(['<option value="codelist?tbl=%s">%s</option>' % (kln,kln) for kln in klassen]) tip = "Merkmalskataloge der gewählten Tabelle bearbeiten" merkmalskataloge = h.FieldsetFormInputTable( legend='Merkmalskataloge bearbeiten', daten=[[h.String(string="der Tabelle:", class_="labeltext", tip=tip, ), h.SelectGoto(name='tbl', tip=tip, options=options), ]], ) strassenkatalog = h.FieldsetInputTable( legend='Straßenkatalog', daten=[[h.Button(value='Importieren', onClick="go_to_url('strkatimport')", tip="Straßenkatalog aus einer CSV-Datei importieren", ), h.Button(value='Exportieren', onClick="go_to_url('strkatexport')", tip="Straßenkatalog als CSV-Datei exportieren", ), ]], ) if config.SQL_ABFRAGE: sql_abfrage = h.FieldsetInputTable( legend='SQL Abfragen', daten=[[h.Button(value='Abfragen', onClick="go_to_url('sql_abfrage')", tip="Ergebnis einer SQL-Abfrage als CSV-Datei herunterladen", ), ]], ) else: sql_abfrage = None from ebkus.app.protocol import is_on if is_on(): from ebkus.app.protocol import get_protocol_limit grenze = get_protocol_limit() protokoll = h.FieldsetFormInputTable( legend='Protokoll', name="fuellgrenze", action="admin_protocol", method="post", hidden = (('auswahl', 'pgrenze'), ), daten=[[h.Button(value='Archivieren', onClick="go_to_url('admin_protocol?auswahl=archiv')", tip="Protokolldatensätze archivieren", ), h.DummyItem(), h.TextItem(label='Füllgrenze', tip="Max. Größe der Protokolltabelle vor automatischer Archivierung", name='grenze', value=grenze, maxlength=9, class_='textbox52', ), h.Button(value='Speichern', type='submit', tip="Füllgrenze speichern", ), ]], ) else: protokoll = None res = h.Page( title='Administratorhauptmenü', help="das-hauptmen", breadcrumbs = ((),), rows=(self.get_abmelden_pw(), h.Pair(left=mitarbeiter, right=akten, ), h.Pair(left=bundesstatistik, right=fachstatistik, ), h.Pair(left=merkmalskataloge, right=strassenkatalog, ), h.Pair(left=sql_abfrage, right='', ), protokoll, ), ) return res.display()
def processForm(self, REQUEST, RESPONSE): # Formulardaten holen archivfiles = os.listdir(config.PROTOCOL_DIR) protokolleintrag = self.form.get('protokolleintrag') von_id = self.form.get('von_id') bis_id = self.form.get('bis_id') archivdatei = self.form.get('archiv_datei') protocolanaus = self.form.get('protocolanaus') # toggle Protokoll an/aus if protocolanaus == 'protocolanaus': if protocol.is_on(): protocol.off() anaustext = 'aus' else: protocol.on() anaustext = 'an' meldung = { 'titel':'Prokollierung', 'legende':'Protokollierung', 'url':'menu_protocol', 'zeile1':'Folgende Änderungen wurden durchgeführt:', 'zeile2':'Die Protokollierung wurde %sgeschaltet' % anaustext } return meldung_weiterleitung_t % meldung res = [] res.append(head_normal_ohne_help_t % ('Protokollansicht/-bearbeitung')) # Einzelanzeige if protokolleintrag: res.append(singleprotocolview_head_t) protokolleintraege = self.get_protokoll_eintraege(id_list=protokolleintrag) for p in protokolleintraege: res.append(singleprotocolview_mid_t % p) res.append(singleprotocolview_end_t) return ''.join(res) # Archivdatei anzeigen if archivdatei: # für Datumskonvertierung tmp_yek = "2001.12.31" archivfile = os.path.join(config.PROTOCOL_DIR, archivdatei) rot = rotor.newrotor(tmp_yek) fdatei1 = open(archivfile, "rb") line = fdatei1.readline() res.append(dateitop_t) while line: res.append( rot.decryptmore(line)) line = fdatei1.readline() res.append(dateiend_t) fdatei1.close() return ''.join(res) # Ansonsten Menu anzeigen if protocol.is_on(): anaustext = 'Aus' else: anaustext = 'An' protokolleintraege = self.get_protokoll_eintraege(von_id, bis_id) von_id = von_id or protokolleintraege and protokolleintraege[0]['nr'] or '0' bis_id = bis_id or protokolleintraege and protokolleintraege[-1]['nr'] or '0' res.append(auswahlprotocol_t % (anaustext, von_id, bis_id, self.get_max_id())) for p in protokolleintraege: res.append(protocolauswahl_t % p) res.append(protocolsubmit_t ) res.append(archivfile_head_t) files_to_sort = [(os.stat(os.path.join(config.PROTOCOL_DIR, f))[stat.ST_CTIME], f) for f in archivfiles] files_to_sort.sort() files_to_sort.reverse() for ctime, afile in files_to_sort: dateides = os.stat(os.path.join(config.PROTOCOL_DIR, afile)) dateigroesse = dateides[6] local_time_tupel = time.localtime(ctime) dateitime =time.strftime("%d.%m.%y um %H:%M:%S", local_time_tupel) local_time_tupel = time.localtime(dateides[8]) # ST_MTIME dateitime2 =time.strftime("%d.%m.%y um %H:%M:%S", local_time_tupel) res.append(archivfile_mid_t % ("archiv_datei", afile, afile, dateigroesse, dateitime, dateitime2)) res.append(archivfile_end_t) return ''.join(res)