iro/model/schema.py
branchdevel
changeset 153 0e50d10c8b6c
parent 150 c6896c3374c4
child 176 71f1108758ef
equal deleted inserted replaced
152:14c99c89edf4 153:0e50d10c8b6c
     6 #relationship
     6 #relationship
     7 from sqlalchemy import ForeignKey
     7 from sqlalchemy import ForeignKey
     8 from sqlalchemy.orm import relationship, backref, object_session
     8 from sqlalchemy.orm import relationship, backref, object_session
     9 
     9 
    10 from sqlalchemy import and_
    10 from sqlalchemy import and_
       
    11 from sqlalchemy.orm.exc import DetachedInstanceError 
    11 import sqlalchemy.sql.functions as func
    12 import sqlalchemy.sql.functions as func
    12 
    13 
    13 import job
    14 import job
    14 from ..error import JobNotFound
    15 from ..error import JobNotFound
    15 
    16 
    81     def extend(self):
    82     def extend(self):
    82         return job.exJobs[self.id]
    83         return job.exJobs[self.id]
    83 
    84 
    84 
    85 
    85     def __repr__(self):
    86     def __repr__(self):
    86         return "<Job('%s','%s','%s','%s')>"%(self.id,self.info, self.status, self.user_id)
    87         try:
       
    88             return "<Job('%s','%s','%s','%s')>"%(self.id,self.info, self.status, self.user_id)
       
    89         except DetachedInstanceError:
       
    90             return Base.__repr__(self)
    87 
    91 
    88 class User(Base):
    92 class User(Base):
    89     """Die Benutzerdatenbank von Iro. <em>ng_kunde</em> ist der verknüpfte netzguerilla.net Benutzer, der die Rechnung zahlt."""
    93     """Die Benutzerdatenbank von Iro. <em>ng_kunde</em> ist der verknüpfte netzguerilla.net Benutzer, der die Rechnung zahlt."""
    90     __tablename__ = "apiuser"
    94     __tablename__ = "apiuser"
    91     name = Column(String(100), primary_key=True)
    95     name = Column(String(100), primary_key=True)
    95     def __init__(self, name, apikey):
    99     def __init__(self, name, apikey):
    96         self.name=name
   100         self.name=name
    97         self.apikey=apikey
   101         self.apikey=apikey
    98 
   102 
    99     def __repr__(self):
   103     def __repr__(self):
   100         return "<User('%s','%s')>"%(self.name,self.apikey)
   104         try:
       
   105             return "<User('%s','%s')>"%(self.name,self.apikey)
       
   106         except DetachedInstanceError:
       
   107             return Base.__repr__(self)
   101     
   108     
   102     def routes(self, typ, isDefault = None):
   109     def routes(self, typ, isDefault = None):
   103         '''returns a query object to get all possible routes for a given typ'''
   110         '''returns a query object to get all possible routes for a given typ'''
   104         filters=[User.name == self.name,
   111         filters=[User.name == self.name,
   105                 Offer.typ == typ, 
   112                 Offer.typ == typ,