--- 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:
--- 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 <em>isBilled=0</em>."""
--- /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()
--- 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):