iro/model/schema.py
branchdevel
changeset 121 ca63b6776231
parent 117 351a02310dd8
child 122 b55754aa4f96
equal deleted inserted replaced
120:7bde35ad89e0 121:ca63b6776231
     3 from sqlalchemy import Column, Integer, String, Sequence, Boolean, DateTime, Numeric, Enum
     3 from sqlalchemy import Column, Integer, String, Sequence, Boolean, DateTime, Numeric, Enum
     4 from sqlalchemy.ext.declarative import declarative_base
     4 from sqlalchemy.ext.declarative import declarative_base
     5 
     5 
     6 #relationship
     6 #relationship
     7 from sqlalchemy import ForeignKey
     7 from sqlalchemy import ForeignKey
     8 from sqlalchemy.orm import relationship, backref
     8 from sqlalchemy.orm import relationship, backref, object_session
       
     9 
       
    10 from sqlalchemy import and_ 
     9 
    11 
    10 Base = declarative_base()
    12 Base = declarative_base()
    11 
    13 
    12 __tables__=["User", "Job", "Message", "Offer", "Userright"]
    14 __tables__=["User", "Job", "Message", "Offer", "Userright"]
    13 
    15 
    72         self.name=name
    74         self.name=name
    73         self.apikey=apikey
    75         self.apikey=apikey
    74 
    76 
    75     def __repr__(self):
    77     def __repr__(self):
    76         return "<User('%s','%s')>"%(self.name,self.apikey)
    78         return "<User('%s','%s')>"%(self.name,self.apikey)
    77 
    79     
    78 
    80     def routes(self, typ, isDefault = None):
       
    81         filters=[User.name == self.name,
       
    82                 Offer.typ == typ, 
       
    83                 ]
       
    84         if isDefault is not None:
       
    85             filters.append(Userright.isDefault==isDefault)
       
    86         return object_session(self).query(Userright.offer_name).join(Offer,User).filter(and_(*filters))