# coding=utf-8
from django.contrib.auth.models import AbstractUser
+from django.core.urlresolvers import reverse
from django.db import models
from django.utils.timezone import now
from pyqcg.service import Job as QcgJob, Task as QcgTask
class User(AbstractUser):
last_update = models.DateTimeField(default=now)
+ @property
+ def tasks(self):
+ return Task.objects.filter(job__owner=self)
+
class Job(models.Model):
STATUS_CHOICES = list(enumerate(field for field in dir(JobStatus) if not field.startswith('__')))
status = models.IntegerField(u"Status", choices=STATUS_CHOICES)
note = models.TextField(u"Notatka", blank=True, default='')
description = models.TextField(u"Opis", blank=True, default='')
+ project = models.TextField(u"Projekt", blank=True, default='')
submission_time = models.DateTimeField(u"Data wysłania")
finish_time = models.DateTimeField(u"Data zakończenia", blank=True, null=True)
proxy_lifetime = TimedeltaField(u"Czas życia proxy", blank=True, null=True)
- project = models.TextField(u"Projekt", blank=True, default='')
purged = models.BooleanField(u"Usunięty katalog roboczy?", default=False)
owner = models.ForeignKey(User, verbose_name=u"Właściciel", related_name='jobs')
def __unicode__(self):
return self.job_id
+ def get_absolute_url(self):
+ return reverse('job', kwargs={'job_id': self.job_id})
+
@property
def qcg_job(self):
if self._job is None:
def __unicode__(self):
return u'{}/{}'.format(self.job, self.task_id)
+ def get_absolute_url(self):
+ return reverse('task', kwargs={'job_id': self.job.job_id, 'task_id': self.task_id})
+
@property
def qcg_task(self):
if self._qcg_task is None: