[Mpuls-commits] r1577 - in wasko/branches/2.0: . mpulsweb/lib
scm-commit@wald.intevation.org
scm-commit at wald.intevation.org
Mon Feb 15 20:05:08 CET 2010
Author: bh
Date: 2010-02-15 20:05:06 +0100 (Mon, 15 Feb 2010)
New Revision: 1577
Modified:
wasko/branches/2.0/ChangeLog
wasko/branches/2.0/mpulsweb/lib/validators.py
Log:
* mpulsweb/lib/validators.py: Fix formatting.
Modified: wasko/branches/2.0/ChangeLog
===================================================================
--- wasko/branches/2.0/ChangeLog 2010-02-15 18:49:44 UTC (rev 1576)
+++ wasko/branches/2.0/ChangeLog 2010-02-15 19:05:06 UTC (rev 1577)
@@ -1,5 +1,9 @@
2010-02-15 Bernhard Herzog <bh at intevation.de>
+ * mpulsweb/lib/validators.py: Fix formatting.
+
+2010-02-15 Bernhard Herzog <bh at intevation.de>
+
* mpulsweb/model/news.py: Fix formatting.
2010-02-15 Bernhard Herzog <bh at intevation.de>
Modified: wasko/branches/2.0/mpulsweb/lib/validators.py
===================================================================
--- wasko/branches/2.0/mpulsweb/lib/validators.py 2010-02-15 18:49:44 UTC (rev 1576)
+++ wasko/branches/2.0/mpulsweb/lib/validators.py 2010-02-15 19:05:06 UTC (rev 1577)
@@ -1,14 +1,17 @@
# -*- coding: utf-8 -*-
-import formencode
import re
import datetime
import time
+import formencode
+
from pylons import session
from pylons.i18n import _
+
from mpulsweb.lib.db import db
+
class ValidatorStateObject:
def __setattr__(self, key, value):
@@ -19,16 +22,19 @@
class BaseFormValidator(formencode.Schema):
+
def __init__(self):
formencode.api.set_stdtranslation(domain="FormEncode", languages=["de"])
allow_extra_fields = True
- filter_extra_fields = False
+ filter_extra_fields = False
+
class StringTooLong(formencode.validators.FancyValidator):
messages = {
- 'invalid_length': u'Bitte geben Sie einen Text mit maximal %(max)i Zeichen an.',
+ 'invalid_length': (u'Bitte geben Sie einen Text mit maximal %(max)i'
+ u' Zeichen an.'),
}
def __init__(self, max=80):
@@ -39,15 +45,19 @@
def validate_python(self, value, state):
if not value is None and len(value) > self.maxlength:
- raise formencode.Invalid(self.message("invalid_length", state, max=self.maxlength), value, state)
+ raise formencode.Invalid(self.message("invalid_length", state,
+ max=self.maxlength),
+ value, state)
+
class DateCheck(formencode.validators.FancyValidator):
valid_date = re.compile(r'^[0-9]{1,2}\.[0-9]{1,2}\.[0-9]{4}$')
messages = {
- 'invalid_format': u'Bitte geben Sie das Datum im Format "TT.MM.JJJJ" an.',
- 'invalid_date': u'Bitte geben Sie ein gültiges Datum an.'
+ 'invalid_format': (u'Bitte geben Sie das Datum im Format "TT.MM.JJJJ"'
+ ' an.'),
+ 'invalid_date': u'Bitte geben Sie ein gültiges Datum an.'
}
def _to_python(self, value, state):
@@ -55,20 +65,24 @@
def validate_python(self, value, state):
if not self.valid_date.match(value):
- raise formencode.Invalid(self.message("invalid_format", state), value, state)
+ raise formencode.Invalid(self.message("invalid_format", state),
+ value, state)
try:
token = value.split('.')
- testdate = datetime.datetime(int(token[2]), int(token[1]), int(token[0]))
+ testdate = datetime.datetime(int(token[2]), int(token[1]),
+ int(token[0]))
except:
- raise formencode.Invalid(self.message("invalid_date", state), value, state)
+ raise formencode.Invalid(self.message("invalid_date", state),
+ value, state)
+
class TimeCheck(formencode.validators.FancyValidator):
valid_date = re.compile(r'^[0-9]{1,2}:[0-9]{1,2}$')
messages = {
'invalid_format': u'Bitte geben Sie die Zeit im Format "HH:MM" an.',
- 'invalid_time': u'Bitte geben Sie eine gültige Zeit an.'
+ 'invalid_time': u'Bitte geben Sie eine gültige Zeit an.'
}
def _to_python(self, value, state):
@@ -76,26 +90,28 @@
def validate_python(self, value, state):
if not self.valid_date.match(value):
- raise formencode.Invalid(self.message("invalid_format", state), value, state)
+ raise formencode.Invalid(self.message("invalid_format", state),
+ value, state)
try:
token = value.split(':')
testtime = datetime.time(int(token[0]), int(token[1]))
except:
- raise formencode.Invalid(self.message("invalid_time", state), value, state)
+ raise formencode.Invalid(self.message("invalid_time", state),
+ value, state)
class SecurePassword(formencode.validators.FancyValidator):
min = 8
non_letter = 2
- non_letter_literal = "zwei"
+ non_letter_literal = "zwei"
letter_regex = re.compile(r'[a-zA-Z]')
messages = {
- 'too_few': u'Ihr Passwort muss mindestens %(min)i '
- u'Zeichen lang sein',
- 'non_letter': u'Sie müssen mindestens %(non_letter)s '
- u'Nicht-Buchstaben in Ihrem Passwort verwenden.',
+ 'too_few': (u'Ihr Passwort muss mindestens %(min)i'
+ u' Zeichen lang sein'),
+ 'non_letter': (u'Sie müssen mindestens %(non_letter)s'
+ u' Nicht-Buchstaben in Ihrem Passwort verwenden.'),
'only_ascii': u'Das Passwort darf nur aus ASCII-Zeichen bestehen.'
}
@@ -109,17 +125,24 @@
try:
unicode(str(value), "ascii")
except (UnicodeDecodeError, UnicodeEncodeError):
- raise formencode.Invalid(self.message("only_ascii", state), value, state)
+ raise formencode.Invalid(self.message("only_ascii", state),
+ value, state)
if len(value) < self.min:
- raise formencode.Invalid(self.message("too_few", state, min=self.min), value, state)
+ raise formencode.Invalid(self.message("too_few", state,
+ min=self.min),
+ value, state)
non_letters = self.letter_regex.sub('', value)
if len(non_letters) < self.non_letter:
- raise formencode.Invalid(self.message("non_letter", state, non_letter=self.non_letter_literal), value, state)
+ raise formencode.Invalid(self.message("non_letter", state,
+ non_letter=self.non_letter_literal),
+ value, state)
+
class UserGroupExistsCheck(formencode.validators.FancyValidator):
messages = {
- 'group_exists': u'Es existiert bereits eine Benutzergruppe mit dem Namen "%(name)s"!'
+ 'group_exists': (u'Es existiert bereits eine Benutzergruppe mit'
+ u' dem Namen "%(name)s"!')
}
def _to_python(self, value, state):
@@ -137,25 +160,30 @@
fields = {'name': value, 'id': None}
try:
conn = db.getConnection()
- cur = conn.cursor()
- cur.execute("SELECT name FROM ka_benutzergruppe_tbl_view WHERE id = %(id)s", fields)
+ cur = conn.cursor()
+ cur.execute("SELECT name FROM ka_benutzergruppe_tbl_view"
+ " WHERE id = %(id)s", fields)
result = cur.fetchone()
if result:
newname = result[0]
- else:
+ else:
newname = result
if newname != value:
- cur.execute("SELECT id FROM ka_benutzergruppe_tbl_view WHERE name = %(name)s", fields)
+ cur.execute("SELECT id FROM ka_benutzergruppe_tbl_view"
+ " WHERE name = %(name)s", fields)
result = cur.fetchone()
if result:
- raise formencode.Invalid(self.message("group_exists", state, name=value), value, state)
+ raise formencode.Invalid(self.message("group_exists",
+ state, name=value),
+ value, state)
finally:
db.recycleConnection(conn, cur)
except StandardError, err:
print "Fehler beim Validieren des Gruppennamens: %s" % err
+
class LoginCheck(formencode.validators.FancyValidator):
psql_max = 63
@@ -163,10 +191,12 @@
valid_char = re.compile(r'^[a-z_0-9]+$')
messages = {
- 'too_long': u'Die Anmeldekennung darf nicht länger als %(max)i '
- u'Zeichen lang sein',
- 'invalid_char': u'Die Anmeldekennung darf nur Kleinbuchstaben, Zahlen oder Unterstriche enthalten',
- 'login_exists': u'Es existiert bereits ein Nutzer mit der Anmeldekennung "%(login)s".'
+ 'too_long': (u'Die Anmeldekennung darf nicht länger als %(max)i '
+ u'Zeichen lang sein'),
+ 'invalid_char': (u'Die Anmeldekennung darf nur Kleinbuchstaben,'
+ u' Zahlen oder Unterstriche enthalten'),
+ 'login_exists': (u'Es existiert bereits ein Nutzer mit der'
+ u' Anmeldekennung "%(login)s".')
}
def _to_python(self, value, state):
@@ -177,30 +207,37 @@
agency = user.getAgency()
prefix_str = "ka_%s_" % agency
prefix_length = len(prefix_str)
- self.login_max = self.psql_max - prefix_length
+ self.login_max = self.psql_max - prefix_length
return value.strip()
def validate_python(self, value, state):
if len(value) > (self.login_max):
- raise formencode.Invalid(self.message("too_long", state, max=self.login_max), value, state)
+ raise formencode.Invalid(self.message("too_long", state,
+ max=self.login_max),
+ value, state)
if not self.valid_char.match(value):
- raise formencode.Invalid(self.message("invalid_char", state), value, state)
+ raise formencode.Invalid(self.message("invalid_char", state),
+ value, state)
try:
conn, cur = None, None
loginname = "_".join(["ka", state.agency, value])
fields = {'login': loginname}
try:
conn = db.getConnection()
- cur = conn.cursor()
- cur.execute("SELECT id FROM ka_benutzer_tbl_view WHERE login = %(login)s", fields)
+ cur = conn.cursor()
+ cur.execute("SELECT id FROM ka_benutzer_tbl_view"
+ " WHERE login = %(login)s", fields)
result = cur.fetchone()
if result:
- raise formencode.Invalid(self.message("login_exists", state, login=value), value, state)
+ raise formencode.Invalid(self.message("login_exists",
+ state, login=value),
+ value, state)
finally:
db.recycleConnection(conn, cur)
except StandardError, err:
print "Fehler beim Validieren der Anmeldekennung: %s" % err
+
class MaxMinInt(formencode.validators.FancyValidator):
"""
@@ -217,8 +254,10 @@
messages = {
'integer': u"Bitte geben Sie einen Ganzzahlenwert ein.",
- 'tooLow': u"Bitte geben Sie einen Wert größer oder gleich %(min)i ein.",
- 'tooHigh': u"Bitte geben Sie einen Wert kleiner oder gleich %(max)i ein."
+ 'tooLow': (u"Bitte geben Sie einen Wert größer oder gleich"
+ u" %(min)i ein."),
+ 'tooHigh': (u"Bitte geben Sie einen Wert kleiner oder gleich"
+ u" %(max)i ein.")
}
min = None
@@ -236,7 +275,7 @@
return int(value)
except (ValueError, TypeError):
raise formencode.Invalid(self.message('integer', state),
- value, state)
+ value, state)
def validate_python(self, value, state):
if self.min != None and value < self.min:
@@ -248,40 +287,60 @@
_from_python = _to_python
+
class EditSettingsForm(BaseFormValidator):
+
anon_transfer = formencode.validators.String(if_missing='off')
max_speicherdauer = MaxMinInt(min=7, max=180, not_empty=True)
+
class NewPasswordForm(BaseFormValidator):
- passwd = SecurePassword()
- passwd2 = formencode.validators.String()
- chained_validators = [formencode.validators.FieldsMatch('passwd', 'passwd2')]
+ passwd = SecurePassword()
+ passwd2 = formencode.validators.String()
+ chained_validators = [formencode.validators.FieldsMatch('passwd',
+ 'passwd2')]
+
+
class NewUserForm(BaseFormValidator):
+
def __init__(self):
formencode.api.set_stdtranslation(domain="FormEncode", languages=["de"])
- firstname = formencode.validators.String(not_empty=True)
- lastname = formencode.validators.String(not_empty=True)
- login = formencode.All(formencode.validators.String(not_empty=True), LoginCheck())
+ firstname = formencode.validators.String(not_empty=True)
+ lastname = formencode.validators.String(not_empty=True)
+ login = formencode.All(formencode.validators.String(not_empty=True),
+ LoginCheck())
activated = formencode.validators.StringBoolean(if_missing=False)
newpass = formencode.validators.StringBoolean(if_missing=False)
+
class CreateAppointmentForm(BaseFormValidator):
- start_date = formencode.All(formencode.validators.String(not_empty=True), DateCheck())
- start_time = formencode.All(formencode.validators.String(not_empty=True), TimeCheck())
- end_date = DateCheck()
- end_time = TimeCheck()
- title = formencode.All(formencode.validators.String(not_empty=True), StringTooLong(128))
+ start_date = formencode.All(formencode.validators.String(not_empty=True),
+ DateCheck())
+ start_time = formencode.All(formencode.validators.String(not_empty=True),
+ TimeCheck())
+ end_date = DateCheck()
+ end_time = TimeCheck()
+ title = formencode.All(formencode.validators.String(not_empty=True),
+ StringTooLong(128))
+
+
class EditUserForm(NewUserForm):
+
login = None
+
class NewUserGroupForm(BaseFormValidator):
- name = UserGroupExistsCheck(not_empty=True)
+ name = UserGroupExistsCheck(not_empty=True)
+
+
class EditUserGroupForm(NewUserGroupForm):
- standin = formencode.ForEach(formencode.validators.Int(), convert_to_list=True)
+ standin = formencode.ForEach(formencode.validators.Int(),
+ convert_to_list=True)
+
# vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8
More information about the Mpuls-commits
mailing list