[Mpuls-commits] r38 - in trunk: . waskaweb/config waskaweb/controllers waskaweb/i18n waskaweb/i18n/de/LC_MESSAGES waskaweb/lib waskaweb/model waskaweb/public/images waskaweb/public/images/icons waskaweb/public/styles waskaweb/templates waskaweb/templates/administration waskaweb/templates/casemanagement waskaweb/templates/casemanagement/dialogs waskaweb/templates/documents waskaweb/templates/usersettings waskaweb/tests/functional

scm-commit@wald.intevation.org scm-commit at wald.intevation.org
Wed Aug 13 15:10:23 CEST 2008


Author: thomas
Date: 2008-08-13 15:10:22 +0200 (Wed, 13 Aug 2008)
New Revision: 38

Added:
   trunk/waskaweb/controllers/agency_overview.py
   trunk/waskaweb/lib/csv.py
   trunk/waskaweb/model/agencysettings.py
   trunk/waskaweb/public/images/icons/admin_grey_tag.gif
   trunk/waskaweb/public/images/icons/cm_grey_tag_width.gif
   trunk/waskaweb/public/images/icons/folder_closed_blue_2.gif
   trunk/waskaweb/public/images/icons/folder_closed_blue_2_error.gif
   trunk/waskaweb/public/images/icons/formular_page_blue.gif
   trunk/waskaweb/public/images/icons/formular_page_blue_error.gif
   trunk/waskaweb/templates/casemanagement/agency_overview.mako
   trunk/waskaweb/templates/casemanagement/agencylist.mako
   trunk/waskaweb/templates/casemanagement/dialogs/failed_delete_agency.mako
   trunk/waskaweb/templates/casemanagement/dialogs/failed_export_agency.mako
   trunk/waskaweb/templates/casemanagement/dialogs/failed_seteditor.mako
   trunk/waskaweb/templates/casemanagement/dialogs/notificate_bundle_delete_agency.mako
   trunk/waskaweb/templates/casemanagement/dialogs/notificate_bundle_export_agency.mako
   trunk/waskaweb/templates/casemanagement/dialogs/success_delete_admin.mako
   trunk/waskaweb/templates/casemanagement/dialogs/success_delete_agency.mako
   trunk/waskaweb/templates/casemanagement/dialogs/success_export_agency.mako
   trunk/waskaweb/templates/casemanagement/dialogs/success_markdelete.mako
   trunk/waskaweb/templates/casemanagement/downloadCSV.mako
   trunk/waskaweb/tests/functional/test_agency_overview.py
Modified:
   trunk/ChangeLog.txt
   trunk/Changes.txt
   trunk/development_wsgi.ini
   trunk/waskaweb/config/routing.py
   trunk/waskaweb/controllers/administration.py
   trunk/waskaweb/controllers/case.py
   trunk/waskaweb/controllers/case_overview.py
   trunk/waskaweb/controllers/evaluate.py
   trunk/waskaweb/controllers/rg_aid.py
   trunk/waskaweb/controllers/statement.py
   trunk/waskaweb/controllers/usersettings.py
   trunk/waskaweb/i18n/de/LC_MESSAGES/waskaweb.po
   trunk/waskaweb/i18n/waskaweb.pot
   trunk/waskaweb/lib/base.py
   trunk/waskaweb/lib/casedata.py
   trunk/waskaweb/lib/evaluation.py
   trunk/waskaweb/lib/helpers.py
   trunk/waskaweb/lib/timelog.py
   trunk/waskaweb/lib/validators.py
   trunk/waskaweb/model/agency.py
   trunk/waskaweb/model/case.py
   trunk/waskaweb/model/navigation.py
   trunk/waskaweb/public/images/icons/delete_grey.gif
   trunk/waskaweb/public/images/icons/delete_red.gif
   trunk/waskaweb/public/images/icons/done_grey.gif
   trunk/waskaweb/public/images/icons/editor_grey.gif
   trunk/waskaweb/public/images/icons/form_help.png
   trunk/waskaweb/public/images/icons/recover_red.gif
   trunk/waskaweb/public/images/icons/stand-in_grey.gif
   trunk/waskaweb/public/images/icons/view_red.gif
   trunk/waskaweb/public/images/icons/work_in_progress_grey.gif
   trunk/waskaweb/public/images/np_arrow.gif
   trunk/waskaweb/public/styles/all.css
   trunk/waskaweb/public/styles/color3.css
   trunk/waskaweb/public/styles/print.css
   trunk/waskaweb/public/styles/screen.css
   trunk/waskaweb/templates/administration/delete_user_helper.mako
   trunk/waskaweb/templates/administration/edit_settings.mako
   trunk/waskaweb/templates/administration/edit_user.mako
   trunk/waskaweb/templates/administration/new_user.mako
   trunk/waskaweb/templates/administration/overview_user.mako
   trunk/waskaweb/templates/casemanagement/bundle_editor.mako
   trunk/waskaweb/templates/casemanagement/bundle_standin.mako
   trunk/waskaweb/templates/casemanagement/dialogs/notificate_bundle_seteditor.mako
   trunk/waskaweb/templates/casemanagement/dialogs/notificate_bundle_setstandin.mako
   trunk/waskaweb/templates/casemanagement/evaluation_result.mako
   trunk/waskaweb/templates/casemanagement/upload.mako
   trunk/waskaweb/templates/documents/case_new.mako
   trunk/waskaweb/templates/documents/global_upload.mako
   trunk/waskaweb/templates/main.mako
   trunk/waskaweb/templates/usersettings/change_password.mako
Log:
Load c753bf847f17 into trunk.


Modified: trunk/ChangeLog.txt
===================================================================
--- trunk/ChangeLog.txt	2008-08-13 13:09:56 UTC (rev 37)
+++ trunk/ChangeLog.txt	2008-08-13 13:10:22 UTC (rev 38)
@@ -1,5 +1,197 @@
+2008-03-03 Torsten Irlaender  <torsten.irlaender at intevation.de>
+
+	* waskaweb/controllers/case_overview.py: Fixed wrong import and use of
+	  AgencyBundle  which should be a CaseBundle.
+
+	* waskaweb/lib/evaluation.py: Commented out debugging output
+
+	* waskaweb/controllers/agency_overview.py: Removed unused function
+
+2008-03-03 Sascha L. Teichmann  <torsten.irlaender at intevation.de>
+
+	* waskaweb/lib/timelog.py: If no host is given timelog is
+	  deactivated.
+
+2008-03-03 Sascha L. Teichmann  <torsten.irlaender at intevation.de>
+
+	* waskaweb/lib/casedata.py: removed imports. TODO: remove
+	  entire file because its not needed any more.
+
+	* waskaweb/controllers/administration.py: Import the other
+	  Agency (the setting one).
+
+2008-02-29 Benjamin Kirschner <benni.kirschner at intevation.de>
+
+	* waskaweb/controllers/agency_overview.py
+	  waskaweb/i18n/de/LC_MESSAGES/waskaweb.po
+	  waskaweb/i18n/waskaweb.pot
+	  waskaweb/public/styles/color3.css
+	  waskaweb/public/styles/screen.css
+	  waskaweb/templates/casemanagement/agency_overview.mako
+	  waskaweb/templates/casemanagement/downloadCSV.mako:
+	  Changed Dialog in CSV Export.
+
+2008-02-29 Torsten Irlaender  <torsten.irlaender at intevation.de>
+
+	* waskaweb/templates/casemanagement/upload.mako: Commented out
+	  XML-Import as it is not fully functional yet.
+
+	* waskaweb/i18n/de/LC_MESSAGES/waskaweb.po
+	  waskaweb/lib/evaluation.py: Added "Sonstige" to "Förderbedarf"
+	  evaluation. Changed label of this evaluation.
+
+2008-02-28 Sascha L. Teichmann  <torsten.irlaender at intevation.de>
+
+	* waskaweb/lib/csv.py: Added. exports list of cases as CSV to 
+	  a given stream.
+
+2008-02-28 Torsten Irlaender  <torsten.irlaender at intevation.de>
+
+	* waskaweb/controllers/agency_overview.py,
+	  waskaweb/model/agency.py,
+	  waskaweb/templates/casemanagement/agency_overview.mako,
+	  waskaweb/templates/casemanagement/dialogs/failed_delete_agency.mako,
+	  waskaweb/templates/casemanagement/dialogs/failed_export_agency.mako,
+	  waskaweb/templates/casemanagement/dialogs/notificate_bundle_delete_agency.mako,
+	  waskaweb/templates/casemanagement/dialogs/notificate_bundle_export_agency.mako,
+	  waskaweb/templates/casemanagement/dialogs/success_delete_agency.mako,
+	  waskaweb/templates/casemanagement/dialogs/success_export_agency.mako,
+	  waskaweb/templates/casemanagement/downloadCSV.mako: Added dialogs
+	  for CSV export of agencys for the evaluation server.
+
+	* waskaweb/lib/evaluation.py: Evaluation "Förderbedarf" is now
+	  perfomed on the base of the selected fields in 4.2, and not over the
+	  various "Unterstützungsangebote".
+	
+	* waskaweb/controllers/agency_overview.py,
+	  waskaweb/controllers/evaluate.py,
+	  waskaweb/model/agency.py,
+	  waskaweb/model/case.py,
+	  waskaweb/templates/casemanagement/downloadCSV.mako: Implemented CSV export
+	  of the cases. Functionality for export ist implemented in CaseBundle.
+	  
+2008-02-27 Torsten Irlaender  <torsten.irlaender at intevation.de>
+	
+	* waskaweb/controllers/evaluate.py,
+ 	  waskaweb/i18n/de/LC_MESSAGES/waskaweb.po,
+	  waskaweb/i18n/waskaweb.pot,
+	  waskaweb/lib/evaluation.py,
+	  waskaweb/templates/casemanagement/evaluation_result.mako: Fixed
+	  issue 239. Modified evaluation to correctly handle fields where no
+	  information is given on which the evaluation could work. These cases
+	  are now displayed in the category "Keine Angabe" in each evaluation
+	  section.
+
+	* waskaweb/i18n/de/LC_MESSAGES/waskaweb.po,
+	  waskaweb/i18n/waskaweb.pot: Rebuild of the langauge-files after
+	  merging the branches.
+
+	* development_wsgi.ini: On default the server is not meant to be
+	  driven as evaluation server.
+
+	* waskaweb/lib/evaluation.py,
+	  waskaweb/templates/main.mako: Reformatting code
+
+2008-02-26 Torsten Irlaender  <torsten.irlaender at intevation.de>
+
+	* waskaweb/controllers/evaluate.py: Allow pb_ka users to do
+	  evaluations on the cases.
+
+	* waskaweb/lib/evaluation.py: Fixed issue234.Fixed evaluation 6 and 7.
+	  Now only cases which are in case-management and are finished 
+	  (aborted or regular end) are evaluated.
+	  Fixed issue issue229. Evaluation 10. Return "k.A" instead of "None"
+	  if there is no data for the length of the CM in weeks. 
+
+2008-02-22 Torsten Irlaender  <torsten.irlaender at intevation.de>
+ work. These cases
+	  are now displayed in the category "Keine Angabe" in each evaluation
+	  section.
+
+	* waskaweb/i18n/de/LC_MESSAGES/waskaweb.po,
+	  waskaweb/i18n/waskaweb.pot: Rebuild of the langauge-files after
+	  merging the branches.
+
+	* development_wsgi.ini: On default the server is not meant to be
+	  driven as evaluation server.
+
+	* waskaweb/lib/evaluation.py,
+	  waskaweb/templates/main.mako: Reformatting code
+
+2008-02-26 Torsten Irlaender  <torsten.irlaender at intevation.de>
+
+	* waskaweb/controllers/evaluate.py: Allow pb_ka users to do
+	  evaluations on the cases.
+
+	* waskaweb/lib/evaluation.py: Fixed issue234.Fixed evaluation 6 and 7.
+	  Now only cases which are in case-management and are finished 
+	  (aborted or regular end) are evaluated.
+	  Fixed issue issue229. Evaluation 10. Return "k.A" instead of "None"
+	  if there is no data for the length of the CM in weeks. 
+
+2008-02-22 Torsten Irlaender  <torsten.irlaender at intevation.de>
+
+	* waskaweb/controllers/agency_overview.py,
+          waskaweb/templates/casemanagement/agencylist.mako,
+	  waskaweb/model/agency.py: Cases of one agency can now be deleted
+	  from the overview page
+
+	* waskaweb/config/routing.py, waskaweb/controllers/agency_overview.py, 
+	  waskaweb/controllers/case_overview.py, waskaweb/lib/validators.py,
+	  waskaweb/model/agency.py, 
+	  waskaweb/templates/casemanagement/agency_overview.mako,
+	  waskaweb/templates/casemanagement/agencylist.mako: Implemented
+	  bundled deletion for agencys on the evealutation server. This will
+	  delete all cases of a particular agency.
+
+2008-02-21 Torsten Irlaender  <torsten.irlaender at intevation.de>
+
+	* waskaweb/controllers/usersettings.py: Added new role "pb_ka" to the
+	  checkrole decorators.
+
+	* waskaweb/model/agencysettings.py, waskaweb/model/agency.py, 
+	  waskaweb/model/case.py: Renamed agency.py into agencysettings.
+	  Fixed references to the new file in case.py
+
+	* waskaweb/controllers/agency_overview.py,
+          waskaweb/templates/casemanagement/agencylist.mako,
+	  waskaweb/model/agency.py: Listing of agencys on the evalutation
+	  server is build from the database.
+
+2008-02-20 Frank Koormann <frank.koormann at intevation.de>
+
+	Bugfix for issue242
+
+	* waskaweb/lib/helpers.py: import sys,
+	(slashSplit): New function slashSplit to splitDN-string, 
+	(getKAName): Use slashSplit() and return empty string on failure
+
+
+2008-02-18 Torsten Irlaender  <torsten.irlaender at intevation.de>
+
+	* development_wsgi.ini,
+	  waskaweb/controllers/administration.py,
+	  waskaweb/templates/administration/new_user.mako: Modified
+	  create_user templates. Depended if this server is an evalutation
+	  server or not the options which type of user (role) can be 
+	  created differ.
+	  
 2008-02-15 Torsten Irlaender  <torsten.irlaender at intevation.de>
 
+	* waskaweb/i18n/de/LC_MESSAGES/waskaweb.po,
+	  waskaweb/i18n/waskaweb.pot,
+	  waskaweb/templates/main.mako,
+	  waskaweb/controllers/agency_overview.py,
+	  waskaweb/templates/casemanagement/agency_overview.mako,
+	  waskaweb/templates/casemanagement/agencylist.mako,
+	  waskaweb/tests/functional/test_agency_overview.py: Created new
+	  controller and templates for the "case-overview" on the evalutation
+	  server. The "case-overview" is more a listing of all agencys which
+	  submitted casesdata for evaluation.  Startet to setup the templates
+	  for the new role "pb_ka"
+
+2008-02-15 Torsten Irlaender  <torsten.irlaender at intevation.de>
+
 	* waskaweb/templates/administration/edit_settings.mako,
 	  waskaweb/templates/administration/show_settings.mako: Commented out
 	  the max savetime for the cases in agency settings. 
@@ -9,6 +201,163 @@
 	* development.ini: Added new variabled to check if the current server
 	  instance is used as an evaluation server. 
 
+2
+	* waskaweb/controllers/agency_overview.py,
+          waskaweb/templates/casemanagement/agencylist.mako,
+	  waskaweb/model/agency.py: Cases of one agency can now be deleted
+	  from the overview page
+
+	* waskaweb/config/routing.py, waskaweb/controllers/agency_overview.py, 
+	  waskaweb/controllers/case_overview.py, waskaweb/lib/validators.py,
+	  waskaweb/model/agency.py, 
+	  waskaweb/templates/casemanagement/agency_overview.mako,
+	  waskaweb/templates/casemanagement/agencylist.mako: Implemented
+	  bundled deletion for agencys on the evealutation server. This will
+	  delete all cases of a particular agency.
+
+2008-02-21 Torsten Irlaender  <torsten.irlaender at intevation.de>
+
+	* waskaweb/controllers/usersettings.py: Added new role "pb_ka" to the
+	  checkrole decorators.
+
+	* waskaweb/model/agencysettings.py, waskaweb/model/agency.py, 
+	  waskaweb/model/case.py: Renamed agency.py into agencysettings.
+	  Fixed references to the new file in case.py
+
+	* waskaweb/controllers/agency_overview.py,
+          waskaweb/templates/casemanagement/agencylist.mako,
+	  waskaweb/model/agency.py: Listing of agencys on the evalutation
+	  server is build from the database.
+
+2008-02-20 Frank Koormann <frank.koormann at intevation.de>
+
+	Bugfix for issue242
+
+	* waskaweb/lib/helpers.py: import sys,
+	(slashSplit): New function slashSplit to splitDN-string, 
+	(getKAName): Use slashSplit() and return empty string on failure
+
+
+2008-02-18 Torsten Irlaender  <torsten.irlaender at intevation.de>
+
+	* development_wsgi.ini,
+	  waskaweb/controllers/administration.py,
+	  waskaweb/templates/administration/new_user.mako: Modified
+	  create_user templates. Depended if this server is an evalutation
+	  server or not the options which type of user (role) can be 
+	  created differ.
+	  
+2008-02-15 Torsten Irlaender  <torsten.irlaender at intevation.de>
+
+	* waskaweb/i18n/de/LC_MESSAGES/waskaweb.po,
+	  waskaweb/i18n/waskaweb.pot,
+	  waskaweb/templates/main.mako,
+	  waskaweb/controllers/agency_overview.py,
+	  waskaweb/templates/casemanagement/agency_overview.mako,
+	  waskaweb/templates/casemanagement/agencylist.mako,
+	  waskaweb/tests/functional/test_agency_overview.py: Created new
+	  controller and templates for the "case-overview" on the evalutation
+	  server. The "case-overview" is more a listing of all agencys which
+	  submitted casesdata for evaluation.  Startet to setup the templates
+	  for the new role "pb_ka"
+
+2008-02-15 Torsten Irlaender  <torsten.irlaender at intevation.de>
+
+	* waskaweb/templates/administration/edit_settings.mako,
+	  waskaweb/templates/administration/show_settings.mako: Commented out
+	  the max savetime for the cases in agency settings. 
+
+2008-02-13 Torsten Irlaender  <torsten.irlaender at intevation.de>
+
+	* development.ini: Added new variabled to check if the current server
+	  instance is used as an evaluation server. 
+
+2008-02-11 Benjamin Kirschner <benni.kirschner at intevation.de>
+
+	* waskaweb/templates/casemanagement/upload.mako
+	  waskaweb/templates/usersettings/change_password.mako
+	  waskaweb/templates/documents/case_new.mako
+	  waskaweb/templates/documents/global_upload.mako
+	  templates/casemanagement/bundle_standin.mako
+	  waskaweb/public/styles/screen.css
+	  waskaweb/controllers/case.py:
+	  changed format, added sentence
+
+	* waskaweb/templates/administration/overview_user.mako:
+	  added role to overview
+
+	* waskaweb/templates/administration/edit_settings.mako:
+	  added explanations and changed format
+	
+	* waskaweb/model/navigation.py:
+	  changed encoding to utf-8
+
+2008-02-08 Benjamin Kirschner <benni.kirschner at intevation.de>
+
+	* waskaweb/public/images/icons/delete_grey.gif
+	  waskaweb/public/images/icons/delete_red.gif
+	  waskaweb/public/images/icons/done_grey.gif
+	  waskaweb/public/images/icons/editor_grey.gif
+	  waskaweb/public/images/icons/form_help.png
+	  waskaweb/public/images/icons/recover_red.gif
+	  waskaweb/public/images/icons/stand-in_grey.gif
+	  waskaweb/public/images/icons/view_red.gif
+	  waskaweb/public/images/icons/work_in_progress_grey.gif:
+	  
+	  changes on icons
+
+2008-02-07 Benjamin Kirschner <benni.kirschner at intevation.de>
+
+	* waskaweb/controllers/rg_aid.py
+	  waskaweb/i18n/de/LC_MESSAGES/waskaweb.po
+	  waskaweb/i18n/waskaweb.pot:
+	  Consistent dialogs in rg_aid and the po file.
+
+	* A waskaweb/templates/casemanagement/dialogs/failed_seteditor.mako
+	  A waskaweb/templates/casemanagement/dialogs/success_delete_admin.mako
+	  A waskaweb/templates/casemanagement/dialogs/success_markdelete.mako
+	  waskaweb/templates/casemanagement/dialogs/notificate_bundle_seteditor.mako
+	  waskaweb/templates/casemanagement/dialogs/notificate_bundle_setstandin.mako
+	  waskaweb/controllers/case_overview.py
+	  waskaweb/controllers/statement.py:
+	  Added several new dialogs. 
+
+	* waskaweb/public/images/np_arrow.gif
+	  waskaweb/public/styles/color3.css:
+	  Changed font-color to 252525, black was a bit hard.
+	  Changed table and block highlighting to softer grey.
+
+	* waskaweb/templates/casemanagement/upload.mako
+	  waskaweb/templates/documents/case_new.mako
+	  waskaweb/templates/documents/global_upload.mako
+	  waskaweb/templates/usersettings/change_password.mako:
+	  Changed format of the content fields. These changes
+	  will lead to a consistent workflow for waska-actions
+	  like changing password or set standin.
+
+	* waskaweb/public/styles/screen.css:
+	  Small fix on layout (width and height of content and header)
+	  
+	* waskaweb/public/styles/color3.css:
+	  highlighting of not allowed / dealt with actions/cases
+
+	* waskaweb/templates/casemanagement/bundle_standin.mako
+	  waskaweb/templates/casemanagement/bundle_editor.mako
+ 	  waskaweb/templates/casemanagement/bundle_standin.mako:
+	  changed sequence of first and last.name
+
+	* waskaweb/templates/administration/edit_user.mako
+	  waskaweb/lib/validators.py
+	  i18n/de/LC_MESSAGES/waskaweb.po:
+	  Login changed to "Anmeldekennung"
+        * waskaweb/controllers/case_overview.py:
+	  "Delete feedback" when user is not allowed to delete a
+	  case that is not "markdelete"
+	
+	* waskaweb/public/styles/all.css
+	  waskaweb/templates/usersettings/change_password.mako:
+	  improved layout of new "upload" and "change pw" pages
+
 2008-02-07 Torsten Irlaender  <torsten.irlaender at intevation.de>
 
 	* ChangeLog.txt, Changes.txt, NEWS: Added notes for Beta 21 to

Modified: trunk/Changes.txt
===================================================================
--- trunk/Changes.txt	2008-08-13 13:09:56 UTC (rev 37)
+++ trunk/Changes.txt	2008-08-13 13:10:22 UTC (rev 38)
@@ -1,3 +1,63 @@
+Beta 23:
+    Neu:
+     
+    * Das Feld zur Eingabe der maximalen Speicherdauer der ruhenden Fallakten
+      wurde entfernt. Der Wert wird intern auf 90 Tage festgelegt.
+
+    Betrieb als Auswertungsserver
+    -----------------------------
+    Diese Änderung ist für den normalen Betrieb von WASKA in den
+    Kompetenzagenturen von keiner Relevanz!  Die Codebasis von WASKA wurde so
+    geändert, dass sich die Anwendung als Auswertungsserver betreiben lässt.
+    Dies umfasst folgende Funktionalitäten:
+
+    * Einführung der Rolle "pb_ka". Diese Rolle ist für die Arbeit auf dem
+      Auswertungsserver gedacht. Nutzer dieser  Rolle sind befugt Auswertungen
+      über die anonymisierten Fallakten durchzuführen. 
+
+    * Erweiterung der Benutzerverwaltung: Anlegen neuer Benutzer mit der Rolle
+      "pb_ka" ist nun möglich.
+
+    * Verwaltung der anonymisierten Fallakten: Die Fallaktenübersicht wurde
+      für den Auswertungsserver angepasst. Weiter ist das Löschen von Fallakten
+      einer oder mehrerer Agenturen möglich.
+
+    * Export ausgewählter Fallakten ist als CSV-Datei möglich. Diese Datei
+      lässt sich dann für weitere Auswertungen auf externen Systemen
+      verwenden.
+
+    Verbessert:
+    
+    * Mehrere kleinere Änderungen an der Gestaltung, um das Erscheinungsbild der
+      verschiedenen Dialoge und Bereiche weiter zu vereinheitlichen.
+
+    * Vereinheitlichung der Bezeichnung "Anmeldekennng" in der Anwendung. 
+
+    * Verwendung von kontrastreicheren Icons.
+
+    * Die Auswertung zur Vermittlung und der Veränderung des Rechtskreises
+      wurden so geändert das nur die Jugendlichen gezählt werden, die das
+      CM tatsächlich beendet haben: Diese Angabe findet sich in dem Feld
+      "Art der Beendigung" in der Abschlussbewertung. Ist dort ein Wert
+      gesetzt, so gilt das CM im Sinne der Auswertung als abgeschlossen.
+
+    * Alle Auswertungen berücksichtigen nun auch Felder
+      die expilizit keine Angabe enthalten. Z.b Die Auswertung zu der
+      Verweildauer im CM. Wurde keine Angabe in dem Feld "Zeitraum
+      Fallmanagement" in der Abschlussbewertung gemacht, so taucht dieser
+      Fall in der Auswertung unter dem Punkt "Keine Angabe" auf. 
+
+    * Die Auswertung zum Förderbedarf berücksichtigit nun nur die Angaben aus
+      des Punktes "Förderbedarf" im Abschnitt "Förderplanung". Zuvor wurde die
+      Auswertung über die in den verschiedenen Bereichen der
+      Unterstützungsangebote eingetragenen Maßnahmen durchgeführt.
+
+    * In der Auswertung gilt ein Jugendlicher dann als in das CM übernommen,
+      wenn ein Förderbedarf in mindestens einem der unter der Förderplanung
+      gelisteten Bereichen angegeben ist. Die tatsächlich eingetragenen
+      Unterstüzungsangebote sind nicht von Bedeutung.
+
+
 Beta 21:
 
     Neu:

Modified: trunk/development_wsgi.ini
===================================================================
--- trunk/development_wsgi.ini	2008-08-13 13:09:56 UTC (rev 37)
+++ trunk/development_wsgi.ini	2008-08-13 13:10:22 UTC (rev 38)
@@ -12,7 +12,8 @@
 formed_tree = ../../formed/formedtree_web.xml
 upload_dir = /uploads
 maintenance_db = waska_maintenance
-evaluation_server = 0 # Set to 1 if this Server is used as an evaluation Server 
+# Set to 1 if this Server is used as an evaluation Server 
+evaluation_server = 0
 
 # for connections to PostgeSQL database
 # db_database: %s will be replaced by certificate value

Modified: trunk/waskaweb/config/routing.py
===================================================================
--- trunk/waskaweb/config/routing.py	2008-08-13 13:09:56 UTC (rev 37)
+++ trunk/waskaweb/config/routing.py	2008-08-13 13:10:22 UTC (rev 38)
@@ -34,6 +34,7 @@
     map.connect('formhelp', 'case/showhelp/:help_id', controller="case", action="showHelp")
     map.connect('digest', 'case/digest/:id', controller="case", action="digest")
     map.connect('case_overview/:action/:confirmed', controller="case_overview") #for bundles actions in case_overview
+    map.connect('agency_overview/:action/:confirmed', controller="agency_overview") #for bundles actions in agency_overview
     map.connect(':controller/:action/:id/:confirmed')
     map.connect(':controller/:action/:id')
     map.connect(':controller/:action/*(file).csv')

Modified: trunk/waskaweb/controllers/administration.py
===================================================================
--- trunk/waskaweb/controllers/administration.py	2008-08-13 13:09:56 UTC (rev 37)
+++ trunk/waskaweb/controllers/administration.py	2008-08-13 13:10:22 UTC (rev 38)
@@ -9,14 +9,14 @@
 import logging
 import formencode
 
-from formencode              import htmlfill
-from waskaweb.lib.base       import *
-from waskaweb.lib.security   import getDbName 
-from waskaweb.lib.validators import NewUserForm, EditUserForm, NewPasswordForm, EditSettingsForm, DeleteUserHelperForm
-from waskaweb.model.user     import UserObject, UserListObject
-from waskaweb.model.case     import CaseOverview, CaseBundle 
-from waskaweb.model.agency   import Agency 
-from waskaweb.lib.security   import checkRole
+from formencode                    import htmlfill
+from waskaweb.lib.base             import *
+from waskaweb.lib.security         import getDbName 
+from waskaweb.lib.validators       import NewUserForm, EditUserForm, NewPasswordForm, EditSettingsForm, DeleteUserHelperForm
+from waskaweb.model.user           import UserObject, UserListObject
+from waskaweb.model.case           import CaseOverview, CaseBundle 
+from waskaweb.model.agencysettings import Agency
+from waskaweb.lib.security         import checkRole
 
 log = logging.getLogger(__name__)
 
@@ -49,6 +49,7 @@
 
 EDIT_AGENCY_SUCCESS_HEADER              = _('adm_edit_agency_header')
 EDIT_AGENCY_SUCCESS_TEXT                = _('adm_edit_agency_text')
+
 class AdministrationController(BaseController):
 
     def index(self):

