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):