| author | Sandro Knauß <knauss@netzguerilla.net> |
| Mon, 13 Feb 2012 22:18:06 +0100 | |
| branch | devel |
| changeset 156 | a4ad521b127b |
| parent 152 | 14c99c89edf4 |
| child 175 | c29acd5fb841 |
| permissions | -rw-r--r-- |
| 135 | 1 |
from collections import MutableMapping |
2 |
||
|
140
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
3 |
import schema |
|
156
a4ad521b127b
moving Status to own file
Sandro Knauß <knauss@netzguerilla.net>
parents:
152
diff
changeset
|
4 |
import offer |
| 135 | 5 |
from .dbdefer import dbdefer |
6 |
||
|
140
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
7 |
class ExJob: |
| 135 | 8 |
'''One Job is a class that handles one job has multiple tasks''' |
|
140
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
9 |
def __init__(self, dbjob, recipients, message, offers): |
|
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
10 |
self.dbjob = dbjob #Connection to mysql job element (id) |
| 135 | 11 |
self.message = message |
12 |
self.recipients = recipients |
|
13 |
self.offers = offers |
|
14 |
self.tasks={} |
|
|
140
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
15 |
|
|
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
16 |
def addTask(self,task): |
|
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
17 |
self.tasks[task.recipient] = task |
| 135 | 18 |
|
19 |
def setStatus(task,status): |
|
20 |
pass |
|
21 |
||
22 |
def setError(task,err): |
|
23 |
pass |
|
24 |
||
|
140
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
25 |
class ExJobs(dict, MutableMapping): |
|
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
26 |
|
| 135 | 27 |
@dbdefer |
|
140
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
28 |
def create(self, session, user, recipients, message, offers, info=None): |
|
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
29 |
user = session.merge(user) |
|
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
30 |
job = schema.Job(info=info, status="started") |
|
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
31 |
user.jobs.append(job) |
| 135 | 32 |
session.commit() |
|
152
14c99c89edf4
using extendProvide in Job.create
Sandro Knauß <knauss@netzguerilla.net>
parents:
142
diff
changeset
|
33 |
|
|
156
a4ad521b127b
moving Status to own file
Sandro Knauß <knauss@netzguerilla.net>
parents:
152
diff
changeset
|
34 |
o = offer.extendProvider(user, message.typ, offers, session=session) |
|
152
14c99c89edf4
using extendProvide in Job.create
Sandro Knauß <knauss@netzguerilla.net>
parents:
142
diff
changeset
|
35 |
self[job.id] = ExJob(job.id, recipients, message, o) |
|
140
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
36 |
return self[job.id] |
| 135 | 37 |
|
|
140
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
38 |
exJobs = ExJobs() |