From 800f5a92529d952cf6623ffa1dc42a63818cf641 Mon Sep 17 00:00:00 2001 From: Alexey Kartashov Date: Thu, 19 Dec 2024 13:09:25 +0100 Subject: [PATCH] improvement(feature/planner): Enable for all releases This commit enables new release planner for all releases within argus and deprecates previously available timed "Duty Planning" feature. It removes most checks for 'perpetual' release flag when retrieving assignes and allows plans to be read for those releases as well, as well as enabling the button to open the planner for such releases. --- argus/backend/plugins/core.py | 2 -- argus/backend/service/argus_service.py | 9 ++++----- argus/backend/service/stats.py | 2 +- templates/releases.html.j2 | 6 ++---- 4 files changed, 7 insertions(+), 12 deletions(-) diff --git a/argus/backend/plugins/core.py b/argus/backend/plugins/core.py index 97543d26..546740fc 100644 --- a/argus/backend/plugins/core.py +++ b/argus/backend/plugins/core.py @@ -69,8 +69,6 @@ def assign_categories(self): def get_assignment(self, version: str | None = None) -> UUID | None: associated_test: ArgusTest = ArgusTest.get(build_system_id=self.build_id) associated_release: ArgusRelease = ArgusRelease.get(id=associated_test.release_id) - if associated_release.perpetual: - return self._legacy_get_scheduled_assignee(associated_test=associated_test, associated_release=associated_release) plans: list[ArgusReleasePlan] = list(ArgusReleasePlan.filter(release_id=associated_release.id)) diff --git a/argus/backend/service/argus_service.py b/argus/backend/service/argus_service.py index 9c860d98..05d2e120 100644 --- a/argus/backend/service/argus_service.py +++ b/argus/backend/service/argus_service.py @@ -581,8 +581,8 @@ def _batch_get_schedules_from_ids(self, release_id: UUID, schedule_ids: list[UUI def get_groups_assignees(self, release_id: UUID | str, version: str = None, plan_id: UUID = None): release_id = UUID(release_id) if isinstance(release_id, str) else release_id release = ArgusRelease.get(id=release_id) - if not release.perpetual: - return PlanningService().get_assignments_for_groups(release_id, version, plan_id) + if assignments := PlanningService().get_assignments_for_groups(release_id, version, plan_id): + return assignments groups = ArgusGroup.filter(release_id=release_id).all() group_ids = [group.id for group in groups if group.enabled] @@ -621,9 +621,8 @@ def get_tests_assignees(self, group_id: UUID | str, version: str = None, plan_id group = ArgusGroup.get(id=group_id) release = ArgusRelease.get(id=group.release_id) - if not release.perpetual: - if assignments := PlanningService().get_assignments_for_tests(group_id, version, plan_id): - return assignments + if assignments := PlanningService().get_assignments_for_tests(group_id, version, plan_id): + return assignments tests = ArgusTest.filter(group_id=group_id).all() diff --git a/argus/backend/service/stats.py b/argus/backend/service/stats.py index 8cc6ec20..ab328284 100644 --- a/argus/backend/service/stats.py +++ b/argus/backend/service/stats.py @@ -291,7 +291,7 @@ def collect(self, rows: list[TestRunStatRow], limited=False, force=False, dict: if not self.release.enabled and not force: return - if not self.release.perpetual and not limited: + if not limited: plans: list[ArgusReleasePlan] = list(ArgusReleasePlan.filter(release_id=self.release.id).all()) self.plans = plans if not filter else [plan for plan in plans if version_filter == plan.target_version] self.test_schedules = reduce( diff --git a/templates/releases.html.j2 b/templates/releases.html.j2 index f3dccfc5..b1d71d25 100644 --- a/templates/releases.html.j2 +++ b/templates/releases.html.j2 @@ -24,14 +24,12 @@ Releases
Dashboard - {% if release.perpetual %} - Duty Planning - {% else %} Release Planner - {% endif %}
{% if not release.perpetual %} Legacy Scheduler + {% else %} + Legacy Duty Planning {% endif %}