Added: trunk/waskaweb/controllers/agency_overview.py
===================================================================
--- trunk/waskaweb/controllers/agency_overview.py	2008-08-13 13:09:56 UTC (rev 37)
+++ trunk/waskaweb/controllers/agency_overview.py	2008-08-13 13:10:22 UTC (rev 38)
@@ -0,0 +1,198 @@
+# -*- coding: utf-8 -*-
+#
+# Copyright (c) 2007 by Intevation GmbH
+# Authors:
+# Torsten Irländer <torsten.irlaender at intevation.de>
+# Sascha L. Teichmann <teichmann at intevation.de>
+#
+
+import logging
+import formencode
+import paste
+
+from waskaweb.lib.csv import exportAsCSV
+from waskaweb.lib.base import *
+from waskaweb.lib.validators import AgencyBundleActionForm
+from waskaweb.lib.security                  import checkRole
+from waskaweb.model.agency  import AgencyOverview, AgencyFactory, AgencyBundle
+from waskaweb.model.case  import CaseBundle
+
+log = logging.getLogger(__name__)
+
+DELETE_CONFIRM      = u'''Fallakten der Agentur löschen?''' 
+DELETE_CONFIRM_TEXT = u'''Wollen Sie wirklich die Fallakte der Agentur löschen und die Daten unwiederbringlich verlieren?''' 
+
+DIALOG_EMPTY_SELECTION = u'''Keine Agenturen ausgewählt'''
+DIALOG_EMPTY_SELECTION_EXPLAINATION = u'''Sie haben keine Agenturen ausgewählt für die Sie die gewählte Aktion ausführen können. Bitte klicken Sie auf "OK", um zur Agenturenübersicht zu gelangen und dort Agenturen auszuwählen.'''
+
+DIALOG_CONFIRM_EXPORT = u'''Fallakten als CSV-Datei exportieren?'''
+DIALOG_CONFIRM_EXPORT_EXPLAINATION = u'''Wollen Sie wirklich die Fallakten der folgenden Agenturen exportieren?%s'''
+
+DIALOG_CONFIRM_DELETE = u'''Fallakten löschen?'''
+DIALOG_CONFIRM_DELETE_EXPLAINATION = u'''Wollen Sie wirklich die Fallakten der folgenden Agenturen löschen?%s'''
+
+EXPORT_SUCCESS = u'''Export erfolgreich - CSV-Datei erstellt!''' 
+EXPORT_SUCCESS_EXPLAINATION = u'''Die Fallakten wurden erfolgreich als CSV-Datei exportiert und stehen zum herunterladen bereit. ''' 
+
+EXPORT_ERROR = u'''Es ist ein Fehler aufgetreten''' 
+EXPORT_ERROR_EXPLAINATION = u'''Bei dem Exportieren der Fallakten ist ein Fehler aufgetreten. Klicken Sie auf "OK", um zur Agenturenübersicht zu gelangen.''' 
+
+DELETE_SUCCSESS = u'''Fallakten erfolgreich gelöscht'''
+DELETE_SUCCSESS_EXPLAINATION = u'''Es wurden die Fallakten von %s Agenturen erfolgreich gelöscht. Klicken Sie auf "OK", um zur Agenturenübersicht zu gelangen.''' 
+DELETE_ERROR = u'''Es ist ein Fehler aufgetreten''' 
+DELETE_ERROR_EXPLAINATION = u'''Bei dem Löschen der Fallakten ist ein Fehler aufgetreten. Klicken Sie auf "OK", um zur Agenturenübersicht zu gelangen.''' 
+
+DELETE_NOTIFICATION_EMPTYLIST = u'''Es wurden keine Fallakten gelöscht.'''
+
+class AgencyOverviewController(BaseController):
+
+    @checkRole(('pb_ka', 'admin_ka'))
+    def index(self):
+        return self.overview()
+
+    @checkRole(('pb_ka'))
+    def overview(self):
+        c.agencys = AgencyOverview()
+        user = session['USER_AUTHORIZED']
+        c.form_defaults = {}
+        #c.form_defaults = {'show_own': 1, 'show_other': 0, 'show_open': 1, 'show_closed': 0, 'show_markdelete': 0} 
+        overview = render('/casemanagement/agency_overview.mako')
+        return formencode.htmlfill.render(unicode(overview, 'utf-8'),defaults=c.form_defaults)
+
+    @checkRole(('pb_ka'))
+    def delete(self, id, confirmed):
+        #id        = self._checkInt(id)
+        confirmed = self._checkBool(confirmed)
+        if confirmed == 1:
+            factory = AgencyFactory()
+            agency = factory.loadByFkz(id)
+            num = agency.delete() # delete all cases of this agency
+            if num > 0:
+                c.success_for   =   u'Fallakten der Agentur gelöscht!' 
+                c.success_text  =   u'Bitte klicken Sie "OK", um fortzufahren.' 
+                c.url_ok        =   h.url_for(controller="/agency_overview")
+                return render('/casemanagement/dialogs/success_delete.mako')
+            return "Error! Could not delete ds."
+        else:
+            c.context     = "../main.mako" 
+            c.confirm_for = DELETE_CONFIRM 
+            c.question    = DELETE_CONFIRM_TEXT 
+            c.url_yes     = "/agency_overview/delete/%s/1" % id
+            c.url_no      = "/agency_overview/"
+            return render('/casemanagement/dialogs/confirm_delete.mako')
+
+    @checkRole(('pb_ka'))
+    def bundleAction(self):
+        validator = AgencyBundleActionForm()
+        c.context           = "../main.mako" 
+        c.url_ok            = "/agency_overview"
+        c.notification_for  = DIALOG_EMPTY_SELECTION    
+        c.notification_text = DIALOG_EMPTY_SELECTION_EXPLAINATION 
+        try:
+            data        = formencode.variabledecode.variable_decode(request.params)
+            form_result = validator.to_python(data)
+            action      = form_result.get('action') 
+            agency_bundle = AgencyBundle(form_result.get('agency_id', []))
+
+            if action == 'no_action':
+                return self.overview() 
+            if agency_bundle.isEmpty():
+                return render('/casemanagement/dialogs/bundle_noselection.mako')
+
+            session['agencybundle'] = agency_bundle
+            session.save()
+
+            if action == 'delete':
+                return self.deleteBundle(0)
+            if action == 'export':
+                # We do not need confirmation here i think as no data will be
+                # modified.
+                return self.exportBundle(1)
+            else:
+                raise HTTPNotFound()
+
+        except formencode.Invalid, error:
+            c.form_result = error.value
+            c.form_errors = error.error_dict or {}
+            form = render('/casemanagement/agency_overview.mako')
+            return htmlfill.render(unicode(form, 'utf-8'), c.form_result, c.form_errors, auto_insert_errors=False)
+        return render('/casemanagement/agency_overview.mako')
+
+    @checkRole(('pb_ka'))
+    def downloadCSV(self):
+        return render('casemanagement/downloadCSV.mako')
+
+    @checkRole(('pb_ka'))
+    def downloadCSVAction(self):
+        agency_bundle = session.get('agencybundle')
+        case_ids = []
+        for agency in agency_bundle.getAgencys():
+            case_ids.extend(agency.getCaseBundle().listDatasetIds())
+        try:
+            if case_ids:
+                case_bundle = CaseBundle(case_ids)
+                csv = case_bundle.exportAsCSV()
+                data = paste.fileapp.DataApp(
+                    csv,
+                    content_type='text/comma-separated-values',
+                    content_encoding='Latin-1',
+                    cache_control='must-revalidate',
+                    pragma='public')
+                return data(request.environ, self.start_response)
+        except:
+            return render('/tests/trace.mako')
+
+    @checkRole(('pb_ka'))
+    def exportBundle(self, confirmed):
+        confirmed           = self._checkBool(confirmed)
+        agency_bundle       = session.get('agencybundle')
+        c.context           = "../main.mako"
+        if confirmed == 1:
+            try:
+                c.success_for  = EXPORT_SUCCESS
+                c.success_text = EXPORT_SUCCESS_EXPLAINATION
+                return render('/casemanagement/downloadCSV.mako')
+            except StandardError, err:
+                c.failed_for  = EXPORT_ERROR
+                c.failed_test = EXPORT_ERROR_EXPLAINATION
+                c.url_ok      = "/agency_overview/"
+                return render('/casemanagement/dialogs/failed_export_agency.mako')
+        else:
+            c.confirm_for = DIALOG_CONFIRM_EXPORT
+            c.question    = DIALOG_CONFIRM_EXPORT_EXPLAINATION % "\n".join(self._buildAgencyList(agency_bundle))
+            c.url_yes     = "/agency_overview/exportBundle/1"
+            c.url_no      = "/agency_overview/"
+            return render('/casemanagement/dialogs/confirm.mako')
+
+    @checkRole(('pb_ka'))
+    def deleteBundle(self, confirmed):
+        confirmed           = self._checkBool(confirmed)
+        agency_bundle       = session.get('agencybundle')
+        c.context           = "../main.mako"
+        if confirmed == 1:
+            try:
+                num = agency_bundle.delete()
+                c.success_for  = DELETE_SUCCSESS
+                c.success_text = DELETE_SUCCSESS_EXPLAINATION % str(num)
+                c.url_ok      = "/agency_overview/"
+                return render('/casemanagement/dialogs/success_delete_agency.mako')
+            except StandardError, err:
+                c.failed_for  = DELETE_ERROR
+                c.failed_text = DELETE_ERROR_EXPLAINATION
+                c.url_ok      = "/agency_overview/"
+                return render('/casemanagement/dialogs/failed_delete_agency.mako')
+        else:
+            c.confirm_for = DIALOG_CONFIRM_DELETE
+            c.question    = DIALOG_CONFIRM_DELETE_EXPLAINATION % "\n".join(self._buildAgencyList(agency_bundle))
+            c.url_yes     = "/agency_overview/deleteBundle/1"
+            c.url_no      = "/agency_overview/"
+            return render('/casemanagement/dialogs/confirm.mako')
+
+    def _buildAgencyList(self, bundle):
+        list = ["<ul>"]
+        for agency in bundle.getAgencys():
+            list.append("<li>%s</li>" % (agency.fkz))
+        list.append("</ul>")
+        return list
+
+# vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8:

Modified: trunk/waskaweb/controllers/case.py
===================================================================
--- trunk/waskaweb/controllers/case.py	2008-08-13 13:09:56 UTC (rev 37)
+++ trunk/waskaweb/controllers/case.py	2008-08-13 13:10:22 UTC (rev 38)
@@ -481,7 +481,7 @@
             case = self._loadCase(id)
             case.setState(3)
             c.success_for   =   u'Fallakte gelöscht!' 
-            c.success_text  =   u'Die Fallakte wurde zum löschen an die Administration weitergeleitet.' 
+            c.success_text  =   u'Die Fallakte wurde zum Löschen an die Administration weitergeleitet.' 
             c.url_ok        =   h.url_for(controller="/case_overview")
             return render('/casemanagement/dialogs/success_delete_cm.mako')
             redirect_to(controller="/case_overview")

Modified: trunk/waskaweb/controllers/case_overview.py
===================================================================
--- trunk/waskaweb/controllers/case_overview.py	2008-08-13 13:09:56 UTC (rev 37)
+++ trunk/waskaweb/controllers/case_overview.py	2008-08-13 13:10:22 UTC (rev 38)
@@ -12,9 +12,9 @@
 from waskaweb.lib.base                      import *
 from waskaweb.lib.validators                import SearchCaseForm, BundleActionForm, SetBundleEditorForm, SetBundleStandinForm
 from waskaweb.lib.security                  import checkRole
-from waskaweb.model.case                    import CaseOverview, CaseBundle 
-from waskaweb.model.user                    import UserListObject, UserObject 
-from waskaweb.controllers.CaseBase          import CasebaseController 
+from waskaweb.model.case                    import CaseOverview, CaseBundle
+from waskaweb.model.user                    import UserListObject, UserObject
+from waskaweb.controllers.CaseBase          import CasebaseController
 
 log = logging.getLogger(__name__)
 
@@ -23,20 +23,26 @@
 DIALOG_CONFIRM_DELETE = u'''Fallakten löschen?'''
 DIALOG_CONFIRM_EXPLAINATION = u'''Wollen Sie wirklich die folgenden Fallakten löschen?%s'''
 
-DIALOG_CONFIRM_SETEDITOR = u"""Fallakten übertragen!"""
-SETEDITOR_NOTIFICATION_SUCCSESS = u"""Es wurden %s Fallakten erfolgreich an <strong>%s %s</strong> übertragen. Klicken Sie auf "OK", um zur Fallaktenübersicht zu gelangen."""
-SETEDITOR_NOTIFICATION_ERROR = u"""Bei dem Übertragen der Fallakten ist eine Fehler aufgetreten. Klicken Sie auf "OK", um zur Fallaktenübersicht zu gelangen."""
+DIALOG_CONFIRM_SETEDITOR = u"""Bearbeitung übertragen!"""
+SETEDITOR_NOTIFICATION_SUCCESS = u"""Es wurden %s Fallakten erfolgreich an %s %s übertragen. Bitte klicken Sie auf "OK", um fortzufahren."""
+SETEDITOR_FAILED_HEADER = u"""Fallakten nicht übertragen!"""
+SETEDITOR_FAILED_TEXT = u"""Bei dem Übertragen der Fallakten ist eine Fehler aufgetreten. Bitte klicken Sie auf "OK", um fortzufahren."""
 
-DIALOG_CONFIRM_SETSTANDIN = u"""Vertretung zuweisen"""
-SETSTANDIN_NOTIFICATION_SUCCSESS = u"""Es wurde für %s Fallakten erfolgreich die Vertretung gesetzt. Klicken Sie auf "OK", um zur Fallaktenübersicht zu gelangen."""
-SETSTANDIN_NOTIFICATION_ERROR = u"""Bei dem Zuweisen der Vertretung für die Fallakten ist ein Fehler aufgetreten. Klicken Sie auf "OK", um zur Fallaktenübersicht zu gelangen."""
+DIALOG_CONFIRM_SETSTANDIN = u"""Vertretung zugewiesen!"""
+SETSTANDIN_NOTIFICATION_SUCCESS = u"""Es wurden für %s Fallakten erfolgreich die Vertretung zugewiesen. Bitte klicken Sie auf "OK", um fortzufahren."""
+SETSTANDIN_NOTIFICATION_ERROR_HEADER = u"""Keine Fallakte zugewiesen!""" 
+SETSTANDIN_NOTIFICATION_ERROR = u"""Bei dem Zuweisen der Vertretung für die Fallakten ist ein Fehler aufgetreten. Bitte klicken Sie auf "OK", um fortzufahren."""
+SETSTANDIN_NOTIFICATION_EMPTYLIST_HEADER = u"""Keine gültigen Fälle gewählt!"""
 SETSTANDIN_NOTIFICATION_EMPTYLIST = u"""Es wurde für keine Fälle die Vertretung übertragen."""
 
-DELETE_NOTIFICATION_SUCCSESS = u'''Es wurden %s Fallakten erfolgreich gelöscht. Klicken Sie auf "OK", um zur Fallaktenübersicht zu gelangen.''' 
-DELETE_NOTIFICATION_ERROR = u'''Bei dem Löschen der Fallakten ist ein Fehler aufgetreten. Klicken Sie auf "OK", um zur Fallaktenübersicht zu gelangen.''' 
-MARKDELETE_NOTIFICATION_SUCCSESS = u'''Es wurden %s Fallakten erfolgreich zum Löschen freigegeben. Klicken Sie auf "OK", um zur Fallaktenübersicht zu gelangen.''' 
-MARKDELETE_NOTIFICATION_ERROR = u'''Bei dem Freigeben zum Löschen der Fallakten ist ein Fehler aufgetreten. Klicken Sie auf "OK", um zur Fallaktenübersicht zu gelangen.''' 
-DELETE_NOTIFICATION_EMPTYLIST = u'''Es wurden keine Fälle gelöscht.''' 
+DELETE_SUCCESS_ADMIN_HEADER = u"""Fallakten gelöscht!"""
+DELETE_SUCCESS_ADMIN_TEXT = u"""Es wurden %s Fallakten erfolgreich gelöscht. Bitte klicken Sie auf "OK", um fortzufahren."""
+DELETE_NOTIFICATION_ERROR = u"""Bei dem Löschen der Fallakten ist ein Fehler aufgetreten. Bitte klicken Sie auf "OK", um fortzufahren.""" 
+MARKDELETE_SUCCESS_HEADER = u"""Fallakten gelöscht!"""
+MARKDELETE_SUCCESS_TEXT = u"""Es wurden %s Fallakten erfolgreich zum Löschen freigegeben. Bitte klicken Sie auf "OK", um fortzufahren.""" 
+MARKDELETE_NOTIFICATION_ERROR = u"""Bei dem Freigeben zum Löschen der Fallakten ist ein Fehler aufgetreten. Bitte klicken Sie auf "OK", um fortzufahren."""
+DELETE_NOTIFICATION_EMPTYLIST = u"""Es sind keine zum löschen freigegebenen Fallakten gewählt. Bitte klicken Sie auf "OK", um fortzufahren."""
+DELETE_NOTIFICATION_EMPTYLIST_HEADER = u"""Keine Fallakten gelöscht!"""
 
 class CaseOverviewController(CasebaseController):
 
@@ -160,7 +166,7 @@
             return htmlfill.render(unicode(form, 'utf-8'), c.form_result, c.form_errors, auto_insert_errors=False)
         return render('/casemanagement/overview.mako')
 
-    def _buildCaseList(self, bundle):
+    def _buildCaseList(self, bundle): 
         list = ["<ul>"]
         for case in bundle.getCases():
             list.append("<li>%s, %s</li>" % (case.first_name, case.last_name))
@@ -171,7 +177,7 @@
     def setEditorAction(self):
         c.context           = "../main.mako" 
         c.url_ok            = "/case_overview"
-        c.notification_for  = DIALOG_CONFIRM_SETEDITOR 
+        c.success_for  = DIALOG_CONFIRM_SETEDITOR 
         case_bundle         = session.get('casebundle')
         validator           = SetBundleEditorForm()
         try:
@@ -180,10 +186,12 @@
                 try:
                     num = case_bundle.setEditor(form_result.get('editor'))
                     user = UserObject(form_result.get('editor'))
-                    c.notification_text = SETEDITOR_NOTIFICATION_SUCCSESS % (str(num), user.first_name, user.last_name)
+                    c.success_text = SETEDITOR_NOTIFICATION_SUCCESS % (str(num), user.first_name, user.last_name)
                 except StandardError, err:
                     print err
-                    c.notification_text = SETEDITOR_NOTIFICATION_ERROR
+                    c.failed_for  = SETEDITOR_FAILED_HEADER
+                    c.failed_text = SETEDITOR_FAILED_TEXT
+                    return render ('/casemanagement/dialogs/failed_seteditor.mako')
                 del session['casebundle']
             else:
                 c.notification_text = DELETE_NOTIFICATION_EMPTYLIST
@@ -198,7 +206,7 @@
     def setStandinAction(self):
         c.context           = "../main.mako" 
         c.url_ok            = "/case_overview"
-        c.notification_for  = DIALOG_CONFIRM_SETSTANDIN 
+        c.success_for       = DIALOG_CONFIRM_SETSTANDIN 
         case_bundle         = session.get('casebundle')
         validator           = SetBundleStandinForm()
         try:
@@ -207,12 +215,14 @@
             if case_bundle and not case_bundle.isEmpty():
                 try:
                     num = case_bundle.setStandin(form_result.get('standin'))
-                    c.notification_text = SETSTANDIN_NOTIFICATION_SUCCSESS % str(num)
+                    c.success_text = SETSTANDIN_NOTIFICATION_SUCCESS % str(num)
                 except StandardError, err:
                     print err
-                    c.notification_text = SETSTANDIN_NOTIFICATION_ERROR
+                    c.failed_for  = SETSTANDIN_NOTIFICATION_ERROR_HEADER
+                    c.failed_text = SETSTANDIN_NOTIFICATION_ERROR
                 del session['casebundle']
             else:
+                c.notification_for  = SETSTANDIN_NOTIFICATION_EMPTYLIST_HEADER
                 c.notification_text = SETSTANDIN_NOTIFICATION_EMPTYLIST
                 return render('/casemanagement/dialogs/bundle_noselection.mako')
         except formencode.Invalid, error:
@@ -232,7 +242,9 @@
             if confirmed == 1:
                 try:
                     num = case_bundle.delete()
-                    c.notification_text = DELETE_NOTIFICATION_SUCCSESS % str(num)
+                    c.success_for       = DELETE_SUCCESS_ADMIN_HEADER
+                    c.success_text = DELETE_SUCCESS_ADMIN_TEXT % str(num)
+                    return render ('/casemanagement/dialogs/success_delete_admin.mako')
                 except StandardError, err:
                     print err
                     c.notification_text = DELETE_NOTIFICATION_ERROR
@@ -248,6 +260,7 @@
                 c.url_no      = "/case_overview/"
                 return render('/casemanagement/dialogs/confirm.mako')
         else:
+            c.notification_for  = DELETE_NOTIFICATION_EMPTYLIST_HEADER
             c.notification_text = DELETE_NOTIFICATION_EMPTYLIST
         return render('/casemanagement/dialogs/notificate_bundle_delete.mako')
 
@@ -262,7 +275,9 @@
             if confirmed == 1:
                 try:
                     num = case_bundle.markDelete()
-                    c.notification_text = MARKDELETE_NOTIFICATION_SUCCSESS % str(num)
+                    c.success_for  = MARKDELETE_SUCCESS_HEADER
+                    c.success_text = MARKDELETE_SUCCESS_TEXT % str(num)
+                    return render ('/casemanagement/dialogs/success_markdelete.mako')
                 except StandardError, err:
                     print err
                     c.notification_text = MARKDELETE_NOTIFICATION_ERROR

Modified: trunk/waskaweb/controllers/evaluate.py
===================================================================
--- trunk/waskaweb/controllers/evaluate.py	2008-08-13 13:09:56 UTC (rev 37)
+++ trunk/waskaweb/controllers/evaluate.py	2008-08-13 13:10:22 UTC (rev 38)
@@ -21,18 +21,18 @@
 
 class EvaluateController(BaseController):
 
-    @checkRole(('admin_ka', 'cm_ka', 'pt_dlr'))
+    @checkRole(('admin_ka', 'cm_ka', 'pt_dlr', 'pb_ka'))
     def index(self):
         raise HTTPNotFound()
-        
-    @checkRole(('admin_ka', 'cm_ka', 'pt_dlr'))
+
+    @checkRole(('admin_ka', 'cm_ka', 'pt_dlr', 'pb_ka'))
     def evaluate(self):
         try:
             e1 = Evaluation_1()
             c.eval_1_total, c.eval_1_cm, c.eval_1_percent = e1.perform()
 
             e2 = Evaluation_2()
-            c.eval_2_t, c.eval_2_m, c.eval_2_w, c.eval_2_i = e2.perform()
+            c.eval_2_t, c.eval_2_m, c.eval_2_w, c.eval_2_i, c.eval_2_u = e2.perform()
 
             e3 = Evaluation_3()
             c.eval_3 = e3.perform()
@@ -70,8 +70,8 @@
             cache_control='must-revalidate',
             pragma='public')
         return data(request.environ, self.start_response)
-        
-    @checkRole(('admin_ka', 'cm_ka', 'pt_dlr'))
+
+    @checkRole(('admin_ka', 'cm_ka', 'pt_dlr', 'pb_ka'))
     def exportEvaluation_1(self):
         try:
             e = Evaluation_1()
@@ -80,7 +80,7 @@
             traceback.print_exc(file=sys.stderr)
             raise HTTPNotFound()
 
-    @checkRole(('admin_ka', 'cm_ka', 'pt_dlr'))
+    @checkRole(('admin_ka', 'cm_ka', 'pt_dlr', 'pb_ka'))
     def exportEvaluation_2(self):
         try:
             e = Evaluation_2()
@@ -89,7 +89,7 @@
             traceback.print_exc(file=sys.stderr)
             raise HTTPNotFound()
 
-    @checkRole(('admin_ka', 'cm_ka', 'pt_dlr'))
+    @checkRole(('admin_ka', 'cm_ka', 'pt_dlr', 'pb_ka'))
     def exportEvaluation_3(self):
         try:
             e = Evaluation_3()
@@ -98,7 +98,7 @@
             traceback.print_exc(file=sys.stderr)
             raise HTTPNotFound()
 
-    @checkRole(('admin_ka', 'cm_ka', 'pt_dlr'))
+    @checkRole(('admin_ka', 'cm_ka', 'pt_dlr', 'pb_ka'))
     def exportEvaluation_4(self):
         try:
             e = Evaluation_4()
@@ -107,7 +107,7 @@
             traceback.print_exc(file=sys.stderr)
             raise HTTPNotFound()
 
-    @checkRole(('admin_ka', 'cm_ka', 'pt_dlr'))
+    @checkRole(('admin_ka', 'cm_ka', 'pt_dlr', 'pb_ka'))
     def exportEvaluation_5(self):
         try:
             e = Evaluation_5()
@@ -116,7 +116,7 @@
             traceback.print_exc(file=sys.stderr)
             raise HTTPNotFound()
 
-    @checkRole(('admin_ka', 'cm_ka', 'pt_dlr'))
+    @checkRole(('admin_ka', 'cm_ka', 'pt_dlr', 'pb_ka'))
     def exportEvaluation_6(self):
         try:
             e = Evaluation_6()
@@ -125,7 +125,7 @@
             traceback.print_exc(file=sys.stderr)
             raise HTTPNotFound()
 
-    @checkRole(('admin_ka', 'cm_ka', 'pt_dlr'))
+    @checkRole(('admin_ka', 'cm_ka', 'pt_dlr', 'pb_ka'))
     def exportEvaluation_7(self):
         try:
             e = Evaluation_7()
@@ -134,7 +134,7 @@
             traceback.print_exc(file=sys.stderr)
             raise HTTPNotFound()
 
-    @checkRole(('admin_ka', 'cm_ka', 'pt_dlr'))
+    @checkRole(('admin_ka', 'cm_ka', 'pt_dlr', 'pb_ka'))
     def exportEvaluation_8(self):
         try:
             e = Evaluation_8()
@@ -143,7 +143,7 @@
             traceback.print_exc(file=sys.stderr)
             raise HTTPNotFound()
 
-    @checkRole(('admin_ka', 'cm_ka', 'pt_dlr'))
+    @checkRole(('admin_ka', 'cm_ka', 'pt_dlr', 'pb_ka'))
     def exportEvaluation_9(self):
         try:
             e = Evaluation_9()
@@ -152,7 +152,7 @@
             traceback.print_exc(file=sys.stderr)
             raise HTTPNotFound()
 
-    @checkRole(('admin_ka', 'cm_ka', 'pt_dlr'))
+    @checkRole(('admin_ka', 'cm_ka', 'pt_dlr', 'pb_ka'))
     def exportEvaluation_10(self):
         try:
             e = Evaluation_10()

Modified: trunk/waskaweb/controllers/rg_aid.py
===================================================================
--- trunk/waskaweb/controllers/rg_aid.py	2008-08-13 13:09:56 UTC (rev 37)
+++ trunk/waskaweb/controllers/rg_aid.py	2008-08-13 13:10:22 UTC (rev 38)
@@ -102,7 +102,7 @@
             if aid.delete():
                 # Redirect to the overview page: 14 should be the correct page key 
                 c.success_for   = u'Angebot gelöscht!'
-                c.success_text  = u'Klicken Sie auf OK, um fortzufahren.'
+                c.success_text  = u'Bitte klicken Sie auf "OK", um fortzufahren.'
                 c.url_ok        = "/case/edit/%s/14" % session.get('case').id
                 return render('/casemanagement/dialogs/success_delete_aid.mako')
                 #redirect_to('/case/edit/%s/14' % session.get('case').id) 

Modified: trunk/waskaweb/controllers/statement.py
===================================================================
--- trunk/waskaweb/controllers/statement.py	2008-08-13 13:09:56 UTC (rev 37)
+++ trunk/waskaweb/controllers/statement.py	2008-08-13 13:10:22 UTC (rev 38)
@@ -21,9 +21,9 @@
 ACCEPT_QUESTION  = u"""Sie haben angegeben, das eine Einverständniserklärung des Jugendlichen zur Erfassung, Verarbeitung und Speicherung personenbezogener Daten vorliegt. Sind Sie sicher das diese Angabe korrekt ist?"""  
 DECLINE_QUESTION = u"""Sie haben angegeben, das keine Einverständniserklärung des Jugendlichen zur Erfassung, Verarbeitung und Speicherung personenbezogener Daten vorliegt. Dies bedeutet das die bislang gespeicherten Daten der Fallakte zur Wahrung des Datenschutzes gelöscht werden und unwiederbringlich verloren gehen. Sind Sie sicher das diese Angabe korrekt ist?"""  
 SET_EE_SUCCESS_HEADER = u"""Einwilligungserklärung gesetzt!"""
-SET_EE_SUCCESS_TEXT = u"""Klicken Sie auf "OK", um fortzufahren."""
+SET_EE_SUCCESS_TEXT = u"""Bitte klicken Sie auf "OK", um fortzufahren."""
 SET_EE_DECLINE_SUCCESS_HEADER = u"""Daten wurden gelöscht!"""
-SET_EE_DECLINE_SUCCESS_TEXT = u"""Die personenbezogenen Daten der Fallakte wurden gelöscht. Klicken Sie auf "OK", um fortzufahren"""
+SET_EE_DECLINE_SUCCESS_TEXT = u"""Die personenbezogenen Daten der Fallakte wurden gelöscht. Bitte klicken Sie auf "OK", um fortzufahren"""
 class StatementController(CasebaseController):
 
     def __before__(self):

