--- a/iro/model/decorators.py Fri Mar 02 03:01:46 2012 +0100
+++ b/iro/model/decorators.py Fri Mar 02 03:14:01 2012 +0100
@@ -35,7 +35,7 @@
@dbdefer
def vTyp(value,field, session):
- for typ in session.typs:
+ for typ in Offer.typs(session):
if value == typ[0]:
break
else:
--- a/iro/model/schema.py Fri Mar 02 03:01:46 2012 +0100
+++ b/iro/model/schema.py Fri Mar 02 03:14:01 2012 +0100
@@ -62,6 +62,9 @@
def routes(cls, session, typ):
return session.query(cls).filter_by(typ=typ)
+ @classmethod
+ def typs(cls, session):
+ return session.query(cls.typ).distinct()
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>."""
--- a/iro/model/session.py Fri Mar 02 03:01:46 2012 +0100
+++ b/iro/model/session.py Fri Mar 02 03:14:01 2012 +0100
@@ -1,8 +1,4 @@
from sqlalchemy.orm.session import Session
-import schema
-
class IroSession(Session):
- @property
- def typs(self):
- return self.query(schema.Offer.typ).distinct()
+ pass
--- a/tests/db.py Fri Mar 02 03:01:46 2012 +0100
+++ b/tests/db.py Fri Mar 02 03:14:01 2012 +0100
@@ -80,7 +80,7 @@
session.add(o)
with self.session() as session:
- self.assertEqual(session.typs.all(),[('sms',),])
+ self.assertEqual(Offer.typs(session).all(),[('sms',),])
with self.session() as session:
o=Offer(name="s2", provider="sipgate", route="basic", typ="sms")
@@ -89,7 +89,7 @@
session.add(o)
with self.session() as session:
- self.assertEqual(session.typs.order_by(Offer.typ).all(),[('sms',),('sms2',)])
+ self.assertEqual(Offer.typs(session).order_by(Offer.typ).all(),[('sms',),('sms2',)])
def testOfferRoutes(self):
with self.session() as session: