| author | Sandro Knauß <knauss@netzguerilla.net> |
| Thu, 09 Feb 2012 17:36:31 +0100 | |
| branch | devel |
| changeset 140 | 75d0eaaa871d |
| parent 135 | f8640c663e3e |
| child 142 | 7d0c1fa97123 |
| 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 |
| 135 | 4 |
from .dbdefer import dbdefer |
5 |
||
6 |
class Status: |
|
7 |
'''status for one recipient''' |
|
8 |
todo = 1 |
|
9 |
good = 2 |
|
10 |
error = 3 |
|
11 |
def __init__(self, job): |
|
12 |
self.status = Status.todo |
|
13 |
self.job = job |
|
14 |
self.offer = None #the offer over that this job was done |
|
15 |
self.errtext = None #the error text |
|
16 |
||
|
140
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
17 |
class ExJob: |
| 135 | 18 |
'''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
|
19 |
def __init__(self, dbjob, recipients, message, offers): |
|
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
20 |
self.dbjob = dbjob #Connection to mysql job element (id) |
| 135 | 21 |
self.message = message |
22 |
self.recipients = recipients |
|
23 |
self.offers = offers |
|
24 |
self.tasks={} |
|
|
140
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
25 |
|
|
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
26 |
def addTask(self,task): |
|
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
27 |
self.tasks[task.recipient] = task |
| 135 | 28 |
|
29 |
def setStatus(task,status): |
|
30 |
pass |
|
31 |
||
32 |
def setError(task,err): |
|
33 |
pass |
|
34 |
||
|
140
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
35 |
class ExJobs(dict, MutableMapping): |
|
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
36 |
|
| 135 | 37 |
@dbdefer |
|
140
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
38 |
def create(self, session, user, recipients, message, offers, info=None): |
|
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
39 |
user = session.merge(user) |
|
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
40 |
job = schema.Job(info=info, status="started") |
|
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
41 |
user.jobs.append(job) |
| 135 | 42 |
session.commit() |
43 |
||
|
140
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
44 |
self[job.id] = ExJob(job.id, recipients, message, offers) |
|
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
45 |
return self[job.id] |
| 135 | 46 |
|
|
140
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
47 |
exJobs = ExJobs() |