diff -r a4ad521b127b -r 0192f9107870 iro/model/offer.py --- a/iro/model/offer.py Mon Feb 13 22:18:06 2012 +0100 +++ b/iro/model/offer.py Mon Feb 13 22:19:31 2012 +0100 @@ -1,6 +1,9 @@ from .dbdefer import dbdefer +from sqlalchemy import and_ + import schema from ..config import config +from ..offer import getProvider, Offer @dbdefer def extendProvider(session, user, typ, providers): @@ -16,8 +19,17 @@ ret.append(n) return ret -def loadOffers(): - pass +@dbdefer +def loadOffers(session): + offers.clear() + providers.clear() + for provider in ( s for s in config.sections() if not s in ["main",]): + p=getProvider(provider,config.get(provider,"typ"),config.items(provider)) + for r in p.routes: + for o in session.query(schema.Offer.name, schema.Offer.route).filter(and_(schema.Offer.provider==provider, + schema.Offer.route==r)): + offers[o[0]]=Offer(provider=p,route=r,typ=o[1],name=o[0]) + providers[provider]=p offers={} providers={}