mirror of
https://github.com/paperless-ngx/paperless-ngx.git
synced 2025-07-28 18:24:38 -05:00
Use pre_execute signal to specify started vs queued
This commit is contained in:
@@ -15,6 +15,7 @@ def init_paperless_tasks(apps, schema_editor):
|
||||
task_id=task.id,
|
||||
name=task.name,
|
||||
created=task.started,
|
||||
started=task.started,
|
||||
acknowledged=True,
|
||||
)
|
||||
task.paperlesstask = paperlesstask
|
||||
@@ -45,9 +46,11 @@ class Migration(migrations.Migration):
|
||||
("name", models.CharField(max_length=256)),
|
||||
(
|
||||
"created",
|
||||
models.DateTimeField(
|
||||
auto_now=True, db_index=True, verbose_name="created"
|
||||
),
|
||||
models.DateTimeField(auto_now=True, verbose_name="created"),
|
||||
),
|
||||
(
|
||||
"started",
|
||||
models.DateTimeField(verbose_name="started"),
|
||||
),
|
||||
("acknowledged", models.BooleanField(default=False)),
|
||||
(
|
||||
|
@@ -507,7 +507,8 @@ class PaperlessTask(models.Model):
|
||||
|
||||
task_id = models.CharField(max_length=128)
|
||||
name = models.CharField(max_length=256)
|
||||
created = models.DateTimeField(_("created"), auto_now=True, db_index=True)
|
||||
created = models.DateTimeField(_("created"), auto_now=True)
|
||||
started = models.DateTimeField(_("started"))
|
||||
attempted_task = models.OneToOneField(
|
||||
Task,
|
||||
on_delete=models.CASCADE,
|
||||
|
@@ -622,7 +622,10 @@ class TasksViewSerializer(serializers.ModelSerializer):
|
||||
|
||||
def get_status(self, obj):
|
||||
if obj.attempted_task is None:
|
||||
return "incomplete"
|
||||
if obj.started:
|
||||
return "started"
|
||||
else:
|
||||
return "queued"
|
||||
elif obj.attempted_task.success:
|
||||
return "complete"
|
||||
elif not obj.attempted_task.success:
|
||||
|
@@ -514,12 +514,24 @@ def init_paperless_task(sender, task, **kwargs):
|
||||
paperless_task.save()
|
||||
|
||||
|
||||
@receiver(models.signals.post_save, sender=django_q.tasks.Task)
|
||||
def update_paperless_task(sender, instance, **kwargs):
|
||||
@receiver(django_q.signals.pre_execute)
|
||||
def paperless_task_started(sender, task, **kwargs):
|
||||
print(task)
|
||||
try:
|
||||
if instance.func == "documents.tasks.consume_file":
|
||||
paperless_task = PaperlessTask.objects.get(task_id=instance.id)
|
||||
paperless_task.attempted_task = instance
|
||||
if task["func"] == "documents.tasks.consume_file":
|
||||
paperless_task = PaperlessTask.objects.get(task_id=task["id"])
|
||||
paperless_task.started = timezone.now()
|
||||
paperless_task.save()
|
||||
except PaperlessTask.DoesNotExist:
|
||||
pass
|
||||
|
||||
|
||||
@receiver(models.signals.post_save, sender=django_q.tasks.Task)
|
||||
def update_paperless_task(sender, task, **kwargs):
|
||||
try:
|
||||
if task.func == "documents.tasks.consume_file":
|
||||
paperless_task = PaperlessTask.objects.get(task_id=task.id)
|
||||
paperless_task.attempted_task = task
|
||||
paperless_task.save()
|
||||
except PaperlessTask.DoesNotExist:
|
||||
pass
|
||||
|
Reference in New Issue
Block a user