diff --git a/frappe/automation/doctype/auto_repeat/auto_repeat.py b/frappe/automation/doctype/auto_repeat/auto_repeat.py index 60062b04d1..95aa6e8c24 100644 --- a/frappe/automation/doctype/auto_repeat/auto_repeat.py +++ b/frappe/automation/doctype/auto_repeat/auto_repeat.py @@ -483,9 +483,7 @@ def make_auto_repeat_entry(): if not jobs or enqueued_method not in jobs[frappe.local.site]: date = getdate(today()) data = get_auto_repeat_entries(date) - frappe.enqueue(enqueued_method, data=data) - # Set auto-repeat to complete when all auto-repeats are added to the queue - set_auto_repeat_as_completed(data) + frappe.enqueue(enqueued_method, data=data, queue="long") def create_repeated_entries(data): @@ -501,6 +499,10 @@ def create_repeated_entries(data): if schedule_date and not doc.disabled: frappe.db.set_value("Auto Repeat", doc.name, "next_schedule_date", schedule_date) + if doc.is_completed(): + doc.status = "Completed" + doc.save() + def get_auto_repeat_entries(date=None): if not date: @@ -517,14 +519,6 @@ def get_auto_repeat_entries(date=None): return query.run(as_dict=1) -def set_auto_repeat_as_completed(auto_repeat): - for entry in auto_repeat: - doc = frappe.get_doc("Auto Repeat", entry.name) - if doc.is_completed(): - doc.status = "Completed" - doc.save() - - @frappe.whitelist() def make_auto_repeat(doctype, docname, frequency="Daily", start_date=None, end_date=None): if not start_date: