[Mpuls-commits] r386 - in wasko/trunk: . waskaweb/controllers waskaweb/lib waskaweb/templates/caselifetime
scm-commit@wald.intevation.org
scm-commit at wald.intevation.org
Tue Mar 17 20:22:49 CET 2009
Author: torsten
Date: 2009-03-17 20:22:47 +0100 (Tue, 17 Mar 2009)
New Revision: 386
Modified:
wasko/trunk/ChangeLog.txt
wasko/trunk/waskaweb/controllers/caselifetime.py
wasko/trunk/waskaweb/lib/validators.py
wasko/trunk/waskaweb/templates/caselifetime/overview.mako
Log:
Last snapshot before rc-candidate
Modified: wasko/trunk/ChangeLog.txt
===================================================================
--- wasko/trunk/ChangeLog.txt 2009-03-17 17:39:34 UTC (rev 385)
+++ wasko/trunk/ChangeLog.txt 2009-03-17 19:22:47 UTC (rev 386)
@@ -1,3 +1,14 @@
+2009-03-17 Torsten Irlaender <torsten.irlaender at intevation.de>
+
+ Last snapshot before rc-candidate
+
+ * waskaweb/controllers/caselifetime.py,
+ waskaweb/lib/validators.py,
+ waskaweb/templates/caselifetime/overview.mako: "Neuaufnahme" and
+ "Wiederaufnahme" should be basically working now. "Neuaufnahme" is
+ not complete yet. Copying data from the old into the new case is
+ still missing.
+
2009-03-17 Sascha L. Teichmann <teichmann at intevation.de>
* waskaweb/lib/helpers.py: new function toErrorDicts() which takes an
Modified: wasko/trunk/waskaweb/controllers/caselifetime.py
===================================================================
--- wasko/trunk/waskaweb/controllers/caselifetime.py 2009-03-17 17:39:34 UTC (rev 385)
+++ wasko/trunk/waskaweb/controllers/caselifetime.py 2009-03-17 19:22:47 UTC (rev 386)
@@ -2,17 +2,44 @@
import logging, sys
import traceback
import formencode
+from waskaweb.controllers.CaseBase import CasebaseController
from waskaweb.lib.base import *
+from waskaweb.lib.helpers import *
+from waskaweb.model.case import CaseFactory
+from waskaweb.model.casedocument import DataSaveException
from waskaweb.lib.validators import ExtraTimeFormValidator1, ExtraTimeFormValidator2, ReopenFormValidator1, ReopenFormValidator2, RenewFormValidator
log = logging.getLogger(__name__)
+REOPENOK_HEADER_CONFIRM = u"Fall wiederaufnehmen?"
+REOPENOK_TEXT_CONFIRM = u"Wollen Sie den Fall wiederaufnehmen? Dabei werden Teile der Abschlussbewertung in die Eingansdokumentation kopiert und die bestehende Abschluss dokumentation gelöscht."
+REOPENNOTOK_HEADER_CONFIRM = u"Nicht genehmigte Wiederaufnahme dokumentieren?"
+REOPENNOTOK_TEXT_CONFIRM = u"Sie haben keine genehmigte Wiederaufnahme! Wenn Sie fortfahren, ist keine weitere Wiederaufnahme/Verlängerung/Neuaufnahme mehr möglich"
+
+REOPENOK_SUCCESS_HEADER = u"Fallakte erfolgreich wiederaufgenommen"
+REOPENOK_SUCCESS_TEXT = u'Die Fallakte wurde erfolgreich wiederaufgenommen. Klicken Sie auf "OK", um zur "Eingangsdokumentation" der Fallakte zu gelangen.'
+
+REOPENNOTOK_SUCCESS_HEADER = u"Nicht genehmigte Wiederaufnahme dokumentiert."
+REOPENNOTOK_SUCCESS_TEXT = u'Die nicht genehmigte Wiederaufnahme wurde dokumentiert. Klicken Sie auf "OK", um zur "Eingangsdokumentation" der Fallakte zu gelangen.'
+
+RENEW_HEADER_CONFIRM = u"Fall neuaufnehmen?"
+RENEW_TEXT_CONFIRM = u"Wollen Sie den Fall wirklich neuaufnehmen? Dabei wird die aktuelle Fallakte anonymisiert und die relevanten Teile der Fallakte in eine neue Fallakte kopiert."
+
+RENEW_SUCCESS_HEADER = u"(ENTWICKLUNG) Fallakte neu aufgenommen."
+RENEW_SUCCESS_TEXT = u'Fallakte wurde erfolgreich neu aufgenommen. Klicken Sie auf "OK", um zur die neue Fallakte zu öffnen. (ACHTUNG! Dieser Bereich befindet sich aktuell noch in Entwicklung. Es wurde noch keine Daten kopiert.)'
+
+ABORT_SUCCESS_HEADER = u'Eingangsdokumentation abgebrochen.'
+ABORT_SUCCESS_TEXT = u'Die Eingangsdokumentation wurde erfolgreich abgebrochen. Die Fallakte wurde der Administration zur Löschung vorgelegt. Klicken Sie auf "OK", um zu Fallaktenübersicht zu gelangen.'
+
+ABORT_TEXT_CONFIRM = u'Wollen Sie wirklich die Eingangsdokumenetation abbrechen und die Fallakte zum Löschen freigeben? Die Fallakte steht Ihnen danach nicht mehr zur Bearbeitung zur Verfügung und wird der Administration zum Löschen vorgelegt.'
+ABORT_HEADER_CONFIRM = u'Eingangsdokumentation abbrechen?'
+
def checkcase():
end_art = g.formedTree.getData('cm_end_art')
c.casedata = g.formedTree
c.phase = session['case'].getState().getPhase()
- c.phase = 2
+ c.phase = 3
# Welche Beendigung?
c.erfolgreiche_reintegration = False
@@ -41,37 +68,37 @@
# Wurde Wiederaufnahme abgelehnt? -> alle Optionen ausblenden
if (g.formedTree.getData('cm_wiederauf_genehm_1') in (0,) \
or g.formedTree.getData('cm_wiederauf_genehm_2') in (0,)):
- disable_all = True
+ c.disable_all = True
else:
- disable_all = False
+ c.disable_all = False
# Verlängerung anzeigen
- if not disable_all and c.phase in (2,) and c.num_verlaengerung < 2:
+ if not c.disable_all and c.phase in (-1,2) and c.num_verlaengerung < 2:
c.show_verlaengerung = True
else:
c.show_verlaengerung = False
# Wiedervorlage anzeigen
- if not disable_all and c.phase in (3,4,5) and c.erfolgreiche_reintegration and c.num_wiederaufnahme < 2:
+ if not c.disable_all and c.phase in (-1,3,4,5) and (c.erfolgreiche_reintegration or c.phase == -1) and c.num_wiederaufnahme < 2:
c.show_wiedervorlage = True
else:
c.show_wiedervorlage = False
# Neuaufnahme anzeigen
- if not disable_all and c.phase in (3,4,5) and c.sonstige_beendigung and c.num_wiederaufnahme < 2:
+ if not c.disable_all and c.phase in (-1,3,4,5) and (c.sonstige_beendigung or c.phase == -1) and c.num_wiederaufnahme < 2:
c.show_neuaufnahme = True
else:
c.show_neuaufnahme = False
# Abbruch anzeigen
- if not disable_all and c.phase in (-1,0,1):
+ if not c.disable_all and c.phase in (-1,0,1):
c.show_abort = True
else:
c.show_abort = False
-class CaselifetimeController(BaseController):
+class CaselifetimeController(CasebaseController):
def index(self, id=None):
# Return a rendered template
@@ -80,6 +107,7 @@
c.form_errors = {}
c.form_result = {}
checkcase()
+ c.form_navigation = self._getFormNavigation()
return render('/caselifetime/overview.mako')
def actionMist(self):
@@ -97,19 +125,41 @@
return self.abortAction()
else:
print "Unbekannt"
- #return render('/caselifetime/overview.mako')
+ c.form_navigation = self._getFormNavigation()
+ return render('/caselifetime/overview.mako')
+ def abortcase(self, id, confirmed='0'):
+ checkcase()
+ c.form_navigation = self._getFormNavigation()
+ if confirmed == '1':
+ # mark case for deletion
+ factory = CaseFactory()
+ case = factory.loadById(session['case'].id)
+ case.setState(3)
+ c.success_for = ABORT_SUCCESS_HEADER
+ c.success_text = ABORT_SUCCESS_TEXT
+ c.url_ok = h.url_for(controller="/case_overview")
+ return render('caselifetime/dialogs/success_reopen.mako')
+ else:
+ c.confirm_for = ABORT_HEADER_CONFIRM
+ c.question = ABORT_TEXT_CONFIRM
+ c.url_yes = "/caselifetime/abortcase/%s/1" % session['case'].id
+ c.url_no = "/caselifetime/index/"
+ return render('caselifetime/dialogs/confirm_reopen.mako')
+
def abortAction(self):
checkcase()
+ c.form_navigation = self._getFormNavigation()
form_result = {}
form_errors = {}
- print "abort"
+ return self.abortcase(0)
c.form_errors = form_errors
c.form_result = form_result
return render('/caselifetime/overview.mako')
def extraTimeAction(self):
checkcase()
+ c.form_navigation = self._getFormNavigation()
form_result = {}
form_errors = {}
@@ -128,9 +178,8 @@
try:
c.casedata.setData(form_result)
return self.index()
- except Exception, err:
- traceback.print_exc(file=sys.stderr)
- print "Fehler beim Setzen der Datan %s: " % err
+ except DataSaveException, err:
+ form_result_1, form_errors = h.toErrorDicts(err.errors)
except formencode.Invalid, error:
form_result = error.value
form_errors = error.error_dict or {}
@@ -139,8 +188,104 @@
c.form_result = form_result
return render('/caselifetime/overview.mako')
+ def renew(self, id, confirmed='0'):
+ checkcase()
+ c.form_navigation = self._getFormNavigation()
+ if confirmed == '1':
+ data = {}
+ # copy old data
+ data['cm2c_t'] = unicode(c.casedata.getData('cm2c_t', ''))
+ try:
+ # create new case
+ factory = CaseFactory()
+ case = factory.createNew(data={})
+ # Füge alte params aus dem Dialog in der verwaltung hinzu und schreibe alles weg
+ params = session.get('lifetimeparams', {})
+ data['cm2c_t'] += "\r\n\r\n" + params.get('anmerkungen', '')
+ del params['anmerkungen']
+ data.update(params)
+ c.casedata.setData(data, case.id)
+ except Exception, err:
+ print err
+
+ c.success_for = RENEW_SUCCESS_HEADER
+ c.success_text = RENEW_SUCCESS_TEXT
+ c.url_ok = h.url_for(controller="/case/select/%s" % case.id)
+ return render('caselifetime/dialogs/success_reopen.mako')
+ else:
+ c.confirm_for = RENEW_HEADER_CONFIRM
+ c.question = RENEW_TEXT_CONFIRM
+ c.url_yes = "/caselifetime/renew/%s/1" % session['case'].id
+ c.url_no = "/caselifetime/index/"
+ return render('caselifetime/dialogs/confirm_reopen.mako')
+
+ def reopen_ok(self, id, confirmed='0'):
+ checkcase()
+ c.form_navigation = self._getFormNavigation()
+ if confirmed == '1':
+ data = {}
+ #copy data
+ data['cm_dok_datum_beendigung'] = dd_mm_YYYY(c.casedata.getData('datum_cm_ende'))
+ data['cm_dok_end_art'] = str(c.casedata.getData('cm_end_art'))
+ data['cm_dok_end_verm'] = str(c.casedata.getData('cm_end_verm'))
+ #lösche alte abschlussbewertung und setze phase
+ if c.num_wiederaufnahme < 1:
+ data['cm_end_verm'] = '-1'
+ data['cm_end_art'] = '-1'
+ data['datum_cm_ende'] = ''
+ data['cm2c_t'] = unicode(c.casedata.getData('cm2c_t', ''))
+ data['phase'] = '2'
+ try:
+ # Füge alte params aus dem Dialog in der verwaltung hinzu und schreibe alles weg
+ params = session.get('lifetimeparams', {})
+ data['cm2c_t'] += "\r\n\r\n" + params.get('anmerkungen', '')
+ del params['anmerkungen']
+ data.update(params)
+ c.casedata.setData(data)
+ except Exception, err:
+ print err
+ c.success_for = REOPENOK_SUCCESS_HEADER
+ c.success_text = REOPENOK_SUCCESS_TEXT
+ c.url_ok = h.url_for(controller="/case/select_item/0")
+ return render('caselifetime/dialogs/success_reopen.mako')
+ else:
+ c.confirm_for = REOPENOK_HEADER_CONFIRM
+ c.question = REOPENOK_TEXT_CONFIRM
+ c.url_yes = "/caselifetime/reopen_ok/%s/1" % session['case'].id
+ c.url_no = "/caselifetime/index/"
+ return render('caselifetime/dialogs/confirm_reopen.mako')
+
+ def reopen_notok(self, id, confirmed='0'):
+ checkcase()
+ c.form_navigation = self._getFormNavigation()
+ data = {}
+ if confirmed == '1':
+ data['cm2c_t'] = unicode(c.casedata.getData('cm2c_t', ''))
+ try:
+ # Füge alte params aus dem Dialog in der verwaltung hinzu und schreibe alles weg
+ params = session.get('lifetimeparams', {})
+ data['cm2c_t'] += "\r\n\r\n" + params.get('anmerkungen', '')
+ del params['anmerkungen']
+ data.update(params)
+ c.casedata.setData(data)
+ except Exception, err:
+ print err
+
+ c.success_for = REOPENNOTOK_SUCCESS_HEADER
+ c.success_text = REOPENNOTOK_SUCCESS_TEXT
+ c.url_ok = h.url_for(controller="/case/select_item/0")
+ return render('caselifetime/dialogs/success_reopen.mako')
+ return self.index()
+ else:
+ c.confirm_for = REOPENNOTOK_HEADER_CONFIRM
+ c.question = REOPENNOTOK_TEXT_CONFIRM
+ c.url_yes = "/caselifetime/reopen_notok/%s/1" % session['case'].id
+ c.url_no = "/caselifetime/index/"
+ return render('caselifetime/dialogs/confirm_reopen.mako')
+
def reopenAction(self):
checkcase()
+ c.form_navigation = self._getFormNavigation()
form_result = {}
form_errors = {}
@@ -155,27 +300,50 @@
try:
form_result = validator.to_python(request.params)
+ session['lifetimeparams'] = form_result
+ session.save()
+ try:
+ c.casedata.setData(form_result, do_write=False)
+ if c.num_wiederaufnahme < 1:
+ if form_result.get('cm_wiederauf_genehm_1') == '1':
+ return self.reopen_ok(0)
+ else:
+ return self.reopen_notok(0)
+ else:
+ if form_result.get('cm_wiederauf_genehm_2') == '1':
+ return self.reopen_ok(0)
+ else:
+ return self.reopen_notok(0)
+ except DataSaveException, err:
+ form_result_1, form_errors = h.toErrorDicts(err.errors)
except formencode.Invalid, error:
print error
form_result = error.value
form_errors = error.error_dict or {}
- print form_result
c.form_result = form_result
c.form_errors = form_errors
return render('/caselifetime/overview.mako')
def renewAction(self):
checkcase()
+ c.form_navigation = self._getFormNavigation()
validator = RenewFormValidator()
form_result = {}
form_errors = {}
- print "renew"
-
try:
form_result = validator.to_python(request.params)
+ session['lifetimeparams'] = form_result
+ session.save()
+ if form_result.get('cm_neuauf_genehm') == '1':
+ try:
+ c.casedata.setData(form_result, do_write=False)
+ return self.renew(0)
+ except DataSaveException, err:
+ form_result_1, form_errors = h.toErrorDicts(err.errors)
except formencode.Invalid, error:
+ print error
form_result = error.value
form_errors = error.error_dict or {}
Modified: wasko/trunk/waskaweb/lib/validators.py
===================================================================
--- wasko/trunk/waskaweb/lib/validators.py 2009-03-17 17:39:34 UTC (rev 385)
+++ wasko/trunk/waskaweb/lib/validators.py 2009-03-17 19:22:47 UTC (rev 386)
@@ -410,9 +410,7 @@
allow_extra_fields = True
filter_extra_fields = True
cm_neuauf_genehm = formencode.validators.String()
- cm_wiederauf_genehm_datum_1 = DateCheck(not_empty=True)
- cm_wiederauf_datum_bis_1 = DateCheck(not_empty=True)
- anmerkungen = formencode.validators.String(not_empty=True)
+ anmerkungen = formencode.validators.String()
class ReopenFormValidator1(BaseFormValidator):
allow_extra_fields = True
Modified: wasko/trunk/waskaweb/templates/caselifetime/overview.mako
===================================================================
--- wasko/trunk/waskaweb/templates/caselifetime/overview.mako 2009-03-17 17:39:34 UTC (rev 385)
+++ wasko/trunk/waskaweb/templates/caselifetime/overview.mako 2009-03-17 19:22:47 UTC (rev 386)
@@ -129,8 +129,15 @@
% endif
% else:
## Verlängerung nicht möglich
- % if c.num_verlaengerung > 1:
+ % if c.num_wiederaufnahme > 1:
<tr>
+ <td class="note table_row_h inactive">
+ Die maximale Anzahl von Wiederaufnahmen wurde erreicht!
+ </td>
+ <td class="table_row_h"></td>
+ </tr>
+ % elif c.num_verlaengerung > 1:
+ <tr>
<td class="note table_row_h note inactive">
Die maximale Anzahl von Verlängerungen wurde erreicht!
</td>
@@ -321,8 +328,14 @@
% else:
## Neuaufnahme nicht möglich
<tr>
+ % if c.num_wiederaufnahme > 1:
+ <td class="note table_row_h inactive">
+ Die maximale Anzahl von Wiederaufnahmen wurde erreicht!
+ </td>
+ % else:
<td class="note table_row_h inactive">Eine Neuaufnahme ist nicht möglich, da der Fall nicht mit einer sonstigen Beendigung beendet wurde.
</td>
+ % endif
<td class="table_row_h"> </td>
</tr>
% endif
@@ -343,8 +356,14 @@
% if not c.show_abort:
<tr>
## Abbruch nicht möglich
+ % if c.num_wiederaufnahme > 1:
+ <td class="note inactive">
+ Die maximale Anzahl von Wiederaufnahmen wurde erreicht!
+ </td>
+ % else:
<td class="note inactive">Ein Abbruch der Eingangsdokumentation ist nicht mehr möglich, da Sie bereits die Phase B (Case Management) begonnen haben.
</td>
+ % endif
<td class=""> </td>
</tr>
% endif
More information about the Mpuls-commits
mailing list