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 django.utils.translation import ugettext_lazy as _
from taiga.permissions import permissions from taiga.permissions import permissions
from taiga.projects.milestones.admin import MilestoneInline
from taiga.projects.notifications.admin import NotifyPolicyInline from taiga.projects.notifications.admin import NotifyPolicyInline
from taiga.projects.likes.admin import LikeInline from taiga.projects.likes.admin import LikeInline
from taiga.users.admin import RoleInline from taiga.users.admin import RoleInline
from . import models from . import models
class MembershipAdmin(admin.ModelAdmin): class MembershipAdmin(admin.ModelAdmin):
list_display = ['project', 'role', 'user'] list_display = ['project', 'role', 'user']
list_display_links = list_display list_display_links = list_display
@ -49,6 +49,7 @@ class MembershipAdmin(admin.ModelAdmin):
return super().formfield_for_foreignkey(db_field, request, **kwargs) return super().formfield_for_foreignkey(db_field, request, **kwargs)
class MembershipInline(admin.TabularInline): class MembershipInline(admin.TabularInline):
model = models.Membership model = models.Membership
extra = 0 extra = 0
@ -77,10 +78,58 @@ class ProjectAdmin(admin.ModelAdmin):
list_filter = ("is_private", "blocked_code", "is_featured") list_filter = ("is_private", "blocked_code", "is_featured")
list_editable = ["is_featured", "blocked_code"] list_editable = ["is_featured", "blocked_code"]
search_fields = ["id", "name", "slug", "owner__username", "owner__email", "owner__full_name"] 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. fieldsets = (
exclude = ("anon_permissions", "public_permissions") (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): def owner_url(self, obj):
if obj.owner: if obj.owner:

View File

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