# HG changeset patch # User Sandro Knauß # Date 1327752127 -3600 # Node ID b55754aa4f96d0a70f6b29846803a3c51a5b5acc # Parent ca63b67762311b5351c817f5a195dccd1943ab33 nun typs query into session object diff -r ca63b6776231 -r b55754aa4f96 iro/model/decorators.py --- a/iro/model/decorators.py Sat Jan 28 12:24:40 2012 +0100 +++ b/iro/model/decorators.py Sat Jan 28 13:02:07 2012 +0100 @@ -3,7 +3,6 @@ from .user import vUser from .dbdefer import dbdefer from .pool import runInDBPool -from .schema import Offer from ..error import ValidateException @@ -15,7 +14,7 @@ @dbdefer def vTyp(value,field, session): - for typ in session.query(Offer.typ).distinct(): + for typ in session.typs: if value == typ[0]: break else: diff -r ca63b6776231 -r b55754aa4f96 iro/model/schema.py --- a/iro/model/schema.py Sat Jan 28 12:24:40 2012 +0100 +++ b/iro/model/schema.py Sat Jan 28 13:02:07 2012 +0100 @@ -32,13 +32,7 @@ provider = Column(String(100)) route = Column(String(100)) typ = Column(String(100)) - - def __init__(self, name, provider, route, typ): - self.name = name - self.provider = provider - self.route = route - self.typ = typ - + class Message(Base): """Wenn ein Vorgang von Iro Kosten erzeugt hat wird eine neue Zeile eingefügt. Solange nicht bezahlt wurde ist isBilled=0.""" diff -r ca63b6776231 -r b55754aa4f96 iro/model/session.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/iro/model/session.py Sat Jan 28 13:02:07 2012 +0100 @@ -0,0 +1,8 @@ +from sqlalchemy.orm.session import Session + +from .schema import Offer + +class IroSession(Session): + @property + def typs(self): + return self.query(Offer.typ).distinct() diff -r ca63b6776231 -r b55754aa4f96 iro/model/utils.py --- a/iro/model/utils.py Sat Jan 28 12:24:40 2012 +0100 +++ b/iro/model/utils.py Sat Jan 28 13:02:07 2012 +0100 @@ -1,5 +1,7 @@ from sqlalchemy.orm import sessionmaker +from .session import IroSession + class WithSession(object): '''a with statement for a database session connection''' def __init__(self, engine, autocommit=False): @@ -7,7 +9,7 @@ self.autocommit=autocommit def __enter__(self): - self.session = sessionmaker(bind=self.engine)() + self.session = sessionmaker(bind=self.engine, class_ = IroSession)() return self.session def __exit__(self,exc_type, exc_value, traceback):