Improve the project admin
parent
8791d5d103
commit
2456c0454d
|
@ -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:
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Reference in New Issue