| author | Sandro Knauß <knauss@netzguerilla.net> |
| Fri, 02 Mar 2012 03:14:01 +0100 | |
| branch | devel |
| changeset 208 | 5da0f00ef872 |
| parent 205 | 02ae72e8bab9 |
| child 209 | 7a0f8fbdf7b8 |
| permissions | -rw-r--r-- |
|
205
02ae72e8bab9
implementing vRoutes
Sandro Knauß <knauss@netzguerilla.net>
parents:
122
diff
changeset
|
1 |
import types |
| 115 | 2 |
from decorator import decorator |
3 |
||
4 |
from .user import vUser |
|
|
205
02ae72e8bab9
implementing vRoutes
Sandro Knauß <knauss@netzguerilla.net>
parents:
122
diff
changeset
|
5 |
from .schema import Offer |
| 117 | 6 |
from .dbdefer import dbdefer |
7 |
from .pool import runInDBPool |
|
8 |
||
9 |
from ..error import ValidateException |
|
| 115 | 10 |
|
11 |
def vRoute(typ): |
|
|
205
02ae72e8bab9
implementing vRoutes
Sandro Knauß <knauss@netzguerilla.net>
parents:
122
diff
changeset
|
12 |
@dbdefer |
|
02ae72e8bab9
implementing vRoutes
Sandro Knauß <knauss@netzguerilla.net>
parents:
122
diff
changeset
|
13 |
def wrapper(session, value, field, allowString=True, allowList=True): |
|
02ae72e8bab9
implementing vRoutes
Sandro Knauß <knauss@netzguerilla.net>
parents:
122
diff
changeset
|
14 |
str_ = False |
|
02ae72e8bab9
implementing vRoutes
Sandro Knauß <knauss@netzguerilla.net>
parents:
122
diff
changeset
|
15 |
ret = [] |
|
02ae72e8bab9
implementing vRoutes
Sandro Knauß <knauss@netzguerilla.net>
parents:
122
diff
changeset
|
16 |
|
|
02ae72e8bab9
implementing vRoutes
Sandro Knauß <knauss@netzguerilla.net>
parents:
122
diff
changeset
|
17 |
if type(value) is types.StringType: |
|
02ae72e8bab9
implementing vRoutes
Sandro Knauß <knauss@netzguerilla.net>
parents:
122
diff
changeset
|
18 |
if not allowString: |
|
02ae72e8bab9
implementing vRoutes
Sandro Knauß <knauss@netzguerilla.net>
parents:
122
diff
changeset
|
19 |
raise ValidateException(field=field,msg='%s must be a list of routes.'%field) |
|
02ae72e8bab9
implementing vRoutes
Sandro Knauß <knauss@netzguerilla.net>
parents:
122
diff
changeset
|
20 |
str_=True |
|
02ae72e8bab9
implementing vRoutes
Sandro Knauß <knauss@netzguerilla.net>
parents:
122
diff
changeset
|
21 |
value=[value] |
|
02ae72e8bab9
implementing vRoutes
Sandro Knauß <knauss@netzguerilla.net>
parents:
122
diff
changeset
|
22 |
elif not allowList: |
|
02ae72e8bab9
implementing vRoutes
Sandro Knauß <knauss@netzguerilla.net>
parents:
122
diff
changeset
|
23 |
raise ValidateException(field=field,msg='%s must be a route - No list of routes.'%field) |
|
02ae72e8bab9
implementing vRoutes
Sandro Knauß <knauss@netzguerilla.net>
parents:
122
diff
changeset
|
24 |
|
|
02ae72e8bab9
implementing vRoutes
Sandro Knauß <knauss@netzguerilla.net>
parents:
122
diff
changeset
|
25 |
routes =[o.name for o in Offer.routes(session,typ)] |
|
02ae72e8bab9
implementing vRoutes
Sandro Knauß <knauss@netzguerilla.net>
parents:
122
diff
changeset
|
26 |
for v in value: |
|
02ae72e8bab9
implementing vRoutes
Sandro Knauß <knauss@netzguerilla.net>
parents:
122
diff
changeset
|
27 |
if v not in routes: |
|
02ae72e8bab9
implementing vRoutes
Sandro Knauß <knauss@netzguerilla.net>
parents:
122
diff
changeset
|
28 |
raise ValidateException(field=field,msg='Route %s is not valid.'%v) |
|
02ae72e8bab9
implementing vRoutes
Sandro Knauß <knauss@netzguerilla.net>
parents:
122
diff
changeset
|
29 |
if v not in ret: |
|
02ae72e8bab9
implementing vRoutes
Sandro Knauß <knauss@netzguerilla.net>
parents:
122
diff
changeset
|
30 |
ret.append(v) |
|
02ae72e8bab9
implementing vRoutes
Sandro Knauß <knauss@netzguerilla.net>
parents:
122
diff
changeset
|
31 |
if str_: |
|
02ae72e8bab9
implementing vRoutes
Sandro Knauß <knauss@netzguerilla.net>
parents:
122
diff
changeset
|
32 |
return ret[0] |
|
02ae72e8bab9
implementing vRoutes
Sandro Knauß <knauss@netzguerilla.net>
parents:
122
diff
changeset
|
33 |
return ret |
| 115 | 34 |
return wrapper |
| 117 | 35 |
|
|
118
e16c0250c974
validate decorator can handle deferd validators
Sandro Knauß <knauss@netzguerilla.net>
parents:
117
diff
changeset
|
36 |
@dbdefer |
|
e16c0250c974
validate decorator can handle deferd validators
Sandro Knauß <knauss@netzguerilla.net>
parents:
117
diff
changeset
|
37 |
def vTyp(value,field, session): |
|
208
5da0f00ef872
session.typs -> Offer.typs
Sandro Knauß <knauss@netzguerilla.net>
parents:
205
diff
changeset
|
38 |
for typ in Offer.typs(session): |
|
118
e16c0250c974
validate decorator can handle deferd validators
Sandro Knauß <knauss@netzguerilla.net>
parents:
117
diff
changeset
|
39 |
if value == typ[0]: |
|
e16c0250c974
validate decorator can handle deferd validators
Sandro Knauß <knauss@netzguerilla.net>
parents:
117
diff
changeset
|
40 |
break |
|
e16c0250c974
validate decorator can handle deferd validators
Sandro Knauß <knauss@netzguerilla.net>
parents:
117
diff
changeset
|
41 |
else: |
|
e16c0250c974
validate decorator can handle deferd validators
Sandro Knauß <knauss@netzguerilla.net>
parents:
117
diff
changeset
|
42 |
raise ValidateException(field=field,msg='Typ is not valid.') |
| 117 | 43 |
return value |