Improve the project admin

remotes/origin/issue/4795/notification_even_they_are_disabled
Jesús Espino 2016-05-03 23:03:24 +02:00 committed by David Barragán Merino
parent 8791d5d103
commit 2456c0454d
2 changed files with 54 additions and 4 deletions

View File

@ -22,13 +22,13 @@ from django.utils.html import format_html
from django.utils.translation import ugettext_lazy as _
from taiga.permissions import permissions
from taiga.projects.milestones.admin import MilestoneInline
from taiga.projects.notifications.admin import NotifyPolicyInline
from taiga.projects.likes.admin import LikeInline
from taiga.users.admin import RoleInline
from . import models
class MembershipAdmin(admin.ModelAdmin):
list_display = ['project', 'role', 'user']
list_display_links = list_display
@ -49,6 +49,7 @@ class MembershipAdmin(admin.ModelAdmin):
return super().formfield_for_foreignkey(db_field, request, **kwargs)
class MembershipInline(admin.TabularInline):
model = models.Membership
extra = 0
@ -77,10 +78,58 @@ class ProjectAdmin(admin.ModelAdmin):
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]
inlines = [RoleInline,
MembershipInline,
NotifyPolicyInline,
LikeInline]
# NOTE: TextArrayField with a choices is broken in the admin panel.
exclude = ("anon_permissions", "public_permissions")
fieldsets = (
(None, {
"fields": ("name",
"slug",
"is_featured",
"description",
"tags",
"logo",
("created_date", "modified_date"))
}),
(_("Privacity"), {
"fields": (("owner", "blocked_code"),
"is_private",
("anon_permissions", "public_permissions"),
"transfer_token")
}),
(_("Extra info"), {
"classes": ("collapse",),
"fields": ("creation_template",
("is_looking_for_people", "looking_for_people_note"),
"tags_colors"),
}),
(_("Modules"), {
"classes": ("collapse",),
"fields": (("is_backlog_activated", "total_milestones", "total_story_points"),
"is_kanban_activated",
"is_issues_activated",
"is_wiki_activated",
("videoconferences", "videoconferences_extra_data")),
}),
(_("Default values"), {
"classes": ("collapse",),
"fields": (("default_points", "default_us_status"),
"default_task_status",
("default_issue_status", "default_priority", "default_severity", "default_issue_type")),
}),
(_("Activity"), {
"classes": ("collapse",),
"fields": (("total_activity", "total_activity_last_week",
"total_activity_last_month", "total_activity_last_year"),),
}),
(_("Fans"), {
"classes": ("collapse",),
"fields": (("total_fans", "total_fans_last_week",
"total_fans_last_month", "total_fans_last_year"),),
}),
)
def owner_url(self, obj):
if obj.owner:

View File

@ -27,6 +27,7 @@ class WatchedInline(GenericTabularInline):
extra = 0
raw_id_fields = ["project", "user"]
class NotifyPolicyInline(TabularInline):
model = models.NotifyPolicy
extra = 0