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: diff --git a/frappe/hooks.py b/frappe/hooks.py index e1a43cbf58..ea69f3066f 100644 --- a/frappe/hooks.py +++ b/frappe/hooks.py @@ -250,13 +250,13 @@ scheduler_events = { "frappe.desk.form.document_follow.send_daily_updates", "frappe.social.doctype.energy_point_settings.energy_point_settings.allocate_review_points", "frappe.integrations.doctype.google_contacts.google_contacts.sync", - "frappe.automation.doctype.auto_repeat.auto_repeat.make_auto_repeat_entry", ], "daily_long": [ "frappe.integrations.doctype.dropbox_settings.dropbox_settings.take_backups_daily", "frappe.integrations.doctype.s3_backup_settings.s3_backup_settings.take_backups_daily", "frappe.email.doctype.auto_email_report.auto_email_report.send_daily", "frappe.integrations.doctype.google_drive.google_drive.daily_backup", + "frappe.automation.doctype.auto_repeat.auto_repeat.make_auto_repeat_entry", ], "weekly_long": [ "frappe.integrations.doctype.dropbox_settings.dropbox_settings.take_backups_weekly",