1 from .dbdefer import dbdefer |
1 from .dbdefer import dbdefer |
|
2 from .schema import Offer as DBOffer |
2 from ..config import config |
3 from ..config import config |
3 |
|
4 def getPossibleOffers(recipient, os): |
|
5 ret = [] |
|
6 for offer in os: |
|
7 ret.append(offers[offer]) |
|
8 return ret |
|
9 |
4 |
10 @dbdefer |
5 @dbdefer |
11 def extendProvider(session, user, typ, providers): |
6 def extendProvider(session, user, typ, providers): |
12 user = session.merge(user) |
7 user = session.merge(user) |
13 ret = [] |
8 ret = [] |
14 for p in providers: |
9 for p in providers: |
15 if p in offers.keys() and p not in ret and user.has_right(typ, offer_name = p): |
10 if p not in ret and user.has_right(typ, offer_name = p): |
16 ret.append(p) |
11 ret.append(p) |
17 elif user.has_right(typ,provider=p): |
12 elif user.providers(typ).filter(DBOffer.provider==p).first(): |
18 rs = [route for route in offers[p].routes if route not in ret] |
13 for r in offers[p].routes: |
19 for r in rs: |
|
20 n = user.has_right(typ, provider=p, route=r) |
14 n = user.has_right(typ, provider=p, route=r) |
21 if n: |
15 if n and n not in ret: |
22 ret.append(n) |
16 ret.append(n) |
23 return ret |
17 return ret |
24 |
18 |
25 def loadOffers(): |
19 def loadOffers(): |
26 pass |
20 pass |
27 |
21 |
28 offers={} |
22 offers={} |
|
23 providers={} |
29 |
24 |
30 config.registerReload(loadOffers) |
25 config.registerReload(loadOffers) |
31 |
26 |