class GenericTask(Task): """A generic task""" subject = models.CharField(max_length=255) body = models.TextField(blank=True) objects = TaskQuerySet.as_manager() def __unicode__(self): return u'Generic Task'
class FailedFaxTask(Task): """ Deprecated: keeping this model around to not lose historical data A fax for this communication failed""" type = 'FailedFaxTask' communication = models.ForeignKey('foia.FOIACommunication') reason = models.CharField(max_length=255, blank=True, default='') objects = TaskQuerySet.as_manager() def __unicode__(self): return u'Failed Fax Task' def get_absolute_url(self): return reverse('failed-fax-task', kwargs={'pk': self.pk})
class FailedFaxTask(Task): """ Deprecated: keeping this model around to not lose historical data A fax for this communication failed""" type = "FailedFaxTask" communication = models.ForeignKey( "foia.FOIACommunication", on_delete=models.PROTECT ) reason = models.CharField(max_length=255, blank=True, default="") objects = TaskQuerySet.as_manager() def __str__(self): return "Failed Fax Task" def get_absolute_url(self): return reverse("failed-fax-task", kwargs={"pk": self.pk})
class Task(models.Model): """A base task model for fields common to all tasks""" date_created = models.DateTimeField(auto_now_add=True) date_done = models.DateTimeField(blank=True, null=True) date_deferred = models.DateField(blank=True, null=True) resolved = models.BooleanField(default=False, db_index=True) assigned = models.ForeignKey( User, blank=True, null=True, related_name="assigned_tasks", on_delete=models.PROTECT, ) resolved_by = models.ForeignKey( User, blank=True, null=True, related_name="resolved_tasks", on_delete=models.PROTECT, ) form_data = JSONField(blank=True, null=True) objects = TaskQuerySet.as_manager() class Meta: ordering = ["date_created"] def __str__(self): return "Task" def resolve(self, user=None, form_data=None): """Resolve the task""" self.resolved = True self.resolved_by = user self.date_done = timezone.now() if form_data is not None: self.form_data = form_data self.save() logging.info("User %s resolved task %s", user, self.pk) def defer(self, date_deferred): """Defer the task to the given date""" self.date_deferred = date_deferred self.save()
class RejectedEmailTask(Task): """ Deprecated: Keeping this model around to not lose historical data A FOIA request has had an outgoing email rejected""" type = 'RejectedEmailTask' categories = (('b', 'Bounced'), ('d', 'Dropped')) category = models.CharField(max_length=1, choices=categories) foia = models.ForeignKey('foia.FOIARequest', blank=True, null=True) email = models.EmailField(blank=True) error = models.TextField(blank=True) objects = TaskQuerySet.as_manager() def __unicode__(self): return u'Rejected Email Task' def get_absolute_url(self): return reverse('rejected-email-task', kwargs={'pk': self.pk})
class RejectedEmailTask(Task): """ Deprecated: Keeping this model around to not lose historical data A FOIA request has had an outgoing email rejected""" type = "RejectedEmailTask" categories = (("b", "Bounced"), ("d", "Dropped")) category = models.CharField(max_length=1, choices=categories) foia = models.ForeignKey( "foia.FOIARequest", blank=True, null=True, on_delete=models.PROTECT ) email = models.EmailField(blank=True) error = models.TextField(blank=True) objects = TaskQuerySet.as_manager() def __str__(self): return "Rejected Email Task" def get_absolute_url(self): return reverse("rejected-email-task", kwargs={"pk": self.pk})