Modified: trunk/waskaweb/controllers/usersettings.py
===================================================================
--- trunk/waskaweb/controllers/usersettings.py	2008-08-13 13:09:56 UTC (rev 37)
+++ trunk/waskaweb/controllers/usersettings.py	2008-08-13 13:10:22 UTC (rev 38)
@@ -24,27 +24,27 @@
 
 class UsersettingsController(BaseController):
 
-    @checkRole(('admin_ka', 'cm_ka', 'pt_dlr'))
+    @checkRole(('admin_ka', 'cm_ka', 'pt_dlr', 'pb_ka'))
     def index(self):
         # Return a rendered template
         #   return render('/some/template.mako')
         # or, Return a response
         return 'Hello, User'
 
-    @checkRole(('admin_ka', 'cm_ka', 'pt_dlr'))
+    @checkRole(('admin_ka', 'cm_ka', 'pt_dlr', 'pb_ka'))
     def showSettings(self, id):
         id    = self._checkInt(id)
         c.uo  = UserObject(id)
         c.vuo = UserObject(c.uo.standin)
         return render('/usersettings/show_settings.mako') 
 
-    @checkRole(('admin_ka', 'cm_ka', 'pt_dlr'))
+    @checkRole(('admin_ka', 'cm_ka', 'pt_dlr', 'pb_ka'))
     def changePassword(self):
         c.form_errors = {}
         c.form_result = {}
         return render('/usersettings/change_password.mako')
 
-    @checkRole(('admin_ka', 'cm_ka', 'pt_dlr'))
+    @checkRole(('admin_ka', 'cm_ka', 'pt_dlr', 'pb_ka'))
     def changePasswordAction(self):
         validator = NewPasswordForm() 
         try:
@@ -72,13 +72,13 @@
             return render('/tests/trace.mako')
         return render('/usersettings/dialogs/notificate_setpassword.mako')
 
-    @checkRole(('admin_ka', 'cm_ka', 'pt_dlr'))
+    @checkRole(('admin_ka', 'cm_ka', 'pt_dlr', 'pb_ka'))
     def changePasswordOnLogin(self):
         c.form_errors = {}
         c.form_result = {}
         return render('/usersettings/change_password_login.mako')
 
-    @checkRole(('admin_ka', 'cm_ka', 'pt_dlr'))
+    @checkRole(('admin_ka', 'cm_ka', 'pt_dlr', 'pb_ka'))
     def changePasswordOnLoginAction(self):
         # Do not forget to unset the flag for the need for pass change if this
         # action succseeds 

Modified: trunk/waskaweb/i18n/de/LC_MESSAGES/waskaweb.po
===================================================================
--- trunk/waskaweb/i18n/de/LC_MESSAGES/waskaweb.po	2008-08-13 13:09:56 UTC (rev 37)
+++ trunk/waskaweb/i18n/de/LC_MESSAGES/waskaweb.po	2008-08-13 13:10:22 UTC (rev 38)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: waskaweb 0.0.0\n"
 "Report-Msgid-Bugs-To: EMAIL at ADDRESS\n"
-"POT-Creation-Date: 2008-02-04 16:29+0100\n"
+"POT-Creation-Date: 2008-03-03 15:27+0100\n"
 "PO-Revision-Date: 2007-10-14 20:33+0200\n"
 "Last-Translator: Torsten Irländer<torsten.irlaender at intevation.de>\n"
 "Language-Team: de <LL at li.org>\n"
@@ -54,10 +54,9 @@
 #: waskaweb/controllers/administration.py:32
 msgid "adm_delete_user_notification_text"
 msgstr ""
-"Der Benutzer kann nicht gelöscht werden, da er noch als Hauptbearbeiter für "
+"Der Benutzer kann nicht gelöscht werden, da er noch als Bearbeiter für "
 "einige Fallakten eingetragen ist. Bitte weisen Sie den entsprechenden "
-"Fallakten einen neuen Bearbeiter zu. Bitte klicken Sie auf OK um "
-"fortzufahren."
+"Fallakten einen neuen Bearbeiter zu. Klicken Sie auf OK, um fortzufahren."
 
 #: waskaweb/controllers/administration.py:33
 msgid "adm_delete_user_failure_header"
@@ -188,33 +187,33 @@
 msgid "cm_rg_aid_overview_legend_new_offer"
 msgstr "Neues Angebot hinzufügen"
 
-#: waskaweb/model/case.py:879
+#: waskaweb/model/case.py:898
 #: waskaweb/templates/casemanagement/caselist.mako:37
 #: waskaweb/templates/casemanagement/caselist.mako:74
 msgid "case_state_label_open"
 msgstr "Offen"
 
-#: waskaweb/model/case.py:880
+#: waskaweb/model/case.py:899
 #: waskaweb/templates/casemanagement/caselist.mako:39
 #: waskaweb/templates/casemanagement/caselist.mako:76
 msgid "case_state_label_closed"
 msgstr "Geschlossen"
 
-#: waskaweb/model/case.py:881
+#: waskaweb/model/case.py:900
 msgid "case_state_label_outstanding_delete"
 msgstr "Schwebend gelöscht"
 
-#: waskaweb/model/case.py:882
+#: waskaweb/model/case.py:901
 msgid "case_state_label_outstanding_anon"
 msgstr "Schwebend anonymisiert"
 
-#: waskaweb/model/case.py:883
+#: waskaweb/model/case.py:902
 msgid "case_state_label_anon"
 msgstr "Anonymisiert"
 
 #: waskaweb/templates/login.mako:4
 msgid "login_header_waska_login"
-msgstr "WASKA Login"
+msgstr "WASKA Anmeldung"
 
 #: waskaweb/templates/login.mako:9
 msgid "login_input_error"
@@ -276,60 +275,60 @@
 msgid "np_root"
 msgstr "Waska Start"
 
-#: waskaweb/templates/main.mako:108
+#: waskaweb/templates/main.mako:106
 #: waskaweb/templates/appointments/dialogs/confirm.mako:4
 #: waskaweb/templates/appointments/dialogs/notificate_delete_appointment.mako:5
 msgid "menu_app_link_overview"
 msgstr "Termine"
 
-#: waskaweb/templates/main.mako:111
+#: waskaweb/templates/main.mako:107
 msgid "menu_doc_link_overview"
 msgstr "Dokumente"
 
-#: waskaweb/templates/main.mako:120
+#: waskaweb/templates/main.mako:115 waskaweb/templates/main.mako:125
 msgid "menu_header_cm"
 msgstr "Case-Management"
 
-#: waskaweb/templates/main.mako:122
+#: waskaweb/templates/main.mako:117 waskaweb/templates/main.mako:127
 msgid "menu_cm_link_overview"
 msgstr "Fallakten\t"
 
-#: waskaweb/templates/main.mako:125
+#: waskaweb/templates/main.mako:118 waskaweb/templates/main.mako:132
+#: waskaweb/templates/casemanagement/evaluation.mako:8
+msgid "cm_actions_link_evaluate"
+msgstr "Auswertung"
+
+#: waskaweb/templates/main.mako:129
 msgid "menu_cm_link_new"
 msgstr "Fallakte anlegen"
 
-#: waskaweb/templates/main.mako:127
+#: waskaweb/templates/main.mako:130
 msgid "menu_cm_link_import"
 msgstr "Fallakte importieren"
 
-#: waskaweb/templates/main.mako:130
-#: waskaweb/templates/casemanagement/evaluation.mako:8
-msgid "cm_actions_link_evaluate"
-msgstr "Auswertung"
-
-#: waskaweb/templates/main.mako:143
+#: waskaweb/templates/main.mako:145
 msgid "menu_header_adm"
 msgstr "Administration"
 
-#: waskaweb/templates/main.mako:145
+#: waskaweb/templates/main.mako:147
 msgid "menu_adm_link_useroverview"
 msgstr "Benutzer"
 
-#: waskaweb/templates/main.mako:148
+#: waskaweb/templates/main.mako:150
 msgid "menu_adm_link_showsettings"
 msgstr "Agentur"
 
-#: waskaweb/templates/main.mako:161
+#: waskaweb/templates/main.mako:163
 msgid "main_formular_input_error"
 msgstr "Fehlerhafte Formulareingabe"
 
-#: waskaweb/templates/main.mako:173
+#: waskaweb/templates/main.mako:175
 msgid "footer_title"
 msgstr "WASKA"
 
-#: waskaweb/templates/main.mako:173
+#: waskaweb/templates/main.mako:175
 msgid "footer_version"
-msgstr "05.02.2008 | Beta 21"
+msgstr "03.03.2008 | Beta 24"
 
 #: waskaweb/templates/main_login.mako:38
 #: waskaweb/templates/start/responsible.mako:71
@@ -377,7 +376,6 @@
 #: waskaweb/templates/administration/dialogs/success_delete_user.mako:5
 #: waskaweb/templates/administration/dialogs/success_edit_agency.mako:5
 #: waskaweb/templates/administration/dialogs/success_edit_user.mako:5
-#: waskaweb/templates/statement/dialogs/ee_accept_success.mako:5
 #: waskaweb/templates/statement/dialogs/ee_decline_success.mako:5
 msgid "adm_np_root"
 msgstr "Administration"
@@ -398,7 +396,6 @@
 #: waskaweb/templates/administration/dialogs/notificate_deleteuser.mako:6
 #: waskaweb/templates/administration/dialogs/success_delete_user.mako:6
 #: waskaweb/templates/administration/dialogs/success_edit_user.mako:6
-#: waskaweb/templates/statement/dialogs/ee_accept_success.mako:6
 #: waskaweb/templates/statement/dialogs/ee_decline_success.mako:6
 msgid "adm_np_overview"
 msgstr "Benutzerübersicht"
@@ -456,27 +453,26 @@
 msgid "adm_con_es_editsettings"
 msgstr "Hier können Sie die agenturweiten Einstellungen bearbeiten."
 
-#: waskaweb/templates/administration/edit_settings.mako:28
+#: waskaweb/templates/administration/edit_settings.mako:29
 #: waskaweb/templates/administration/show_settings.mako:26
 msgid "adm_form_settings_kaname"
-msgstr "Name der KA"
+msgstr "Name der Kompetenzagentur"
 
-#: waskaweb/templates/administration/edit_settings.mako:37
+#: waskaweb/templates/administration/edit_settings.mako:36
 #: waskaweb/templates/administration/show_settings.mako:30
 msgid "adm_form_settings_fkz"
-msgstr "FKZ der KA"
+msgstr "FKZ der Kompetenzagentur"
 
-#: waskaweb/templates/administration/edit_settings.mako:45
-#: waskaweb/templates/administration/show_settings.mako:34
+#: waskaweb/templates/administration/edit_settings.mako:46
 msgid "adm_form_settings_max_savetime"
 msgstr "Maximale Aufbewahrungsdauer von Fallakten in Tagen"
 
-#: waskaweb/templates/administration/edit_settings.mako:60
+#: waskaweb/templates/administration/edit_settings.mako:62
 #: waskaweb/templates/administration/show_settings.mako:38
 msgid "adm_form_settings_anontransfer"
-msgstr "Anonymisierte Fallakten übermitteln"
+msgstr "Fallakten übermitteln"
 
-#: waskaweb/templates/administration/edit_settings.mako:77
+#: waskaweb/templates/administration/edit_settings.mako:81
 msgid "adm_form_settings_save"
 msgstr "Einstellungen speichern"
 
@@ -555,19 +551,19 @@
 msgstr "Angaben zum Konto"
 
 #: waskaweb/templates/administration/edit_user.mako:88
-#: waskaweb/templates/administration/new_user.mako:90
+#: waskaweb/templates/administration/new_user.mako:94
 #: waskaweb/templates/administration/userform_body.mako:28
 msgid "adm_form_user_activated"
 msgstr "Benutzer darf sich anmelden"
 
 #: waskaweb/templates/administration/edit_user.mako:96
-#: waskaweb/templates/administration/new_user.mako:94
+#: waskaweb/templates/administration/new_user.mako:98
 #: waskaweb/templates/administration/userform_body.mako:36
 msgid "adm_form_user_newpass"
 msgstr "Benutzer muss bei der nächsten Anmeldung das Passwort setzen"
 
 #: waskaweb/templates/administration/edit_user.mako:99
-#: waskaweb/templates/administration/new_user.mako:97
+#: waskaweb/templates/administration/new_user.mako:101
 #: waskaweb/templates/administration/userform_body.mako:54
 msgid "adm_form_user_submit"
 msgstr "Benutzer speichern"
@@ -683,11 +679,15 @@
 msgstr "Vorname"
 
 #: waskaweb/templates/administration/overview_user.mako:27
+msgid "adm_overview_tbl_header_role"
+msgstr "Rolle"
+
+#: waskaweb/templates/administration/overview_user.mako:28
 msgid "adm_overview_tbl_header_actions"
 msgstr "Aktionen"
 
-#: waskaweb/templates/administration/overview_user.mako:36
-#: waskaweb/templates/administration/overview_user.mako:48
+#: waskaweb/templates/administration/overview_user.mako:42
+#: waskaweb/templates/administration/overview_user.mako:59
 #: waskaweb/templates/casemanagement/caselist.mako:45
 #: waskaweb/templates/casemanagement/caselist.mako:82
 #: waskaweb/templates/documents/case_overview.mako:42
@@ -699,8 +699,10 @@
 msgid "cm_overview_a_show"
 msgstr "Anzeigen"
 
-#: waskaweb/templates/administration/overview_user.mako:38
-#: waskaweb/templates/administration/overview_user.mako:50
+#: waskaweb/templates/administration/overview_user.mako:44
+#: waskaweb/templates/administration/overview_user.mako:61
+#: waskaweb/templates/casemanagement/agencylist.mako:20
+#: waskaweb/templates/casemanagement/agencylist.mako:30
 #: waskaweb/templates/casemanagement/caselist.mako:47
 #: waskaweb/templates/casemanagement/caselist.mako:50
 #: waskaweb/templates/casemanagement/caselist.mako:84
@@ -811,7 +813,7 @@
 
 #: waskaweb/templates/administration/show_user_body.mako:32
 msgid "adm_form_table_login"
-msgstr "Login"
+msgstr "Anmeldekennung"
 
 #: waskaweb/templates/administration/show_user_body.mako:36
 msgid "adm_form_table_role"
@@ -1062,44 +1064,30 @@
 msgid "app_np_delete"
 msgstr "Termin lösschen"
 
-#: waskaweb/templates/casemanagement/appointments.mako:4
-#: waskaweb/templates/casemanagement/digest.mako:5
-#: waskaweb/templates/casemanagement/formular.mako:34
-#: waskaweb/templates/casemanagement/new_appointment.mako:5
-#: waskaweb/templates/casemanagement/organisation.mako:6
-#: waskaweb/templates/casemanagement/dialogs/confirm_close.mako:5
-#: waskaweb/templates/casemanagement/dialogs/confirm_delete_aid.mako:5
-#: waskaweb/templates/casemanagement/dialogs/confirm_delete_attachment.mako:4
-#: waskaweb/templates/casemanagement/dialogs/confirm_open.mako:5
-#: waskaweb/templates/casemanagement/dialogs/delete_attachment_success.mako:6
-#: waskaweb/templates/casemanagement/dialogs/success_case_close.mako:5
-#: waskaweb/templates/casemanagement/dialogs/success_delete_aid.mako:5
-#: waskaweb/templates/documents/case_new.mako:4
-#: waskaweb/templates/documents/case_overview.mako:5
-#: waskaweb/templates/documents/dialogs/delete_attachment_success.mako:4
-#: waskaweb/templates/documents/dialogs/failed_attachment.mako:4
-msgid "cm_np_select"
-msgstr "Ausgewählte Fallakte"
-
+#: waskaweb/templates/casemanagement/agency_overview.mako:6
 #: waskaweb/templates/casemanagement/bundle_editor.mako:6
 #: waskaweb/templates/casemanagement/bundle_standin.mako:6
+#: waskaweb/templates/casemanagement/downloadCSV.mako:6
 #: waskaweb/templates/casemanagement/evaluation.mako:4
 #: waskaweb/templates/casemanagement/evaluation_result.mako:6
 #: waskaweb/templates/casemanagement/main.mako:10
 #: waskaweb/templates/casemanagement/new.mako:5
 #: waskaweb/templates/casemanagement/overview.mako:6
-#: waskaweb/templates/casemanagement/upload.mako:5
+#: waskaweb/templates/casemanagement/upload.mako:6
 #: waskaweb/templates/casemanagement/dialogs/alert.mako:5
 #: waskaweb/templates/casemanagement/dialogs/confirm.mako:5
 #: waskaweb/templates/casemanagement/dialogs/confirm_delete.mako:5
 #: waskaweb/templates/casemanagement/dialogs/confirm_restore.mako:5
 #: waskaweb/templates/casemanagement/dialogs/delete_attachment_success.mako:4
+#: waskaweb/templates/casemanagement/dialogs/failed_seteditor.mako:4
 #: waskaweb/templates/casemanagement/dialogs/notificate_bundle_seteditor.mako:5
 #: waskaweb/templates/casemanagement/dialogs/notificate_bundle_setstandin.mako:5
 #: waskaweb/templates/casemanagement/dialogs/notificate_import_dub.mako:5
 #: waskaweb/templates/casemanagement/dialogs/notificate_printall.mako:5
 #: waskaweb/templates/casemanagement/dialogs/success_delete.mako:5
+#: waskaweb/templates/casemanagement/dialogs/success_delete_admin.mako:5
 #: waskaweb/templates/casemanagement/dialogs/success_delete_cm.mako:5
+#: waskaweb/templates/casemanagement/dialogs/success_markdelete.mako:5
 #: waskaweb/templates/casemanagement/dialogs/success_restore.mako:5
 #: waskaweb/templates/casemanagement/static_form/statement.mako:5
 #: waskaweb/templates/casemanagement/static_form/statement_print.mako:5
@@ -1108,7 +1096,63 @@
 msgid "cm_np_root"
 msgstr "Case-Management"
 
+#: waskaweb/templates/casemanagement/agency_overview.mako:7
+#: waskaweb/templates/casemanagement/downloadCSV.mako:7
+#: waskaweb/templates/casemanagement/main.mako:11
+#: waskaweb/templates/casemanagement/overview.mako:7
+#: waskaweb/templates/casemanagement/dialogs/delete_attachment_success.mako:5
+#: waskaweb/templates/statement/dialogs/missing_statement.mako:6
+msgid "cm_np_overview"
+msgstr "Fallaktenübersicht"
+
+#: waskaweb/templates/casemanagement/agency_overview.mako:9
+#: waskaweb/templates/casemanagement/overview.mako:9
+msgid "cm_header_overview"
+msgstr "Fallaktenübersicht"
+
+#: waskaweb/templates/casemanagement/agencylist.mako:6
+msgid "cm_overview_tbl_header_fkz"
+msgstr "FKZ"
+
+#: waskaweb/templates/casemanagement/agencylist.mako:7
+msgid "cm_overview_tbl_header_number_cases"
+msgstr "Anzahl Fälle"
+
+#: waskaweb/templates/casemanagement/agencylist.mako:8
+msgid "cm_overview_tbl_header_last_update"
+msgstr "Aktualisiert"
+
+#: waskaweb/templates/casemanagement/agencylist.mako:9
+#: waskaweb/templates/casemanagement/caselist.mako:13
+msgid "cm_overview_tbl_header_actions"
+msgstr "Aktionen"
+
+#: waskaweb/templates/casemanagement/agencylist.mako:39
+#: waskaweb/templates/casemanagement/caselist.mako:97
+msgid "cm_overview_tbl_no_data_found"
+msgstr "Es wurden keine Datensätze gefunden."
+
+#: waskaweb/templates/casemanagement/appointments.mako:4
+#: waskaweb/templates/casemanagement/digest.mako:5
+#: waskaweb/templates/casemanagement/formular.mako:34
+#: waskaweb/templates/casemanagement/new_appointment.mako:5
+#: waskaweb/templates/casemanagement/organisation.mako:6
+#: waskaweb/templates/casemanagement/dialogs/confirm_close.mako:5
+#: waskaweb/templates/casemanagement/dialogs/confirm_delete_aid.mako:5
+#: waskaweb/templates/casemanagement/dialogs/confirm_delete_attachment.mako:4
+#: waskaweb/templates/casemanagement/dialogs/confirm_open.mako:5
+#: waskaweb/templates/casemanagement/dialogs/delete_attachment_success.mako:6
+#: waskaweb/templates/casemanagement/dialogs/success_case_close.mako:5
+#: waskaweb/templates/casemanagement/dialogs/success_delete_aid.mako:5
+#: waskaweb/templates/documents/case_new.mako:5
+#: waskaweb/templates/documents/case_overview.mako:5
+#: waskaweb/templates/documents/dialogs/delete_attachment_success.mako:4
+#: waskaweb/templates/documents/dialogs/failed_attachment.mako:4
+msgid "cm_np_select"
+msgstr "Ausgewählte Fallakte"
+
 #: waskaweb/templates/casemanagement/bundle_editor.mako:7
+#: waskaweb/templates/casemanagement/dialogs/failed_seteditor.mako:5
 #: waskaweb/templates/casemanagement/dialogs/notificate_bundle_seteditor.mako:6
 msgid "cm_np_bundled_editor"
 msgstr "Bearbeitung übertragen"
@@ -1137,21 +1181,15 @@
 msgid "cm_bundle_standin_explain"
 msgstr "Bitte wählen Sie die neuen Vertreter für die folgenden Akten aus"
 
-#: waskaweb/templates/casemanagement/bundle_standin.mako:18
-msgid "cm_bundle_standin_explain_cm_ka"
-msgstr ""
-"Beachten Sie, dass aus der folgenden Liste nur für die Fälle die Vertretung "
-"gesetzt werden wird, für die Sie der Hauptbearbeiter sind"
-
-#: waskaweb/templates/casemanagement/bundle_standin.mako:30
+#: waskaweb/templates/casemanagement/bundle_standin.mako:28
 msgid "attention"
 msgstr "Achtung"
 
-#: waskaweb/templates/casemanagement/bundle_standin.mako:30
+#: waskaweb/templates/casemanagement/bundle_standin.mako:28
 msgid "cm_bundle_standin_explain_attention"
 msgstr "Die bereits existierenden Vertretungsregeln werden überschrieben"
 
-#: waskaweb/templates/casemanagement/bundle_standin.mako:52
+#: waskaweb/templates/casemanagement/bundle_standin.mako:50
 #: waskaweb/templates/casemanagement/organisation.mako:70
 msgid "cm_form_standin_submit"
 msgstr "Vertretung ändern"
@@ -1176,10 +1214,6 @@
 msgid "cm_overview_tbl_header_status"
 msgstr "Status"
 
-#: waskaweb/templates/casemanagement/caselist.mako:13
-msgid "cm_overview_tbl_header_actions"
-msgstr "Aktionen"
-
 #: waskaweb/templates/casemanagement/caselist.mako:31
 #: waskaweb/templates/casemanagement/caselist.mako:68
 msgid "cm_overview_img_editor"
@@ -1200,10 +1234,6 @@
 msgid "cm_overview_a_restore"
 msgstr "Fallakte wiederherstellen"
 
-#: waskaweb/templates/casemanagement/caselist.mako:97
-msgid "cm_overview_tbl_no_data_found"
-msgstr "Es wurden keine Datensätze gefunden."
-
 #: waskaweb/templates/casemanagement/create_export_scheme.mako:2
 msgid "cm_header_export_createscheme"
 msgstr "Exportschema erstellen"
@@ -1353,25 +1383,25 @@
 
 #: waskaweb/templates/casemanagement/evaluation_result.mako:40
 #: waskaweb/templates/casemanagement/evaluation_result.mako:97
-#: waskaweb/templates/casemanagement/evaluation_result.mako:125
-#: waskaweb/templates/casemanagement/evaluation_result.mako:157
-#: waskaweb/templates/casemanagement/evaluation_result.mako:176
-#: waskaweb/templates/casemanagement/evaluation_result.mako:206
-#: waskaweb/templates/casemanagement/evaluation_result.mako:238
-#: waskaweb/templates/casemanagement/evaluation_result.mako:271
-#: waskaweb/templates/casemanagement/evaluation_result.mako:301
+#: waskaweb/templates/casemanagement/evaluation_result.mako:131
+#: waskaweb/templates/casemanagement/evaluation_result.mako:163
+#: waskaweb/templates/casemanagement/evaluation_result.mako:194
+#: waskaweb/templates/casemanagement/evaluation_result.mako:224
+#: waskaweb/templates/casemanagement/evaluation_result.mako:256
+#: waskaweb/templates/casemanagement/evaluation_result.mako:289
+#: waskaweb/templates/casemanagement/evaluation_result.mako:319
 msgid "cm_eval_table_number"
 msgstr "Anzahl"
 
 #: waskaweb/templates/casemanagement/evaluation_result.mako:41
 #: waskaweb/templates/casemanagement/evaluation_result.mako:98
-#: waskaweb/templates/casemanagement/evaluation_result.mako:126
-#: waskaweb/templates/casemanagement/evaluation_result.mako:158
-#: waskaweb/templates/casemanagement/evaluation_result.mako:177
-#: waskaweb/templates/casemanagement/evaluation_result.mako:207
-#: waskaweb/templates/casemanagement/evaluation_result.mako:239
-#: waskaweb/templates/casemanagement/evaluation_result.mako:272
-#: waskaweb/templates/casemanagement/evaluation_result.mako:302
+#: waskaweb/templates/casemanagement/evaluation_result.mako:132
+#: waskaweb/templates/casemanagement/evaluation_result.mako:164
+#: waskaweb/templates/casemanagement/evaluation_result.mako:195
+#: waskaweb/templates/casemanagement/evaluation_result.mako:225
+#: waskaweb/templates/casemanagement/evaluation_result.mako:257
+#: waskaweb/templates/casemanagement/evaluation_result.mako:290
+#: waskaweb/templates/casemanagement/evaluation_result.mako:320
 msgid "cm_eval_table_percent"
 msgstr "Prozent"
 
@@ -1385,27 +1415,27 @@
 
 #: waskaweb/templates/casemanagement/evaluation_result.mako:57
 #: waskaweb/templates/casemanagement/evaluation_result.mako:89
-#: waskaweb/templates/casemanagement/evaluation_result.mako:120
-#: waskaweb/templates/casemanagement/evaluation_result.mako:150
-#: waskaweb/templates/casemanagement/evaluation_result.mako:168
-#: waskaweb/templates/casemanagement/evaluation_result.mako:201
-#: waskaweb/templates/casemanagement/evaluation_result.mako:231
-#: waskaweb/templates/casemanagement/evaluation_result.mako:263
-#: waskaweb/templates/casemanagement/evaluation_result.mako:296
-#: waskaweb/templates/casemanagement/evaluation_result.mako:326
+#: waskaweb/templates/casemanagement/evaluation_result.mako:126
+#: waskaweb/templates/casemanagement/evaluation_result.mako:156
+#: waskaweb/templates/casemanagement/evaluation_result.mako:186
+#: waskaweb/templates/casemanagement/evaluation_result.mako:219
+#: waskaweb/templates/casemanagement/evaluation_result.mako:249
+#: waskaweb/templates/casemanagement/evaluation_result.mako:281
+#: waskaweb/templates/casemanagement/evaluation_result.mako:314
+#: waskaweb/templates/casemanagement/evaluation_result.mako:344
 msgid "cm_eval_table_to_overview"
 msgstr "Zur Übersicht"
 
 #: waskaweb/templates/casemanagement/evaluation_result.mako:57
 #: waskaweb/templates/casemanagement/evaluation_result.mako:89
-#: waskaweb/templates/casemanagement/evaluation_result.mako:120
-#: waskaweb/templates/casemanagement/evaluation_result.mako:150
-#: waskaweb/templates/casemanagement/evaluation_result.mako:168
-#: waskaweb/templates/casemanagement/evaluation_result.mako:201
-#: waskaweb/templates/casemanagement/evaluation_result.mako:231
-#: waskaweb/templates/casemanagement/evaluation_result.mako:263
-#: waskaweb/templates/casemanagement/evaluation_result.mako:296
-#: waskaweb/templates/casemanagement/evaluation_result.mako:326
+#: waskaweb/templates/casemanagement/evaluation_result.mako:126
+#: waskaweb/templates/casemanagement/evaluation_result.mako:156
+#: waskaweb/templates/casemanagement/evaluation_result.mako:186
+#: waskaweb/templates/casemanagement/evaluation_result.mako:219
+#: waskaweb/templates/casemanagement/evaluation_result.mako:249
+#: waskaweb/templates/casemanagement/evaluation_result.mako:281
+#: waskaweb/templates/casemanagement/evaluation_result.mako:314
+#: waskaweb/templates/casemanagement/evaluation_result.mako:344
 msgid "cm_eval_table_export_analysis"
 msgstr "Auswertung exportieren"
 
@@ -1451,73 +1481,85 @@
 msgid "cm_eval_label_intersexual"
 msgstr "intersexuell"
 
-#: waskaweb/templates/casemanagement/evaluation_result.mako:121
+#: waskaweb/templates/casemanagement/evaluation_result.mako:120
+msgid "cm_eval_label_unknown"
+msgstr "Keine Angabe"
+
+#: waskaweb/templates/casemanagement/evaluation_result.mako:127
 msgid "cm_eval_header_on_age"
 msgstr "Angaben zur Altersverteilung"
 
-#: waskaweb/templates/casemanagement/evaluation_result.mako:124
+#: waskaweb/templates/casemanagement/evaluation_result.mako:130
 msgid "cm_eval_table_age"
 msgstr "Alter"
 
