nun typs query into session object devel
authorSandro Knauß <knauss@netzguerilla.net>
Sat, 28 Jan 2012 13:02:07 +0100
branchdevel
changeset 122 b55754aa4f96
parent 121 ca63b6776231
child 123 2d685c3c10b2
nun typs query into session object
iro/model/decorators.py
iro/model/schema.py
iro/model/session.py
iro/model/utils.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:
--- 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):