MT#55988 gerrit: add clickeable gerrit_url to admin

Change-Id: I1be0f4079a558e85d71d7ffac27d91ff7730b08e
master
Victor Seva 2 years ago
parent 2ebe8a7f2d
commit 1af9af247b

@ -74,3 +74,7 @@ def get_change_info(id: str):
def get_datetime(val: str) -> datetime.datetime:
return datetime.datetime.strptime(val, gerrit_settings.DATETIME_FMT)
def get_gerrit_change_url(id: str, project: str) -> str:
return gerrit_settings.URL.format(f"c/{project}/+/{id}")

@ -13,6 +13,7 @@
# You should have received a copy of the GNU General Public License along
# with this program. If not, see <http://www.gnu.org/licenses/>.
from django.contrib import admin
from django.utils.html import format_html
from django_admin_filters import DateRange
from import_export import resources
from import_export.admin import ImportExportModelAdmin
@ -60,6 +61,10 @@ class GRIDateRange(DateRange):
class GerritRepoInfoAdmin(ImportExportModelAdmin):
resource_class = GerritRepoInfoResource
list_filter = (("modified", GRIDateRange), "projectname", "param_ppa")
readonly_fields = ("gerrit_url",)
def gerrit_url(self, obj):
return format_html("<a href='{url}'>{url}</a>", url=obj.gerrit_url)
class WorkfrontNoteInfoResource(resources.ModelResource):

@ -19,6 +19,7 @@ from django_extensions.db.fields import ModificationDateTimeField
from ..tasks import jenkins_remove_project
from ..utils import jenkins_remove_ppa
from gerrit.utils import get_gerrit_change_url
logger = structlog.get_logger(__name__)
@ -64,6 +65,10 @@ class GerritRepoInfo(models.Model):
class Meta:
unique_together = ["param_ppa", "gerrit_change"]
@property
def gerrit_url(self):
return get_gerrit_change_url(self.gerrit_change, self.projectname)
def __str__(self):
return "{}:{}:{}".format(
self.param_ppa, self.gerrit_change, self.projectname

Loading…
Cancel
Save