[Mpuls-commits] r1029 - in wasko/branches/2.0: . waskaweb/model
scm-commit@wald.intevation.org
scm-commit at wald.intevation.org
Fri Jan 29 18:49:09 CET 2010
Author: bh
Date: 2010-01-29 18:49:08 +0100 (Fri, 29 Jan 2010)
New Revision: 1029
Modified:
wasko/branches/2.0/ChangeLog
wasko/branches/2.0/waskaweb/model/logbook.py
Log:
* waskaweb/model/logbook.py: Fix formatting
Modified: wasko/branches/2.0/ChangeLog
===================================================================
--- wasko/branches/2.0/ChangeLog 2010-01-29 17:16:04 UTC (rev 1028)
+++ wasko/branches/2.0/ChangeLog 2010-01-29 17:49:08 UTC (rev 1029)
@@ -1,5 +1,9 @@
2010-01-29 Bernhard Herzog <bh at intevation.de>
+ * waskaweb/model/logbook.py: Fix formatting
+
+2010-01-29 Bernhard Herzog <bh at intevation.de>
+
* waskaweb/model/user.py (UserGroupList.__init__)
(UserGroupFactory.load, UserListObject.__init__)
(UserObject._fetchData): Use ensure_unicode to convert to unicode
Modified: wasko/branches/2.0/waskaweb/model/logbook.py
===================================================================
--- wasko/branches/2.0/waskaweb/model/logbook.py 2010-01-29 17:16:04 UTC (rev 1028)
+++ wasko/branches/2.0/waskaweb/model/logbook.py 2010-01-29 17:49:08 UTC (rev 1029)
@@ -1,27 +1,27 @@
# -*- coding: utf-8 -*-
#
# Copyright 2007, 2008, 2010 Intevation GmbH, Germany, <info at intevation.de>
-#
-# This file is part of mpuls WASKA (CoMPUter-based case fiLeS -
+#
+# This file is part of mpuls WASKA (CoMPUter-based case fiLeS -
# Web-Anwendungs-Server fuer Kompetenzagenturen).
-#
+#
# mpuls WASKA is free software: you can redistribute it and/or modify it under
# the terms of the GNU Affero General Public License as published by the
# Free Software Foundation, either version 3 of the License, or (at your
# option) any later version.
-#
+#
# mpuls WASKA is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public
# License for more details.
-#
+#
# You should have received a copy of the GNU Affero General Public
# License along with mpuls WASKA. If not, see <http://www.gnu.org/licenses/>.
-#
-# mpuls WASKA has been developed on behalf of the
+#
+# mpuls WASKA has been developed on behalf of the
# Projekttraeger im Deutschen Zentrum fuer Luft- und Raumfahrt e.V. (PT-DLR)
# within the programme Kompetenzagenturen (Durchfuehrungsphase) funded by
-# the Bundesministerium fuer Familie, Senioren, Frauen und Jugend and
+# the Bundesministerium fuer Familie, Senioren, Frauen und Jugend and
# European Social Fund resources.
#
# Authors:
@@ -32,35 +32,38 @@
from datetime import timedelta, datetime
from waskaweb.lib.db import db
-
import waskaweb.lib.helpers as h
from waskaweb.lib.sql_helper import range_compress
from waskaweb.model.case import CaseBundle
+
log = logging.getLogger(__name__)
KIND2TEXT = {
- "1": u'Gespräch mit dem/der Jugendlichen',
- "2": u'Kompetenzfeststellung',
- "3": u'Korrespondenz mit dem/der Jugendlichen (Telefonate/Schriftverkehr)',
- "4": u'Begleitung des/der Jugendlichen zu externen Stellen',
- "5": u'Sonstige Betreuung des Jugendlichen',
- "6": u'Gespräch mit Eltern/Personensorgeberechtigten',
- "7": u'Korrespondenz mit Eltern/Personensorgeberechtigten (Telefonat/Schriftverkehr)',
- "8": u'Sonstige Maßnahmen der Elternarbeit',
- "9": u'Gespräch mit schulischen Mitarbeiter/-innen',
- "10": u'Korrespondenz mit Schule (Telefonat/Schriftverkehr)',
- "18": u'Gespräch mit Mitarbeiter/-innen der Jugendhilfe',
- "11": u'Korrespondenz mit Jugendhilfe (Telefonat/Schriftverkehr)',
- "12": u'Gespräch mit beteiligten Dritten/Kooperationspartnern',
- "13": u'Korrespondenz mit beteiligten Dritten/Kooperationspartnern (Telefonat/Schriftverkehr)',
- "14": u'Förder bzw. Fallkonferenz',
- "15": u'Fahrtwege',
- "16": u'Dokumentation WASKO',
- "17": u'Teambesprechung',
- "-2": u'sonstige Angaben',
- "-1": u'Keine Angabe'}
+ "1": u'Gespräch mit dem/der Jugendlichen',
+ "2": u'Kompetenzfeststellung',
+ "3": u'Korrespondenz mit dem/der Jugendlichen (Telefonate/Schriftverkehr)',
+ "4": u'Begleitung des/der Jugendlichen zu externen Stellen',
+ "5": u'Sonstige Betreuung des Jugendlichen',
+ "6": u'Gespräch mit Eltern/Personensorgeberechtigten',
+ "7": (u'Korrespondenz mit Eltern/Personensorgeberechtigten'
+ u' (Telefonat/Schriftverkehr)'),
+ "8": u'Sonstige Maßnahmen der Elternarbeit',
+ "9": u'Gespräch mit schulischen Mitarbeiter/-innen',
+ "10": u'Korrespondenz mit Schule (Telefonat/Schriftverkehr)',
+ "18": u'Gespräch mit Mitarbeiter/-innen der Jugendhilfe',
+ "11": u'Korrespondenz mit Jugendhilfe (Telefonat/Schriftverkehr)',
+ "12": u'Gespräch mit beteiligten Dritten/Kooperationspartnern',
+ "13": (u'Korrespondenz mit beteiligten Dritten/Kooperationspartnern'
+ u' (Telefonat/Schriftverkehr)'),
+ "14": u'Förder bzw. Fallkonferenz',
+ "15": u'Fahrtwege',
+ "16": u'Dokumentation WASKO',
+ "17": u'Teambesprechung',
+ "-2": u'sonstige Angaben',
+ "-1": u'Keine Angabe',
+ }
SUMKIND2TEXT = {
'sum_cat1': u'unmittelbare Arbeit mit dem Jugendlichen',
@@ -68,7 +71,8 @@
'sum_cat3': u'Arbeit mit Dritten',
'sum_cat4': u'Sonstiges',
'sum_cat5': u'Keine Angabe',
- 'sum_all': u'Gesamt' }
+ 'sum_all': u'Gesamt',
+ }
AVGKIND2TEXT = {
'avg_cat1': u'unmittelbare Arbeit mit dem Jugendlichen',
@@ -76,13 +80,14 @@
'avg_cat3': u'Arbeit mit Dritten',
'avg_cat4': u'Sonstiges',
'avg_cat4': u'Keine Angabe',
- 'avg_all': u'Gesamt' }
+ 'avg_all': u'Gesamt'
+ ,}
ALLOWED_SORTING = ['name', 'art', 'dauer', 'datum', 'asc', 'desc']
LOAD_LOGBOOK = """
SELECT l.id AS id, datum, bearbeiter, art, kurz_notiz, notiz, dauer
FROM ka_logbuch_tbl_view l WHERE l.master_id = %s
-ORDER BY %s %s
+ORDER BY %s %s
"""
LOAD_LOGBOOK_BY_ID = """
@@ -99,8 +104,8 @@
"""
UPDATE_LOGBOOK_ENTRY = """
-UPDATE ka_logbuch_tbl_view SET
- datum = %(date)s,
+UPDATE ka_logbuch_tbl_view SET
+ datum = %(date)s,
art = %(kind)s,
kurz_notiz = %(short_notice)s,
notiz = %(notice)s,
@@ -132,29 +137,29 @@
class LogbookEntry:
def __init__(self):
- self.id = None
- self.datum = None
- self.art = None
- self.bearbeiter_name = None
- self.kurz_notiz = None
- self.notiz = None
- self.dauer = None
+ self.id = None
+ self.datum = None
+ self.art = None
+ self.bearbeiter_name = None
+ self.kurz_notiz = None
+ self.notiz = None
+ self.dauer = None
def setByRow(self, row):
- self.id = row[0]
- self.datum = row[1]
- self.bearbeiter_name = row[2] and unicode(str(row[2]), 'UTF-8') or None
- self.art = row[3]
- self.kurz_notiz = row[4] and unicode(str(row[4]), 'UTF-8') or None
- self.notiz = row[5] and unicode(str(row[5]), 'UTF-8') or None
- self.dauer = row[6]
+ self.id = row[0]
+ self.datum = row[1]
+ self.bearbeiter_name = row[2] and unicode(str(row[2]), 'UTF-8') or None
+ self.art = row[3]
+ self.kurz_notiz = row[4] and unicode(str(row[4]), 'UTF-8') or None
+ self.notiz = row[5] and unicode(str(row[5]), 'UTF-8') or None
+ self.dauer = row[6]
def loadById(self, id):
self.id = id
conn, cur = None, None
try:
conn = db.getConnection()
- cur = conn.cursor()
+ cur = conn.cursor()
cur.execute(LOAD_LOGBOOK_BY_ID, {'mid': id})
row = cur.fetchone()
if not row:
@@ -207,11 +212,13 @@
self.notiz = notice
def getNotice(self, empty=''):
- if self.notiz: return self.notiz
+ if self.notiz:
+ return self.notiz
return empty
def getDuration(self, empty=''):
- if self.dauer is None: return empty
+ if self.dauer is None:
+ return empty
return "%d" % h.timedelta_in_minutes(self.dauer)
def setDuration(self, duration):
@@ -225,36 +232,36 @@
raise StandardError("Cannot create log book entry")
self.id = row[0]
- cur.execute(UPDATE_LOGBOOK_ENTRY, {
- "date" : self.datum,
- "kind" : self.art,
- "short_notice": self.kurz_notiz,
- "notice" : self.notiz,
- "duration" : self.dauer,
- "id" : self.id})
+ cur.execute(UPDATE_LOGBOOK_ENTRY,
+ {"date": self.datum,
+ "kind": self.art,
+ "short_notice": self.kurz_notiz,
+ "notice": self.notiz,
+ "duration": self.dauer,
+ "id": self.id})
def storeForUser(self, uid):
conn, cur = None, None
try:
conn = db.getConnection()
- cur = conn.cursor()
- cur.execute(UPDATE_LOGBOOK_ENTRY, {
- "date" : self.datum,
- "kind" : self.art,
- "short_notice": self.kurz_notiz,
- "notice" : self.notiz,
- "duration" : self.dauer,
- "id" : self.id})
+ cur = conn.cursor()
+ cur.execute(UPDATE_LOGBOOK_ENTRY,
+ {"date": self.datum,
+ "kind": self.art,
+ "short_notice": self.kurz_notiz,
+ "notice": self.notiz,
+ "duration": self.dauer,
+ "id": self.id})
conn.commit()
finally:
db.recycleConnection(conn, cur)
-
+
class Logbook:
- def __init__(self, mid = None, sort_field = 'datum', sort_order='desc'):
- self.entries = []
- self.mid = mid
+ def __init__(self, mid=None, sort_field='datum', sort_order='desc'):
+ self.entries = []
+ self.mid = mid
self.sort_field = sort_field
self.sort_order = sort_order
@@ -262,24 +269,27 @@
conn, cur = None, None
try:
conn = db.getConnection()
- cur = conn.cursor()
+ cur = conn.cursor()
cur.execute(DELETE_LOGBOOK_ENTRY, {'mid': mid})
conn.commit()
finally:
db.recycleConnection(conn, cur)
- def loadById(self, mid, sort_field = 'datum', sort_order = 'desc'):
+ def loadById(self, mid, sort_field='datum', sort_order='desc'):
self.mid = mid
self.sort_field = sort_field
self.sort_order = sort_order
conn, cur = None, None
try:
conn = db.getConnection()
- cur = conn.cursor()
+ cur = conn.cursor()
try:
- # Removed prepared statement as quoting does not work for sorting e.g
- # cur.execute(LOAD_LOGBOOK, {'mid': mid, 'field': sort_field, 'order': sort_order})
- if sort_field not in ALLOWED_SORTING or sort_order not in ALLOWED_SORTING:
+ # Removed prepared statement as quoting does not work
+ # for sorting e.g
+ # cur.execute(LOAD_LOGBOOK, {'mid': mid, 'field': sort_field,
+ # 'order': sort_order})
+ if (sort_field not in ALLOWED_SORTING
+ or sort_order not in ALLOWED_SORTING):
sort_field = 'datum'
sort_order = 'desc'
cur.execute(LOAD_LOGBOOK % (mid, sort_field, sort_order))
@@ -287,7 +297,8 @@
print cur.query
while True:
row = cur.fetchone()
- if not row: break
+ if not row:
+ break
entry = LogbookEntry()
entry.setByRow(row)
self.entries.append(entry)
@@ -305,11 +316,12 @@
self.entries.append(entry)
def store(self, uid):
- if self.mid is None: return
+ if self.mid is None:
+ return
conn, cur = None, None
try:
conn = db.getConnection()
- cur = conn.cursor()
+ cur = conn.cursor()
for entry in self.entries:
entry.store(cur, self.mid, uid)
conn.commit()
@@ -323,14 +335,17 @@
eval = Evaluation_18(range_compress(cb.listDatasetIds()))
return eval.perform()
+
class LogbookEntryChecker:
+
def __init__(self, params, check_case_id=True):
errors = []
datum = params.getone('date')
if datum:
ndatum = checkDate(datum)
if not ndatum:
- errors.append("Datum '%s' ist nicht korrekt. (dd.MM.JJJJ)." % datum)
+ errors.append("Datum '%s' ist nicht korrekt. (dd.MM.JJJJ)."
+ % datum)
datum = ndatum
else:
datum = None
@@ -362,7 +377,8 @@
try:
art = int(art)
if art < -2 or art > 10:
- errors.append("Die Art liegt ausserhalb des erlaubten Bereiches.")
+ errors.append("Die Art liegt ausserhalb des erlaubten"
+ " Bereiches.")
except ValueError:
errors.append("Die Art des Eintrages ist keine Ganzzahl.")
art = None
@@ -372,30 +388,39 @@
if dauer:
try:
dauer = int(dauer)
- if dauer < 0: raise ValueError()
+ if dauer < 0:
+ raise ValueError()
dauer = timedelta(minutes=dauer)
except ValueError:
- errors.append("Die Dauer '%s' ist keine positive Ganzzahl." % odauer)
+ errors.append("Die Dauer '%s' ist keine positive Ganzzahl."
+ % odauer)
dauer = None
else:
dauer = None
notiz = params.getone('notice')
- if not notiz: notiz = None
+ if not notiz:
+ notiz = None
kurz_notiz = params.getone('short_notice')
- if not kurz_notiz: kurz_notiz = None
+ if not kurz_notiz:
+ kurz_notiz = None
self.errors = errors
entry = LogbookEntry()
self.entry = entry
- if not art is None: entry.setKind(art)
- if not datum is None: entry.setDate(datum)
- if not dauer is None: entry.setDuration(dauer)
- if not kurz_notiz is None: entry.setShortNotice(kurz_notiz)
- if not notiz is None: entry.setNotice(notiz)
+ if not art is None:
+ entry.setKind(art)
+ if not datum is None:
+ entry.setDate(datum)
+ if not dauer is None:
+ entry.setDuration(dauer)
+ if not kurz_notiz is None:
+ entry.setShortNotice(kurz_notiz)
+ if not notiz is None:
+ entry.setNotice(notiz)
def hasErrors(self):
return len(self.errors) > 0
More information about the Mpuls-commits
mailing list