diff --git a/src/lando/main/admin.py b/src/lando/main/admin.py index 2a57dd26e..1d3081c2a 100644 --- a/src/lando/main/admin.py +++ b/src/lando/main/admin.py @@ -6,6 +6,7 @@ from django.forms import CheckboxSelectMultiple, MultipleChoiceField from django.forms import Field as FormField from django.http import HttpRequest +from django.urls import reverse from django.utils.translation import gettext_lazy from lando.main.models import ( @@ -112,9 +113,14 @@ class JobAdmin(admin.ModelAdmin): ) search_fields = ("requester_email", "landed_commit_id") + def view_on_site(self, instance: LandingJob) -> str: + url = reverse("jobs-page", kwargs={"job_id": instance.id}) + return url + class LandingJobAdmin(JobAdmin): model = LandingJob + list_display = ( "id", "revisions", @@ -251,6 +257,12 @@ class RevisionAdmin(admin.ModelAdmin): ) search_fields = ("revision_id",) + def view_on_site(self, instance: Revision) -> str | None: + if not instance.revision_id: + return None + url = reverse("revisions-page", kwargs={"revision_id": instance.revision_id}) + return url + def revision(self, instance: Revision) -> str: """Return a Phabricator-like revision identifier.""" idstr = f"{instance.id}"