equal
deleted
inserted
replaced
1 from .dbdefer import dbdefer |
1 from .dbdefer import dbdefer |
|
2 from sqlalchemy import and_ |
|
3 |
2 import schema |
4 import schema |
3 from ..config import config |
5 from ..config import config |
|
6 from ..offer import getProvider, Offer |
4 |
7 |
5 @dbdefer |
8 @dbdefer |
6 def extendProvider(session, user, typ, providers): |
9 def extendProvider(session, user, typ, providers): |
7 user = session.merge(user) |
10 user = session.merge(user) |
8 ret = [] |
11 ret = [] |
14 n = user.has_right(typ, provider=p, route=r) |
17 n = user.has_right(typ, provider=p, route=r) |
15 if n and n not in ret: |
18 if n and n not in ret: |
16 ret.append(n) |
19 ret.append(n) |
17 return ret |
20 return ret |
18 |
21 |
19 def loadOffers(): |
22 @dbdefer |
20 pass |
23 def loadOffers(session): |
|
24 offers.clear() |
|
25 providers.clear() |
|
26 for provider in ( s for s in config.sections() if not s in ["main",]): |
|
27 p=getProvider(provider,config.get(provider,"typ"),config.items(provider)) |
|
28 for r in p.routes: |
|
29 for o in session.query(schema.Offer.name, schema.Offer.route).filter(and_(schema.Offer.provider==provider, |
|
30 schema.Offer.route==r)): |
|
31 offers[o[0]]=Offer(provider=p,route=r,typ=o[1],name=o[0]) |
|
32 providers[provider]=p |
21 |
33 |
22 offers={} |
34 offers={} |
23 providers={} |
35 providers={} |
24 |
36 |
25 config.registerReload(loadOffers) |
37 config.registerReload(loadOffers) |