From 66d5c372b275142cb8ca214889c83100c59a9d49 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Barrag=C3=A1n=20Merino?= Date: Sat, 30 Apr 2016 16:23:58 +0200 Subject: [PATCH] Improve projects admin panel --- taiga/projects/admin.py | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/taiga/projects/admin.py b/taiga/projects/admin.py index 18bca9c5..44a2b412 100644 --- a/taiga/projects/admin.py +++ b/taiga/projects/admin.py @@ -16,6 +16,9 @@ # along with this program. If not, see . from django.contrib import admin +from django.core.urlresolvers import reverse +from django.utils.html import format_html +from django.utils.translation import ugettext_lazy as _ from taiga.projects.milestones.admin import MilestoneInline from taiga.projects.notifications.admin import NotifyPolicyInline @@ -67,18 +70,25 @@ class MembershipInline(admin.TabularInline): class ProjectAdmin(admin.ModelAdmin): list_display = ["id", "name", "slug", "is_private", - "is_featured", "is_looking_for_people", - "owner", "created_date"] - + "owner_url", "blocked_code", "is_featured"] list_display_links = ["id", "name", "slug"] - list_filter = ("is_private", "is_featured", "is_looking_for_people") - list_editable = ["is_featured"] + list_filter = ("is_private", "blocked_code", "is_featured") + list_editable = ["is_featured", "blocked_code"] search_fields = ["id", "name", "slug", "owner__username", "owner__email", "owner__full_name"] inlines = [RoleInline, MembershipInline, MilestoneInline, NotifyPolicyInline, LikeInline] # NOTE: TextArrayField with a choices is broken in the admin panel. exclude = ("anon_permissions", "public_permissions") + def owner_url(self, obj): + if obj.owner: + url = reverse('admin:{0}_{1}_change'.format(obj.owner._meta.app_label, + obj.owner._meta.model_name), + args=(obj.owner.pk,)) + return format_html("{user}", url=url, user=obj.owner) + return "" + owner_url.short_description = _('owner') + def get_object(self, *args, **kwargs): self.obj = super().get_object(*args, **kwargs) return self.obj