6 from .dbdefer import dbdefer |
6 from .dbdefer import dbdefer |
7 from .pool import runInDBPool |
7 from .pool import runInDBPool |
8 |
8 |
9 from ..error import ValidateException |
9 from ..error import ValidateException |
10 |
10 |
11 def vRoute(typ): |
11 @dbdefer |
12 @dbdefer |
12 def vRoute(session, value, field, typ, allowString=True, allowList=True): |
13 def wrapper(session, value, field, allowString=True, allowList=True): |
13 str_ = False |
14 str_ = False |
14 ret = [] |
15 ret = [] |
|
16 |
15 |
17 if type(value) is types.StringType: |
16 if type(value) is types.StringType: |
18 if not allowString: |
17 if not allowString: |
19 raise ValidateException(field=field,msg='%s must be a list of routes.'%field) |
18 raise ValidateException(field=field,msg='%s must be a list of routes.'%field) |
20 str_=True |
19 str_=True |
21 value=[value] |
20 value=[value] |
22 elif not allowList: |
21 elif not allowList: |
23 raise ValidateException(field=field,msg='%s must be a route - No list of routes.'%field) |
22 raise ValidateException(field=field,msg='%s must be a route - No list of routes.'%field) |
24 |
23 |
25 routes =[o.name for o in Offer.routes(session,typ)] |
24 routes =[o.name for o in Offer.routes(session,typ)] |
26 for v in value: |
25 for v in value: |
27 if v not in routes: |
26 if v not in routes: |
28 raise ValidateException(field=field,msg='Route %s is not valid.'%v) |
27 raise ValidateException(field=field,msg='Route %s is not valid.'%v) |
29 if v not in ret: |
28 if v not in ret: |
30 ret.append(v) |
29 ret.append(v) |
31 if str_: |
30 if str_: |
32 return ret[0] |
31 return ret[0] |
33 return ret |
32 return ret |
34 return wrapper |
|
35 |
33 |
36 @dbdefer |
34 @dbdefer |
37 def vTyp(value,field, session): |
35 def vTyp(value,field, session): |
38 for typ in Offer.typs(session): |
36 for typ in Offer.typs(session): |
39 if value == typ[0]: |
37 if value == typ[0]: |