-#: waskaweb/templates/casemanagement/evaluation_result.mako:153
+#: waskaweb/templates/casemanagement/evaluation_result.mako:159
 msgid "cm_eval_header_4"
 msgstr ""
 "4. Migrationshintergrund in % (Staatsangehörigkeit nicht Deutsch oder Mutter/"
 "Vater nicht in Deutschland geboren)"
 
-#: waskaweb/templates/casemanagement/evaluation_result.mako:156
+#: waskaweb/templates/casemanagement/evaluation_result.mako:162
 msgid "cm_eval_table_category"
 msgstr "Kategorie"
 
-#: waskaweb/templates/casemanagement/evaluation_result.mako:162
+#: waskaweb/templates/casemanagement/evaluation_result.mako:168
 msgid "cm_eval_label_migration_background"
 msgstr "Migrationshintergrund"
 
-#: waskaweb/templates/casemanagement/evaluation_result.mako:171
+#: waskaweb/templates/casemanagement/evaluation_result.mako:174
+msgid "cm_eval_label_no_migration_background"
+msgstr "Kein Migrationshintergrund"
+
+#: waskaweb/templates/casemanagement/evaluation_result.mako:180
+msgid "cm_eval_label_ka_migration_background"
+msgstr "Keine Angabe"
+
+#: waskaweb/templates/casemanagement/evaluation_result.mako:189
 msgid "cm_eval_header_5"
 msgstr "5. Angaben zum Zugang des Jugendlichen zur Kompetenzagentur in %"
 
-#: waskaweb/templates/casemanagement/evaluation_result.mako:172
+#: waskaweb/templates/casemanagement/evaluation_result.mako:190
 msgid "cm_eval_header_access_youngster_to_agency"
 msgstr "Zugang des Jugendlichen zur Kompetenzagentur in %"
 
-#: waskaweb/templates/casemanagement/evaluation_result.mako:175
+#: waskaweb/templates/casemanagement/evaluation_result.mako:193
 msgid "cm_eval_table_access"
 msgstr "Zugang"
 
-#: waskaweb/templates/casemanagement/evaluation_result.mako:202
+#: waskaweb/templates/casemanagement/evaluation_result.mako:220
 msgid "cm_eval_head_law_access_agency"
 msgstr "Rechtskreis der Jugendlichen beim Zugang zur Kompetenzagentur in %"
 
-#: waskaweb/templates/casemanagement/evaluation_result.mako:205
+#: waskaweb/templates/casemanagement/evaluation_result.mako:223
 msgid "cm_eval_table_law"
 msgstr "Rechtkreis"
 
-#: waskaweb/templates/casemanagement/evaluation_result.mako:234
+#: waskaweb/templates/casemanagement/evaluation_result.mako:252
 msgid "cm_eval_header_6"
-msgstr "6. Förderbedarf in % nach den vier Bereichen 4.2.1 - 4.2.4"
+msgstr "6. Verteilung Förderbedarf in %"
 
-#: waskaweb/templates/casemanagement/evaluation_result.mako:237
+#: waskaweb/templates/casemanagement/evaluation_result.mako:255
 msgid "cm_eval_table_offer"
 msgstr "Angebot"
 
-#: waskaweb/templates/casemanagement/evaluation_result.mako:266
+#: waskaweb/templates/casemanagement/evaluation_result.mako:284
 msgid "cm_eval_header_7"
 msgstr "7. Angaben zur Vermittlung der Jugendlichen"
 
-#: waskaweb/templates/casemanagement/evaluation_result.mako:267
+#: waskaweb/templates/casemanagement/evaluation_result.mako:285
 msgid "cm_eval_head_where_to_place_youngster"
 msgstr "Wohin wurden die Jugendlichen vermittlelt?"
 
-#: waskaweb/templates/casemanagement/evaluation_result.mako:270
+#: waskaweb/templates/casemanagement/evaluation_result.mako:288
 msgid "cm_eval_table_place"
 msgstr "Vermittlung"
 
-#: waskaweb/templates/casemanagement/evaluation_result.mako:297
+#: waskaweb/templates/casemanagement/evaluation_result.mako:315
 msgid "cm_eval_header_law_changed_after_place"
 msgstr "Angaben zur Veränderung des Rechtskreises nach der Vermittlung"
 
-#: waskaweb/templates/casemanagement/evaluation_result.mako:300
+#: waskaweb/templates/casemanagement/evaluation_result.mako:318
 msgid "cm_eval_table_law_change"
 msgstr "Rechtskreis"
 
@@ -1576,13 +1618,6 @@
 msgid "cm_help_header_help_for_dossier"
 msgstr "Hilfe zum Fallakten-Formular"
 
-#: waskaweb/templates/casemanagement/main.mako:11
-#: waskaweb/templates/casemanagement/overview.mako:7
-#: waskaweb/templates/casemanagement/dialogs/delete_attachment_success.mako:5
-#: waskaweb/templates/statement/dialogs/missing_statement.mako:6
-msgid "cm_np_overview"
-msgstr "Fallaktenübersicht"
-
 #: waskaweb/templates/casemanagement/main.mako:19
 msgid "cm_info_name"
 msgstr "Name"
@@ -1707,10 +1742,6 @@
 msgid "cm_menu_link_open"
 msgstr "Fallakte öffnen"
 
-#: waskaweb/templates/casemanagement/overview.mako:9
-msgid "cm_header_overview"
-msgstr "Fallaktenübersicht"
-
 #: waskaweb/templates/casemanagement/overview.mako:11
 msgid "cm_overview_con_list_dossiers_admin"
 msgstr ""
@@ -1726,20 +1757,16 @@
 msgid "cm_form_overview_search_submit"
 msgstr "Suchen"
 
-#: waskaweb/templates/casemanagement/upload.mako:6
+#: waskaweb/templates/casemanagement/upload.mako:7
 #: waskaweb/templates/casemanagement/dialogs/notificate_import_dub.mako:6
 msgid "cm_np_import"
 msgstr "Fallakte importieren"
 
-#: waskaweb/templates/casemanagement/upload.mako:8
+#: waskaweb/templates/casemanagement/upload.mako:9
 msgid "cm_header_import"
 msgstr "Fallakte importieren"
 
-#: waskaweb/templates/casemanagement/upload.mako:12
-msgid "cm_from_import_label_file"
-msgstr "PDF-Formular"
-
-#: waskaweb/templates/casemanagement/upload.mako:15
+#: waskaweb/templates/casemanagement/upload.mako:20
 msgid "cm_from_import_submit"
 msgstr "Importieren"
 
@@ -1779,7 +1806,7 @@
 msgstr "Fallakte wiederherstellen?"
 
 #: waskaweb/templates/casemanagement/dialogs/delete_attachment_success.mako:7
-#: waskaweb/templates/documents/case_new.mako:5
+#: waskaweb/templates/documents/case_new.mako:6
 #: waskaweb/templates/documents/case_overview.mako:6
 #: waskaweb/templates/documents/dialogs/delete_attachment_success.mako:5
 #: waskaweb/templates/documents/dialogs/failed_attachment.mako:5
@@ -1791,6 +1818,35 @@
 msgid "cm_np_delete_attachment_success"
 msgstr "Anlage gelöscht!"
 
+#: waskaweb/templates/casemanagement/dialogs/failed_delete_agency.mako:4
+#: waskaweb/templates/casemanagement/dialogs/failed_export_agency.mako:4
+#: waskaweb/templates/casemanagement/dialogs/success_delete_agency.mako:5
+#: waskaweb/templates/casemanagement/dialogs/success_export_agency.mako:5
+msgid "agency_np_root"
+msgstr "Agenturübersicht"
+
+#: waskaweb/templates/casemanagement/dialogs/failed_delete_agency.mako:5
+#: waskaweb/templates/casemanagement/dialogs/success_delete_agency.mako:6
+msgid "agency_np_bundled_delete"
+msgstr "Agentur Löschen"
+
+#: waskaweb/templates/casemanagement/dialogs/failed_delete_agency.mako:6
+msgid "agency_np_bundled_delete_failed"
+msgstr "Löschen fehlgeschlagen"
+
+#: waskaweb/templates/casemanagement/dialogs/failed_export_agency.mako:5
+#: waskaweb/templates/casemanagement/dialogs/success_export_agency.mako:6
+msgid "agency_np_bundled_export"
+msgstr "Agentur Exportieren"
+
+#: waskaweb/templates/casemanagement/dialogs/failed_export_agency.mako:6
+msgid "agency_np_bundled_export_failed"
+msgstr "Exportieren fehlgeschlagen"
+
+#: waskaweb/templates/casemanagement/dialogs/notificate_bundle_setstandin.mako:7
+msgid "cm_np_bundled_standin_success"
+msgstr "Vertretung zugewiesen!"
+
 #: waskaweb/templates/casemanagement/dialogs/notificate_import_dub.mako:7
 msgid "cm_np_import_failed"
 msgstr "Import fehlgeschlagen!"
@@ -1800,14 +1856,24 @@
 msgstr "Fallakte abgeschlossen!"
 
 #: waskaweb/templates/casemanagement/dialogs/success_delete.mako:6
+#: waskaweb/templates/casemanagement/dialogs/success_delete_admin.mako:6
 #: waskaweb/templates/casemanagement/dialogs/success_delete_cm.mako:6
+#: waskaweb/templates/casemanagement/dialogs/success_markdelete.mako:6
 msgid "cm_np_delete_success"
 msgstr "Fallakte gelöscht!"
 
+#: waskaweb/templates/casemanagement/dialogs/success_delete_agency.mako:7
+msgid "agency_np_bundled_delete_success"
+msgstr "Agenturen gelöscht!"
+
 #: waskaweb/templates/casemanagement/dialogs/success_delete_aid.mako:7
 msgid "cm_np_success_aid_delete"
 msgstr "Angebot gelöscht!"
 
+#: waskaweb/templates/casemanagement/dialogs/success_export_agency.mako:7
+msgid "agency_np_bundled_export_success"
+msgstr "Agenturen exportiert!"
+
 #: waskaweb/templates/casemanagement/dialogs/success_restore.mako:6
 msgid "cm_np_restore_success"
 msgstr "Wiederherstellen erfolgreich!"
@@ -1842,29 +1908,31 @@
 msgid "dialog_header_notification_option_ok"
 msgstr "OK"
 
-#: waskaweb/templates/documents/case_new.mako:6
+#: waskaweb/templates/documents/case_new.mako:7
 msgid "cm_np_doc_upload"
 msgstr "Anlage hinzufügen"
 
-#: waskaweb/templates/documents/case_new.mako:10
+#: waskaweb/templates/documents/case_new.mako:11
 msgid "cm_header_doc_new"
 msgstr "Neue Anlage hinzufügen"
 
-#: waskaweb/templates/documents/case_new.mako:16
+#: waskaweb/templates/documents/case_new.mako:17
 msgid "cm_menu_link_document_back"
 msgstr "Zurück zu: Anlagenübersicht"
 
-#: waskaweb/templates/documents/case_new.mako:25
-#: waskaweb/templates/documents/global_upload.mako:23
-#: waskaweb/templates/documents/upload_body.mako:5
-msgid "doc_form_upload_label_file"
-msgstr "Datei"
+#: waskaweb/templates/documents/case_new.mako:28
+msgid "att_form_upload_label_add"
+msgstr "Anlage auswählen:"
 
-#: waskaweb/templates/documents/case_new.mako:27
-#: waskaweb/templates/documents/global_upload.mako:25
+#: waskaweb/templates/documents/case_new.mako:30
+msgid "att_form_upload_label_up"
+msgstr "Anlage hinzufügen:"
+
+#: waskaweb/templates/documents/case_new.mako:31
+#: waskaweb/templates/documents/global_upload.mako:28
 #: waskaweb/templates/documents/upload_body.mako:8
 msgid "doc_form_upload_submit"
-msgstr "Datei hinzufügen"
+msgstr "Hinzufügen"
 
 #: waskaweb/templates/documents/case_overview.mako:11
 msgid "cm_header_doc_overview"
@@ -1895,7 +1963,7 @@
 msgstr "Es wurden keine Dateien gefunden"
 
 #: waskaweb/templates/documents/global_overview.mako:6
-#: waskaweb/templates/documents/global_upload.mako:4
+#: waskaweb/templates/documents/global_upload.mako:5
 #: waskaweb/templates/documents/dialogs/confirm.mako:4
 #: waskaweb/templates/documents/dialogs/delete_document_success.mako:4
 #: waskaweb/templates/documents/dialogs/failed_document.mako:4
@@ -1911,20 +1979,25 @@
 msgid "doc_actions_link_new"
 msgstr "Neues Dokument hinzufügen"
 
-#: waskaweb/templates/documents/global_upload.mako:5
+#: waskaweb/templates/documents/global_upload.mako:6
 #: waskaweb/templates/documents/dialogs/failed_document.mako:5
 #: waskaweb/templates/documents/dialogs/success_documents.mako:5
 msgid "doc_np_upload"
 msgstr "Dokument hinzufügen"
 
-#: waskaweb/templates/documents/global_upload.mako:9
+#: waskaweb/templates/documents/global_upload.mako:10
 msgid "doc_header_new"
 msgstr "Neues Dokument hinzufügen "
 
-#: waskaweb/templates/documents/global_upload.mako:14
+#: waskaweb/templates/documents/global_upload.mako:15
 msgid "menu_doc_link_overview_back"
 msgstr "Zurück zu: Dokumentenübersicht"
 
+#: waskaweb/templates/documents/global_upload.mako:25
+#: waskaweb/templates/documents/upload_body.mako:5
+msgid "doc_form_upload_label_file"
+msgstr "Dokument auswählen:"
+
 #: waskaweb/templates/documents/dialogs/confirm.mako:5
 msgid "doc_np_delete"
 msgstr "Dokument löschen?"
@@ -2069,24 +2142,24 @@
 msgid "sm_menu_link_settings_back"
 msgstr "Zurück zu: Mein Konto"
 
-#: waskaweb/templates/usersettings/change_password.mako:25
-#: waskaweb/templates/usersettings/change_password.mako:28
+#: waskaweb/templates/usersettings/change_password.mako:27
+#: waskaweb/templates/usersettings/change_password.mako:30
 #: waskaweb/templates/usersettings/change_password_login.mako:20
 #: waskaweb/templates/usersettings/change_password_login.mako:23
 msgid "adm_form_newuser_passwd"
-msgstr "Passwort"
+msgstr "Neues Passwort eingeben:"
 
-#: waskaweb/templates/usersettings/change_password.mako:34
-#: waskaweb/templates/usersettings/change_password.mako:37
+#: waskaweb/templates/usersettings/change_password.mako:36
+#: waskaweb/templates/usersettings/change_password.mako:39
 #: waskaweb/templates/usersettings/change_password_login.mako:29
 #: waskaweb/templates/usersettings/change_password_login.mako:32
 msgid "adm_form_newuser_passwd_confirm"
-msgstr "Passwort (Wiederholung)"
+msgstr "Neues Passwort wiederholen:"
 
-#: waskaweb/templates/usersettings/change_password.mako:42
+#: waskaweb/templates/usersettings/change_password.mako:45
 #: waskaweb/templates/usersettings/change_password_login.mako:38
 msgid "adm_form_changepassword_submit"
-msgstr "Passwort ändern"
+msgstr "Speichern"
 
 #: waskaweb/templates/usersettings/change_password_login.mako:5
 msgid "adm_header_changepassword_needed"
@@ -2152,6 +2225,17 @@
 msgid "adm_np_changepassword"
 msgstr "Benutzerpasswort geändert!"
 
+#~ msgid "cm_header_downloadcsv"
+#~ msgstr "CSV Herunterladen"
+
+#~ msgid "cm_bundle_standin_explain_cm_ka"
+#~ msgstr ""
+#~ "Beachten Sie, dass aus der folgenden Liste nur für die Fälle die "
+#~ "Vertretung gesetzt werden wird, für die Sie der Hauptbearbeiter sind"
+
+#~ msgid "cm_from_import_label_file"
+#~ msgstr "PDF-Formular wählen:"
+
 #~ msgid "cm_header_digest_personal"
 #~ msgstr "Angaben zum Jugendlichen"
 

Modified: trunk/waskaweb/i18n/waskaweb.pot
===================================================================
--- trunk/waskaweb/i18n/waskaweb.pot	2008-08-13 13:09:56 UTC (rev 37)
+++ trunk/waskaweb/i18n/waskaweb.pot	2008-08-13 13:10:22 UTC (rev 38)
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: waskaweb 0.0.0\n"
 "Report-Msgid-Bugs-To: EMAIL at ADDRESS\n"
-"POT-Creation-Date: 2008-02-04 16:29+0100\n"
+"POT-Creation-Date: 2008-03-03 15:27+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <LL at li.org>\n"
@@ -171,25 +171,25 @@
 msgid "cm_rg_aid_overview_legend_new_offer"
 msgstr ""
 
-#: waskaweb/model/case.py:879 waskaweb/templates/casemanagement/caselist.mako:37
+#: waskaweb/model/case.py:898 waskaweb/templates/casemanagement/caselist.mako:37
 #: waskaweb/templates/casemanagement/caselist.mako:74
 msgid "case_state_label_open"
 msgstr ""
 
-#: waskaweb/model/case.py:880 waskaweb/templates/casemanagement/caselist.mako:39
+#: waskaweb/model/case.py:899 waskaweb/templates/casemanagement/caselist.mako:39
 #: waskaweb/templates/casemanagement/caselist.mako:76
 msgid "case_state_label_closed"
 msgstr ""
 
-#: waskaweb/model/case.py:881
+#: waskaweb/model/case.py:900
 msgid "case_state_label_outstanding_delete"
 msgstr ""
 
-#: waskaweb/model/case.py:882
+#: waskaweb/model/case.py:901
 msgid "case_state_label_outstanding_anon"
 msgstr ""
 
-#: waskaweb/model/case.py:883
+#: waskaweb/model/case.py:902
 msgid "case_state_label_anon"
 msgstr ""
 
@@ -257,58 +257,58 @@
 msgid "np_root"
 msgstr ""
 
-#: waskaweb/templates/main.mako:108
+#: waskaweb/templates/main.mako:106
 #: waskaweb/templates/appointments/dialogs/confirm.mako:4
 #: waskaweb/templates/appointments/dialogs/notificate_delete_appointment.mako:5
 msgid "menu_app_link_overview"
 msgstr ""
 
-#: waskaweb/templates/main.mako:111
+#: waskaweb/templates/main.mako:107
 msgid "menu_doc_link_overview"
 msgstr ""
 
-#: waskaweb/templates/main.mako:120
+#: waskaweb/templates/main.mako:115 waskaweb/templates/main.mako:125
 msgid "menu_header_cm"
 msgstr ""
 
-#: waskaweb/templates/main.mako:122
+#: waskaweb/templates/main.mako:117 waskaweb/templates/main.mako:127
 msgid "menu_cm_link_overview"
 msgstr ""
 
-#: waskaweb/templates/main.mako:125
-msgid "menu_cm_link_new"
+#: waskaweb/templates/main.mako:118 waskaweb/templates/main.mako:132
+#: waskaweb/templates/casemanagement/evaluation.mako:8
+msgid "cm_actions_link_evaluate"
 msgstr ""
 
-#: waskaweb/templates/main.mako:127
-msgid "menu_cm_link_import"
+#: waskaweb/templates/main.mako:129
+msgid "menu_cm_link_new"
 msgstr ""
 
 #: waskaweb/templates/main.mako:130
-#: waskaweb/templates/casemanagement/evaluation.mako:8
-msgid "cm_actions_link_evaluate"
+msgid "menu_cm_link_import"
 msgstr ""
 
-#: waskaweb/templates/main.mako:143
+#: waskaweb/templates/main.mako:145
 msgid "menu_header_adm"
 msgstr ""
 
-#: waskaweb/templates/main.mako:145
+#: waskaweb/templates/main.mako:147
 msgid "menu_adm_link_useroverview"
 msgstr ""
 
-#: waskaweb/templates/main.mako:148
+#: waskaweb/templates/main.mako:150
 msgid "menu_adm_link_showsettings"
 msgstr ""
 
-#: waskaweb/templates/main.mako:161
+#: waskaweb/templates/main.mako:163
 msgid "main_formular_input_error"
 msgstr ""
 
-#: waskaweb/templates/main.mako:173
+#: waskaweb/templates/main.mako:175
 msgid "footer_title"
 msgstr ""
 
-#: waskaweb/templates/main.mako:173
+#: waskaweb/templates/main.mako:175
 msgid "footer_version"
 msgstr ""
 
@@ -353,7 +353,6 @@
 #: waskaweb/templates/administration/dialogs/success_delete_user.mako:5
 #: waskaweb/templates/administration/dialogs/success_edit_agency.mako:5
 #: waskaweb/templates/administration/dialogs/success_edit_user.mako:5
-#: waskaweb/templates/statement/dialogs/ee_accept_success.mako:5
 #: waskaweb/templates/statement/dialogs/ee_decline_success.mako:5
 msgid "adm_np_root"
 msgstr ""
@@ -374,7 +373,6 @@
 #: waskaweb/templates/administration/dialogs/notificate_deleteuser.mako:6
 #: waskaweb/templates/administration/dialogs/success_delete_user.mako:6
 #: waskaweb/templates/administration/dialogs/success_edit_user.mako:6
-#: waskaweb/templates/statement/dialogs/ee_accept_success.mako:6
 #: waskaweb/templates/statement/dialogs/ee_decline_success.mako:6
 msgid "adm_np_overview"
 msgstr ""
@@ -428,27 +426,26 @@
 msgid "adm_con_es_editsettings"
 msgstr ""
 
-#: waskaweb/templates/administration/edit_settings.mako:28
+#: waskaweb/templates/administration/edit_settings.mako:29
 #: waskaweb/templates/administration/show_settings.mako:26
 msgid "adm_form_settings_kaname"
 msgstr ""
 
-#: waskaweb/templates/administration/edit_settings.mako:37
+#: waskaweb/templates/administration/edit_settings.mako:36
 #: waskaweb/templates/administration/show_settings.mako:30
 msgid "adm_form_settings_fkz"
 msgstr ""
 
-#: waskaweb/templates/administration/edit_settings.mako:45
-#: waskaweb/templates/administration/show_settings.mako:34
+#: waskaweb/templates/administration/edit_settings.mako:46
 msgid "adm_form_settings_max_savetime"
 msgstr ""
 
-#: waskaweb/templates/administration/edit_settings.mako:60
+#: waskaweb/templates/administration/edit_settings.mako:62
 #: waskaweb/templates/administration/show_settings.mako:38
 msgid "adm_form_settings_anontransfer"
 msgstr ""
 
-#: waskaweb/templates/administration/edit_settings.mako:77
+#: waskaweb/templates/administration/edit_settings.mako:81
 msgid "adm_form_settings_save"
 msgstr ""
 
@@ -527,19 +524,19 @@
 msgstr ""
 
 #: waskaweb/templates/administration/edit_user.mako:88
-#: waskaweb/templates/administration/new_user.mako:90
+#: waskaweb/templates/administration/new_user.mako:94
 #: waskaweb/templates/administration/userform_body.mako:28
 msgid "adm_form_user_activated"
 msgstr ""
 
 #: waskaweb/templates/administration/edit_user.mako:96
-#: waskaweb/templates/administration/new_user.mako:94
+#: waskaweb/templates/administration/new_user.mako:98
 #: waskaweb/templates/administration/userform_body.mako:36
 msgid "adm_form_user_newpass"
 msgstr ""
 
 #: waskaweb/templates/administration/edit_user.mako:99
-#: waskaweb/templates/administration/new_user.mako:97
+#: waskaweb/templates/administration/new_user.mako:101
 #: waskaweb/templates/administration/userform_body.mako:54
 msgid "adm_form_user_submit"
 msgstr ""
@@ -654,11 +651,15 @@
 msgstr ""
 
 #: waskaweb/templates/administration/overview_user.mako:27
+msgid "adm_overview_tbl_header_role"
+msgstr ""
+
+#: waskaweb/templates/administration/overview_user.mako:28
 msgid "adm_overview_tbl_header_actions"
 msgstr ""
 
-#: waskaweb/templates/administration/overview_user.mako:36
-#: waskaweb/templates/administration/overview_user.mako:48
+#: waskaweb/templates/administration/overview_user.mako:42
+#: waskaweb/templates/administration/overview_user.mako:59
 #: waskaweb/templates/casemanagement/caselist.mako:45
 #: waskaweb/templates/casemanagement/caselist.mako:82
 #: waskaweb/templates/documents/case_overview.mako:42
@@ -670,8 +671,10 @@
 msgid "cm_overview_a_show"
 msgstr ""
 
-#: waskaweb/templates/administration/overview_user.mako:38
-#: waskaweb/templates/administration/overview_user.mako:50
+#: waskaweb/templates/administration/overview_user.mako:44
+#: waskaweb/templates/administration/overview_user.mako:61
+#: waskaweb/templates/casemanagement/agencylist.mako:20
+#: waskaweb/templates/casemanagement/agencylist.mako:30
 #: waskaweb/templates/casemanagement/caselist.mako:47
 #: waskaweb/templates/casemanagement/caselist.mako:50
 #: waskaweb/templates/casemanagement/caselist.mako:84
@@ -1033,44 +1036,30 @@
 msgid "app_np_delete"
 msgstr ""
 
-#: waskaweb/templates/casemanagement/appointments.mako:4
-#: waskaweb/templates/casemanagement/digest.mako:5
-#: waskaweb/templates/casemanagement/formular.mako:34
-#: waskaweb/templates/casemanagement/new_appointment.mako:5
-#: waskaweb/templates/casemanagement/organisation.mako:6
-#: waskaweb/templates/casemanagement/dialogs/confirm_close.mako:5
-#: waskaweb/templates/casemanagement/dialogs/confirm_delete_aid.mako:5
-#: waskaweb/templates/casemanagement/dialogs/confirm_delete_attachment.mako:4
-#: waskaweb/templates/casemanagement/dialogs/confirm_open.mako:5
-#: waskaweb/templates/casemanagement/dialogs/delete_attachment_success.mako:6
-#: waskaweb/templates/casemanagement/dialogs/success_case_close.mako:5
-#: waskaweb/templates/casemanagement/dialogs/success_delete_aid.mako:5
-#: waskaweb/templates/documents/case_new.mako:4
-#: waskaweb/templates/documents/case_overview.mako:5
-#: waskaweb/templates/documents/dialogs/delete_attachment_success.mako:4
-#: waskaweb/templates/documents/dialogs/failed_attachment.mako:4
-msgid "cm_np_select"
-msgstr ""
-
+#: waskaweb/templates/casemanagement/agency_overview.mako:6
 #: waskaweb/templates/casemanagement/bundle_editor.mako:6
 #: waskaweb/templates/casemanagement/bundle_standin.mako:6
+#: waskaweb/templates/casemanagement/downloadCSV.mako:6
 #: waskaweb/templates/casemanagement/evaluation.mako:4
 #: waskaweb/templates/casemanagement/evaluation_result.mako:6
 #: waskaweb/templates/casemanagement/main.mako:10
 #: waskaweb/templates/casemanagement/new.mako:5
 #: waskaweb/templates/casemanagement/overview.mako:6
-#: waskaweb/templates/casemanagement/upload.mako:5
+#: waskaweb/templates/casemanagement/upload.mako:6
 #: waskaweb/templates/casemanagement/dialogs/alert.mako:5
 #: waskaweb/templates/casemanagement/dialogs/confirm.mako:5
 #: waskaweb/templates/casemanagement/dialogs/confirm_delete.mako:5
 #: waskaweb/templates/casemanagement/dialogs/confirm_restore.mako:5
 #: waskaweb/templates/casemanagement/dialogs/delete_attachment_success.mako:4
+#: waskaweb/templates/casemanagement/dialogs/failed_seteditor.mako:4
 #: waskaweb/templates/casemanagement/dialogs/notificate_bundle_seteditor.mako:5
 #: waskaweb/templates/casemanagement/dialogs/notificate_bundle_setstandin.mako:5
 #: waskaweb/templates/casemanagement/dialogs/notificate_import_dub.mako:5
 #: waskaweb/templates/casemanagement/dialogs/notificate_printall.mako:5
 #: waskaweb/templates/casemanagement/dialogs/success_delete.mako:5
+#: waskaweb/templates/casemanagement/dialogs/success_delete_admin.mako:5
 #: waskaweb/templates/casemanagement/dialogs/success_delete_cm.mako:5
+#: waskaweb/templates/casemanagement/dialogs/success_markdelete.mako:5
 #: waskaweb/templates/casemanagement/dialogs/success_restore.mako:5
 #: waskaweb/templates/casemanagement/static_form/statement.mako:5
 #: waskaweb/templates/casemanagement/static_form/statement_print.mako:5
@@ -1079,7 +1068,63 @@
 msgid "cm_np_root"
 msgstr ""
 
