def processForm(self, REQUEST, RESPONSE): # Das Formular ist 1 Fall oder 1 Gruppe zugeordnet. gruppeid = self.form.get('gruppeid') fallid = self.form.get('fallid') dokid = self.form.get('dokid') if not dokid: self.last_error_message = "Keine ID fuer Dokument erhalten" return self.EBKuSError(REQUEST, RESPONSE) if gruppeid: dok = Gruppendokument(dokid) file='updgrvermeinf' gruppe_path = get_gruppe_path(int(gruppeid)) fname = os.path.join(gruppe_path, dok['fname']) elif fallid: file='updvermeinf' dok = Dokument(dokid) fall = Fall(fallid) fname = os.path.join(get_akte_path(fall['akte__id']), dok['fname']) else: self.last_error_message = "Keine ID fuer Gruppe oder Fall erhalten" return self.EBKuSError(REQUEST, RESPONSE) if not is_binary(dok): dok['text'] = open(fname, 'r').read() return self._edit_dokument(title='Dokument bearbeiten', file=file, dok=dok, )
def dokkarte_display(self, akid, fallid = None, mitid=None): "Darstellung der Dokumentenkarte." if not akid and fallid: fall = Fall(fallid) akte = Akte(fall['akte_id']) else: akte = Akte(int(akid)) faelle = akte['faelle'] faelle.sort('bgy', 'bgm', 'bgd') # Aktueller bzw. letzter Fall, Wiederaufnehmbarkeit letzter_fall = akte['letzter_fall'] aktueller_fall = akte['aktueller_fall'] res = [] res.append(head_normal_t %("Dokumentenindex der Akte")) res.append(dokkarte_start_t1) if aktueller_fall: res.append(menuedok_t % aktueller_fall) else: res.append(menuedokzda_t % letzter_fall) res.append(dokausgabe1_t % ('Aktendokumente der Akte %(vn)s %(na)s' %akte)) for f in faelle: dokl = DokumentList(where = 'fall_id = %s' % (f['id']), order = 'vy,vm,vd') aktendokl = [] for d in dokl: if d['art'] != cc('dokart', 'bnotiz'): aktendokl.append(d) for a in aktendokl: if aktueller_fall: if is_binary(a['mtyp']): res.append(dokausgabe2_ohne_edit_t % a) else: res.append(dokausgabe2_mit_edit_t % a) else: res.append(dokausgabe2b_t % a) res.append(dokausgabe3_t) res.append(dokausgabe1_t % ('Beraternotizen der Akte %(vn)s %(na)s' %akte)) for f in faelle: beraternotizen = DokumentList(where = 'fall_id = %s and art = %s and mit_id = %s'% (f['id'], cc('dokart', 'bnotiz'), self.mitarbeiter['id']), order = 'vy,vm,vd') for b in beraternotizen: if aktueller_fall: if is_binary(b['mtyp']): res.append(dokausgabe2_ohne_edit_t % b) else: res.append(dokausgabe2_mit_edit_t % b) else: res.append(dokausgabe2b_t % b) res.append(dokausgabe3_t) if beraternotizen or aktendokl: res.append(dokausgabe1_t % ('Printausgabe')) if aktendokl and aktueller_fall: res.append(dokausgabe5_t % aktueller_fall) elif aktendokl and letzter_fall: res.append(dokausgabe5_t % letzter_fall) if beraternotizen and aktueller_fall: res.append(dokausgabe4_t % aktueller_fall) elif beraternotizen and letzter_fall: res.append(dokausgabe4_t % letzter_fall) res.append(dokausgabe6_t) ##************************************************************************* ## Entfernt wegen UNIX Kommando agrep. Funktioniert nicht unter Win ## ## MastaleckT 08.03.2002 ##************************************************************************* #res.append(dokausgabe7a_t % ('Suche in den Texten', '')) #if aktueller_fall: # res.append(formhiddennamevalues_t % ({'name' : 'fallid' , # 'value' : aktueller_fall['id']})) #elif letzter_fall: # res.append(formhiddennamevalues_t % ({'name' : 'fallid' , # 'value' : letzter_fall['id']})) #res.append(dokausgabe7b_t) res.append(dokkarte_ende_t) return string.join(res, '')
def _edit_dokument(self, title, file, dok, ): #print '_EDIT_DOKUMENT', file, dok fall_id = dok.get('fall_id') if fall_id: fall = Fall(fall_id) hidden_val = ('fallid', fall_id) else: fall = None gruppe = Gruppe(dok['gruppe_id']) hidden_val = ('gruppeid', gruppe['id']) new = file in ('dokeinf', 'dokgreinf', 'uploadeinf', 'uploadgreinf') upload = file in ('uploadeinf', 'uploadgreinf') meta = h.FieldsetInputTable( legend='Betreff, Art, Datum', daten=[[h.SelectItem(label='Art des Dokuments', name='art', options=self.for_kat('dokart', sel=dok['art']), ), h.DatumItem(label='Datum', name='v', date=dok.getDate('v'), ), ], [h.TextItem(label='Betreff', name='betr', value='%(betr)s' % dok, class_='textboxverylarge', n_col=4, ), ], ], ) if upload: inp = h.FieldsetInputTable( legend='Datei importieren', daten=[[h.UploadItem(label='Lokaler Dateiname', name='datei', tip='Lokale Datei hochladen', class_='textboxlarge', ), ]], ) elif not is_binary(dok): inp = h.FieldsetInputTable( legend='Inhalt', daten=[[h.TextareaItem(label_width='122pt', name='text', value=dok['text'], rows='10', cols='70', class_='textareaverylarge', tip='Text schreiben oder einfügen', ), ]], ) else: inp = None if fall: breadcrumbs = (('Hauptmenü', 'menu'), ('Klientendokumente', 'kldok?fallid=%(id)s' % fall), ) else: breadcrumbs = (('Hauptmenü', 'menu'), ('Gruppenmenü', 'menugruppe'), ('Gruppendokumente', 'grdok?gruppeid=%(id)s' % gruppe), ) ## help={'uploadeinf': 'dateiimport', ## 'uploadgreinf': 'dateiimport', ## # etc ## }[file], res = h.FormPage( title=title, # TODO hier müssen neue Kapitel rein, oder nachsehen breadcrumbs=breadcrumbs, #help=help, name='dokform', action=fall and 'kldok' or 'grdok', method='post', hidden=(('file', file), ('dokid', dok['id']), ('mitid', dok['mit_id']), hidden_val, ), rows=(fall and self.get_klientendaten_kurz(fall) or self.get_gruppendaten_kurz(gruppe), meta, inp, h.SpeichernZuruecksetzenAbbrechen(), ), ) return res.display()
def gruppenkarte_display(self, gruppeid, mitid=None): "Darstellung der Gruppenkarte." gruppe = Gruppe(gruppeid) bezugspersonen = gruppe['bezugspersonen'] bezugspersonen.sort('bezugsp_id__na','bezugsp_id__vn') faelle = gruppe['faelle'] faelle.sort('fall_id__akte_id__na','fall_id__akte_id__vn') dokl = GruppendokumentList(where = 'gruppe_id = %s' % (gruppe['id']), order = 'vy,vm,vd') beraternotizen = GruppendokumentList(where = 'gruppe_id = %s and art = %s and mit_id = %s' % (gruppe['id'], cc('dokart', 'bnotiz'), self.mitarbeiter['id']), order = 'vy,vm,vd') res = [] res.append(head_normal_t %("Dokumentenindex der Gruppe")) res.append(gruppenkarte_t1) res.append(gruppe_menu_t % gruppe) aktendokl = [] for d in dokl: if d['art'] != cc('dokart', 'bnotiz'): aktendokl.append(d) res.append(dokausgabe1_t % ('Gruppenakte der Gruppe %(name)s' %gruppe)) if aktendokl: for a in aktendokl: if is_binary(a['mtyp']): res.append(dokausgabe2b_ohne_edit_t % a) else: res.append(dokausgabe2b_mit_edit_t % a) res.append(dokausgabe3_t) res.append(dokausgabe1_t % ('Beraternotizen')) if beraternotizen: for b in beraternotizen: if is_binary(b['mtyp']): res.append(dokausgabe2b_ohne_edit_t % b) else: res.append(dokausgabe2b_mit_edit_t % b) res.append(dokausgabe3_t) res.append(dokausgabe1_t % ('Teilnehmerliste')) if bezugspersonen or faelle: for f in faelle: fall = Fall(f['fall_id']) akte = Akte(fall['akte_id']) res.append(teiln1_t % akte) res.append(teiln2_t % f) for b in bezugspersonen: bezugsp = Bezugsperson(b['bezugsp_id']) res.append(teiln1b_t % bezugsp) res.append(teiln2b_t % b) res.append(teiln3_t) res.append(dokausgabe1_t % ('Printausgabe')) if beraternotizen or aktendokl: if aktendokl: res.append(dokausgabe5b_t % gruppe ) if beraternotizen: res.append(dokausgabe4b_t % gruppe ) res.append(dokausgabe6_t) ##************************************************************************* ## Entfernt wegen UNIX Kommando agrep. Funktioniert nicht unter Win ## ## MastaleckT 08.03.2002 ##************************************************************************* #if dokl: # res.append(formhiddennamevalues_t % ({'name' : 'gruppeid' , # 'value' : gruppeid})) # res.append(dokausgabe7_t % ('Suche in den Texten', '')) res.append(gruppenkarte_ende_t) return string.join(res, '')