def read_data(self, f): #print 'FILE: ', f, type(f) data = [] feldnamen = self.get_altdaten_felder()[1:] size = len(feldnamen) reader = csv.reader(f.readlines(), delimiter=';', doublequote=True, quotechar='"', ) try: erste_zeile = reader.next() except StopIteration: self.csv_lese_fehler("Keine Daten gefunden") #print 'ERSTE_ZEILE: ', erste_zeile if size != len(erste_zeile): self.csv_lese_fehler("Anzahl der Feldnamen in der ersten Zeile stimmt nicht", 1, erste_zeile) for ist, soll in zip(erste_zeile, feldnamen): if ist != soll: self.csv_lese_fehler("Erste Zeile mit den Feldnamen stimmt nicht " "mit Feldnamen überein", 1, erste_zeile) for i, row in enumerate(reader): #print 'ZEILE: ', row if size != len(row): self.csv_lese_fehler("Anzahl der Felder in Zeile %(znr)s stimmt nicht", i+2, row) dic = dict(zip(erste_zeile, row)) dic = self.validate_normalize_altdaten(dic, i+2, row) dic['id'] = i+2 altd = Altdaten() altd.init(**dic) data.append(altd) return data
def fake_altdaten(self, csv_file, fields): id=Altdaten().getNewId() jahr=str(self.choose_date(Date(1999), Date(2006)).year) altd = Altdaten() altd.init( id=id, vorname=choice(self.vornamen), name=choice(self.namen), geburtsdatum=str(self.choose_date(Date(1989,3,1), today().add_month(-24))), geschlecht=choice(('m', 'w')), jahr=jahr, fallnummer=("%s%03d" % (jahr, choice(range(1,1000)))), mitarbeiter="Mitarb%s" % id, strasse=choice(self.strassen), hausnummer=str(randrange(1, 200)), plz=str(randrange(10000, 99999)), ort=choice(self.orte), telefon1=str(randrange(10001, 99999999)), telefon2=str(randrange(10001, 99999999)), memo=("Memo für Altdaten id=%s. " "äöüÄÖÜß Hier kann man noch eine Menge über den alten Fall reinschreiben. " "Auch längere Texte. " % id)[:randrange(25,150)] ) csv = ';'.join([('"%%(%s)s"' % a) % altd for a in fields]) csv_file.write(csv + '\r\n') altd.insert() log("Altdaten %s" % id) return altd
def processForm(self, REQUEST, RESPONSE): alt_ids = check_list(self.form, 'uebern', 'Fehler in Altdaten', []) if len(alt_ids) > 1: raise EE("Bitte nur einen Eintrag zur Übernahme markieren!") if alt_ids: alt = Altdaten(alt_ids[0]) else: alt = {} gs_alt = alt.get('geschlecht') if gs_alt: gs = (gs_alt=='w' and cc('gs', '2')) or (gs_alt=='m' and cc('gs', '1')) else: gs = ' ' if alt: no = "Alte Fallnummer: %(fallnummer)s, Jahr: %(jahr)s, Früherer Mitarbeiter: %(mitarbeiter)s" % alt else: no = '' str = alt.get('strasse', '') if str: for end in ('trasse', 'traße'): if str.endswith(end): i = str.index(end) str = str[:i] + 'tr.' akte = Akte() akte.init( id=Akte().getNewId(), fs=cc('fsfs', '999'), vn=alt.get('vorname', ''), na=alt.get('name', ''), gb=alt.get('geburtsdatum', ''), ort=alt.get('ort', ''), plz=alt.get('plz', ''), str=str, hsnr=alt.get('hausnummer', '').upper(), gs=gs, tl1=alt.get('telefon1', ''), tl2=alt.get('telefon2', ''), no=no, aufbew=cc('aufbew', '1'), stzbg=self.stelle['id'], lage=(config.STRASSENKATALOG and cc('lage', '0') or cc('lage', '1')), ) return self._process( title='Neue Akte anlegen', file='akteeinf', akte=akte, formname='akteform', hidden=(('stzbg', akte['stzbg']), ) )