mirror of
https://github.com/paperless-ngx/paperless-ngx.git
synced 2026-02-18 00:29:35 -06:00
Make scheduled trigger update
This commit is contained in:
@@ -60,6 +60,7 @@ from documents.sanity_checker import SanityCheckFailedException
|
|||||||
from documents.signals import document_updated
|
from documents.signals import document_updated
|
||||||
from documents.signals.handlers import cleanup_document_deletion
|
from documents.signals.handlers import cleanup_document_deletion
|
||||||
from documents.signals.handlers import run_workflows
|
from documents.signals.handlers import run_workflows
|
||||||
|
from documents.signals.handlers import send_websocket_document_updated
|
||||||
from documents.workflows.utils import get_workflows_for_trigger
|
from documents.workflows.utils import get_workflows_for_trigger
|
||||||
from paperless.config import AIConfig
|
from paperless.config import AIConfig
|
||||||
from paperless_ai.indexing import llm_index_add_or_update_document
|
from paperless_ai.indexing import llm_index_add_or_update_document
|
||||||
@@ -534,6 +535,11 @@ def check_scheduled_workflows() -> None:
|
|||||||
workflow_to_run=workflow,
|
workflow_to_run=workflow,
|
||||||
document=document,
|
document=document,
|
||||||
)
|
)
|
||||||
|
# Scheduled workflows dont send document_updated signal, so send a websocket update here to ensure clients are updated
|
||||||
|
send_websocket_document_updated(
|
||||||
|
sender=None,
|
||||||
|
document=document,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def update_document_parent_tags(tag: Tag, new_parent: Tag) -> None:
|
def update_document_parent_tags(tag: Tag, new_parent: Tag) -> None:
|
||||||
|
|||||||
@@ -1965,6 +1965,36 @@ class TestWorkflows(
|
|||||||
doc.refresh_from_db()
|
doc.refresh_from_db()
|
||||||
self.assertEqual(doc.owner, self.user2)
|
self.assertEqual(doc.owner, self.user2)
|
||||||
|
|
||||||
|
@mock.patch("documents.tasks.send_websocket_document_updated")
|
||||||
|
def test_workflow_scheduled_trigger_sends_websocket_update(
|
||||||
|
self,
|
||||||
|
mock_send_websocket_document_updated,
|
||||||
|
) -> None:
|
||||||
|
trigger = WorkflowTrigger.objects.create(
|
||||||
|
type=WorkflowTrigger.WorkflowTriggerType.SCHEDULED,
|
||||||
|
schedule_offset_days=1,
|
||||||
|
schedule_date_field=WorkflowTrigger.ScheduleDateField.CREATED,
|
||||||
|
)
|
||||||
|
action = WorkflowAction.objects.create(assign_owner=self.user2)
|
||||||
|
workflow = Workflow.objects.create(name="Workflow 1", order=0)
|
||||||
|
workflow.triggers.add(trigger)
|
||||||
|
workflow.actions.add(action)
|
||||||
|
|
||||||
|
doc = Document.objects.create(
|
||||||
|
title="sample test",
|
||||||
|
correspondent=self.c,
|
||||||
|
original_filename="sample.pdf",
|
||||||
|
created=timezone.now() - timedelta(days=2),
|
||||||
|
)
|
||||||
|
|
||||||
|
tasks.check_scheduled_workflows()
|
||||||
|
|
||||||
|
self.assertEqual(mock_send_websocket_document_updated.call_count, 1)
|
||||||
|
self.assertEqual(
|
||||||
|
mock_send_websocket_document_updated.call_args.kwargs["document"].pk,
|
||||||
|
doc.pk,
|
||||||
|
)
|
||||||
|
|
||||||
def test_workflow_scheduled_trigger_added(self) -> None:
|
def test_workflow_scheduled_trigger_added(self) -> None:
|
||||||
"""
|
"""
|
||||||
GIVEN:
|
GIVEN:
|
||||||
|
|||||||
Reference in New Issue
Block a user