38 ] |
38 ] |
39 |
39 |
40 filters = [ Message.isBilled==False, # only unbilled messages |
40 filters = [ Message.isBilled==False, # only unbilled messages |
41 Job.user==self.user, # only jobs connected to user |
41 Job.user==self.user, # only jobs connected to user |
42 Message.offer==self.offer, # only messages in the right offer |
42 Message.offer==self.offer, # only messages in the right offer |
43 Message.job_hash==Job.hash, # join Message and Job |
43 Message.job_id==Job.id, # join Message and Job |
44 ] |
44 ] |
45 return object_session(self).query(*query).filter(and_(*filters)).group_by(Job.info) |
45 return object_session(self).query(*query).filter(and_(*filters)).group_by(Job.info) |
46 |
46 |
47 class Offer(Base): |
47 class Offer(Base): |
48 """Alle Routen über die SMS, Faxe und Mails verschickt werden könnnen. <em>provider</em>, <em>typ</em> und <em>route</em> werden verwendet, um die entsprechenden Zugangsdaten laden zu können.""" |
48 """Alle Routen über die SMS, Faxe und Mails verschickt werden könnnen. <em>provider</em>, <em>typ</em> und <em>route</em> werden verwendet, um die entsprechenden Zugangsdaten laden zu können.""" |
59 id = Column(Integer, Sequence('message_id_seq'), primary_key=True) |
59 id = Column(Integer, Sequence('message_id_seq'), primary_key=True) |
60 recipient = Column(String(100)) |
60 recipient = Column(String(100)) |
61 isBilled = Column(Boolean) |
61 isBilled = Column(Boolean) |
62 date = Column(DateTime) |
62 date = Column(DateTime) |
63 price = Column(Numeric(8,4)) |
63 price = Column(Numeric(8,4)) |
64 job_hash = Column("job", String(40), ForeignKey('job.hash')) |
64 job_id = Column("job", String(40), ForeignKey('job.id')) |
65 job = relationship("Job", backref=backref('messages')) |
65 job = relationship("Job", backref=backref('messages')) |
66 offer_id = Column("offer",String(100), ForeignKey('offer.name')) |
66 offer_id = Column("offer",String(100), ForeignKey('offer.name')) |
67 offer = relationship("Offer", backref=backref('messages')) |
67 offer = relationship("Offer", backref=backref('messages')) |
68 |
68 |
69 |
69 |
70 class Job(Base): |
70 class Job(Base): |
71 """Ein kompletter Auftrag, der an Iro zum verschicken übergeben wird. Status zeigt den generellen Status des Auftrages an (<em>init</em>, <em>started</em>, <em>sending</em>, <em>sended</em> oder <em>error</em>). <em>info</em> wird verwendet um dem Benutzer eine Möglickeit zu geben verschiede Auftragsgruppen zu erstellen.""" |
71 """Ein kompletter Auftrag, der an Iro zum verschicken übergeben wird. Status zeigt den generellen Status des Auftrages an (<em>init</em>, <em>started</em>, <em>sending</em>, <em>sended</em> oder <em>error</em>). <em>info</em> wird verwendet um dem Benutzer eine Möglickeit zu geben verschiede Auftragsgruppen zu erstellen.""" |
72 __tablename__ = "job" |
72 __tablename__ = "job" |
73 hash = Column(String(40), primary_key=True) |
73 id = Column(Integer, Sequence('job_id_seq'), primary_key=True) |
74 info = Column(String(100)) |
74 info = Column(String(100)) |
75 status = Column(Enum("init","started","sending","sended","error")) |
75 status = Column(Enum("init","started","sending","sended","error")) |
76 user_id = Column("user", String(100), ForeignKey('apiuser.name')) |
76 user_id = Column("user", String(100), ForeignKey('apiuser.name')) |
77 user = relationship("User", backref=backref('jobs')) |
77 user = relationship("User", backref=backref('jobs')) |
78 |
78 |
79 def __repr__(self): |
79 def __repr__(self): |
80 return "<Job('%s','%s','%s','%s')>"%(self.hash,self.info, self.status, self.user_id) |
80 return "<Job('%s','%s','%s','%s')>"%(self.id,self.info, self.status, self.user_id) |
81 |
81 |
82 class User(Base): |
82 class User(Base): |
83 """Die Benutzerdatenbank von Iro. <em>ng_kunde</em> ist der verknüpfte netzguerilla.net Benutzer, der die Rechnung zahlt.""" |
83 """Die Benutzerdatenbank von Iro. <em>ng_kunde</em> ist der verknüpfte netzguerilla.net Benutzer, der die Rechnung zahlt.""" |
84 __tablename__ = "apiuser" |
84 __tablename__ = "apiuser" |
85 name = Column(String(100), primary_key=True) |
85 name = Column(String(100), primary_key=True) |