equal
deleted
inserted
replaced
4 from ..config import configParser |
4 from ..config import configParser |
5 from ..offer import getProvider, Offer |
5 from ..offer import getProvider, Offer |
6 |
6 |
7 @dbdefer |
7 @dbdefer |
8 def extendProvider(session, user, typ, ps): |
8 def extendProvider(session, user, typ, ps): |
|
9 """extend and reduce the offer list to allowed routes for **user**. |
|
10 |
|
11 - extend the "default" to the default offerlist of the **user**. |
|
12 - extend a Provider name to all routes of that provider. |
|
13 |
|
14 :param session: a valid session ( created by decorator :func:`iro.model.dbdefer.dbdefer`) |
|
15 :param `iro.model.schema.User` user: a user object |
|
16 :param string typ: typ of the message |
|
17 :param ps: a list of strings or a string, each one offer name or provider name |
|
18 :return: a extended an reduced offer list |
|
19 """ |
9 user = session.merge(user) |
20 user = session.merge(user) |
10 ret = [] |
21 ret = [] |
11 if ps == "default" or ps == ["default"]: |
22 if ps == "default" or ps == ["default"]: |
12 ps = (q[0] for q in user.routes(typ,default=True)) |
23 ps = (q[0] for q in user.routes(typ,default=True)) |
13 for p in ps: |
24 for p in ps: |
20 ret.append(n) |
31 ret.append(n) |
21 return ret |
32 return ret |
22 |
33 |
23 @dbdefer |
34 @dbdefer |
24 def loadOffers(session): |
35 def loadOffers(session): |
|
36 """loading Offers from database and configuration file and store them in :attr:`~iro.model.offer.offers` and :attr:`~iro.model.offer.providers`. |
|
37 |
|
38 :param session: a valid session ( created by decorator :func:`iro.model.dbdefer.dbdefer`) |
|
39 """ |
25 offers.clear() |
40 offers.clear() |
26 providers.clear() |
41 providers.clear() |
27 for provider in ( s for s in configParser.sections() if not s in ["main",]): |
42 for provider in ( s for s in configParser.sections() if not s in ["main",]): |
28 p=getProvider(provider,configParser.get(provider,"typ"),configParser.items(provider)) |
43 p=getProvider(provider,configParser.get(provider,"typ"),configParser.items(provider)) |
29 for t in p.typs: |
44 for t in p.typs: |
31 n = schema.Offer.get(session, provider, r, t).name |
46 n = schema.Offer.get(session, provider, r, t).name |
32 offers[n]=Offer(provider=p,route=r,typ=t,name=n) |
47 offers[n]=Offer(provider=p,route=r,typ=t,name=n) |
33 providers[provider]=p |
48 providers[provider]=p |
34 |
49 |
35 offers={} |
50 offers={} |
|
51 """A dict of all available offers -- key is the offer name""" |
|
52 |
36 providers={} |
53 providers={} |
|
54 """A dict of all available providers -- key is the provider name""" |
|
55 |
37 |
56 |
38 configParser.registerReload(loadOffers) |
57 configParser.registerReload(loadOffers) |
39 |
58 |