Made some improvements in the admin panel
parent
8475b84df7
commit
cf5ef4557a
|
@ -23,25 +23,44 @@ class AttachmentInline(generic.GenericTabularInline):
|
|||
|
||||
class MembershipAdmin(admin.ModelAdmin):
|
||||
list_display = ['project', 'role', 'user']
|
||||
list_filter = ['project', 'role']
|
||||
list_display_links = list_display
|
||||
list_filter = ["project"]
|
||||
list_filter = ['project', 'role']
|
||||
|
||||
|
||||
class MembershipInline(admin.TabularInline):
|
||||
model = models.Membership
|
||||
fields = ['user', 'project', 'role']
|
||||
readonly_fields = ["project", "role"]
|
||||
extra = 0
|
||||
max_num = 0
|
||||
can_delete = False
|
||||
|
||||
|
||||
class ProjectAdmin(reversion.VersionAdmin):
|
||||
list_display = ["name", "owner", "created_date", "total_milestones", "total_story_points"]
|
||||
list_display = ["name", "owner", "created_date", "total_milestones",
|
||||
"total_story_points"]
|
||||
list_display_links = list_display
|
||||
inlines = [MembershipInline, MilestoneInline]
|
||||
|
||||
def get_object(self, *args, **kwargs):
|
||||
self.obj = super().get_object(*args, **kwargs)
|
||||
return self.obj
|
||||
|
||||
def formfield_for_foreignkey(self, db_field, request, **kwargs):
|
||||
if (db_field.name in ["default_points", "default_us_status", "default_task_status",
|
||||
"default_priority", "default_severity",
|
||||
"default_issue_status", "default_issue_type",
|
||||
"default_question_status"]
|
||||
and getattr(self, 'obj', None)):
|
||||
kwargs["queryset"] = db_field.related.parent_model.objects.filter(
|
||||
project=self.obj.project)
|
||||
else:
|
||||
kwargs["queryset"] = db_field.related.parent_model.objects.none()
|
||||
return super().formfield_for_foreignkey(db_field, request, **kwargs)
|
||||
|
||||
def formfield_for_manytomany(self, db_field, request, **kwargs):
|
||||
if (db_field.name in ["watchers"]
|
||||
and getattr(self, 'obj', None)):
|
||||
kwargs["queryset"] = db_field.related.parent_model.objects.filter(
|
||||
memberships__project=self.obj.project)
|
||||
return super().formfield_for_manytomany(db_field, request, **kwargs)
|
||||
|
||||
|
||||
# User Stories common admins
|
||||
|
||||
|
|
|
@ -10,7 +10,31 @@ import reversion
|
|||
|
||||
|
||||
class IssueAdmin(reversion.VersionAdmin):
|
||||
list_display = ["subject", "type"]
|
||||
list_display = ["project", "milestone", "ref", "subject",]
|
||||
list_display_links = ["ref", "subject",]
|
||||
inlines = [AttachmentInline]
|
||||
|
||||
def get_object(self, *args, **kwargs):
|
||||
self.obj = super().get_object(*args, **kwargs)
|
||||
return self.obj
|
||||
|
||||
def formfield_for_foreignkey(self, db_field, request, **kwargs):
|
||||
if (db_field.name in ["status", "priority", "severity", "type", "milestone"]
|
||||
and getattr(self, 'obj', None)):
|
||||
kwargs["queryset"] = db_field.related.parent_model.objects.filter(
|
||||
project=self.obj.project)
|
||||
elif (db_field.name in ["owner", "assigned_to"]
|
||||
and getattr(self, 'obj', None)):
|
||||
kwargs["queryset"] = db_field.related.parent_model.objects.filter(
|
||||
memberships__project=self.obj.project)
|
||||
return super().formfield_for_foreignkey(db_field, request, **kwargs)
|
||||
|
||||
def formfield_for_manytomany(self, db_field, request, **kwargs):
|
||||
if (db_field.name in ["watchers"]
|
||||
and getattr(self, 'obj', None)):
|
||||
kwargs["queryset"] = db_field.related.parent_model.objects.filter(
|
||||
memberships__project=self.obj.project)
|
||||
return super().formfield_for_manytomany(db_field, request, **kwargs)
|
||||
|
||||
|
||||
admin.site.register(models.Issue, IssueAdmin)
|
||||
|
|
|
@ -8,15 +8,7 @@ from . import models
|
|||
|
||||
class MilestoneInline(admin.TabularInline):
|
||||
model = models.Milestone
|
||||
|
||||
fields = ['name', 'owner', 'estimated_start', 'estimated_finish', 'closed',
|
||||
'disponibility', 'order']
|
||||
readonly_fields = ["owner"]
|
||||
|
||||
sortable_field_name = 'order'
|
||||
extra = 0
|
||||
max_num = 0
|
||||
can_delete = False
|
||||
|
||||
|
||||
class MilestoneAdmin(reversion.VersionAdmin):
|
||||
|
|
|
@ -10,7 +10,30 @@ import reversion
|
|||
|
||||
|
||||
class QuestionAdmin(reversion.VersionAdmin):
|
||||
list_display = ["subject", "project", "owner"]
|
||||
list_display = ["project", "milestone", "ref", "subject",]
|
||||
list_display_links = ["ref", "subject",]
|
||||
inlines = [AttachmentInline]
|
||||
|
||||
def get_object(self, *args, **kwargs):
|
||||
self.obj = super().get_object(*args, **kwargs)
|
||||
return self.obj
|
||||
|
||||
def formfield_for_foreignkey(self, db_field, request, **kwargs):
|
||||
if (db_field.name in ["status", "milestone"]
|
||||
and getattr(self, 'obj', None)):
|
||||
kwargs["queryset"] = db_field.related.parent_model.objects.filter(
|
||||
project=self.obj.project)
|
||||
elif (db_field.name in ["owner", "assigned_to"]
|
||||
and getattr(self, 'obj', None)):
|
||||
kwargs["queryset"] = db_field.related.parent_model.objects.filter(
|
||||
memberships__project=self.obj.project)
|
||||
return super().formfield_for_foreignkey(db_field, request, **kwargs)
|
||||
|
||||
def formfield_for_manytomany(self, db_field, request, **kwargs):
|
||||
if (db_field.name in ["watchers"]
|
||||
and getattr(self, 'obj', None)):
|
||||
kwargs["queryset"] = db_field.related.parent_model.objects.filter(
|
||||
memberships__project=self.obj.project)
|
||||
return super().formfield_for_manytomany(db_field, request, **kwargs)
|
||||
|
||||
admin.site.register(models.Question, QuestionAdmin)
|
||||
|
|
|
@ -7,15 +7,32 @@ from greenmine.projects.admin import AttachmentInline
|
|||
from . import models
|
||||
|
||||
|
||||
|
||||
class TaskAdmin(reversion.VersionAdmin):
|
||||
list_display = ["subject", "ref", "user_story", "milestone", "project", "user_story_id"]
|
||||
list_display = ["project", "milestone", "user_story", "ref", "subject",]
|
||||
list_display_links = ["ref", "subject",]
|
||||
list_filter = ["project"]
|
||||
list_display_links = list_display
|
||||
readonly_fields = ["milestone", "user_story", "status"]
|
||||
inlines = [AttachmentInline]
|
||||
|
||||
def user_story_id(self, instance):
|
||||
return instance.user_story.id
|
||||
def get_object(self, *args, **kwargs):
|
||||
self.obj = super().get_object(*args, **kwargs)
|
||||
return self.obj
|
||||
|
||||
def formfield_for_foreignkey(self, db_field, request, **kwargs):
|
||||
if (db_field.name in ["status", "milestone", "user_story"]
|
||||
and getattr(self, 'obj', None)):
|
||||
kwargs["queryset"] = db_field.related.parent_model.objects.filter(
|
||||
project=self.obj.project)
|
||||
elif (db_field.name in ["owner", "assigned_to"]
|
||||
and getattr(self, 'obj', None)):
|
||||
kwargs["queryset"] = db_field.related.parent_model.objects.filter(
|
||||
memberships__project=self.obj.project)
|
||||
return super().formfield_for_foreignkey(db_field, request, **kwargs)
|
||||
|
||||
def formfield_for_manytomany(self, db_field, request, **kwargs):
|
||||
if (db_field.name in ["watchers"]
|
||||
and getattr(self, 'obj', None)):
|
||||
kwargs["queryset"] = db_field.related.parent_model.objects.filter(
|
||||
memberships__project=self.obj.project)
|
||||
return super().formfield_for_manytomany(db_field, request, **kwargs)
|
||||
|
||||
admin.site.register(models.Task, TaskAdmin)
|
||||
|
|
|
@ -26,12 +26,33 @@ class RolePointsAdmin(admin.ModelAdmin):
|
|||
|
||||
|
||||
class UserStoryAdmin(reversion.VersionAdmin):
|
||||
list_display = ["id", "ref", "milestone", "project", "owner", 'status', 'is_closed']
|
||||
list_display = ["project", "milestone", "ref", "subject",]
|
||||
list_display_links = ["ref", "subject",]
|
||||
list_filter = ["project"]
|
||||
list_display_links = list_display
|
||||
readonly_fields = ["status", "milestone"]
|
||||
inlines = [RolePointsInline, AttachmentInline]
|
||||
|
||||
def get_object(self, *args, **kwargs):
|
||||
self.obj = super().get_object(*args, **kwargs)
|
||||
return self.obj
|
||||
|
||||
def formfield_for_foreignkey(self, db_field, request, **kwargs):
|
||||
if (db_field.name in ["status", "milestone"]
|
||||
and getattr(self, 'obj', None)):
|
||||
kwargs["queryset"] = db_field.related.parent_model.objects.filter(
|
||||
project=self.obj.project)
|
||||
elif (db_field.name in ["owner", "assigned_to"]
|
||||
and getattr(self, 'obj', None)):
|
||||
kwargs["queryset"] = db_field.related.parent_model.objects.filter(
|
||||
memberships__project=self.obj.project)
|
||||
return super().formfield_for_foreignkey(db_field, request, **kwargs)
|
||||
|
||||
def formfield_for_manytomany(self, db_field, request, **kwargs):
|
||||
if (db_field.name in ["watchers"]
|
||||
and getattr(self, 'obj', None)):
|
||||
kwargs["queryset"] = db_field.related.parent_model.objects.filter(
|
||||
memberships__project=self.obj.project)
|
||||
return super().formfield_for_manytomany(db_field, request, **kwargs)
|
||||
|
||||
|
||||
admin.site.register(models.UserStory, UserStoryAdmin)
|
||||
admin.site.register(models.RolePoints, RolePointsAdmin)
|
||||
|
|
Loading…
Reference in New Issue