def init_katalog(self, kategorien): self.katalog = {} for kdata in kategorien: #print 'KDATA', kdata k = Kategorie() code = kdata[0] k.init(code=code, name=kdata[1], dok=len(kdata) > 2 and kdata[2] or '', flag=code in self.bereichskategorien and 1 or 0, codes=[] ) self.katalog[code] = k
def create_new_kategorien(new_table, merkmals_datei): """Erstelle eine Liste der Kategorien und eine Liste der Codes, die für new_table benötigt werden, aber noch nicht in der Datenbank sind. """ needed = [f.kat_code for f in new_table.fields if f.kat_code] needed.append('jghag') # Altersgruppe in keinem Feld existing = [k['code'] for k in KategorieList(where='')] needed_and_not_existing = [k for k in needed if k not in existing] merkmale = {} execfile(merkmals_datei, merkmale) kategorie_zeilen = merkmale['kategorie_list_str'].strip().split('\n') kategorien = [k.strip().split(';') for k in kategorie_zeilen] code_zeilen = merkmale['code_list_str'].strip().split('\n') codes = [c.strip().split(';') for c in code_zeilen] #print kategorien #print codes needed_kategorien = [k for k in kategorien if k[0] in needed_and_not_existing] needed_codes = [c for c in codes if c[2] in needed_and_not_existing] #print 'KATEGORIEN', needed_kategorien #print 'CODES:', needed_codes for kat_code, kat_name in needed_kategorien: k = Kategorie() k.new() k['code'] = kat_code k['name'] = kat_name k['zeit'] = int(time()) k.insert() logging.debug("Neue Kategorie für %s: %s" % (kat_name, kat_code)) logging.info("Neue Kategorien hinzugefügt") last_kat_code = None for code_data in needed_codes: code, name, kat_code = code_data[:3] if kat_code != last_kat_code: k = Kategorie(code=kat_code) sort = 1 c = Code() c.new() c['code'] = code c['name'] = name c['kat_id'] = k['id'] c['kat_code'] = kat_code c['sort'] = sort c['off'] = 0 c['zeit'] = int(time()) if len(code_data) > 3 and code_data[3]: c['mini'] = int(code_data[3]) if len(code_data) > 4 and code_data[4]: c['maxi'] = int(code_data[4]) c.insert() sort += 1 logging.debug("Neue Code für %s: %s" % (name, code)) logging.info("Neue Codes hinzugefügt") """
def wartezeit_bereichskategorie_eintragen(self): kat_code = 'wartez' try: k = Kategorie(code=kat_code) return except: pass # Kategorie gibts noch nicht k = Kategorie() k.new() k.init( code=kat_code, name='Wartezeit zwischen Anmeldung und erster Leistung', flag=1, # ist Bereichskategorie zeit=int(time()), ) k.insert() kat_id = k['id'] logging.info("Bereichskategorie 'wartez' hinzugefuegt") assert isinstance(kat_id, (int, long)) code_data = ( ('1', 'am selben Tag', 0, 0, ), ('2', 'bis 1 Woche', 1, 7, ), ('3', 'bis 2 Wochen', 8, 14, ), ('4', 'bis 3 Wochen', 15, 21, ), ('5', 'bis 1 Monat', 22, 30, ), ('6', 'bis 3 Monate', 31, 91, ), ('7', 'bis 6 Monate', 92, 183, ), ('6', 'mehr als 6 Monate', 184, 9999, ), ) sort = 0 for code, name, mini, maxi in code_data: sort += 1 c = Code() c.new() c.init( code=code, name=name, kat_id=kat_id, kat_code=kat_code, sort=sort, off=0, zeit=int(time()), mini=mini, maxi=maxi, ) assert c['kat_code'] == kat_code == k['code'] == 'wartez' c.insert() logging.info("Code fuer 'wartez' hinzugefuegt: code=%s name=%s" % (code, name))