Skip to content

Commit

Permalink
improvement(feature/planner): Enable for all releases
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
k0machi committed Jan 8, 2025
1 parent 4fd1572 commit 800f5a9
Show file tree
Hide file tree
Showing 4 changed files with 7 additions and 12 deletions.
2 changes: 0 additions & 2 deletions argus/backend/plugins/core.py
Original file line number Diff line number Diff line change
Expand Up @@ -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))

Expand Down
9 changes: 4 additions & 5 deletions argus/backend/service/argus_service.py
Original file line number Diff line number Diff line change
Expand Up @@ -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]
Expand Down Expand Up @@ -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()

Expand Down
2 changes: 1 addition & 1 deletion argus/backend/service/stats.py
Original file line number Diff line number Diff line change
Expand Up @@ -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(
Expand Down
6 changes: 2 additions & 4 deletions templates/releases.html.j2
Original file line number Diff line number Diff line change
Expand Up @@ -24,14 +24,12 @@ Releases
<div class="d-flex justify-content-center flex-column">
<div class="btn-group">
<a href="{{ url_for('main.release_dashboard', release_name=release.name) }}" class="btn btn-outline-success"><i class="fas fa-tachometer-alt"></i> Dashboard</a>
{% if release.perpetual %}
<a href="{{ url_for('main.duty_planner', name=release.name) }}" class="btn btn-outline-success"><i class="fas fa-calendar-alt"></i> Duty Planning</a>
{% else %}
<a href="{{ url_for('main.release_planner', name=release.name) }}" class="btn btn-outline-success"><i class="fas fa-calendar-alt"></i> Release Planner</a>
{% endif %}
</div>
{% if not release.perpetual %}
<a class="link-secondary" href="{{ url_for('main.release_scheduler', name=release.name) }}">Legacy Scheduler</a>
{% else %}
<a href="{{ url_for('main.duty_planner', name=release.name) }}" class="link-secondary">Legacy Duty Planning</a>
{% endif %}
</div>
</div>
Expand Down

0 comments on commit 800f5a9

Please sign in to comment.