diff -r bb3e16224bbd -r c6896c3374c4 iro/model/offer.py --- a/iro/model/offer.py Mon Feb 13 17:59:11 2012 +0100 +++ b/iro/model/offer.py Mon Feb 13 18:00:27 2012 +0100 @@ -1,24 +1,18 @@ from .dbdefer import dbdefer +from .schema import Offer as DBOffer from ..config import config -def getPossibleOffers(recipient, os): - ret = [] - for offer in os: - ret.append(offers[offer]) - return ret - @dbdefer def extendProvider(session, user, typ, providers): user = session.merge(user) ret = [] for p in providers: - if p in offers.keys() and p not in ret and user.has_right(typ, offer_name = p): + if p not in ret and user.has_right(typ, offer_name = p): ret.append(p) - elif user.has_right(typ,provider=p): - rs = [route for route in offers[p].routes if route not in ret] - for r in rs: + elif user.providers(typ).filter(DBOffer.provider==p).first(): + for r in offers[p].routes: n = user.has_right(typ, provider=p, route=r) - if n: + if n and n not in ret: ret.append(n) return ret @@ -26,6 +20,7 @@ pass offers={} +providers={} config.registerReload(loadOffers)