Revert "fix: workflow mechanics for submission queue (start)"

This reverts commit bb8b0d415e.
This commit is contained in:
phot0n 2023-01-23 12:48:04 +05:30
parent af093dd598
commit 99fbe969e8
3 changed files with 14 additions and 46 deletions

View file

@ -1,7 +1,6 @@
# Copyright (c) 2022, Frappe Technologies and contributors
# For license information, please see license.txt
from typing import Callable
from urllib.parse import quote
from rq import get_current_job
@ -36,11 +35,10 @@ class SubmissionQueue(Document):
table = frappe.qb.DocType("Submission Queue")
frappe.db.delete(table, filters=(table.modified < (Now() - Interval(days=days))))
def insert(self, to_be_queued_doc: Document, action: str, **job_kwargs):
def insert(self, to_be_queued_doc: Document, action: str):
self.status = "Queued"
self.to_be_queued_doc = to_be_queued_doc
self.action_for_queuing = action
self.kwargs = job_kwargs
super().insert(ignore_permissions=True)
def lock(self):
@ -59,15 +57,12 @@ class SubmissionQueue(Document):
frappe.db.commit()
def after_insert(self):
self.kwargs.pop("enqueue_after_commit", None)
self.queue_action(
"background_submission",
to_be_queued_doc=self.queued_doc,
action_for_queuing=self.action_for_queuing,
timeout=self.kwargs.pop("timeout", 600),
timeout=600,
enqueue_after_commit=True,
**self.kwargs,
)
def background_submission(self, to_be_queued_doc: Document, action_for_queuing: str):
@ -104,7 +99,7 @@ class SubmissionQueue(Document):
else:
doctype = self.ref_doctype
docname = self.ref_docname
message = _("Action {0} completed on {1} {2}. View it {3}")
message = _("Action {0} completed successfully on {1} {2}. View it {3}")
message_replacements = (
frappe.bold(action),
@ -150,11 +145,11 @@ class SubmissionQueue(Document):
frappe.msgprint(_("Document Unlocked"))
def queue_submission(doc: Document, action: str, alert: bool = True, **job_kwargs):
def queue_submission(doc: Document, action: str, alert: bool = True):
queue = frappe.new_doc("Submission Queue")
queue.ref_doctype = doc.doctype
queue.ref_docname = doc.name
queue.insert(doc, action, **job_kwargs)
queue.insert(doc, action)
if alert:
frappe.msgprint(

View file

@ -136,15 +136,7 @@ def apply_workflow(doc, action):
doc.save()
elif doc.docstatus.is_draft() and new_docstatus == DocStatus.submitted():
if doc.meta.queue_in_background and not is_scheduler_inactive():
queue_submission(
doc,
action="submit",
on_success=lambda job, connection, result, *args, **kwargs: (
doc.add_comment("Workflow", _(next_state.state)),
frappe.db.commit(),
),
)
return
queue_submission(doc, action="submit")
else:
doc.submit()
elif doc.docstatus.is_submitted() and new_docstatus == DocStatus.submitted():
@ -265,11 +257,8 @@ def bulk_workflow_approval(docnames, doctype, action):
message_dict = {}
try:
show_progress(docnames, _("Applying: {0}").format(action), idx, docname)
d = apply_workflow(frappe.get_doc(doctype, docname), action)
apply_workflow(frappe.get_doc(doctype, docname), action)
frappe.db.commit()
if not d:
# for background submission
continue
except Exception as e:
if not frappe.message_log:
# Exception is raised manually and not from msgprint or throw

View file

@ -140,36 +140,20 @@ def confirm_action(doctype, docname, user, action):
doc = frappe.get_doc(doctype, docname)
newdoc = apply_workflow(doc, action)
frappe.db.commit()
return_response_page(doc, not newdoc)
return_success_page(newdoc)
# reset session user
if logged_in_user == "Guest":
frappe.set_user(logged_in_user)
def return_response_page(doc, is_background=False):
if is_background:
title = _("Pending")
message = (
_("{0}: {1} is added in queue to set to next state").format(
doc.get("doctype"), frappe.bold(doc.get("name"))
),
)
color = "orange"
else:
title = _("Success")
message = (
_("{0}: {1} is set to state {2}").format(
doc.get("doctype"), frappe.bold(doc.get("name")), frappe.bold(get_doc_workflow_state(doc))
),
)
color = "green"
def return_success_page(doc):
frappe.respond_as_web_page(
title,
message,
indicator_color=color,
_("Success"),
_("{0}: {1} is set to state {2}").format(
doc.get("doctype"), frappe.bold(doc.get("name")), frappe.bold(get_doc_workflow_state(doc))
),
indicator_color="green",
)