+#: waskaweb/templates/casemanagement/agency_overview.mako:7
+#: waskaweb/templates/casemanagement/downloadCSV.mako:7
+#: waskaweb/templates/casemanagement/main.mako:11
+#: waskaweb/templates/casemanagement/overview.mako:7
+#: waskaweb/templates/casemanagement/dialogs/delete_attachment_success.mako:5
+#: waskaweb/templates/statement/dialogs/missing_statement.mako:6
+msgid "cm_np_overview"
+msgstr ""
+
+#: waskaweb/templates/casemanagement/agency_overview.mako:9
+#: waskaweb/templates/casemanagement/overview.mako:9
+msgid "cm_header_overview"
+msgstr ""
+
+#: waskaweb/templates/casemanagement/agencylist.mako:6
+msgid "cm_overview_tbl_header_fkz"
+msgstr ""
+
+#: waskaweb/templates/casemanagement/agencylist.mako:7
+msgid "cm_overview_tbl_header_number_cases"
+msgstr ""
+
+#: waskaweb/templates/casemanagement/agencylist.mako:8
+msgid "cm_overview_tbl_header_last_update"
+msgstr ""
+
+#: waskaweb/templates/casemanagement/agencylist.mako:9
+#: waskaweb/templates/casemanagement/caselist.mako:13
+msgid "cm_overview_tbl_header_actions"
+msgstr ""
+
+#: waskaweb/templates/casemanagement/agencylist.mako:39
+#: waskaweb/templates/casemanagement/caselist.mako:97
+msgid "cm_overview_tbl_no_data_found"
+msgstr ""
+
+#: waskaweb/templates/casemanagement/appointments.mako:4
+#: waskaweb/templates/casemanagement/digest.mako:5
+#: waskaweb/templates/casemanagement/formular.mako:34
+#: waskaweb/templates/casemanagement/new_appointment.mako:5
+#: waskaweb/templates/casemanagement/organisation.mako:6
+#: waskaweb/templates/casemanagement/dialogs/confirm_close.mako:5
+#: waskaweb/templates/casemanagement/dialogs/confirm_delete_aid.mako:5
+#: waskaweb/templates/casemanagement/dialogs/confirm_delete_attachment.mako:4
+#: waskaweb/templates/casemanagement/dialogs/confirm_open.mako:5
+#: waskaweb/templates/casemanagement/dialogs/delete_attachment_success.mako:6
+#: waskaweb/templates/casemanagement/dialogs/success_case_close.mako:5
+#: waskaweb/templates/casemanagement/dialogs/success_delete_aid.mako:5
+#: waskaweb/templates/documents/case_new.mako:5
+#: waskaweb/templates/documents/case_overview.mako:5
+#: waskaweb/templates/documents/dialogs/delete_attachment_success.mako:4
+#: waskaweb/templates/documents/dialogs/failed_attachment.mako:4
+msgid "cm_np_select"
+msgstr ""
+
 #: waskaweb/templates/casemanagement/bundle_editor.mako:7
+#: waskaweb/templates/casemanagement/dialogs/failed_seteditor.mako:5
 #: waskaweb/templates/casemanagement/dialogs/notificate_bundle_seteditor.mako:6
 msgid "cm_np_bundled_editor"
 msgstr ""
@@ -1108,19 +1153,15 @@
 msgid "cm_bundle_standin_explain"
 msgstr ""
 
-#: waskaweb/templates/casemanagement/bundle_standin.mako:18
-msgid "cm_bundle_standin_explain_cm_ka"
-msgstr ""
-
-#: waskaweb/templates/casemanagement/bundle_standin.mako:30
+#: waskaweb/templates/casemanagement/bundle_standin.mako:28
 msgid "attention"
 msgstr ""
 
-#: waskaweb/templates/casemanagement/bundle_standin.mako:30
+#: waskaweb/templates/casemanagement/bundle_standin.mako:28
 msgid "cm_bundle_standin_explain_attention"
 msgstr ""
 
-#: waskaweb/templates/casemanagement/bundle_standin.mako:52
+#: waskaweb/templates/casemanagement/bundle_standin.mako:50
 #: waskaweb/templates/casemanagement/organisation.mako:70
 msgid "cm_form_standin_submit"
 msgstr ""
@@ -1145,10 +1186,6 @@
 msgid "cm_overview_tbl_header_status"
 msgstr ""
 
-#: waskaweb/templates/casemanagement/caselist.mako:13
-msgid "cm_overview_tbl_header_actions"
-msgstr ""
-
 #: waskaweb/templates/casemanagement/caselist.mako:31
 #: waskaweb/templates/casemanagement/caselist.mako:68
 msgid "cm_overview_img_editor"
@@ -1169,10 +1206,6 @@
 msgid "cm_overview_a_restore"
 msgstr ""
 
-#: waskaweb/templates/casemanagement/caselist.mako:97
-msgid "cm_overview_tbl_no_data_found"
-msgstr ""
-
 #: waskaweb/templates/casemanagement/create_export_scheme.mako:2
 msgid "cm_header_export_createscheme"
 msgstr ""
@@ -1317,25 +1350,25 @@
 
 #: waskaweb/templates/casemanagement/evaluation_result.mako:40
 #: waskaweb/templates/casemanagement/evaluation_result.mako:97
-#: waskaweb/templates/casemanagement/evaluation_result.mako:125
-#: waskaweb/templates/casemanagement/evaluation_result.mako:157
-#: waskaweb/templates/casemanagement/evaluation_result.mako:176
-#: waskaweb/templates/casemanagement/evaluation_result.mako:206
-#: waskaweb/templates/casemanagement/evaluation_result.mako:238
-#: waskaweb/templates/casemanagement/evaluation_result.mako:271
-#: waskaweb/templates/casemanagement/evaluation_result.mako:301
+#: waskaweb/templates/casemanagement/evaluation_result.mako:131
+#: waskaweb/templates/casemanagement/evaluation_result.mako:163
+#: waskaweb/templates/casemanagement/evaluation_result.mako:194
+#: waskaweb/templates/casemanagement/evaluation_result.mako:224
+#: waskaweb/templates/casemanagement/evaluation_result.mako:256
+#: waskaweb/templates/casemanagement/evaluation_result.mako:289
+#: waskaweb/templates/casemanagement/evaluation_result.mako:319
 msgid "cm_eval_table_number"
 msgstr ""
 
 #: waskaweb/templates/casemanagement/evaluation_result.mako:41
 #: waskaweb/templates/casemanagement/evaluation_result.mako:98
-#: waskaweb/templates/casemanagement/evaluation_result.mako:126
-#: waskaweb/templates/casemanagement/evaluation_result.mako:158
-#: waskaweb/templates/casemanagement/evaluation_result.mako:177
-#: waskaweb/templates/casemanagement/evaluation_result.mako:207
-#: waskaweb/templates/casemanagement/evaluation_result.mako:239
-#: waskaweb/templates/casemanagement/evaluation_result.mako:272
-#: waskaweb/templates/casemanagement/evaluation_result.mako:302
+#: waskaweb/templates/casemanagement/evaluation_result.mako:132
+#: waskaweb/templates/casemanagement/evaluation_result.mako:164
+#: waskaweb/templates/casemanagement/evaluation_result.mako:195
+#: waskaweb/templates/casemanagement/evaluation_result.mako:225
+#: waskaweb/templates/casemanagement/evaluation_result.mako:257
+#: waskaweb/templates/casemanagement/evaluation_result.mako:290
+#: waskaweb/templates/casemanagement/evaluation_result.mako:320
 msgid "cm_eval_table_percent"
 msgstr ""
 
@@ -1349,27 +1382,27 @@
 
 #: waskaweb/templates/casemanagement/evaluation_result.mako:57
 #: waskaweb/templates/casemanagement/evaluation_result.mako:89
-#: waskaweb/templates/casemanagement/evaluation_result.mako:120
-#: waskaweb/templates/casemanagement/evaluation_result.mako:150
-#: waskaweb/templates/casemanagement/evaluation_result.mako:168
-#: waskaweb/templates/casemanagement/evaluation_result.mako:201
-#: waskaweb/templates/casemanagement/evaluation_result.mako:231
-#: waskaweb/templates/casemanagement/evaluation_result.mako:263
-#: waskaweb/templates/casemanagement/evaluation_result.mako:296
-#: waskaweb/templates/casemanagement/evaluation_result.mako:326
+#: waskaweb/templates/casemanagement/evaluation_result.mako:126
+#: waskaweb/templates/casemanagement/evaluation_result.mako:156
+#: waskaweb/templates/casemanagement/evaluation_result.mako:186
+#: waskaweb/templates/casemanagement/evaluation_result.mako:219
+#: waskaweb/templates/casemanagement/evaluation_result.mako:249
+#: waskaweb/templates/casemanagement/evaluation_result.mako:281
+#: waskaweb/templates/casemanagement/evaluation_result.mako:314
+#: waskaweb/templates/casemanagement/evaluation_result.mako:344
 msgid "cm_eval_table_to_overview"
 msgstr ""
 
 #: waskaweb/templates/casemanagement/evaluation_result.mako:57
 #: waskaweb/templates/casemanagement/evaluation_result.mako:89
-#: waskaweb/templates/casemanagement/evaluation_result.mako:120
-#: waskaweb/templates/casemanagement/evaluation_result.mako:150
-#: waskaweb/templates/casemanagement/evaluation_result.mako:168
-#: waskaweb/templates/casemanagement/evaluation_result.mako:201
-#: waskaweb/templates/casemanagement/evaluation_result.mako:231
-#: waskaweb/templates/casemanagement/evaluation_result.mako:263
-#: waskaweb/templates/casemanagement/evaluation_result.mako:296
-#: waskaweb/templates/casemanagement/evaluation_result.mako:326
+#: waskaweb/templates/casemanagement/evaluation_result.mako:126
+#: waskaweb/templates/casemanagement/evaluation_result.mako:156
+#: waskaweb/templates/casemanagement/evaluation_result.mako:186
+#: waskaweb/templates/casemanagement/evaluation_result.mako:219
+#: waskaweb/templates/casemanagement/evaluation_result.mako:249
+#: waskaweb/templates/casemanagement/evaluation_result.mako:281
+#: waskaweb/templates/casemanagement/evaluation_result.mako:314
+#: waskaweb/templates/casemanagement/evaluation_result.mako:344
 msgid "cm_eval_table_export_analysis"
 msgstr ""
 
@@ -1413,71 +1446,83 @@
 msgid "cm_eval_label_intersexual"
 msgstr ""
 
-#: waskaweb/templates/casemanagement/evaluation_result.mako:121
+#: waskaweb/templates/casemanagement/evaluation_result.mako:120
+msgid "cm_eval_label_unknown"
+msgstr ""
+
+#: waskaweb/templates/casemanagement/evaluation_result.mako:127
 msgid "cm_eval_header_on_age"
 msgstr ""
 
-#: waskaweb/templates/casemanagement/evaluation_result.mako:124
+#: waskaweb/templates/casemanagement/evaluation_result.mako:130
 msgid "cm_eval_table_age"
 msgstr ""
 
-#: waskaweb/templates/casemanagement/evaluation_result.mako:153
+#: waskaweb/templates/casemanagement/evaluation_result.mako:159
 msgid "cm_eval_header_4"
 msgstr ""
 
-#: waskaweb/templates/casemanagement/evaluation_result.mako:156
+#: waskaweb/templates/casemanagement/evaluation_result.mako:162
 msgid "cm_eval_table_category"
 msgstr ""
 
-#: waskaweb/templates/casemanagement/evaluation_result.mako:162
+#: waskaweb/templates/casemanagement/evaluation_result.mako:168
 msgid "cm_eval_label_migration_background"
 msgstr ""
 
-#: waskaweb/templates/casemanagement/evaluation_result.mako:171
+#: waskaweb/templates/casemanagement/evaluation_result.mako:174
+msgid "cm_eval_label_no_migration_background"
+msgstr ""
+
+#: waskaweb/templates/casemanagement/evaluation_result.mako:180
+msgid "cm_eval_label_ka_migration_background"
+msgstr ""
+
+#: waskaweb/templates/casemanagement/evaluation_result.mako:189
 msgid "cm_eval_header_5"
 msgstr ""
 
-#: waskaweb/templates/casemanagement/evaluation_result.mako:172
+#: waskaweb/templates/casemanagement/evaluation_result.mako:190
 msgid "cm_eval_header_access_youngster_to_agency"
 msgstr ""
 
-#: waskaweb/templates/casemanagement/evaluation_result.mako:175
+#: waskaweb/templates/casemanagement/evaluation_result.mako:193
 msgid "cm_eval_table_access"
 msgstr ""
 
-#: waskaweb/templates/casemanagement/evaluation_result.mako:202
+#: waskaweb/templates/casemanagement/evaluation_result.mako:220
 msgid "cm_eval_head_law_access_agency"
 msgstr ""
 
-#: waskaweb/templates/casemanagement/evaluation_result.mako:205
+#: waskaweb/templates/casemanagement/evaluation_result.mako:223
 msgid "cm_eval_table_law"
 msgstr ""
 
-#: waskaweb/templates/casemanagement/evaluation_result.mako:234
+#: waskaweb/templates/casemanagement/evaluation_result.mako:252
 msgid "cm_eval_header_6"
 msgstr ""
 
-#: waskaweb/templates/casemanagement/evaluation_result.mako:237
+#: waskaweb/templates/casemanagement/evaluation_result.mako:255
 msgid "cm_eval_table_offer"
 msgstr ""
 
-#: waskaweb/templates/casemanagement/evaluation_result.mako:266
+#: waskaweb/templates/casemanagement/evaluation_result.mako:284
 msgid "cm_eval_header_7"
 msgstr ""
 
-#: waskaweb/templates/casemanagement/evaluation_result.mako:267
+#: waskaweb/templates/casemanagement/evaluation_result.mako:285
 msgid "cm_eval_head_where_to_place_youngster"
 msgstr ""
 
-#: waskaweb/templates/casemanagement/evaluation_result.mako:270
+#: waskaweb/templates/casemanagement/evaluation_result.mako:288
 msgid "cm_eval_table_place"
 msgstr ""
 
-#: waskaweb/templates/casemanagement/evaluation_result.mako:297
+#: waskaweb/templates/casemanagement/evaluation_result.mako:315
 msgid "cm_eval_header_law_changed_after_place"
 msgstr ""
 
-#: waskaweb/templates/casemanagement/evaluation_result.mako:300
+#: waskaweb/templates/casemanagement/evaluation_result.mako:318
 msgid "cm_eval_table_law_change"
 msgstr ""
 
@@ -1536,13 +1581,6 @@
 msgid "cm_help_header_help_for_dossier"
 msgstr ""
 
-#: waskaweb/templates/casemanagement/main.mako:11
-#: waskaweb/templates/casemanagement/overview.mako:7
-#: waskaweb/templates/casemanagement/dialogs/delete_attachment_success.mako:5
-#: waskaweb/templates/statement/dialogs/missing_statement.mako:6
-msgid "cm_np_overview"
-msgstr ""
-
 #: waskaweb/templates/casemanagement/main.mako:19
 msgid "cm_info_name"
 msgstr ""
@@ -1658,10 +1696,6 @@
 msgid "cm_menu_link_open"
 msgstr ""
 
-#: waskaweb/templates/casemanagement/overview.mako:9
-msgid "cm_header_overview"
-msgstr ""
-
 #: waskaweb/templates/casemanagement/overview.mako:11
 msgid "cm_overview_con_list_dossiers_admin"
 msgstr ""
@@ -1674,20 +1708,16 @@
 msgid "cm_form_overview_search_submit"
 msgstr ""
 
-#: waskaweb/templates/casemanagement/upload.mako:6
+#: waskaweb/templates/casemanagement/upload.mako:7
 #: waskaweb/templates/casemanagement/dialogs/notificate_import_dub.mako:6
 msgid "cm_np_import"
 msgstr ""
 
-#: waskaweb/templates/casemanagement/upload.mako:8
+#: waskaweb/templates/casemanagement/upload.mako:9
 msgid "cm_header_import"
 msgstr ""
 
-#: waskaweb/templates/casemanagement/upload.mako:12
-msgid "cm_from_import_label_file"
-msgstr ""
-
-#: waskaweb/templates/casemanagement/upload.mako:15
+#: waskaweb/templates/casemanagement/upload.mako:20
 msgid "cm_from_import_submit"
 msgstr ""
 
@@ -1727,7 +1757,7 @@
 msgstr ""
 
 #: waskaweb/templates/casemanagement/dialogs/delete_attachment_success.mako:7
-#: waskaweb/templates/documents/case_new.mako:5
+#: waskaweb/templates/documents/case_new.mako:6
 #: waskaweb/templates/documents/case_overview.mako:6
 #: waskaweb/templates/documents/dialogs/delete_attachment_success.mako:5
 #: waskaweb/templates/documents/dialogs/failed_attachment.mako:5
@@ -1739,6 +1769,35 @@
 msgid "cm_np_delete_attachment_success"
 msgstr ""
 
+#: waskaweb/templates/casemanagement/dialogs/failed_delete_agency.mako:4
+#: waskaweb/templates/casemanagement/dialogs/failed_export_agency.mako:4
+#: waskaweb/templates/casemanagement/dialogs/success_delete_agency.mako:5
+#: waskaweb/templates/casemanagement/dialogs/success_export_agency.mako:5
+msgid "agency_np_root"
+msgstr ""
+
+#: waskaweb/templates/casemanagement/dialogs/failed_delete_agency.mako:5
+#: waskaweb/templates/casemanagement/dialogs/success_delete_agency.mako:6
+msgid "agency_np_bundled_delete"
+msgstr ""
+
+#: waskaweb/templates/casemanagement/dialogs/failed_delete_agency.mako:6
+msgid "agency_np_bundled_delete_failed"
+msgstr ""
+
+#: waskaweb/templates/casemanagement/dialogs/failed_export_agency.mako:5
+#: waskaweb/templates/casemanagement/dialogs/success_export_agency.mako:6
+msgid "agency_np_bundled_export"
+msgstr ""
+
+#: waskaweb/templates/casemanagement/dialogs/failed_export_agency.mako:6
+msgid "agency_np_bundled_export_failed"
+msgstr ""
+
+#: waskaweb/templates/casemanagement/dialogs/notificate_bundle_setstandin.mako:7
+msgid "cm_np_bundled_standin_success"
+msgstr ""
+
 #: waskaweb/templates/casemanagement/dialogs/notificate_import_dub.mako:7
 msgid "cm_np_import_failed"
 msgstr ""
@@ -1748,14 +1807,24 @@
 msgstr ""
 
 #: waskaweb/templates/casemanagement/dialogs/success_delete.mako:6
+#: waskaweb/templates/casemanagement/dialogs/success_delete_admin.mako:6
 #: waskaweb/templates/casemanagement/dialogs/success_delete_cm.mako:6
+#: waskaweb/templates/casemanagement/dialogs/success_markdelete.mako:6
 msgid "cm_np_delete_success"
 msgstr ""
 
+#: waskaweb/templates/casemanagement/dialogs/success_delete_agency.mako:7
+msgid "agency_np_bundled_delete_success"
+msgstr ""
+
 #: waskaweb/templates/casemanagement/dialogs/success_delete_aid.mako:7
 msgid "cm_np_success_aid_delete"
 msgstr ""
 
+#: waskaweb/templates/casemanagement/dialogs/success_export_agency.mako:7
+msgid "agency_np_bundled_export_success"
+msgstr ""
+
 #: waskaweb/templates/casemanagement/dialogs/success_restore.mako:6
 msgid "cm_np_restore_success"
 msgstr ""
@@ -1789,26 +1858,28 @@
 msgid "dialog_header_notification_option_ok"
 msgstr ""
 
-#: waskaweb/templates/documents/case_new.mako:6
+#: waskaweb/templates/documents/case_new.mako:7
 msgid "cm_np_doc_upload"
 msgstr ""
 
-#: waskaweb/templates/documents/case_new.mako:10
+#: waskaweb/templates/documents/case_new.mako:11
 msgid "cm_header_doc_new"
 msgstr ""
 
-#: waskaweb/templates/documents/case_new.mako:16
+#: waskaweb/templates/documents/case_new.mako:17
 msgid "cm_menu_link_document_back"
 msgstr ""
 
-#: waskaweb/templates/documents/case_new.mako:25
-#: waskaweb/templates/documents/global_upload.mako:23
-#: waskaweb/templates/documents/upload_body.mako:5
-msgid "doc_form_upload_label_file"
+#: waskaweb/templates/documents/case_new.mako:28
+msgid "att_form_upload_label_add"
 msgstr ""
 
-#: waskaweb/templates/documents/case_new.mako:27
-#: waskaweb/templates/documents/global_upload.mako:25
+#: waskaweb/templates/documents/case_new.mako:30
+msgid "att_form_upload_label_up"
+msgstr ""
+
+#: waskaweb/templates/documents/case_new.mako:31
+#: waskaweb/templates/documents/global_upload.mako:28
 #: waskaweb/templates/documents/upload_body.mako:8
 msgid "doc_form_upload_submit"
 msgstr ""
@@ -1842,7 +1913,7 @@
 msgstr ""
 
 #: waskaweb/templates/documents/global_overview.mako:6
-#: waskaweb/templates/documents/global_upload.mako:4
+#: waskaweb/templates/documents/global_upload.mako:5
 #: waskaweb/templates/documents/dialogs/confirm.mako:4
 #: waskaweb/templates/documents/dialogs/delete_document_success.mako:4
 #: waskaweb/templates/documents/dialogs/failed_document.mako:4
@@ -1858,20 +1929,25 @@
 msgid "doc_actions_link_new"
 msgstr ""
 
-#: waskaweb/templates/documents/global_upload.mako:5
+#: waskaweb/templates/documents/global_upload.mako:6
 #: waskaweb/templates/documents/dialogs/failed_document.mako:5
 #: waskaweb/templates/documents/dialogs/success_documents.mako:5
 msgid "doc_np_upload"
 msgstr ""
 
-#: waskaweb/templates/documents/global_upload.mako:9
+#: waskaweb/templates/documents/global_upload.mako:10
 msgid "doc_header_new"
 msgstr ""
 
-#: waskaweb/templates/documents/global_upload.mako:14
+#: waskaweb/templates/documents/global_upload.mako:15
 msgid "menu_doc_link_overview_back"
 msgstr ""
 
+#: waskaweb/templates/documents/global_upload.mako:25
+#: waskaweb/templates/documents/upload_body.mako:5
+msgid "doc_form_upload_label_file"
+msgstr ""
+
 #: waskaweb/templates/documents/dialogs/confirm.mako:5
 msgid "doc_np_delete"
 msgstr ""
@@ -2002,21 +2078,21 @@
 msgid "sm_menu_link_settings_back"
 msgstr ""
 
-#: waskaweb/templates/usersettings/change_password.mako:25
-#: waskaweb/templates/usersettings/change_password.mako:28
+#: waskaweb/templates/usersettings/change_password.mako:27
+#: waskaweb/templates/usersettings/change_password.mako:30
 #: waskaweb/templates/usersettings/change_password_login.mako:20
 #: waskaweb/templates/usersettings/change_password_login.mako:23
 msgid "adm_form_newuser_passwd"
 msgstr ""
 
-#: waskaweb/templates/usersettings/change_password.mako:34
-#: waskaweb/templates/usersettings/change_password.mako:37
+#: waskaweb/templates/usersettings/change_password.mako:36
+#: waskaweb/templates/usersettings/change_password.mako:39
 #: waskaweb/templates/usersettings/change_password_login.mako:29
 #: waskaweb/templates/usersettings/change_password_login.mako:32
 msgid "adm_form_newuser_passwd_confirm"
 msgstr ""
 
-#: waskaweb/templates/usersettings/change_password.mako:42
+#: waskaweb/templates/usersettings/change_password.mako:45
 #: waskaweb/templates/usersettings/change_password_login.mako:38
 msgid "adm_form_changepassword_submit"
 msgstr ""

Modified: trunk/waskaweb/lib/base.py
===================================================================
--- trunk/waskaweb/lib/base.py	2008-08-13 13:09:56 UTC (rev 37)
+++ trunk/waskaweb/lib/base.py	2008-08-13 13:10:22 UTC (rev 38)
@@ -33,6 +33,9 @@
 
     def __before__(self):
 
+        # Determine if we have a server for normal use or for evalutation purpose.
+        c.isEvaluationServer = (config['evaluation_server'] == '1') 
+
         try:
             storedHash = session['AUTH']
             try:

Modified: trunk/waskaweb/lib/casedata.py
===================================================================
--- trunk/waskaweb/lib/casedata.py	2008-08-13 13:09:56 UTC (rev 37)
+++ trunk/waskaweb/lib/casedata.py	2008-08-13 13:10:22 UTC (rev 38)
@@ -5,21 +5,7 @@
 # Sascha L. Teichmann <teichmann at intevation.de>
 # Torsten Irlaender <torsten.irlaender at intevation.de>
 #
-import sys
-import traceback
-import psycopg2 as dbapi
-import psycopg2.extras
-import time
-import datetime
-from sets import Set
-from waskaweb.model.agency import Agency
-from waskaweb.lib.base import session 
 
-import waskaweb.lib.helpers as h
-
-from waskaweb.lib.db import db
-
-
 #sql statements used by the DSFactory
 
 #other sql statements

Added: trunk/waskaweb/lib/csv.py
===================================================================
--- trunk/waskaweb/lib/csv.py	2008-08-13 13:09:56 UTC (rev 37)
+++ trunk/waskaweb/lib/csv.py	2008-08-13 13:10:22 UTC (rev 38)
@@ -0,0 +1,161 @@
+# -*- coding: utf-8 -*-
+#
+# Copyright (c) 2008 by Intevation GmbH
+# Authors:
+# Sascha L. Teichmann <teichmann at intevation.de>
+#
+#import psycopg2.extras as extras
+
+from types import StringTypes
+
+SEP = "\t"
+
+SELECT_MASTER_TBL = \
+"""SELECT * FROM master_tbl_view
+   WHERE id = %(id)s"""
+
+FETCH_ALL_IDS = \
+"""SELECT id FROM master_tbl_view"""
+
+RG_VIEWS = (
+    "rg_kompetenzfestellung_tbl_view",
+    "rg_angebote_berufliche_qualifizierung_tbl_view",
+    "rg_angebote_berufsvorbereitung_tbl_view",
+    "rg_angebote_bildenden_bereich_tbl_view",
+    "rg_angebote_lebensbewaeltigung_tbl_view")
+
+SELECT_RG = \
+"""SELECT * FROM %s WHERE master_id = %d"""
+
+BLACK_LIST = set(['id', 'master_id', 'uuid_id', 'bearbeiter_id'])
+
+def strReplace(x):
+    if type(x) in StringTypes:
+        x = unicode(str(x), "utf-8")
+        return x.replace("\r", "").replace("\n", " ").replace(SEP, "    ")
+    if x is None: return ""
+    return x
+
+class RepeatGroup:
+
+    def __init__(self, columns):
+        self.columns = columns
+
+    def headerFields(self):
+        return [a[0] for a in self.columns if a[0] not in BLACK_LIST]
+
+    def valueFields(self):
+        return [strReplace(a[2]) for a in self.columns if a[0] not in BLACK_LIST]
+
+    def numFields(self):
+        s = 0
+        for a in self.columns:
+            if a[0] not in BLACK_LIST:
+                s += 1
+        return s
+
+class Case(RepeatGroup):
+    def __init__(self, columns):
+        RepeatGroup.__init__(self, columns)
+        self.rgs = []
+
+    def fetchRepeatGroups(self, cur):
+        master_id = self.columns[0][2]
+        #print >> sys.stderr, "master: %d" % master_id
+        for view in RG_VIEWS:
+            cur.execute(SELECT_RG % (view, int(master_id)))
+            rs = []
+            while True:
+                row = cur.fetchone()
+                if not row: break
+                cs = row._index.items() # XXX: hackish!
+                cs.sort(lambda a, b: cmp(a[1], b[1]))
+                cs = [(a[0], a[1], row[a[1]]) for a in cs]
+                rs.append(RepeatGroup(cs))
+            #print >> sys.stderr, "\t%d %s" % (len(rs), view)
+            self.rgs.append(rs)
+
+class Cases:
+    def __init__(self):
+        self.cases = []
+
+    def fetchCases(self, cur, ids):
+        param = {}
+        for mid in ids:
+            param['id'] = mid
+            cur.execute(SELECT_MASTER_TBL, param)
+            row = cur.next()
+            if not row: continue
+            columns = row._index.items() # XXX: hackish!
+            columns.sort(lambda a, b: cmp(a[1], b[1]))
+            columns = [(a[0], a[1], row[a[1]]) for a in columns]
+            case = Case(columns)
+            case.fetchRepeatGroups(cur)
+            self.cases.append(case)
+
+    def maxRepeatGroups(self):
+        mc = [0] * len(RG_VIEWS)
+        for rgs in [c.rgs for c in self.cases]:
+            for i in range(len(mc)):
+                mc[i] = max(mc[i], len(rgs[i]))
+        self.maxRGs = mc
+
+    def noneEmptyRepeatGroup(self, i):
+        for case in self.cases:
+            rgs = case.rgs
+            if len(rgs[i]):
+                return rgs[i][0]
+        return None
+
+    def generateHeader(self, out):
+        if not self.cases:
+            return ""
+        case = self.cases[0]
+        headers = case.headerFields()
+        for i in range(len(RG_VIEWS)):
+            rg = self.noneEmptyRepeatGroup(i)
+            if rg is None:
+                continue
+            hs = rg.headerFields() 
+            for j in range(self.maxRGs[i]):
+                if j > 0:
+                    headers.extend([ "%s_%d" % (x, j) for x in hs])
+                else:
+                    headers.extend(hs)
+        print >> out, "#%s" % SEP.join(headers)
+
+    def dumpFields(self, out):
+        fills = []
+        for i in range(len(RG_VIEWS)):
+            rg = self.noneEmptyRepeatGroup(i)
+            if rg is None: fills.append(0)
+            else:          fills.append(rg.numFields())
+
+        for case in self.cases:
+            line = case.valueFields()
+            for m, rg, fill in zip(self.maxRGs, case.rgs, fills):
+                count = 0
+                for r in rg:
+                    line.extend(r.valueFields())
+                    count += 1
+                while count < m:
+                    line.extend([''] * fill)
+                    count += 1
+            print >> out, "%s" % SEP.join(map(lambda x: u"%s" % x, line))
+
+
+def exportAsCSV(cur, out, ids=None):
+    cases = Cases()
+    if ids is None:
+        cur.execute(FETCH_ALL_IDS)
+        ids = []
+        while True:
+            row = cur.fetchone()
+            ids.append(int(row[0]))
+    cases = Cases()
+    cases.fetchCases(cur, ids)
+    cases.maxRepeatGroups()
+    cases.generateHeader(out)
+    cases.dumpFields(out)
+
+# vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8:

