示例#1
0
 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()
示例#2
0
 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.",
             )