From 4fe37f6aee19d97cd0dcea59ca6c662b1510a05f Mon Sep 17 00:00:00 2001
From: Michael Shamoon <4887959+shamoon@users.noreply.github.com>
Date: Tue, 27 Sep 2022 20:50:26 -0700
Subject: [PATCH] Add related_document and direct link from task UI
---
.../manage/tasks/tasks.component.html | 17 ++++++++++++-----
.../components/manage/tasks/tasks.component.ts | 9 ++++++++-
src-ui/src/app/data/paperless-task.ts | 2 ++
src/documents/serialisers.py | 18 ++++++++++++++++++
4 files changed, 40 insertions(+), 6 deletions(-)
diff --git a/src-ui/src/app/components/manage/tasks/tasks.component.html b/src-ui/src/app/components/manage/tasks/tasks.component.html
index e12c1651a..961b8b091 100644
--- a/src-ui/src/app/components/manage/tasks/tasks.component.html
+++ b/src-ui/src/app/components/manage/tasks/tasks.component.html
@@ -74,11 +74,18 @@
-
+
+
+
+
|
diff --git a/src-ui/src/app/components/manage/tasks/tasks.component.ts b/src-ui/src/app/components/manage/tasks/tasks.component.ts
index 1f896e07e..a2601dd8b 100644
--- a/src-ui/src/app/components/manage/tasks/tasks.component.ts
+++ b/src-ui/src/app/components/manage/tasks/tasks.component.ts
@@ -1,4 +1,5 @@
import { Component, OnInit, OnDestroy } from '@angular/core'
+import { Router } from '@angular/router'
import { NgbModal } from '@ng-bootstrap/ng-bootstrap'
import { Subject, first } from 'rxjs'
import { PaperlessTask } from 'src/app/data/paperless-task'
@@ -24,7 +25,8 @@ export class TasksComponent implements OnInit, OnDestroy {
constructor(
public tasksService: TasksService,
- private modalService: NgbModal
+ private modalService: NgbModal,
+ private readonly router: Router
) {}
ngOnInit() {
@@ -64,6 +66,11 @@ export class TasksComponent implements OnInit, OnDestroy {
}
}
+ dismissAndGo(task: PaperlessTask) {
+ this.dismissTask(task)
+ this.router.navigate(['documents', task.related_document])
+ }
+
expandTask(task: PaperlessTask) {
this.expandedTask = this.expandedTask == task.id ? undefined : task.id
}
diff --git a/src-ui/src/app/data/paperless-task.ts b/src-ui/src/app/data/paperless-task.ts
index f2259080e..ccf09bb6f 100644
--- a/src-ui/src/app/data/paperless-task.ts
+++ b/src-ui/src/app/data/paperless-task.ts
@@ -28,4 +28,6 @@ export interface PaperlessTask extends ObjectWithId {
done?: Date
result: string
+
+ related_document?: number
}
diff --git a/src/documents/serialisers.py b/src/documents/serialisers.py
index c8e312c73..172992de4 100644
--- a/src/documents/serialisers.py
+++ b/src/documents/serialisers.py
@@ -633,6 +633,7 @@ class TasksViewSerializer(serializers.ModelSerializer):
"acknowledged",
"task_name",
"name",
+ "related_document",
)
type = serializers.SerializerMethodField()
@@ -726,6 +727,23 @@ class TasksViewSerializer(serializers.ModelSerializer):
return result
+ related_document = serializers.SerializerMethodField()
+
+ def get_related_document(self, obj):
+ result = ""
+ regexp = r"New document id (\d+) created"
+ if (
+ hasattr(obj, "attempted_task")
+ and obj.attempted_task
+ and obj.attempted_task.status == "SUCCESS"
+ ):
+ try:
+ result = re.search(regexp, obj.attempted_task.result).group(1)
+ except Exception:
+ pass
+
+ return result
+
class AcknowledgeTasksViewSerializer(serializers.Serializer):