from collections import MutableMapping
import schema
import offer
from .dbdefer import dbdefer
class ExJob:
'''One Job is a class that handles one job has multiple tasks'''
def __init__(self, dbjob, recipients, message, offers):
self.dbjob = dbjob #Connection to mysql job element (id)
self.message = message
self.recipients = recipients
self.offers = offers
self.tasks={}
def addTask(self,task):
self.tasks[task.recipient] = task
def setStatus(task,status):
pass
def setError(task,err):
pass
class ExJobs(dict, MutableMapping):
@dbdefer
def create(self, session, user, recipients, message, offers, info=None):
user = session.merge(user)
job = schema.Job(info=info, status="started")
user.jobs.append(job)
session.commit()
o = offer.extendProvider(user, message.typ, offers, session=session)
self[job.id] = ExJob(job.id, recipients, message, o)
return self[job.id]
exJobs = ExJobs()