more logic to schema. devel
authorSandro Knauß <knauss@netzguerilla.net>
Sun, 19 Feb 2012 17:49:00 +0100
branchdevel
changeset 176 71f1108758ef
parent 175 c29acd5fb841
child 177 6c76753f9056
more logic to schema. get function to Offer and Job.
iro/model/offer.py
iro/model/schema.py
--- a/iro/model/offer.py	Sun Feb 19 17:47:39 2012 +0100
+++ b/iro/model/offer.py	Sun Feb 19 17:49:00 2012 +0100
@@ -1,5 +1,4 @@
 from .dbdefer import dbdefer
-from sqlalchemy import and_
 
 import schema
 from ..config import config
@@ -27,7 +26,7 @@
         p=getProvider(provider,config.get(provider,"typ"),config.items(provider))
         for t in p.typs:
             for r in p.typs[t]:
-                n = session.query(schema.Offer.name).filter(and_(schema.Offer.provider==provider, schema.Offer.route==r, schema.Offer.typ==t)).scalar()
+                n = schema.Offer.get(session, provider, r, t).name
                 offers[n]=Offer(provider=p,route=r,typ=t,name=n)
         providers[provider]=p
 
--- a/iro/model/schema.py	Sun Feb 19 17:47:39 2012 +0100
+++ b/iro/model/schema.py	Sun Feb 19 17:49:00 2012 +0100
@@ -54,6 +54,9 @@
     route = Column(String(100))
     typ = Column(String(100))
   
+    @classmethod
+    def get(cls, session, provider, route, typ):
+        return session.query(cls).filter(and_(cls.provider==provider, cls.route==route, cls.typ==typ)).first()
 
 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>."""
@@ -89,6 +92,10 @@
         except DetachedInstanceError:
             return Base.__repr__(self)
 
+    @classmethod
+    def get(cls, session, id):
+        return session.query(cls).filter_by(id=id).first()
+
 class User(Base):
     """Die Benutzerdatenbank von Iro. <em>ng_kunde</em> ist der verknüpfte netzguerilla.net Benutzer, der die Rechnung zahlt."""
     __tablename__ = "apiuser"