From 312ed5295b0641b995dfab7552446ca398d7b14b Mon Sep 17 00:00:00 2001 From: amcmanu3 Date: Wed, 18 Oct 2023 16:03:43 -0400 Subject: [PATCH 1/5] Fix quick disable button on schedules list --- app/classes/shared/tasks.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/app/classes/shared/tasks.py b/app/classes/shared/tasks.py index 3fe58684..b2198b72 100644 --- a/app/classes/shared/tasks.py +++ b/app/classes/shared/tasks.py @@ -8,6 +8,7 @@ import json from zoneinfo import ZoneInfoNotFoundError from tzlocal import get_localzone from apscheduler.events import EVENT_JOB_EXECUTED +from apscheduler.jobstores.base import JobLookupError from apscheduler.schedulers.background import BackgroundScheduler from apscheduler.triggers.cron import CronTrigger @@ -453,7 +454,7 @@ class TasksManager: # created task a child of itself. if ( str(job_data.get("parent")) == str(sch_id) - or job_data["interval_type"] != "reaction" + or job_data.get("interval_type") != "reaction" ): job_data["parent"] = None HelpersManagement.update_scheduled_task(sch_id, job_data) @@ -471,13 +472,19 @@ class TasksManager: job_data = HelpersManagement.get_scheduled_task(sch_id) job_data["server_id"] = job_data["server_id"]["server_id"] else: - self.scheduler.remove_job(str(sch_id)) + try: + self.scheduler.remove_job(str(sch_id)) + except JobLookupError: + logger.info( + "No job found in update job. " + "Assuming it was previously disabled. Starting new job." + ) return try: if job_data["interval"] != "reaction": self.scheduler.remove_job(str(sch_id)) - except: + except JobLookupError: logger.info( "No job found in update job. " "Assuming it was previously disabled. Starting new job." From f06d297ecd020deec443cac12814380bec690fe3 Mon Sep 17 00:00:00 2001 From: amcmanu3 Date: Wed, 18 Oct 2023 16:24:42 -0400 Subject: [PATCH 2/5] Fix task quick edit --- app/classes/shared/tasks.py | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/app/classes/shared/tasks.py b/app/classes/shared/tasks.py index b2198b72..0725107f 100644 --- a/app/classes/shared/tasks.py +++ b/app/classes/shared/tasks.py @@ -452,10 +452,8 @@ class TasksManager: def update_job(self, sch_id, job_data): # Checks to make sure some doofus didn't actually make the newly # created task a child of itself. - if ( - str(job_data.get("parent")) == str(sch_id) - or job_data.get("interval_type") != "reaction" - ): + interval_type = job_data.get("interval_type") + if str(job_data.get("parent")) == str(sch_id) or interval_type != "reaction": job_data["parent"] = None HelpersManagement.update_scheduled_task(sch_id, job_data) @@ -472,19 +470,15 @@ class TasksManager: job_data = HelpersManagement.get_scheduled_task(sch_id) job_data["server_id"] = job_data["server_id"]["server_id"] else: - try: + job = HelpersManagement.get_scheduled_task(sch_id) + if job["interval_type"] != "reaction": self.scheduler.remove_job(str(sch_id)) - except JobLookupError: - logger.info( - "No job found in update job. " - "Assuming it was previously disabled. Starting new job." - ) return try: if job_data["interval"] != "reaction": self.scheduler.remove_job(str(sch_id)) - except JobLookupError: + except: logger.info( "No job found in update job. " "Assuming it was previously disabled. Starting new job." From 4f507f0cda23469549fbb5260cc8c6d79f6b1f4d Mon Sep 17 00:00:00 2001 From: amcmanu3 Date: Wed, 18 Oct 2023 16:25:28 -0400 Subject: [PATCH 3/5] Use more definied error --- app/classes/shared/tasks.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/classes/shared/tasks.py b/app/classes/shared/tasks.py index 0725107f..edcbf964 100644 --- a/app/classes/shared/tasks.py +++ b/app/classes/shared/tasks.py @@ -478,7 +478,7 @@ class TasksManager: try: if job_data["interval"] != "reaction": self.scheduler.remove_job(str(sch_id)) - except: + except JobLookupError: logger.info( "No job found in update job. " "Assuming it was previously disabled. Starting new job." From 761936a308a423277c595f854a2ea655ad72b7a9 Mon Sep 17 00:00:00 2001 From: amcmanu3 Date: Wed, 18 Oct 2023 16:40:38 -0400 Subject: [PATCH 4/5] Fix creation bug --- app/classes/shared/tasks.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/app/classes/shared/tasks.py b/app/classes/shared/tasks.py index edcbf964..0402c587 100644 --- a/app/classes/shared/tasks.py +++ b/app/classes/shared/tasks.py @@ -325,7 +325,10 @@ class TasksManager: # Checks to make sure some doofus didn't actually make the newly # created task a child of itself. - if str(job_data["parent"]) == str(sch_id): + if ( + str(job_data["parent"]) == str(sch_id) + or job_data["interval_type"] != "reaction" + ): HelpersManagement.update_scheduled_task(sch_id, {"parent": None}) # Check to see if it's enabled and is not a chain reaction. From 79015ac0f6c1c1f8ecff5e14835316f83e987b8b Mon Sep 17 00:00:00 2001 From: Zedifus Date: Wed, 18 Oct 2023 23:18:27 +0100 Subject: [PATCH 5/5] Update changelog !649 --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index a567dfb5..201212a7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,6 +20,7 @@ - Move `imports` to `import/upload` in bind mount to better serve users on unraid with limited vdisk storage ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/642)) - Fix bug where everytime a page was loaded user settings would be reset #286 ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/643)) - Fix tooltip info icon on server config page ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/647)) +- Fix quick disable toggle on schedules list ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/649)) ### Refactor - Consolidate remaining frontend functions into API V2, and remove ajax internal API ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/585)) - Replace bleach with nh3 ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/628))