def processForm(self, REQUEST, RESPONSE): #print self.form alter = self.form.get('alter') if alter == None: alter = config.LOESCHFRIST else: alter = check_int_not_empty( self.form, 'alter', 'Fehler im Alter in Monaten') if alter < config.LOESCHFRIST: raise EE('Löschfrist beträgt mindestens %s Monate' % config.LOESCHFRIST) aufbew = self.form.get('aufbew') if aufbew == None: aufbew = cc('aufbew', '1') else: aufbew = check_code(self.form, 'aufbew', 'aufbew', 'Fehler in Aufbewahrungskategorie') op = self.form.get('op') rm = check_list(self.form, 'rmak', 'Fehler in markierten Akten', '') if op == 'Endgültig löschen' and rm: hidden = [('rmak', r) for r in rm] + [('op', 'loeschen_confirmed')] return h.SubmitOrBack( legend='Endgültig löschen', action='rmakten2', method='post', hidden=hidden, zeilen=("Sollen die markierten Akten endgültig gelöscht werden?", ) ).display() alter_und_kategorie = h.FieldsetFormInputTable( name="rmaktenanzeigen", action="rmakten", method="post", hidden = (), legend='Alter und Kategorie der zu löschenden Akten wählen', daten=[[h.SelectItem(label='Aufbewahrungskategorie', name='aufbew', options=self.for_kat('aufbew', sel=aufbew or cc('aufbew', '1')), ), h.TextItem(label='Monate seit Abschluss des letzten Falls', name='alter', value=alter or '', class_='textboxsmall', maxlength=3, tip='Mindesanzahl der Monate seit Abschluss des letzten Falls' ), ], [h.Dummy(n_col=4)], [h.Button(value="Anzeigen", name='op', tip="Akten der gewählten Kategorie und des gewählten Alters anzeigen", type='submit', n_col=4, ), ], ], ) if alter and aufbew: rmdatum = today().add_month(-(alter+1)) # damit immer mindestens die Anzahl Monate # dazwischen liegt #print 'LOESCHDATUM', rmdatum alle_faelle = FallList( where = 'zday <= %(year)s and zdam <= %(month)s and zday > 0' % rmdatum) faelle = [f for f in alle_faelle if f == f['akte__letzter_fall'] and aufbew == f['akte__aufbew']] akten = h.FieldsetFormDataTable( name="rmakten", #action="abfragedef", action="rmakten", method="post", hidden = (), legend='Akten zum löschen auswählen (Statistiken bleiben erhalten)', headers=('Name', 'Vorname', 'Geburtsdatum', 'Letzter Fallabschluss', '', 'Löschen'), daten=[[h.String(string=fall['akte__na']), h.String(string=fall['akte__vn']), h.String(string=fall['akte__gb']), h.Datum(date=fall.getDate('zda')), h.CheckItem(label='', name='rmak', value=fall['akte_id'], checked=False, tip='Hier markieren, um die Akte endgültig zu löschen', ), ] for fall in faelle], no_button_if_empty=True, button=h.Button(value="Endgültig löschen", name='op', tip="Markierte endgültig Akten löschen", type='submit', class_='buttonbig', n_col=6, ), empty_msg="Keine Akten gefunden.", ) else: akten = None res = h.Page( title='Akten löschen nach Ablauf der Löschfrist', breadcrumbs = (('Aministratorhauptmenü', 'menu'), ), rows=(self.get_hauptmenu(), alter_und_kategorie, akten, ), ) return res.display()
def processForm(self, REQUEST, RESPONSE): #print self.form alter = self.form.get('alter') if alter == None: alter = config.LOESCHFRIST else: alter = check_int_not_empty( self.form, 'alter', 'Fehler im Alter in Monaten') if alter < config.LOESCHFRIST: raise EE('Löschfrist beträgt mindestens %s Monate' % config.LOESCHFRIST) aufbew = self.form.get('aufbew') if aufbew == None: aufbew = cc('aufbew', '1') else: aufbew = check_code(self.form, 'aufbew', 'aufbew', 'Fehler in Aufbewahrungskategorie') op = self.form.get('op') rm = check_list(self.form, 'rmak', 'Fehler in markierten Akten', '') if op == 'Endgültig löschen' and rm: hidden = [('rmak', r) for r in rm] + [('op', 'loeschen_confirmed')] return h.SubmitOrBack( legend='Endgültig löschen', action='rmakten2', method='post', hidden=hidden, zeilen=("Sollen die markierten Akten endgültig gelöscht werden?", ) ).display() alter_und_kategorie = h.FieldsetFormInputTable( name="rmaktenanzeigen", action="rmakten", method="post", hidden = (), legend='Alter und Kategorie der zu löschenden Akten wählen', daten=[[h.SelectItem(label='Aufbewahrungskategorie', name='aufbew', options=self.for_kat('aufbew', sel=aufbew or cc('aufbew', '1')), ), h.TextItem(label='Monate seit Abschluss des letzten Falls', name='alter', value=alter or '', class_='textboxsmall', maxlength=3, tip='Mindesanzahl der Monate seit Abschluss des letzten Falls' ), ], [h.Dummy(n_col=4)], [h.Button(value="Anzeigen", name='op', tip="Akten der gewählten Kategorie und des gewählten Alters anzeigen", type='submit', n_col=4, ), ], ], ) if alter and aufbew: rmdatum = today().add_month(-(alter+1)) # damit immer mindestens die Anzahl Monate # dazwischen liegt #print 'LOESCHDATUM', rmdatum #alle_faelle = FallList( # where = 'zday <= %(year)s and zdam <= %(month)s and zday > 0' # % rmdatum) alle_faelle = FallList( where = '(zday < %(year)s or (zday = %(year)s and zdam <= %(month)s)) and zday > 0' % rmdatum, order = 'zday, zdam, zdad') # Hier gab es einen Fehler (in Reinickendorf): # AttributeError: Could not resolve field 'akte__letzter_fall' for instance of 'Fall' # Daher wurde nichts zum löschen angezeigt # faelle = [f for f in alle_faelle # if f == f['akte__letzter_fall'] and aufbew == f['akte__aufbew']] faelle = [] for f in alle_faelle: try: if f == f['akte__letzter_fall'] and aufbew == f['akte__aufbew']: faelle.append(f) except Exception, e: t = sys.exc_info()[0] logging.exception("Interner Fehler: %s: %s", t, e) logging.exception(" Falle ohne Akte? fall_id=%s" % f['id']) akten = h.FieldsetFormDataTable( name="rmakten", #action="abfragedef", action="rmakten", method="post", hidden = (), legend='Akten zum löschen auswählen (Statistiken bleiben erhalten)', headers=('Fallnummer', 'Name', 'Vorname', 'Geburtsdatum', 'Letzter Fallabschluss', '', 'Löschen'), daten=[[h.String(string=fall['fn']), h.String(string=fall['akte__na']), h.String(string=fall['akte__vn']), h.String(string=fall['akte__gb']), h.Datum(date=fall.getDate('zda')), h.CheckItem(label='', name='rmak', value=fall['akte_id'], checked=False, tip='Hier markieren, um die Akte endgültig zu löschen', ), ] for fall in faelle], no_button_if_empty=True, button=h.Button(value="Endgültig löschen", name='op', tip="Markierte endgültig Akten löschen", type='submit', class_='buttonbig', n_col=6, ), empty_msg="Keine Akten gefunden.", )