Modified: trunk/waskaweb/lib/evaluation.py
===================================================================
--- trunk/waskaweb/lib/evaluation.py	2008-08-13 13:09:56 UTC (rev 37)
+++ trunk/waskaweb/lib/evaluation.py	2008-08-13 13:10:22 UTC (rev 38)
@@ -79,8 +79,8 @@
         Evaluation.__init__(self)
 
     def perform(self):
-        self.m = [0,0] 
-        self.w = [0,0] 
+        self.m = [0,0]
+        self.w = [0,0]
         self.i = [0,0]
         self.u = [0,0]
 
@@ -119,7 +119,7 @@
                 db.recycleConnection(conn, cur)
         except:
             print >> sys.stderr, "No result for eval 2"
-        return (self.total,self.m,self.w,self.i)
+        return (self.total,self.m,self.w,self.i,self.u)
 
     def doExport(self, f):
         self.perform()
@@ -139,22 +139,32 @@
             try:
                 conn = db.getConnection()
                 c1 = conn.cursor()
-                m = [0,0]
-                sql = """select count(id) from master_tbl_eval_incm_view 
-                         WHERE geburtsland <> 29 
-                         OR vater = 0 
-                         OR mutter = 0"""
+                r = [[0,0],[0,0],[0,0]]
+                sql = """select geburtsland, vater, mutter from master_tbl_eval_incm_view""" 
                 c1.execute(sql)
-                m[0] = c1.fetchone()[0]
-                if m[0]:
-                    m[1] = "%s" % h.formatNumber(
-                        float(m[0])/float(self.total_cm)*100)
+                for case in c1.fetchall():
+                    if case[0] == -1 and case[1] == -1 and case[2] == -1:
+                        # Keine Angabe
+                        #print >> sys.stderr,  "Keine Angabe"
+                        r[2][0]+=1
+                    elif case[0] not in [29, -1] or case[1] == 1 or case[2] == 1:
+                        # Migrationshintergrund
+                        #print >> sys.stderr,  "Migration"
+                        r[0][0]+=1
+                    else:
+                        # Kein Migrationshintergrund
+                        #print >> sys.stderr,  "Keine Migration"
+                        r[1][0]+=1
+
+                r[0][1] = "%s" % h.formatNumber(float(r[0][0])/float(self.total_cm)*100)
+                r[1][1] = "%s" % h.formatNumber(float(r[1][0])/float(self.total_cm)*100)
+                r[2][1] = "%s" % h.formatNumber(float(r[2][0])/float(self.total_cm)*100)
             finally:
                 db.recycleConnection(conn, c1)
         except StandardError, err: 
             print >> sys.stderr,  "no result eval 3: %s" % str(err)
-            return [0,0]
-        return m 
+            return [[0,0],[0,0],[0,0]]
+        return r 
 
     def doExport(self, f):
         p = self.perform()
@@ -258,9 +268,11 @@
 
     def perform(self):
         result = {}
-        sql = """select v.id, count(m.vermittlung), v.value from master_tbl_eval_incm_view m 
-                    right join vermittlung_tbl v on m.vermittlung = v.id 
-                    group by v.id, v.value having v.id is not null order by v.id asc"""
+        sql = """select v.id, count(m.vermittlung), v.value from vermittlung_tbl v  
+                    left join (select vermittlung from master_tbl_eval_incm_view where art_beendigung <> -1) m 
+                    on m.vermittlung = v.id 
+                    group by v.id, v.value 
+                    having v.id is not null order by v.id asc"""
         try:
             conn, c1 = None, None
             try:
@@ -304,10 +316,12 @@
 
     def perform(self):
         result = {}
-        sql = """select r.id, count(m.veraenderungen_rechtskreis), r.value from master_tbl_eval_incm_view m 
-                    right join rechtlicher_kontext_tbl r 
+        sql = """select r.id, count(m.veraenderungen_rechtskreis), r.value from rechtlicher_kontext_tbl r 
+                    left join (select veraenderungen_rechtskreis from master_tbl_eval_incm_view where art_beendigung <> -1) m
                     on m.veraenderungen_rechtskreis = r.id 
-                    group by r.id, r.value having r.id is not null order by r.id asc"""
+                    group by r.id, r.value
+                    having r.id is not null
+                    order by r.id asc"""
         try:
             conn, c1 = None, None
             try:
@@ -356,7 +370,8 @@
                 ["18-21",0,0], 
                 ["21-24",0,0], 
                 ["24-27",0,0], 
-                [">27",0,0]]
+                [">27",0,0],
+                ["Keine Angabe",0,0]]
         try:
             conn, c1 = None, None
             try:
@@ -368,37 +383,39 @@
                 if self.total == 0: divisor = 1
                 else: divisor = self.total_cm
                 for r in c1.fetchall():
-                    #TODO Filter empty rows in sql directly
-                    if not r[0]: 
-                        continue
-                    if r[0] < 14:
+                    if 0 < r[0] < 14:
                         result[0][1] += 1
                         result[0][2] = "%s" % h.formatNumber(
                             float(result[0][1])/float(divisor)*100)
-                    if 14 <= r[0] <= 16:
+                    elif 14 <= r[0] <= 16:
                         result[1][1] += 1
                         result[1][2] = "%s" % h.formatNumber(
                             float(result[1][1])/float(divisor)*100)
-                    if 16 < r[0] <= 18:
+                    elif 16 < r[0] <= 18:
                         result[2][1] += 1
                         result[2][2] = "%s" % h.formatNumber(
                             float(result[2][1])/float(divisor)*100)
-                    if 18 < r[0] <= 21:
+                    elif 18 < r[0] <= 21:
                         result[3][1] += 1
                         result[3][2] = "%s" % h.formatNumber(
                             float(result[3][1])/float(divisor)*100)
-                    if 21 < r[0] <= 24:
+                    elif 21 < r[0] <= 24:
                         result[4][1] += 1
                         result[4][2] = "%s" % h.formatNumber(
                             float(result[4][1])/float(divisor)*100)
-                    if 24 < r[0] <= 27:
+                    elif 24 < r[0] <= 27:
                         result[5][1] += 1
                         result[5][2] = "%s" % h.formatNumber(
                             float(result[5][1])/float(divisor)*100)
-                    if 27 < r[0]:
+                    elif 27 < r[0]:
                         result[6][1] += 1
                         result[6][2] = "%s" % h.formatNumber(
                             float(result[6][1])/float(divisor)*100)
+                    else:
+                        # Age == 0 -> no birthdate was entered.
+                        result[7][1] += 1
+                        result[7][2] = "%s" % h.formatNumber(
+                            float(result[7][1])/float(divisor)*100)
             finally:
                 db.recycleConnection(conn, c1)
         except StandardError, err:
@@ -420,39 +437,35 @@
         result = [[u"berufliche Qualifizierung",0,0],
             [u"berufliche Vorbereitung", 0,0],
             [u"bildenden Bereich", 0,0],
-            [u"%s" % unicode("Lebensbewältigung", "utf-8"), 0,0]
+            [u"%s" % unicode("Lebensbewältigung", "utf-8"), 0,0],
+            [u"%s" % unicode("Sonstige", "utf-8"), 0,0]
         ]
         try:
             conn, c1 = None, None
             try:
                 conn = db.getConnection()
                 c1 = conn.cursor()
-                c1.execute(
-                    """select count(rg.id) 
-                       from rg_angebote_berufliche_qualifizierung_tbl_view rg join master_tbl_eval_incm_view m on m.id = rg.master_id""")
+                c1.execute("""select count(id) from master_tbl_eval_incm_view WHERE bereich_berufliche_qualifizierung = 1""")
                 result[0][1] = c1.fetchone()[0]
                 c1.close(); c1 = None
                 c1 = conn.cursor()
-                c1.execute(
-                    """select count(rg.id) 
-                       from rg_angebote_berufsvorbereitung_tbl_view rg join master_tbl_eval_incm_view m on m.id = rg.master_id""")
+                c1.execute("""select count(id) from master_tbl_eval_incm_view WHERE bereich_berufsvorbereitung = 1""")
                 result[1][1] = c1.fetchone()[0]
                 c1.close(); c1 = None
                 c1 = conn.cursor()
-                c1.execute(
-                    """select count(rg.id)
-                       from rg_angebote_bildenden_bereich_tbl_view rg join master_tbl_eval_incm_view m on m.id = rg.master_id""")
+                c1.execute("""select count(id) from master_tbl_eval_incm_view WHERE bildender_bereich = 1""")
                 result[2][1] = c1.fetchone()[0]
                 c1.close(); c1 = None
                 c1 = conn.cursor()
-                c1.execute(
-                    """select count(rg.id)
-                       from rg_angebote_lebensbewaeltigung_tbl_view rg join master_tbl_eval_incm_view m on m.id = rg.master_id""")
+                c1.execute("""select count(id) from master_tbl_eval_incm_view WHERE bereich_lebensbewaeltigung = 1""")
                 result[3][1] = c1.fetchone()[0]
                 c1.close(); c1 = None
-                
+                c1 = conn.cursor()
+                c1.execute("""select count(id) from master_tbl_eval_incm_view WHERE sonstiger_foerderbedarf = 1""")
+                result[4][1] = c1.fetchone()[0]
+                c1.close(); c1 = None
                 total = 0
-                # Gesammtanzahl der Maßnahmen berechnen
+                # Gesamtanzahl der Maßnahmen berechnen
                 for r in result: total += r[1]
                 if total == 0: total = 1
                 result[0][2] = "%s" % h.formatNumber(
@@ -463,6 +476,8 @@
                     float(result[2][1])/float(total)*100)
                 result[3][2] = "%s" % h.formatNumber(
                     float(result[3][1])/float(total)*100)
+                result[4][2] = "%s" % h.formatNumber(
+                    float(result[4][1])/float(total)*100)
             finally:
                 db.recycleConnection(conn, c1)
         except StandardError, err:
@@ -481,36 +496,39 @@
         Evaluation.__init__(self)
 
     def perform(self):
-        # [monat, abgeschl_num, abschloss_proz, abbruch_num, abbruch_proz]
         sql = """select count(id), art_beendigung, zeitraum_fallmanagement 
                  from master_tbl_eval_incm_view 
                  where art_beendigung <> -1 
-                 group by zeitraum_fallmanagement, art_beendigung"""
+                 group by zeitraum_fallmanagement, art_beendigung
+                 order by zeitraum_fallmanagement"""
         result = []
-        row = None
+        # [monat, abgeschl_num, abschloss_proz, abbruch_num, abbruch_proz]
+        curr_month = -1
+        row = [curr_month,0,0,0,0]
         try:
             conn, c1 = None, None
             try:
                 conn = db.getConnection()
                 c1 = conn.cursor()
                 c1.execute(sql)
-                curr_month = -1
                 if self.total_cm == 0: divisor = 1
                 else: divisor = self.total_cm
                 for r in c1.fetchall():
-                    if r[1] == '-1': # Keine Angabe
-                        continue
-                    
                     if r[2] != curr_month:
+                        # Ok month changed, we will fill another row
                         curr_month = r[2]
-                        if row is not None:
-                            if row[1] != 0 or row[3] != 0:
-                                result.append(row)
-                        row = [r[2],0,0,0,0]
+                        # Only save the row to the result if we have any data 
+                        if row[1] != 0 or row[3] != 0:
+                            result.append(row)
+                        # Create new row
 
+                        row = [curr_month or "Keine Angabe",0,0,0,0]
+
+                    # Calculate values...
                     num = r[0]
                     proz = "%s" % h.formatNumber(float(r[0])/float(divisor)*100)
 
+                    # And put them into the row depending of how the cm was finished
                     if r[1] == 1 : # Abbruch
                         row[3] = num
                         row[4] = proz 
@@ -522,7 +540,7 @@
         except:
             traceback.print_exc(file=sys.stderr)
 
-        if row is not None:
+        if row[1] != 0 or row[3] != 0:
             result.append(row)
         return result
 

Modified: trunk/waskaweb/lib/helpers.py
===================================================================
--- trunk/waskaweb/lib/helpers.py	2008-08-13 13:09:56 UTC (rev 37)
+++ trunk/waskaweb/lib/helpers.py	2008-08-13 13:10:22 UTC (rev 38)
@@ -5,6 +5,7 @@
 """
 #from waskaweb.lib.base import *
 import locale
+import sys
 from pylons import c, cache, config, g, request, response, session
 from webhelpers import *
 
@@ -96,12 +97,19 @@
     else: 
         return "#"
 
+def slashSplit(s):
+    out = []
+    for p in s.split("/"):
+        if p.find("=") == -1 and out:
+            out[-1] += '/'+ p
+        else:
+            out.append(p)
+    return out
+
 def getKAName():
-    kaname = None
     try:
-        kaname = request.environ['SSL_CLIENT_S_DN'].split('/')[5].split('=')[1]
+        kaname = slashSplit(request.environ['SSL_CLIENT_S_DN'])[5].split('=')[1]
         return kaname
     except:
         print >> sys.stderr, "Could not fetch KA-name from client certificate"
-        return ""
-    return dbname 
+    return ''

Modified: trunk/waskaweb/lib/timelog.py
===================================================================
--- trunk/waskaweb/lib/timelog.py	2008-08-13 13:09:56 UTC (rev 37)
+++ trunk/waskaweb/lib/timelog.py	2008-08-13 13:10:22 UTC (rev 38)
@@ -21,16 +21,22 @@
 __LOGGER = None
 
 def setupTimeLogging(host='localhost', port=handlers.DEFAULT_TCP_LOGGING_PORT):
-    print >> sys.stderr, "time logging: %s port %d" % (host, port)
-    global __LOGGER 
-    __LOGGER = logging.getLogger('waska.timelog')
-    socketHandler = handlers.SocketHandler(host, port)
-    __LOGGER.addHandler(socketHandler)
-    __LOGGER.setLevel(logging.INFO)
+    if host: host = host.strip()
+    if host:
+        print >> sys.stderr, "time logging: %s port %d" % (host, port)
+        global __LOGGER 
+        __LOGGER = logging.getLogger('waska.timelog')
+        socketHandler = handlers.SocketHandler(host, port)
+        __LOGGER.addHandler(socketHandler)
+        __LOGGER.setLevel(logging.INFO)
+    else:
+        print >> sys.stderr, "time logging deactivated"
 
 def timeLog(t):
     try:
         __TIME_LOCK.acquire()
+        if __LOGGER is None:
+            return
 
         if len(__TIME_LIST) < MAX_TIME_LIST_LEN-1:
             __TIME_LIST.append(t)
@@ -38,9 +44,7 @@
             __TIME_LIST.append(t)
             avg = float(sum(__TIME_LIST))/MAX_TIME_LIST_LEN
             del __TIME_LIST[:]
-            if __LOGGER is not None:
-                __LOGGER.info("%f" % avg)
-        
+            __LOGGER.info("%f" % avg)
     finally:
         __TIME_LOCK.release()
         

Modified: trunk/waskaweb/lib/validators.py
===================================================================
--- trunk/waskaweb/lib/validators.py	2008-08-13 13:09:56 UTC (rev 37)
+++ trunk/waskaweb/lib/validators.py	2008-08-13 13:10:22 UTC (rev 38)
@@ -47,9 +47,9 @@
     valid_char = re.compile(r'^[a-z_0-9]+$')
 
     messages = {
-        'too_long': u'Der Loginname darf nicht l&auml;nger als %(max)i '
+        'too_long': u'Die Anmeldekennung darf nicht l&auml;nger als %(max)i '
                   u'Zeichen lang sein',
-        'invalid_char': u'Der Loginname darf nur Kleinbuchstaben, Zahlen oder Unterstriche enthalten'
+        'invalid_char': u'Die Anmeldekennung darf nur Kleinbuchstaben, Zahlen oder Unterstriche enthalten'
         }
 
     def _to_python(self, value, state):
@@ -101,6 +101,11 @@
     action  = formencode.validators.String(not_empty=True)
     case_id = formencode.ForEach(formencode.validators.Int())
 
+class AgencyBundleActionForm(BaseFormValidator):
+    filter_extra_fields = True 
+    action  = formencode.validators.String(not_empty=True)
+    agency_id = formencode.ForEach(formencode.validators.String())
+
 class DeleteUserHelperForm(BaseFormValidator):
     filter_extra_fields = True 
     editor  = formencode.validators.Int()

Modified: trunk/waskaweb/model/agency.py
===================================================================
--- trunk/waskaweb/model/agency.py	2008-08-13 13:09:56 UTC (rev 37)
+++ trunk/waskaweb/model/agency.py	2008-08-13 13:10:22 UTC (rev 38)
@@ -6,91 +6,116 @@
 #
 import psycopg2.extras
 import os
-from waskaweb.model.statement import * 
+from waskaweb.model.case import CaseBundle
 
 import traceback
 import sys
 
 from waskaweb.lib.db import db
 
-FETCH_SETTINGS_SQL = """SELECT bez, wert from ka_konfiguration_tbl_view"""
-STORE_SETTINGS_SQL = """UPDATE ka_konfiguration_tbl_view SET wert = %(wert)s WHERE bez = %(bez)s"""
+GET_CASEIDS_SQL = """SELECT id from master_tbl_view
+                     WHERE fkz = %(id)s"""
 
-class Agency:
+GET_AGENCYLIST_SQL = """select count(m.id), 
+                                m.fkz, 
+                                date_trunc('minute', max(s.zugriff)) 
+                                from master_tbl_view m 
+                                join ka_status_tbl_view s 
+                                on m.id = s.master_id 
+                                group by fkz"""
+
+GET_AGENCY_SQL = """select      m.id, 
+                                m.fkz, 
+                                s.zugriff 
+                                from master_tbl_view m 
+                                join ka_status_tbl_view s 
+                                on m.id = s.master_id 
+                                WHERE m.fkz = %(id)s"""
+
+class AgencyBundle:
+    def __init__(self, ids):
+        self.list = []
+        factory = AgencyFactory()
+        for id in ids:
+            self.list.append(factory.loadByFkz(id))
+
+    def delete(self):
+        num = 0
+        for agency in self.list:
+            agency.delete()
+            num += 1
+        return num
+
+    def isEmpty(self):
+        return len(self.list) <= 0 
+
+    def getAgencys(self):
+       return self.list
+
+class AgencyFactory:
+    def loadByFkz(self, fkz):
+        try:
+            conn = db.getConnection()
+            cur = conn.cursor()
+            cur.execute(GET_AGENCY_SQL, {'id': fkz})
+            row = cur.fetchone()
+            agency             = Agency()
+            agency.num_cases   = row[0]
+            agency.fkz         = row[1]
+            agency.last_update = row[2]
+        finally:
+            db.recycleConnection(conn, cur)
+        return agency
+
+    def loadByData(self, fkz, num, updated):
+            agency             = Agency()
+            agency.num_cases   = num 
+            agency.fkz         = fkz 
+            agency.last_update = updated
+            return agency
+
+class AgencyOverview:
     def __init__(self):
-        self.conf = {}
-        self._fetchData()
-
-    def _fetchData(self):
+        self.agency_list = []
+        factory = AgencyFactory()
         conn, cur = None, None
         try:
             conn = db.getConnection()
-            cur = conn.cursor(cursor_factory=psycopg2.extras.DictCursor)
-            cur.execute(FETCH_SETTINGS_SQL)
+            cur = conn.cursor()
+            cur.execute(GET_AGENCYLIST_SQL)
             rows = cur.fetchall()
             for row in rows:
-                self.conf[row['bez']] = row['wert']
+                self.agency_list.append(factory.loadByData(row[1], row[0], row[2]))
         finally:
             db.recycleConnection(conn, cur)
 
-    def store(self, formdata):
-        conn = None
-        try:
-            try:
-                conn = db.getConnection()
-                for key, value in formdata.iteritems():
-                    # TODO: Its not necessary to fetch a new cursor each time.
-                    cur = None
-                    try:
-                        cur = conn.cursor()
-                        cur.execute(STORE_SETTINGS_SQL, {'bez': key, 'wert': value})
-                        conn.commit()
-                    finally:
-                        if cur:
-                            try: cur.close()
-                            except: pass
-            finally:
-                db.recycleConnection(conn)
-        except:
-            traceback.print_exc(file=sys.stderr)
+    def getDatasets(self):
+        return self.agency_list 
 
-    def isAnonTransfer(self):
-        anon = self.conf.get('anon_transfer', '').strip().lower()
-        return anon == 'on' or anon == '1'
+class Agency:
+    def __init__(self, id=None):
+        self.id          = id 
+        self.fkz         = "-/-"
+        self.num_cases   = "-/-"
+        self.last_update = "-/-"
 
-    def getFKZ(self):
-        return unicode(str(self.conf.get('fkz', '')), 'utf-8')
-
-    def getName(self):
-       return unicode(str(self.conf.get('ka_name', '')), 'utf-8')
-
-    def getMaxSavetime(self):
-       return unicode(str(self.conf.get('max_speicherdauer', '')), 'utf-8')
-
-    def _loadDefaultStatement(self, filename):
-        # XXX: Dead ugly!
-        path = os.path.join(os.path.dirname(__file__), '..', '..', 'formed')
-        path_statement = os.path.join(path, filename)
-        f = None
+    def getCaseBundle(self):
+        ids = []
+        conn, cur = None, None
         try:
-            f = open(path_statement, "r")
-            statement = f.read()
+            conn = db.getConnection()
+            cur = conn.cursor()
+            cur.execute(GET_CASEIDS_SQL, {'id': self.fkz})
+            rows = cur.fetchall()
+            for row in rows:
+                ids.append(row[0])
         finally:
-            if f:
-                try: f.close()
-                except: pass
-        return unicode(statement, 'utf-8') 
-        
-    def getAidPlanStatement(self):
-        form = self.conf.get('fp_formular', '')
-        if len(form) > 0:
-            return unicode(form, 'utf-8')
-        return self._loadDefaultStatement('aid_plan_statement.html')
+            db.recycleConnection(conn, cur)
 
-    def getPrivacyStatement(self):
-        form = self.conf.get('ee_formular', '')
-        if len(form) > 0:
-            return unicode(form, 'utf-8')
-        return self._loadDefaultStatement('privacy_statement.html')
+        return CaseBundle(ids)
 
+    def delete(self):
+        case_bundle = self.getCaseBundle()
+        return case_bundle.delete()
+
 # vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8:

Added: trunk/waskaweb/model/agencysettings.py
===================================================================
--- trunk/waskaweb/model/agencysettings.py	2008-08-13 13:09:56 UTC (rev 37)
+++ trunk/waskaweb/model/agencysettings.py	2008-08-13 13:10:22 UTC (rev 38)
@@ -0,0 +1,96 @@
+# -*- coding: utf-8 -*-
+#
+# Copyright (c) 2007 by Intevation GmbH
+# Authors:
+# Torsten <irlaender at intevation.de>
+#
+import psycopg2.extras
+import os
+from waskaweb.model.statement import * 
+
+import traceback
+import sys
+
+from waskaweb.lib.db import db
+
+FETCH_SETTINGS_SQL = """SELECT bez, wert from ka_konfiguration_tbl_view"""
+STORE_SETTINGS_SQL = """UPDATE ka_konfiguration_tbl_view SET wert = %(wert)s WHERE bez = %(bez)s"""
+
+class Agency:
+    def __init__(self):
+        self.conf = {}
+        self._fetchData()
+
+    def _fetchData(self):
+        conn, cur = None, None
+        try:
+            conn = db.getConnection()
+            cur = conn.cursor(cursor_factory=psycopg2.extras.DictCursor)
+            cur.execute(FETCH_SETTINGS_SQL)
+            rows = cur.fetchall()
+            for row in rows:
+                self.conf[row['bez']] = row['wert']
+        finally:
+            db.recycleConnection(conn, cur)
+
+    def store(self, formdata):
+        conn = None
+        try:
+            try:
+                conn = db.getConnection()
+                for key, value in formdata.iteritems():
+                    # TODO: Its not necessary to fetch a new cursor each time.
+                    cur = None
+                    try:
+                        cur = conn.cursor()
+                        cur.execute(STORE_SETTINGS_SQL, {'bez': key, 'wert': value})
+                        conn.commit()
+                    finally:
+                        if cur:
+                            try: cur.close()
+                            except: pass
+            finally:
+                db.recycleConnection(conn)
+        except:
+            traceback.print_exc(file=sys.stderr)
+
+    def isAnonTransfer(self):
+        anon = self.conf.get('anon_transfer', '').strip().lower()
+        return anon == 'on' or anon == '1'
+
+    def getFKZ(self):
+        return unicode(str(self.conf.get('fkz', '')), 'utf-8')
+
+    def getName(self):
+       return unicode(str(self.conf.get('ka_name', '')), 'utf-8')
+
+    def getMaxSavetime(self):
+       return unicode(str(self.conf.get('max_speicherdauer', '')), 'utf-8')
+
+    def _loadDefaultStatement(self, filename):
+        # XXX: Dead ugly!
+        path = os.path.join(os.path.dirname(__file__), '..', '..', 'formed')
+        path_statement = os.path.join(path, filename)
+        f = None
+        try:
+            f = open(path_statement, "r")
+            statement = f.read()
+        finally:
+            if f:
+                try: f.close()
+                except: pass
+        return unicode(statement, 'utf-8') 
+        
+    def getAidPlanStatement(self):
+        form = self.conf.get('fp_formular', '')
+        if len(form) > 0:
+            return unicode(form, 'utf-8')
+        return self._loadDefaultStatement('aid_plan_statement.html')
+
+    def getPrivacyStatement(self):
+        form = self.conf.get('ee_formular', '')
+        if len(form) > 0:
+            return unicode(form, 'utf-8')
+        return self._loadDefaultStatement('privacy_statement.html')
+
+# vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8:

Modified: trunk/waskaweb/model/case.py
===================================================================
--- trunk/waskaweb/model/case.py	2008-08-13 13:09:56 UTC (rev 37)
+++ trunk/waskaweb/model/case.py	2008-08-13 13:10:22 UTC (rev 38)
@@ -9,17 +9,19 @@
 import re
 import traceback
 import psycopg2.extras
+import codecs
 import cStringIO as StringIO
 import shutil
 from locale import strcoll
 from sets import Set
 from pylons.i18n                import _, ungettext, N_
 from waskaweb.lib.db import db
-from waskaweb.lib.base import session, g, h 
+from waskaweb.lib.csv import exportAsCSV
+from waskaweb.lib.base import session, g, h, config 
 import waskaweb.lib.filters as F
 from waskaweb.lib.pdfimporter import asXFA, FieldExtractor
 from waskaweb.model.user import UserObject 
-from waskaweb.model.agency import Agency
+from waskaweb.model.agencysettings import Agency
 from waskaweb.model.repeatgroup import AidList, CREATE_RG_BILDEN_DS,CREATE_RG_LEBEN_DS, CREATE_RG_QUALI_DS, CREATE_RG_BERUF_DS
 from waskaweb.model.statement import PrivacyStatement, AidPlanStatement
 from waskaweb.model.document import listDocuments 
@@ -166,6 +168,22 @@
                 print >> sys.stderr, "Could not mark Case to delete from bundle"
         return num
 
+    def exportAsCSV(self):
+        con, cur = None, None
+        f = StringIO.StringIO()
+        Writer = codecs.getwriter('latin-1')
+        out = Writer(f, errors='replace')
+        try:
+            con = db.getConnection()
+            cur = con.cursor(cursor_factory=psycopg2.extras.DictCursor)
+            exportAsCSV(cur, out, self.listDatasetIds())
+            out.flush()
+            bytes = out.getvalue()
+            out.close()
+            return bytes
+        finally:
+            db.recycleConnection(con, cur)
+
 class CaseOverview:
     def __init__(self, search_str=None):
         self.ds_list = []
@@ -680,8 +698,9 @@
     def delete(self):
         '''Deletes the case from data base. Returns True if deletion succseeds'''
         conn, cur = None, None
-        # Only delete if the case state is set to outstandig deletion (3)
-        if self.state.getState() != 3: return False
+        # Only delete if the case state is set to outstandig deletion (3).
+        # Ignore this check if this server is an evaluation server
+        if self.state.getState() != 3 and not config['evaluation_server'] : return False
         try:
             try:
                 conn = db.getConnection()

Modified: trunk/waskaweb/model/navigation.py
===================================================================
--- trunk/waskaweb/model/navigation.py	2008-08-13 13:09:56 UTC (rev 37)
+++ trunk/waskaweb/model/navigation.py	2008-08-13 13:10:22 UTC (rev 38)
@@ -1,4 +1,4 @@
-# -*- coding: latin1 -*-
+# -*- coding: utf-8 -*-
 #
 # Copyright (c) 2007 by Intevation GmbH
 # Authors:
@@ -71,14 +71,14 @@
 
             if self.children and len(self.children) > 0: 
                 if error:
