예제 #1
0
 def processForm(self, REQUEST, RESPONSE):
     katid = self.form.get('katid')
     view = self.form.get('view')
     if not katid:
         self.last_error_message = "Keine ID fuer das Item erhalten"
         return self.EBKuSError(REQUEST, RESPONSE)
     kat = Kategorie(katid)
     code = Code()
     code.init(
         id=Code().getNewId(),
         kat_id=kat['id'],
         kat_code=kat['code'],
         code='',
         name='',
         mini=None,
         maxi=None,
         dm=None,
         dy=None,
         sort=max([c['sort'] for c in kat['codes']]) + 1,
         off=0,
         dok='',
         )
     return self._process(title='Merkmal hinzufügen',
                          file='codeeinf',
                          code=code,
                          view=view,
                          )
예제 #2
0
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")

    """
예제 #3
0
 def init_codes(self, codes_data):
     for cdata in codes_data:
         c = Code()
         code, name, kat_code = cdata[:3]
         kat = self.katalog[kat_code]
         codes = kat['codes']
         bereichs_kat = bool(kat['flag'])
         sort = len(codes) > 0 and codes[-1]['sort'] + 1 or 1
         c.init(code=code,
                name=name,
                kat_code=kat_code,
                sort=sort,
                off=0,
                flag=0,
                )
         
         if bereichs_kat and len(cdata) > 3 and cdata[3]:
             c['mini'] = int(cdata[3])
         if bereichs_kat and len(cdata) > 4 and cdata[4]:
             c['maxi'] = int(cdata[4])
         if len(cdata) > 5 and cdata[5]:
             c['dok'] = cdata[5]
         codes.append(c)
예제 #4
0
 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))
예제 #5
0
def off():
    protokoll_code = Code(kat_code='config', code='protocol')
    protokoll_code.update({'name': 'off'})
예제 #6
0
def handle_stellen_einrichtung_muster(n_stellen):
    stellen_codes = ('A', 'B', 'C', 'D')
    kreise = ('Braunschweig', 'Gifhorn', 'Wolfenbüttel', 'Wolfsburg')
    einrnr_codes = (
        ('100100', 'A_Einrichtungsnummmer'),
        ('200200', 'B_Einrichtungsnummer'),
        ('300300', 'C_Einrichtungsnummer'),
        ('400400', 'D_Einrichtungsnummer'),
        )
    CodeList(where="kat_code='einrnr'").deleteall()
    kat_code = 'einrnr'
    for i, (c, n) in enumerate(einrnr_codes):
        code = Code()
        code.init(
            kat_id=Kategorie(code=kat_code)['id'],
            kat_code=kat_code,
            code=c,
            name=n,
            sort=i+1,
            off=0,
            dok='Stelle %s; # Bei dieser Stelle steht dieses Merkmal oben' % stellen_codes[i]
            )
        code.new()
        code.insert()
            
    for i, (st, kr) in enumerate(zip(stellen_codes, kreise)):
        kr_code = Code(name=kr)
        kr_code.update({'dok': "Stelle %s; # kommt bei St. %s nach oben" % (st, st) })
    land_code = Code(name='Niedersachsen')
    land_code.update({'dok': "%s # kommt bei diesen Stellen nach oben" %
                      ' '.join([("Stelle %s;" % s) for s in stellen_codes]) })
    # umbenennen des vordefinierten Stellenzeichens
    Code(kat_code='stzei', code='A').update({'name': 'Stelle A',})
    for i in range(1, n_stellen):
        DemoDaten().fake_stelle(i, code=stellen_codes[i])