Added admin pages for failures and success.

SAVE_LIMIT can now be set to limit the amount of saved tasks results.
This commit is contained in:
Ilan Steemers
2015-06-17 15:32:54 +02:00
parent 727a4d560d
commit e473665760
5 changed files with 138 additions and 27 deletions
+34 -3
View File
@@ -1,20 +1,51 @@
from django.db import models
import socket
from django.utils.translation import ugettext_lazy as _
from picklefield import PickledObjectField
class Task(models.Model):
name = models.CharField(max_length=100)
func = models.CharField(max_length=256)
task = PickledObjectField()
args = PickledObjectField()
kwargs = PickledObjectField()
result = PickledObjectField()
started = models.DateTimeField()
stopped = models.DateTimeField()
success = models.BooleanField(default=True)
@staticmethod
def get_result(name):
return Task.objects.filter(name=name).values_list('result', flat=True)
def time_taken(self):
return (self.stopped - self.started).total_seconds()
class Meta:
app_label = 'django_q'
class SuccessManager(models.Manager):
def get_queryset(self):
return super(SuccessManager, self).get_queryset().filter(
success=True)
class Success(Task):
objects = SuccessManager()
class Meta:
app_label = 'django_q'
proxy = True
class FailureManager(models.Manager):
def get_queryset(self):
return super(FailureManager, self).get_queryset().filter(
success=False)
class Failure(Task):
objects = FailureManager()
class Meta:
app_label = 'django_q'
proxy = True