-                    symbol = '<img src="/images/icons/folder_error.png" border="0">'
+                    symbol = '<img src="/images/icons/folder_closed_blue_2_error.gif" alt="Geschlossener Ordner Fehler" title="Ordner &ouml;ffnen - Fehler in Fallakte" border="0">'
                 else: 
-                    symbol = '<img src="/images/icons/folder.png" border="0">'
+                    symbol = '<img src="/images/icons/folder_closed_blue_2.gif" alt="Geschlossener Ordner" title="Ordner &ouml;ffnen" border="0">'
             else:
                 if error:
-                    symbol = '<img src="/images/icons/formular_page_error.png" border="0">'
+                    symbol = '<img src="/images/icons/formular_page_blue_error.gif" alt="Formular" title="Formular - Fehler enthalten" border="0">'
                 else:
-                    symbol = '<img src="/images/icons/formular_page.png" border="0">'
+                    symbol = '<img src="/images/icons/formular_page_blue.gif" alt="Formular" title="Formular &ouml;ffnen" border="0">'
 
             out.append('<a href="%s" onclick="return checkModification();">%s</a>' % (
                 toggle_action(self),

Added: trunk/waskaweb/public/images/icons/admin_grey_tag.gif
===================================================================
(Binary files differ)


Property changes on: trunk/waskaweb/public/images/icons/admin_grey_tag.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: trunk/waskaweb/public/images/icons/cm_grey_tag_width.gif
===================================================================
(Binary files differ)


Property changes on: trunk/waskaweb/public/images/icons/cm_grey_tag_width.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Modified: trunk/waskaweb/public/images/icons/delete_grey.gif
===================================================================
(Binary files differ)

Modified: trunk/waskaweb/public/images/icons/delete_red.gif
===================================================================
(Binary files differ)

Modified: trunk/waskaweb/public/images/icons/done_grey.gif
===================================================================
(Binary files differ)

Modified: trunk/waskaweb/public/images/icons/editor_grey.gif
===================================================================
(Binary files differ)

Added: trunk/waskaweb/public/images/icons/folder_closed_blue_2.gif
===================================================================
(Binary files differ)


Property changes on: trunk/waskaweb/public/images/icons/folder_closed_blue_2.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: trunk/waskaweb/public/images/icons/folder_closed_blue_2_error.gif
===================================================================
(Binary files differ)


Property changes on: trunk/waskaweb/public/images/icons/folder_closed_blue_2_error.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Modified: trunk/waskaweb/public/images/icons/form_help.png
===================================================================
(Binary files differ)

Added: trunk/waskaweb/public/images/icons/formular_page_blue.gif
===================================================================
(Binary files differ)


Property changes on: trunk/waskaweb/public/images/icons/formular_page_blue.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: trunk/waskaweb/public/images/icons/formular_page_blue_error.gif
===================================================================
(Binary files differ)


Property changes on: trunk/waskaweb/public/images/icons/formular_page_blue_error.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Modified: trunk/waskaweb/public/images/icons/recover_red.gif
===================================================================
(Binary files differ)

Modified: trunk/waskaweb/public/images/icons/stand-in_grey.gif
===================================================================
(Binary files differ)

Modified: trunk/waskaweb/public/images/icons/view_red.gif
===================================================================
(Binary files differ)

Modified: trunk/waskaweb/public/images/icons/work_in_progress_grey.gif
===================================================================
(Binary files differ)

Modified: trunk/waskaweb/public/images/np_arrow.gif
===================================================================
(Binary files differ)

Modified: trunk/waskaweb/public/styles/all.css
===================================================================
--- trunk/waskaweb/public/styles/all.css	2008-08-13 13:09:56 UTC (rev 37)
+++ trunk/waskaweb/public/styles/all.css	2008-08-13 13:10:22 UTC (rev 38)
@@ -150,6 +150,7 @@
 	border: 0.5pt;
 	padding: 0.5em;
 	border-style: solid;
+	margin-bottom:1em;
 }
 
 div.form_error img {
@@ -190,7 +191,7 @@
         width: auto;
         float: left;
         clear: left;
-	margin-top:0.5em;
+	margin-top:0.2em;
 	margin-right:0em;
 }
 
@@ -334,3 +335,22 @@
         clear:both;
 }
 
+.print_menu_header {
+	padding:0.2em;
+	background:#e6e6e6;
+}
+
+.print_menu_header a {
+	text-decoration:none;
+	color:#252525;
+	padding:0 0.4em 0 0;
+}
+
+.print_menu_header img {
+	border:none;
+	padding:0 0.4em 0;
+}
+
+.print_menu_header a:hover {
+	background:#cfd1d1;
+}

Modified: trunk/waskaweb/public/styles/color3.css
===================================================================
--- trunk/waskaweb/public/styles/color3.css	2008-08-13 13:09:56 UTC (rev 37)
+++ trunk/waskaweb/public/styles/color3.css	2008-08-13 13:10:22 UTC (rev 38)
@@ -24,7 +24,11 @@
 	background-color: #cccccc;
 }
 
+a.export, a.export1 {
+	background-color: #dcdad5;
+}
 
+
 li tt { text-decoration: none; }
 
 /*------------------*/
@@ -66,8 +70,13 @@
 
 .menu .actions a:hover {
 	background:#cfd1d1;
+	color:#252525;
 }
 
+.actions a , #startmenu a, #navipath a{
+	color:#252525;
+}
+
 .formpage_highlight, .formpage span:hover.formpage_highlight, .formpage span:active {
 	background:#bec3c3;
 }
@@ -78,14 +87,17 @@
 
 div#content, div#content_header,div#content_header_small {
 	background-color: #efefef;
+	color:#252525;
 }
 
 div#modusfield .actions a:hover {
-	background:#cfd1d1;
+	background:#d5d5d5; /**/
+
 }
 
 .table_row_h, .table_row_v, .table_row_v_12 {
-	background:#CFD1D1;
+	background:#d5d5d5; /**/
+
 }
 
 .table_row_v, .table_row_v_2 {
@@ -93,12 +105,13 @@
 }
 
 .table_header_h th, .table_header_h{
-	background:#CFD1D1;
+	background:#d5d5d5; /**/
 	border-bottom:0.5pt solid;
 }
 
 .table_header_v th, .table_header_v{
-	background:#CFD1D1;
+	background:#d5d5d5; /**/
+
 }
 
 .dialog h1 {
@@ -106,7 +119,8 @@
 }
 
 #statement_box {
-	background:#CFD1D1;
+	background:#d5d5d5; /**/
+
 }
 /*------------------*/
 /* 5.	Formular    */
@@ -164,7 +178,7 @@
 /*------------------*/
 
 #search_field {
-	background:#CFD1D1;
+	background:#d5d5d5; /**/
 }
 
 
@@ -181,4 +195,14 @@
 	color:#a5103b;
 }
 
+.print_menu_header {
+	background:#efefef;
+}
 
+.import_box_dialog, .export_box_dialog {
+	background-color:#d5d5d5;
+}
+
+.organisation_not_editor {
+	color:#a5103b;
+}

Modified: trunk/waskaweb/public/styles/print.css
===================================================================
--- trunk/waskaweb/public/styles/print.css	2008-08-13 13:09:56 UTC (rev 37)
+++ trunk/waskaweb/public/styles/print.css	2008-08-13 13:10:22 UTC (rev 38)
@@ -98,48 +98,15 @@
 	display:none;
 }
 
-/*div#infofield br {display:none;}*/
-
-/*.waska_form_element h2, .waska_form_element h3, .waska_form_element h4 {
-	width:200px; 
-	height:20px; 
-	float:right; 
-	margin: 0 0 0 250pt; 
-	padding:0;
-}*/
-
 .menu h1, .menu li a, .menu ul, #navipath, #startmenu, #statusbar,
-#modusfield, #logo, .help, #footer, .skiplink, .table_action{
+#modusfield, #logo, .help, #footer, .skiplink, .table_action, .print_menu_header{
 	display: none;
 }
 
 #content_header_small {
 	height: 22pt;
 }
-/*
-textarea, input[type=text] {
- border:none;
- border-bottom: 1px #000 solid;
-}*/
 
-/*#page_field {
-	float:right;
-	width:50pt;
-	height:52pt;
-	border:0.5pt solid;
-	padding-left:5pt;
-}*/
-
-/*#formular_number {
-	font-weight:bold;
-	font-size:18pt;
-}
-
-#page_number {
-	font-weight:normal;
-	font-size:10pt;
-}*/
-
 table td, table th {
 	border-bottom:0.5pt solid;
 }
@@ -150,8 +117,23 @@
 	float:none
 }
 
-/*.waska_form_element {
-	float:none;
-}*/
+.print_menu_header {
+	padding:0.2em;
+	background:#e6e6e6;
+}
 
+.print_menu_header a {
+	text-decoration:none;
+	color:#252525;
+	padding:0 0.4em 0 0;
+}
 
+.print_menu_header img {
+	border:none;
+	padding:0 0.4em 0;
+}
+
+.print_menu_header a:hover {
+	background:#cfd1d1;
+}
+

Modified: trunk/waskaweb/public/styles/screen.css
===================================================================
--- trunk/waskaweb/public/styles/screen.css	2008-08-13 13:09:56 UTC (rev 37)
+++ trunk/waskaweb/public/styles/screen.css	2008-08-13 13:10:22 UTC (rev 38)
@@ -112,6 +112,7 @@
 div#header {
 	border-bottom: 1px solid #000;
 	width: 69.7em; /*total fixed width*/
+	height:6.2em!important;
 	height: 6.4em;
 }
 
@@ -216,7 +217,8 @@
 	display: inline;
         background-image:url(../images/np_arrow.gif);
 	background-repeat:no-repeat;
-	background-position:0.1em 0.7em;
+	background-position:0.1em 0.6em !important;
+	background-position:0.1em 0.75em;
 	padding:0.2em 0.1em 0.25em 0.9em;
 	
 }
@@ -281,14 +283,14 @@
 	background-image:url(../images/arrow.gif);
 	background-repeat:no-repeat;
 	height:1em;
-	background-position:12px 8px !important;
+	background-position:12px 4px !important;
 	background-position:12px 4px;
 }
 
 .menu .actions a:hover {
 	background-image:url(../images/arrow.gif);
 	background-repeat:no-repeat;
-	background-position:12px 8px !important;
+	background-position:12px 4px !important;
 	background-position:12px 4px;
 }
 
@@ -324,6 +326,7 @@
 
 div#content {
 	padding: 0em 0.4em 0.5em 0.4em;
+	width:52.7em!important;
 	width:52.5em;
 	min-height:490px;
   	height:auto !important;
@@ -419,14 +422,15 @@
 	padding:0 0.4em 0em 1.4em;
 	background-image:url(../images/arrow.gif);
 	background-repeat:no-repeat;
-	background-position:4px 8px!important;
+	background-position:4px 4px!important;
 	background-position:0.4em 0.3em;
 }
 
-label, select, input[type=checkbox], input[type=radio], 
-input[type=button], input[type=submit] {
+label, select, input[type="checkbox"], input[type="radio"], 
+input[type="button"], input[type="submit"], input[type="file"] {
 	cursor: pointer;
 	cursor: hand;
+	overflow:visible;
 }
 
 .table_header_h th, .wable_header_h{
@@ -672,8 +676,8 @@
 }
 
 #search_field {
-	margin:1em 2.5em 0.25em 0.25em !important;
-	margin:1em 2.8em 0.25em 0.25em;
+	margin:1em 2.7em 0.25em 0.1em !important;
+	margin:1em 2.8em 0.25em 0.2em;
 	padding:1em 1em 0.2em !important;
 	padding:1em 1em 0.2em 1em;
 	
@@ -687,3 +691,62 @@
 #search_field_input {
 	margin: 0 0 0 2em;
 }
+
+/* Import */
+
+.import_box {
+	margin:0em 0.1em;
+}
+
+.import_box_dialog {
+	padding:0.4em;
+}
+
+.import_box h2 {
+	padding:1em 0 0 0;
+}
+
+.import_label {
+	padding:0 0 0 1.5em;
+}
+
+.import_p {
+	padding:0 0 0.4em 0;
+}
+
+.import_number {
+	font-size:1.4em;
+}
+
+/*#content h1, #content h2 {
+	color:#0f3250;
+}*/
+
+/*New case*/
+
+.new_case_box {
+	width:40em;
+}
+
+#passwd {margin:0 0 0 1.2em;}
+#account_pw_sub {margin:0 0 0 1.1em!important;}
+#pdffile {margin: 0 0 0 2em;}
+
+/*export*/
+
+.export1 {
+	margin: 0 0 0 1.4em;
+}
+
+.export_number {
+	font-size:1.4em;
+}
+
+.export_p {
+	padding:0.4em 0 0.4em 1.5em;
+}
+
+.export_box_dialog {
+	margin-bottom:0.5em;
+}
+

Modified: trunk/waskaweb/templates/administration/delete_user_helper.mako
===================================================================
--- trunk/waskaweb/templates/administration/delete_user_helper.mako	2008-08-13 13:09:56 UTC (rev 37)
+++ trunk/waskaweb/templates/administration/delete_user_helper.mako	2008-08-13 13:10:22 UTC (rev 38)
@@ -18,7 +18,7 @@
 <%include file="../casemanagement/caselist.mako" />
 <select name="editor">
 % for user in c.user_list:
-  <option value="${user.id | F.NA, h}">${user.first_name | F.NA, h} ${user.last_name | F.NA, h}</option>
+  <option value="${user.id | F.NA, h}">${user.last_name | F.NA, h} ${user.first_name | F.NA, h}</option>
 % endfor
 </select>
 <input type="hidden" name="user_id" value="${c.delete_user_id}">

Modified: trunk/waskaweb/templates/administration/edit_settings.mako
===================================================================
--- trunk/waskaweb/templates/administration/edit_settings.mako	2008-08-13 13:09:56 UTC (rev 37)
+++ trunk/waskaweb/templates/administration/edit_settings.mako	2008-08-13 13:10:22 UTC (rev 38)
@@ -23,43 +23,47 @@
 <p>${_('adm_con_es_editsettings')}</p>
 <div class="waska_form">
 <form action="/administration/editSettingsAction" method="POST">
-	<div class="waska_form_element w50">
-		<label
-		for="ka_name">${_('adm_form_settings_kaname')}</label><br>
-                % if c.form_errors.get('ka_name'):
-                  <a href="#error_list"><img class="smallicon" src="/images/error_small.png"></a>
-                % endif
-		<input type="text" class="field" id="ka_name" name="ka_name" value="${c.form_result.get('ka_name', c.agency.getName())| h}">
-	</div>
-	<div class="waska_form_element w100">
-        <div class="waska_form_element w50">
-		<label
-		for="fkz">${_('adm_form_settings_fkz')}</label><br>
-                % if c.form_errors.get('fkz'):
-                  <a href="#error_list"><img class="smallicon" src="/images/error_small.png"></a>
-                % endif
-		<input type="text" class="field" id="fkz" name="fkz" value="${c.form_result.get('fkz', c.agency.getFKZ())| h}">
-	</div>
-        </div>
+	<fieldset>
+          <legend>Angaben zur Agentur</legend>
+            <div class="waska_form_element w30">
+	      <label for="ka_name">${_('adm_form_settings_kaname')}</label>
+              % if c.form_errors.get('ka_name'):
+                <a href="#error_list"><img class="smallicon" src="/images/error_small.png"></a>
+              % endif
+	      <input type="text" class="field" id="ka_name" name="ka_name" value="${c.form_result.get('ka_name', c.agency.getName())| h}">
+	    </div>
+            <div class="waska_form_element w30">
+	      <label for="fkz">${_('adm_form_settings_fkz')}</label>
+              % if c.form_errors.get('fkz'):
+                <a href="#error_list"><img class="smallicon" src="/images/error_small.png"></a>
+              % endif
+	      <input type="text" class="field" id="fkz" name="fkz" value="${c.form_result.get('fkz', c.agency.getFKZ())| h}">
+            </div>
+        </fieldset>
+        <fieldset>
+          <legend>Angaben zu den Fallakten</legend>
+          <div class="waska_form_element w100">
+            <label for="max_speicherdauer">${_('adm_form_settings_max_savetime')}</label>
+            % if c.form_errors.get('max_speicherdauer'):
+              <a href="#error_list"><img class="smallicon" src="/images/error_small.png"></a>
+            % endif
+            <input type="text" id="max_speicherdauer" name="max_speicherdauer", value="${c.form_result.get('max_speicherdauer', c.agency.getMaxSavetime())| h}">
+            <p>Die maximale Aufbewahrungsdauer legt fest, wie lange eine Fallakte nach Abschluss des CM vorgehalten wird. Nach Ablauf der Frist, wird die Fallakte automatisch zum Löschen vorgschlagen.</p>
+          </div>
+          <div class="waska_form_element w100">
+            % if c.form_errors.get('anon_transfer'):
+              <a href="#error_list"><img class="smallicon" src="/images/error_small.png"></a>
+            % endif
+            % if c.agency.isAnonTransfer():
+            <input id="anon_transfer" name="anon_transfer" type="checkbox" checked />
+            % else:
+            <input id="anon_transfer" name="anon_transfer" type="checkbox"/>
+            % endif
+            <label for="anon_transfer">${_('adm_form_settings_anontransfer')}</label>
+            <p>Ist die Option aktiviert, werden anonymisierte Fallakten zu Auswertungszwecken an eine zentrale Einrichtung übermittelt. Anonymisierte Fallakten enthalten keine persönlichen Daten wie Namen oder Adressen.</p>
+          </div>
+        </fieldset>
 ##        <div class="waska_form_element w100">
-##                <label for="max_speicherdauer">${_('adm_form_settings_max_savetime')}</label><br>
-##                % if c.form_errors.get('max_speicherdauer'):
-##                  <a href="#error_list"><img class="smallicon" src="/images/error_small.png"></a>
-##                % endif
-##                <input type="text" id="max_speicherdauer" name="max_speicherdauer", value="${c.form_result.get('max_speicherdauer', c.agency.getMaxSavetime())| h}"><br>
-##        </div>
-        <div class="waska_form_element w100">
-                % if c.form_errors.get('anon_transfer'):
-                  <a href="#error_list"><img class="smallicon" src="/images/error_small.png"></a>
-                % endif
-                % if c.agency.isAnonTransfer():
-                  <input id="anon_transfer" name="anon_transfer" type="checkbox" checked />
-                % else:
-                  <input id="anon_transfer" name="anon_transfer" type="checkbox"/>
-                % endif
-                <label for="anon_transfer">${_('adm_form_settings_anontransfer')}</label><br>
-        </div>
-##        <div class="waska_form_element w100">
 ##                <label for="ee_formular">${_('adm_form_settings_ee_statement')}</label><br>
 ##                % if c.form_errors.get('ee_formular'):
 ##                  <a href="#error_list"><img class="smallicon" src="/images/error_small.png"></a>

Modified: trunk/waskaweb/templates/administration/edit_user.mako
===================================================================
--- trunk/waskaweb/templates/administration/edit_user.mako	2008-08-13 13:09:56 UTC (rev 37)
+++ trunk/waskaweb/templates/administration/edit_user.mako	2008-08-13 13:10:22 UTC (rev 38)
@@ -70,7 +70,7 @@
 	<fieldset><legend>${_('adm_form_legend_login')}</legend>
           <table>
             <tr>
-              <td class="label table_header_v table_width_mid_s">Login</td>
+              <td class="label table_header_v table_width_mid_s">Anmeldekennung</td>
               <td class="table_row_v">${c.uo.getLogin()| h}</td>
             </tr>
             <tr>

Modified: trunk/waskaweb/templates/administration/new_user.mako
===================================================================
--- trunk/waskaweb/templates/administration/new_user.mako	2008-08-13 13:09:56 UTC (rev 37)
+++ trunk/waskaweb/templates/administration/new_user.mako	2008-08-13 13:10:22 UTC (rev 38)
@@ -81,7 +81,11 @@
 	<div class="w50">
         <label for="role">${_('adm_form_user_role')}</label><br>
           <select name="role" id="role">
+            % if c.isEvaluationServer:
+            <option value="PB-KA">PB-Ka</option>
+            % else:
             <option value="CM-KA" >CM-Ka</option>
+            % endif
             <option value="Admin-KA">Admin-Ka</option>
           </select>
         </div>

Modified: trunk/waskaweb/templates/administration/overview_user.mako
===================================================================
--- trunk/waskaweb/templates/administration/overview_user.mako	2008-08-13 13:09:56 UTC (rev 37)
+++ trunk/waskaweb/templates/administration/overview_user.mako	2008-08-13 13:10:22 UTC (rev 38)
@@ -22,9 +22,10 @@
 </div>
 <table>
   <tr>
-    <th class="table_header_h table_width_name">${_('adm_overview_tbl_header_lastname')}</th>
-    <th class="table_header_h table_width_name">${_('adm_overview_tbl_header_firstname')}</th>
-    <th class="table_header_h table_width_action">${_('adm_overview_tbl_header_actions')}</th>
+    <th class="table_header_h table_width_mid">${_('adm_overview_tbl_header_lastname')}</th>
+    <th class="table_header_h table_width_mid">${_('adm_overview_tbl_header_firstname')}</th>
+    <th class="table_header_h table_width_mid_s">${_('adm_overview_tbl_header_role')}</th>
+    <th class="table_header_h table_width_mid_s">${_('adm_overview_tbl_header_actions')}</th>
   </tr>
   <% idset = 0 %>
   % for user in c.user_overview:
@@ -32,6 +33,11 @@
    <tr>
      <td>${user.last_name| F.NA, h}</td>
      <td>${user.first_name| F.NA, h}</td>
+     % if user.getRole() == 'Admin-KA':
+       <td><img src="/images/icons/admin_grey_tag.gif"></td>
+     % else:
+       <td><img src="/images/icons/cm_grey_tag_width.gif"></td>
+     % endif
      <td>
        <a href="/administration/showUser/${user.id}"><img src="/images/icons/view_red.gif" border="0" alt="${_('cm_overview_a_show')}" title="${_('cm_overview_a_show')}"></a>
        % if str(user.id) != str(session.get('USER_AUTHORIZED').id):
@@ -44,6 +50,11 @@
    <tr>
      <td class="table_row_h">${user.last_name| F.NA, h}</td>
      <td class="table_row_h">${user.first_name| F.NA, h}</td>
+     % if user.getRole() == 'Admin-KA':
+       <td class="table_row_h"><img src="/images/icons/admin_grey_tag.gif" alt="Administratorin, Administrator" title="Administrator/in"></td>
+     % else:
+       <td class="table_row_h"><img src="/images/icons/cm_grey_tag_width.gif" alt="Case-Managerin, Case-Manager" titel="Case-Manager/in"></td>
+     % endif
      <td class="table_row_h">
        <a href="/administration/showUser/${user.id}"><img src="/images/icons/view_red.gif" border="0" alt="${_('cm_overview_a_show')}" title="${_('cm_overview_a_show')}"></a>
        % if str(user.id) != str(session.get('USER_AUTHORIZED').id):

Added: trunk/waskaweb/templates/casemanagement/agency_overview.mako
===================================================================
--- trunk/waskaweb/templates/casemanagement/agency_overview.mako	2008-08-13 13:09:56 UTC (rev 37)
+++ trunk/waskaweb/templates/casemanagement/agency_overview.mako	2008-08-13 13:10:22 UTC (rev 38)
@@ -0,0 +1,54 @@
+## -*- coding: utf-8 -*-
+<%inherit file="../main.mako" />
+<%!  import waskaweb.lib.filters as F %>
+<%def name="buildNavipath()">
+  ${parent.buildNavipath()}
+  <li><a href="/case">${_('cm_np_root')}</a></li>
+  <li><a href="/case_overview">${_('cm_np_overview')}</a></li>
+</%def>
+<h1>${_('cm_header_overview')}</h1>
+##<div id="search_field">
+##  <form method="post" name="case_search" action="/case_overview/search/">
+##  <div>
+##    <input type="text" size="30" name="search_str">
+##    % if h.hasRole(['admin_ka']):
+##    <select name="editor">
+##      <option value="-1">Alle Benutzer</option>
+##    % for user in c.userlist:
+##      <option value="${user.id}">${user.last_name | h}, ${user.first_name | h}</option>
+##    % endfor
+##    </select>
+##    % endif
+##    <input type="submit" value="${_('cm_form_overview_search_submit')}">
+##  </div>
+##  <div id="search_criteria">
+##    <strong>Suchfilter:</strong>
+##    % if h.hasRole(['cm_ka']):
+##    <input type="checkbox" name="show_own" id="show_own" value="1" checked="checked"><label for="show_own"><img title="Eigene Fallakten" alt="Bearbeiter"  src="/images/icons/editor_grey.gif">Eigene</label>
+##    <input type="checkbox" name="show_other" id="show_other" value="1" checked="checked"><label for="show_other"><img title="Vertreter Fallakten" alt="Vertreter"  src="/images/icons/stand-in_grey.gif">Vertretung</label>
+##    % endif
+##    <input type="checkbox" name="show_open" id="show_open" value="1" checked="checked"><label for="show_open"><img title="Offene Fallakten" alt="Offene" src="/images/icons/work_in_progress_grey.gif">Offen</label>
+##    <input type="checkbox" name="show_closed" id="show_closed" value="1" checked="checked"><label for="show_closed"><img title="Geschlossene Fallakten" alt="Geschlossene" src="/images/icons/done_grey.gif">Geschlossen</label>
+##    % if h.hasRole(['admin_ka']):
+##    <input type="checkbox" name="show_markdelete" id="show_markdelete" value="1" checked="checked"><label for="show_markdelete"><img title="Zu löschende Fallakten" alt="Schwebend Gelöscht" src="/images/icons/delete_grey.gif">Schwebend gelöscht</label>
+##% endif
+##  </div>
+##</form>
+##</div>
+<div class="waska_form">
+  ${h.form(h.url(action='bundleAction'), method='post')}
+  <%include file="./agencylist.mako" />
+  <div class="waska_form_element w30">
+    <select name="action">
+      <option value="no_action">Keine Aktion</option>
+      <option value="delete">Auswahl löschen</option>
+      <option value="export">Auswahl exportieren</option>
+      ##<option value="evaluate">Auswahl auswerten</option>
+    </select>
+  </div>
+  <div class="waska_form_element w50">
+    <input type="submit" value="Aktion für Auswahl ausführen">
+  </div>
+  ${h.end_form()}
+  <br class="newline">
+</div>

Added: trunk/waskaweb/templates/casemanagement/agencylist.mako
===================================================================
--- trunk/waskaweb/templates/casemanagement/agencylist.mako	2008-08-13 13:09:56 UTC (rev 37)
+++ trunk/waskaweb/templates/casemanagement/agencylist.mako	2008-08-13 13:10:22 UTC (rev 38)
@@ -0,0 +1,43 @@
+## -*- coding: utf-8 -*-
+<%! import waskaweb.lib.filters as F %>
+<table>
+  <tr>
+    <th class="table_header_h table_checkbox">&nbsp;</th>
+    <th class="table_id table_header_h">${_('cm_overview_tbl_header_fkz')}</th>
+    <th class="table_name table_header_h">${_('cm_overview_tbl_header_number_cases')}</th>
+    <th class="table_name table_header_h">${_('cm_overview_tbl_header_last_update')}</th>
+    <th class="table_action table_header_h">${_('cm_overview_tbl_header_actions')}</th>
+  </tr>
+  <% idset = True %>
+  % for agency in c.agencys.getDatasets():
+    % if idset:
+      <tr>
+        <td><input type="checkbox" name="agency_id" value="${agency.fkz}"></td>
+        <td>${agency.fkz | F.NA, h}</td>
+        <td>${agency.num_cases | F.NA, h}</td>
+        <td>${agency.last_update | F.NA, h}</td>
+        <td>
+            <a href="/agency_overview/delete/${agency.fkz}/0"><img src="/images/icons/delete_red.gif" border="0" alt="${_('cm_overview_a_delete')}" title="${_('cm_overview_a_delete')}"></a> 
+        </td>
+      </tr>
+    % else:
+      <tr>
+        <td class="table_row_h"><input type="checkbox" name="agency_id" value="${agency.fkz}"></td>
+        <td class="table_row_h">${agency.fkz | F.NA, h}</td>
+        <td class="table_row_h">${agency.num_cases | F.NA, h}</td>
+        <td class="table_row_h">${agency.last_update | F.NA, h}</td>
+        <td class="table_row_h">
+            <a href="/agency_overview/delete/${agency.fkz}/0"><img src="/images/icons/delete_red.gif" border="0" alt="${_('cm_overview_a_delete')}" title="${_('cm_overview_a_delete')}"></a> 
+        </td>
+      </tr>
+    % endif
+    <% idset = not idset %>
+  % endfor
+  % if len(c.agencys.getDatasets()) == 0:
+  <tr>
+    <td colspan="6">
+      ${_('cm_overview_tbl_no_data_found')}
+    </td>
+  </tr>
+  % endif
+</table>

Modified: trunk/waskaweb/templates/casemanagement/bundle_editor.mako
===================================================================
--- trunk/waskaweb/templates/casemanagement/bundle_editor.mako	2008-08-13 13:09:56 UTC (rev 37)
+++ trunk/waskaweb/templates/casemanagement/bundle_editor.mako	2008-08-13 13:10:22 UTC (rev 38)
@@ -15,14 +15,14 @@
 <p>${_('cm_bundle_editor_explain')}:</p>
 <ul>
 % for case in c.case_list:
-  <li>${case.first_name}, ${case.last_name}</li>
+  <li>${case.last_name}, ${case.first_name}</li>
 % endfor
 </ul>
 % if h.hasRole(['admin_ka']):
 <form action="${h.url_for(controller="case_overview", action="setEditorAction")}" method="POST">
 <select name="editor">
 % for user in c.user_list:
-  <option value="${user.id | F.NA, h}">${user.first_name | F.NA, h} ${user.last_name | F.NA, h}</option>
+  <option value="${user.id | F.NA, h}">${user.last_name | F.NA, h} ${user.first_name | F.NA, h}</option>
 % endfor
 </select>
 <input type="submit" value="${_('cm_form_editor_submit')}">

Modified: trunk/waskaweb/templates/casemanagement/bundle_standin.mako
===================================================================
--- trunk/waskaweb/templates/casemanagement/bundle_standin.mako	2008-08-13 13:09:56 UTC (rev 37)
+++ trunk/waskaweb/templates/casemanagement/bundle_standin.mako	2008-08-13 13:10:22 UTC (rev 38)
@@ -13,17 +13,15 @@
   </div>
 </div>
 <h2>${_('cm_header_standin')}</h2>
-<p>${_('cm_bundle_standin_explain')}.
-% if not c.current_user.isAdmin():
-  ${_('cm_bundle_standin_explain_cm_ka')}.
-% endif
+<p>${_('cm_bundle_standin_explain')}.<br>
+Achtung: Bestehende Vertretungsregeln werden überschrieben.
 </p>
 <ul>
 % for case in c.case_list:
   % if case.getEditor().id == c.current_user.id or c.current_user.isAdmin():
-    <li>${case.first_name}, ${case.last_name}</li>
+    <li>${case.last_name}, ${case.first_name}</li>
   % else:
-    <li>${case.first_name}, ${case.last_name} (wird nicht bearbeitet)</li>
+    <li class="organisation_not_editor">${case.last_name}, ${case.first_name} (Nicht BearbeiterIn der Akte - Vertretung wird nicht geändert!)</li>
   % endif 
 % endfor
 </ul>
@@ -33,17 +31,17 @@
 <table>
   <tr>
     <th class="table_header_h table_checkbox"></th>
-    <th class="table_header_h table_description">Bearbeiter</th>
+    <th class="table_header_h table_description">BearbeiterIn</th>
   </tr>
   <% idset = True %>
   % for user in c.user_list:
     <tr>
     % if idset:
        <td><input type="checkbox" name="standin-${user.id | h}" value="${user.id | h}"></td>
-       <td>${user.first_name | F.NA, h}, ${user.last_name | F.NA, h}</td>
+       <td>${user.last_name | F.NA, h}, ${user.first_name | F.NA, h}</td>
     % else:
        <td class="table_row_v_12"><input type="checkbox" name="standin-${user.id | h}" value="${user.id | h}"></td>
-       <td class="table_row_v_12">${user.first_name | F.NA, h}, ${user.last_name | F.NA, h}</td>
+       <td class="table_row_v_12">${user.last_name | F.NA, h}, ${user.first_name | F.NA, h}</td>
     % endif
     </tr>
     <% idset = not idset %>

Added: trunk/waskaweb/templates/casemanagement/dialogs/failed_delete_agency.mako
===================================================================
--- trunk/waskaweb/templates/casemanagement/dialogs/failed_delete_agency.mako	2008-08-13 13:09:56 UTC (rev 37)
+++ trunk/waskaweb/templates/casemanagement/dialogs/failed_delete_agency.mako	2008-08-13 13:10:22 UTC (rev 38)
@@ -0,0 +1,8 @@
+<%inherit file="../../main.mako" />
+<%def name="buildNavipath()">
+	${parent.buildNavipath()}
+        <li><a href="/">${_('agency_np_root')}</a></li>
+        <li>${_('agency_np_bundled_delete')}</li>
+        <li><a href="#">${_('agency_np_bundled_delete_failed')}</a></li>
+</%def>
+<%include file="../../dialogs/failed.mako" />

Added: trunk/waskaweb/templates/casemanagement/dialogs/failed_export_agency.mako
===================================================================
--- trunk/waskaweb/templates/casemanagement/dialogs/failed_export_agency.mako	2008-08-13 13:09:56 UTC (rev 37)
+++ trunk/waskaweb/templates/casemanagement/dialogs/failed_export_agency.mako	2008-08-13 13:10:22 UTC (rev 38)
@@ -0,0 +1,8 @@
+<%inherit file="../../main.mako" />
+<%def name="buildNavipath()">
+	${parent.buildNavipath()}
+        <li><a href="/">${_('agency_np_root')}</a></li>
+        <li>${_('agency_np_bundled_export')}</li>
+        <li><a href="#">${_('agency_np_bundled_export_failed')}</a></li>
+</%def>
+<%include file="../../dialogs/failed.mako" />

Added: trunk/waskaweb/templates/casemanagement/dialogs/failed_seteditor.mako
===================================================================
--- trunk/waskaweb/templates/casemanagement/dialogs/failed_seteditor.mako	2008-08-13 13:09:56 UTC (rev 37)
+++ trunk/waskaweb/templates/casemanagement/dialogs/failed_seteditor.mako	2008-08-13 13:10:22 UTC (rev 38)
@@ -0,0 +1,7 @@
+<%inherit file="../../main.mako" />
+<%def name="buildNavipath()">
+	${parent.buildNavipath()}
+        <li><a href="/case">${_('cm_np_root')}</a></li>
+        <li>${_('cm_np_bundled_editor')}</li>
+</%def>
+<%include file="../../dialogs/failed.mako" />

Added: trunk/waskaweb/templates/casemanagement/dialogs/notificate_bundle_delete_agency.mako
===================================================================
--- trunk/waskaweb/templates/casemanagement/dialogs/notificate_bundle_delete_agency.mako	2008-08-13 13:09:56 UTC (rev 37)
+++ trunk/waskaweb/templates/casemanagement/dialogs/notificate_bundle_delete_agency.mako	2008-08-13 13:10:22 UTC (rev 38)
@@ -0,0 +1,9 @@
+## -*- coding: utf-8 -*- 
+<%inherit file="../../main.mako" />
+<%def name="buildNavipath()">
+	${parent.buildNavipath()}
+	<li><a href="/case">Fallakten</a></li>
+	<li><a href="/case_overview">Fallaktenübersicht</a></li>
+	<li><a href="#">Fallakten löschen</a></li>
+</%def>
+<%include file="../../dialogs/notification.mako" />

Added: trunk/waskaweb/templates/casemanagement/dialogs/notificate_bundle_export_agency.mako
===================================================================
--- trunk/waskaweb/templates/casemanagement/dialogs/notificate_bundle_export_agency.mako	2008-08-13 13:09:56 UTC (rev 37)
+++ trunk/waskaweb/templates/casemanagement/dialogs/notificate_bundle_export_agency.mako	2008-08-13 13:10:22 UTC (rev 38)
@@ -0,0 +1,9 @@
+## -*- coding: utf-8 -*- 
+<%inherit file="../../main.mako" />
+<%def name="buildNavipath()">
+	${parent.buildNavipath()}
+	<li><a href="/case">Fallakten</a></li>
+	<li><a href="/case_overview">Fallaktenübersicht</a></li>
+	<li><a href="#">Fallakten löschen</a></li>
+</%def>
+<%include file="../../dialogs/notification.mako" />

Modified: trunk/waskaweb/templates/casemanagement/dialogs/notificate_bundle_seteditor.mako
===================================================================
--- trunk/waskaweb/templates/casemanagement/dialogs/notificate_bundle_seteditor.mako	2008-08-13 13:09:56 UTC (rev 37)
+++ trunk/waskaweb/templates/casemanagement/dialogs/notificate_bundle_seteditor.mako	2008-08-13 13:10:22 UTC (rev 38)
@@ -5,4 +5,4 @@
         <li><a href="/case">${_('cm_np_root')}</a></li>
         <li>${_('cm_np_bundled_editor')}</li>
 </%def>
-<%include file="../../dialogs/notification.mako" />
+<%include file="../../dialogs/success.mako" />

Modified: trunk/waskaweb/templates/casemanagement/dialogs/notificate_bundle_setstandin.mako
===================================================================
--- trunk/waskaweb/templates/casemanagement/dialogs/notificate_bundle_setstandin.mako	2008-08-13 13:09:56 UTC (rev 37)
+++ trunk/waskaweb/templates/casemanagement/dialogs/notificate_bundle_setstandin.mako	2008-08-13 13:10:22 UTC (rev 38)
@@ -4,5 +4,6 @@
 	${parent.buildNavipath()}
         <li><a href="/case">${_('cm_np_root')}</a></li>
         <li>${_('cm_np_bundled_standin')}</li>
+        <li>${_('cm_np_bundled_standin_success')}</li>
 </%def>
-<%include file="../../dialogs/notification.mako" />
+<%include file="../../dialogs/success.mako" />

Added: trunk/waskaweb/templates/casemanagement/dialogs/success_delete_admin.mako
===================================================================
--- trunk/waskaweb/templates/casemanagement/dialogs/success_delete_admin.mako	2008-08-13 13:09:56 UTC (rev 37)
+++ trunk/waskaweb/templates/casemanagement/dialogs/success_delete_admin.mako	2008-08-13 13:10:22 UTC (rev 38)
@@ -0,0 +1,8 @@
+## -*- coding: utf-8 -*- 
+<%inherit file="/main.mako" />
+<%def name="buildNavipath()">
+	${parent.buildNavipath()}
+        <li><a href="/case">${_('cm_np_root')}</a></li>
+	<li><a href="#">${_('cm_np_delete_success')}</a></li>
+</%def>
+<%include file="../../dialogs/success.mako" />

Added: trunk/waskaweb/templates/casemanagement/dialogs/success_delete_agency.mako
===================================================================
--- trunk/waskaweb/templates/casemanagement/dialogs/success_delete_agency.mako	2008-08-13 13:09:56 UTC (rev 37)
+++ trunk/waskaweb/templates/casemanagement/dialogs/success_delete_agency.mako	2008-08-13 13:10:22 UTC (rev 38)
@@ -0,0 +1,9 @@
+## -*- coding: utf-8 -*- 
+<%inherit file="../../main.mako" />
+<%def name="buildNavipath()">
+	${parent.buildNavipath()}
+        <li><a href="/">${_('agency_np_root')}</a></li>
+        <li>${_('agency_np_bundled_delete')}</li>
+        <li><a href="#">${_('agency_np_bundled_delete_success')}</a></li>
+</%def>
+<%include file="../../dialogs/success.mako" />

Added: trunk/waskaweb/templates/casemanagement/dialogs/success_export_agency.mako
===================================================================
--- trunk/waskaweb/templates/casemanagement/dialogs/success_export_agency.mako	2008-08-13 13:09:56 UTC (rev 37)
+++ trunk/waskaweb/templates/casemanagement/dialogs/success_export_agency.mako	2008-08-13 13:10:22 UTC (rev 38)
@@ -0,0 +1,9 @@
+## -*- coding: utf-8 -*- 
+<%inherit file="../../main.mako" />
+<%def name="buildNavipath()">
+        {parent.buildNavipath()}
+        <li><a href="/">${_('agency_np_root')}</a></li>
+        <li>${_('agency_np_bundled_export')}</li>
+        <li><a href="#">${_('agency_np_bundled_export_success')}</a></li>
+</%def>
+<%include file="../../dialogs/success.mako" />

Added: trunk/waskaweb/templates/casemanagement/dialogs/success_markdelete.mako
===================================================================
--- trunk/waskaweb/templates/casemanagement/dialogs/success_markdelete.mako	2008-08-13 13:09:56 UTC (rev 37)
+++ trunk/waskaweb/templates/casemanagement/dialogs/success_markdelete.mako	2008-08-13 13:10:22 UTC (rev 38)
@@ -0,0 +1,8 @@
+## -*- coding: utf-8 -*- 
+<%inherit file="/main.mako" />
+<%def name="buildNavipath()">
+	${parent.buildNavipath()}
+        <li><a href="/case">${_('cm_np_root')}</a></li>
+	<li><a href="#">${_('cm_np_delete_success')}</a></li>
+</%def>
+<%include file="../../dialogs/success.mako" />

Added: trunk/waskaweb/templates/casemanagement/downloadCSV.mako
===================================================================
--- trunk/waskaweb/templates/casemanagement/downloadCSV.mako	2008-08-13 13:09:56 UTC (rev 37)
+++ trunk/waskaweb/templates/casemanagement/downloadCSV.mako	2008-08-13 13:10:22 UTC (rev 38)
@@ -0,0 +1,23 @@
+## -*- coding: utf-8 -*-
+<%inherit file="../main.mako" />
+<%!  import waskaweb.lib.filters as F %>
+<%def name="buildNavipath()">
+  ${parent.buildNavipath()}
+  <li><a href="/case">${_('cm_np_root')}</a></li>
+  <li><a href="/case_overview">${_('cm_np_overview')}</a></li>
+</%def>
+
+<div class="dialog">
+
+<h1><img src="/images/confirmation.png" alt="Erledigt"/>${c.success_for | F.NA, h}</h1>
+
+<div class="export_box_dialog">
+<p class="export_p"><strong class="export_number">1. </strong> CSV-Datei herunterladen:
+<a class="button export1" href="/agency_overview/downloadCSVAction/fallakten-export.csv">Herunterladen</a></p>
+</div>
+
+<div class="export_box_dialog">
+<p class="export_p"><strong class="export_number">2.</strong> Zur Übersicht zurückkehren:
+<a class="button export" href="/agency_overview">Übersicht</a></p>
+</div>
+

Modified: trunk/waskaweb/templates/casemanagement/evaluation_result.mako
===================================================================
--- trunk/waskaweb/templates/casemanagement/evaluation_result.mako	2008-08-13 13:09:56 UTC (rev 37)
+++ trunk/waskaweb/templates/casemanagement/evaluation_result.mako	2008-08-13 13:10:22 UTC (rev 38)
@@ -2,10 +2,10 @@
 <%inherit file="../main.mako" />
 <%!  import waskaweb.lib.filters as F %>
 <%def name="buildNavipath()">
-		${parent.buildNavipath()}
-	<li><a href="/case">${_('cm_np_root')}</a></li>
-	<li><a href="/case/evaluate/">${_('cm_np_evaluate')}</a></li>
-	<li><a href="/evaluate/evaluate/">${_('cm_np_evaluate_result')}</a></li>
+  ${parent.buildNavipath()}
+  <li><a href="/case">${_('cm_np_root')}</a></li>
+  <li><a href="/case/evaluate/">${_('cm_np_evaluate')}</a></li>
+  <li><a href="/evaluate/evaluate/">${_('cm_np_evaluate_result')}</a></li>
 </%def>
 <h1><a name="top">${_('cm_header_evaluate_result')}</a></h1>
 <ul>
@@ -116,6 +116,12 @@
     <td>(${c.eval_2_i[1]| F.NA, h}%)</td>
     <td></td>
   </tr>
+  <tr>
+    <td class="table_row_v_12">${_('cm_eval_label_unknown')}</td>
+    <td class="table_row_v_12">${c.eval_2_u[0]| F.NA, h}</td>
+    <td class="table_row_v_12">(${c.eval_2_u[1]| F.NA, h}%)</td>
+    <td class="table_row_v_12 table_width_long">&nbsp;</td>
+  </tr>
 </table>
 <a href="#top">${_('cm_eval_table_to_overview')}</a> | <a href="/evaluate/exportEvaluation_2/auswertung_3_geschlecht.csv">${_('cm_eval_table_export_analysis')}</a>
 <h4>${_('cm_eval_header_on_age')}</h4>
@@ -160,10 +166,22 @@
   </tr>
   <tr>
     <td>${_('cm_eval_label_migration_background')}</td>
-    <td>${c.eval_3[0]| F.NA, h}</td>
-    <td>(${c.eval_3[1]| F.NA, h}%)</td>
+    <td>${c.eval_3[0][0]| F.NA, h}</td>
+    <td>(${c.eval_3[0][1]| F.NA, h}%)</td>
     <td class="table_width_mid_s"></td>
   </tr>
+  <tr>
+    <td>${_('cm_eval_label_no_migration_background')}</td>
+    <td>${c.eval_3[1][0]| F.NA, h}</td>
+    <td>(${c.eval_3[1][1]| F.NA, h}%)</td>
+    <td class="table_width_mid_s"></td>
+  </tr>
+  <tr>
+    <td>${_('cm_eval_label_ka_migration_background')}</td>
+    <td>${c.eval_3[2][0]| F.NA, h}</td>
+    <td>(${c.eval_3[2][1]| F.NA, h}%)</td>
+    <td class="table_width_mid_s"></td>
+  </tr>
 </table>
 <a href="#top">${_('cm_eval_table_to_overview')}</a> | <a href="/evaluate/exportEvaluation_3/auswertung_4_migration.csv">${_('cm_eval_table_export_analysis')}</a>
 </div>

Modified: trunk/waskaweb/templates/casemanagement/upload.mako
===================================================================
--- trunk/waskaweb/templates/casemanagement/upload.mako	2008-08-13 13:09:56 UTC (rev 37)
+++ trunk/waskaweb/templates/casemanagement/upload.mako	2008-08-13 13:10:22 UTC (rev 38)
@@ -1,3 +1,4 @@
+## -*- coding: utf-8 -*-
 <%inherit file="../main.mako" />
 <%!  import waskaweb.lib.filters as F %>
 <%def name="buildNavipath()">
@@ -6,24 +7,31 @@
 	<li><a href="/case/import/">${_('cm_np_import')}</a></li>
 </%def>
 <h1>${_('cm_header_import')}</h1>
-<div id="waska_form">
+<div id="waska_form" class="import_box">
+
+<h2>PDF-Import</h2>
+<p class="import_p">Es können Dateien im PDF-Format (.pdf) angegeben werden.<br>
+Die Größe einer Datei darf nicht 10MB überschreiten.</p>
+<div class="import_box_dialog">
 ${h.form(h.url(action='importAction'), multipart=True)}
-<div class="waska_form_element w100">
-<label for="pdffile">${_('cm_from_import_label_file')}:</label><br>
-${h.file_field('pdffile')} <br>
-</div>
+<label class="import_label" for="pdffile"><strong class="import_number">1.</strong> Datei wählen:</label>
+${h.file_field('pdffile')}<br>
+<label class="import_label" for="pdfimport"><strong class="import_number">2.</strong> Datei importieren:</label>
 ${h.submit(_('cm_from_import_submit'))}
 ${h.end_form()}
 </div>
 
-<%doc>
-<div id="waska_form">
-${h.form(h.url(action='importActionX'))}
-${h.submit('Aus Datei')}
-${h.end_form()}
+##<h2>XML-Import</h2>
+##<p class="import_p">Es können Dateien im XML-Format (.xml) und ZIP-Archive (.zip) angegeben werden. <br>
+##Die Größe einer Datei darf nicht 10MB überschreiten.</p>
+##<div class="import_box_dialog">
+##${h.form(h.url(action='importAction'), multipart=True)}
+##<label class="import_label" for="xmlfile"><strong class="import_number">1.</strong> Datei wählen:</label>
+##${h.file_field('pdffile')}<br>
+##<label class="import_label" for="pdfimport"><strong class="import_number">2.</strong> Datei importieren:</label>
+##${h.submit(_('cm_from_import_submit'))}
+##${h.end_form()}
+##</div>
 </div>
-</%doc>
-<div>
-<pre>${getattr(c, "messages", "&nbsp;")}</pre>
-</div>
 
+

Modified: trunk/waskaweb/templates/documents/case_new.mako
===================================================================
--- trunk/waskaweb/templates/documents/case_new.mako	2008-08-13 13:09:56 UTC (rev 37)
+++ trunk/waskaweb/templates/documents/case_new.mako	2008-08-13 13:10:22 UTC (rev 38)
@@ -1,3 +1,4 @@
+## -*- coding: utf-8 -*-
 <%inherit file="../casemanagement/main.mako" />
 <%def name="buildNavipath()">
 		${parent.buildNavipath()}
@@ -20,12 +21,16 @@
 </div>
 % endif
 <div id="document">
-<div id="waska_form">
-${h.form(h.url(controller="document", action='caseUploadAction'), multipart=True)}
-<label for="file">${_('doc_form_upload_label_file')}:</label><br>
-${h.file_field('file')}<br>
-${h.submit(_('doc_form_upload_submit'))}
-${h.hidden_field('case', value=session.get('case').id)}
-${h.end_form()}
+ <div id="waska_form" class="import_box">
+  <p class="import_p">Die Größe einer Anlage darf nicht 10MB überschreiten.</p>
+  <div class="import_box_dialog">
+   ${h.form(h.url(controller="document", action='caseUploadAction'), multipart=True)}
+   <label class="import_label" for="file"><strong class="import_number">1. </strong>${_('att_form_upload_label_add')}</label>
+   ${h.file_field('file')}<br>
+   <label class="import_label" for=""><strong class="import_number">2. </strong>${_('att_form_upload_label_up')}</label>
+   ${h.submit(_('doc_form_upload_submit'))}
+   ${h.hidden_field('case', value=session.get('case').id)}
+   ${h.end_form()}
+  </div>
+ </div>
 </div>
-</div>

Modified: trunk/waskaweb/templates/documents/global_upload.mako
===================================================================
--- trunk/waskaweb/templates/documents/global_upload.mako	2008-08-13 13:09:56 UTC (rev 37)
+++ trunk/waskaweb/templates/documents/global_upload.mako	2008-08-13 13:10:22 UTC (rev 38)
@@ -1,3 +1,4 @@
+## -*- coding: utf-8 -*-
 <%inherit file="../main.mako" />
 <%def name="buildNavipath()">
 		${parent.buildNavipath()}
@@ -17,12 +18,15 @@
   </div>
 </div>
 <div id="document">
-<div id="waska_form">
-${h.form(h.url(controller="document", action='globalUploadAction'), multipart=True)}
-
-<label for="file">${_('doc_form_upload_label_file')}:</label><br>
-${h.file_field('file')}<br>
-${h.submit(_('doc_form_upload_submit'))}
-${h.end_form()}
+ <div id="waska_form" class="import_box">
+  <p class="import_p">Die Größe eines Dokuments darf nicht 10MB überschreiten.</p>
+   <div class="import_box_dialog">
+    ${h.form(h.url(controller="document", action='globalUploadAction'), multipart=True)}
+    <label class="import_label" for="file"><strong class="import_number">1. </strong>${_('doc_form_upload_label_file')}</label>
+    ${h.file_field('file')}<br>
+    <label class="import_label" for=""><strong class="import_number">2.</strong> Dokument hinzufügen:</label>
+    ${h.submit(_('doc_form_upload_submit'))}
+    ${h.end_form()}
+   </div>
+ </div>
 </div>
-</div>

Modified: trunk/waskaweb/templates/main.mako
===================================================================
--- trunk/waskaweb/templates/main.mako	2008-08-13 13:09:56 UTC (rev 37)
+++ trunk/waskaweb/templates/main.mako	2008-08-13 13:10:22 UTC (rev 38)
@@ -49,8 +49,8 @@
     </div>
     <div id="main">
       <div class="left">
-	<div class="navigation" id="navigation">
-	  ${self.buildPrivacyfield()}
+        <div class="navigation" id="navigation">
+          ${self.buildPrivacyfield()}
           ${next.buildNavigation()}
         </div>
       </div>
@@ -102,36 +102,38 @@
       <div class="actions">
         <h1>${_('np_root')}</h1>
         <ul>
-	  <li><a href="${h.url_for(controller='/waska')}">${_('sm_menu_link_home')}
-            </a>
-          </li>
-          <!--<li><a href="${h.url_for(controller='/appointment', action='overview')}"> ${_('menu_app_link_overview')}
-	    </a>
-	  </li>-->
-	  <li><a href="${h.url_for(controller='/document', action='globalOverview')}"> ${_('menu_doc_link_overview')}
-            </a>
-          </li>
+          <li><a href="${h.url_for(controller='/waska')}">${_('sm_menu_link_home')}</a></li>
+          <!--<li><a href="${h.url_for(controller='/appointment', action='overview')}"> ${_('menu_app_link_overview')}</a></li>-->
+          <li><a href="${h.url_for(controller='/document', action='globalOverview')}"> ${_('menu_doc_link_overview')} </a> </li>
         </ul>
       </div>
     </div>
   % endif
+  % if c.isEvaluationServer and h.hasRole(['pb_ka']):
   <div class="menu">
     <div class="actions">
       <h1>${_('menu_header_cm')}</h1>
       <ul>
-        <li><a href="${h.url_for(controller='/case_overview')}"> ${_('menu_cm_link_overview')}</a>
-        </li>
+        <li><a href="${h.url_for(controller='/agency_overview')}"> ${_('menu_cm_link_overview')}</a> </li>
+        <li><a href="${h.url_for(controller='/evaluate', action='evaluate')}"> ${_('cm_actions_link_evaluate')}</a></li>
+      </ul>
+    </div>
+  </div>
+  % elif not c.isEvaluationServer:
+  <div class="menu">
+    <div class="actions">
+      <h1>${_('menu_header_cm')}</h1>
+      <ul>
+        <li><a href="${h.url_for(controller='/case_overview')}"> ${_('menu_cm_link_overview')}</a> </li>
         % if h.hasRole(['cm_ka']):
-        <li><a href="${h.url_for(controller='/case', action='new')}"> ${_('menu_cm_link_new')}</a>
-        </li>
-        <li><a href="${h.url_for(controller='/case', action='importCase')}"> ${_('menu_cm_link_import')}</a>
-        </li>
+          <li><a href="${h.url_for(controller='/case', action='new')}"> ${_('menu_cm_link_new')}</a> </li>
+          <li><a href="${h.url_for(controller='/case', action='importCase')}"> ${_('menu_cm_link_import')}</a> </li>
         % endif
-        <li><a href="${h.url_for(controller='/evaluate', action='evaluate')}"> ${_('cm_actions_link_evaluate')}</a>
-        </li>
+        <li><a href="${h.url_for(controller='/evaluate', action='evaluate')}"> ${_('cm_actions_link_evaluate')}</a></li>
       </ul>
     </div>
   </div>
+  % endif
   <div class="menu_spacer">
     <div class="actions">
     </div>

Modified: trunk/waskaweb/templates/usersettings/change_password.mako
===================================================================
--- trunk/waskaweb/templates/usersettings/change_password.mako	2008-08-13 13:09:56 UTC (rev 37)
+++ trunk/waskaweb/templates/usersettings/change_password.mako	2008-08-13 13:10:22 UTC (rev 38)
@@ -18,27 +18,31 @@
   </div>
 </div>
 ${self.buildFormErrors(formular_labels)}
-<div id="waska_form">
+<div id="waska_form" class="import_box">
+<p class="import_p">Das neue Passwort sollte aus mindestens 8 Zeichen bestehen und 2 Sonderzeichen enthalten. </p>
+<div class="import_box_dialog">
 <form action="${h.url_for(controller="usersettings", action="changePasswordAction")}" method="POST">
-	<div class="waska_form_element w25">
+<div waska_form_element>	
           % if c.form_errors.get('passwd'):
-	    <label for="passwd" class="error_font">${_('adm_form_newuser_passwd')}</label><br>
+	    <label class="import_label" for="passwd" class="error_font"><strong class="import_number">1. </strong>${_('adm_form_newuser_passwd')}</label>
             <input type="password" class="field error_box" id="passwd" name="passwd">
           % else:
-            <label for="passwd">${_('adm_form_newuser_passwd')}</label><br>
+            <label class="import_label" for="passwd"><strong class="import_number">1. </strong>${_('adm_form_newuser_passwd')}</label>
             <input type="password" class="field" id="passwd" name="passwd">
           % endif
-	</div>
-	<div class="waska_form_element w75">
+          </div>
+<div waska_form_element>
           % if c.form_errors.get('passwd2'):
-	    <label for="passwd2" class="error_font">${_('adm_form_newuser_passwd_confirm')}</label><br>
+	    <label class="import_label" for="passwd2" class="error_font"><strong class="import_number">2. </strong>${_('adm_form_newuser_passwd_confirm')}</label>
             <input type="password" class="field error_box" id="passwd2" name="passwd2">
           % else:
-            <label for="passwd2">${_('adm_form_newuser_passwd_confirm')}</label><br>
+            <label class="import_label" for="passwd2"><strong class="import_number">2. </strong>${_('adm_form_newuser_passwd_confirm')}</label>
             <input type="password" class="field" id="passwd2" name="passwd2">
           % endif
-	</div>
+        </div>
 	<input type="hidden" name="uid" value="${h.getUserId()}">
-	<input class="btn_space" type="submit" value="${_('adm_form_changepassword_submit')}">
+        <label class="import_label" for="passwd2"><strong class="import_number">3. </strong>Neues Passwort speichern:</label>
+	<input id="account_pw_sub" class="btn_space" type="submit" value="${_('adm_form_changepassword_submit')}">
 </form>
 </div>
+</div>

Added: trunk/waskaweb/tests/functional/test_agency_overview.py
===================================================================
--- trunk/waskaweb/tests/functional/test_agency_overview.py	2008-08-13 13:09:56 UTC (rev 37)
+++ trunk/waskaweb/tests/functional/test_agency_overview.py	2008-08-13 13:10:22 UTC (rev 38)
@@ -0,0 +1,7 @@
+from waskaweb.tests import *
+
+class TestAgencyOverviewController(TestController):
+
+    def test_index(self):
+        response = self.app.get(url_for(controller='agency_overview'))
+        # Test response...



More information about the Mpuls-commits mailing list