Put to read only fields on admin some fields that can contain a lot of values.
parent
78ad9694cd
commit
0611f820a8
|
@ -12,8 +12,7 @@ import reversion
|
||||||
class AttachmentAdmin(reversion.VersionAdmin):
|
class AttachmentAdmin(reversion.VersionAdmin):
|
||||||
list_display = ["project", "attached_file", "owner"]
|
list_display = ["project", "attached_file", "owner"]
|
||||||
list_display_links = list_display
|
list_display_links = list_display
|
||||||
|
list_filter = ["project"]
|
||||||
admin.site.register(models.Attachment, AttachmentAdmin)
|
|
||||||
|
|
||||||
|
|
||||||
class AttachmentInline(generic.GenericTabularInline):
|
class AttachmentInline(generic.GenericTabularInline):
|
||||||
|
@ -26,38 +25,37 @@ class MembershipAdmin(admin.ModelAdmin):
|
||||||
list_display = ['project', 'role', 'user']
|
list_display = ['project', 'role', 'user']
|
||||||
list_filter = ['project', 'role']
|
list_filter = ['project', 'role']
|
||||||
list_display_links = list_display
|
list_display_links = list_display
|
||||||
|
list_filter = ["project"]
|
||||||
admin.site.register(models.Membership, MembershipAdmin)
|
|
||||||
|
|
||||||
|
|
||||||
class MembershipInline(admin.TabularInline):
|
class MembershipInline(admin.TabularInline):
|
||||||
model = models.Membership
|
model = models.Membership
|
||||||
fields = ('user', 'project', 'role')
|
fields = ['user', 'project', 'role']
|
||||||
|
readonly_fields = ["user", "project", "role"]
|
||||||
extra = 0
|
extra = 0
|
||||||
|
max_num = 0
|
||||||
|
can_delete = False
|
||||||
|
|
||||||
|
|
||||||
class ProjectAdmin(reversion.VersionAdmin):
|
class ProjectAdmin(reversion.VersionAdmin):
|
||||||
list_display = ["name", "owner"]
|
list_display = ["name", "owner", "created_date", "total_milestones", "total_story_points"]
|
||||||
list_display_links = list_display
|
list_display_links = list_display
|
||||||
|
readonly_fields = ["owner"]
|
||||||
inlines = [MembershipInline, MilestoneInline]
|
inlines = [MembershipInline, MilestoneInline]
|
||||||
|
|
||||||
admin.site.register(models.Project, ProjectAdmin)
|
|
||||||
|
|
||||||
|
|
||||||
# User Stories common admins
|
# User Stories common admins
|
||||||
|
|
||||||
class PointsAdmin(admin.ModelAdmin):
|
class PointsAdmin(admin.ModelAdmin):
|
||||||
list_display = ["name", "order", "project"]
|
list_display = ["name", "order", "project"]
|
||||||
list_display_links = list_display
|
list_display_links = list_display
|
||||||
|
list_filter = ["project"]
|
||||||
admin.site.register(models.Points, PointsAdmin)
|
|
||||||
|
|
||||||
|
|
||||||
class UserStoryStatusAdmin(admin.ModelAdmin):
|
class UserStoryStatusAdmin(admin.ModelAdmin):
|
||||||
list_display = ["name", "order", "is_closed", "project"]
|
list_display = ["name", "order", "is_closed", "project"]
|
||||||
list_display_links = list_display
|
list_display_links = list_display
|
||||||
|
list_filter = ["project"]
|
||||||
admin.site.register(models.UserStoryStatus, UserStoryStatusAdmin)
|
|
||||||
|
|
||||||
|
|
||||||
# Tasks common admins
|
# Tasks common admins
|
||||||
|
@ -66,8 +64,6 @@ class TaskStatusAdmin(admin.ModelAdmin):
|
||||||
list_display = ["name", "order", "is_closed", "project"]
|
list_display = ["name", "order", "is_closed", "project"]
|
||||||
list_display_links = list_display
|
list_display_links = list_display
|
||||||
|
|
||||||
admin.site.register(models.TaskStatus, TaskStatusAdmin)
|
|
||||||
|
|
||||||
|
|
||||||
# Issues common admins
|
# Issues common admins
|
||||||
|
|
||||||
|
@ -75,29 +71,32 @@ class SeverityAdmin(admin.ModelAdmin):
|
||||||
list_display = ["name", "order", "project"]
|
list_display = ["name", "order", "project"]
|
||||||
list_display_links = list_display
|
list_display_links = list_display
|
||||||
|
|
||||||
admin.site.register(models.Severity, SeverityAdmin)
|
|
||||||
|
|
||||||
|
|
||||||
class PriorityAdmin(admin.ModelAdmin):
|
class PriorityAdmin(admin.ModelAdmin):
|
||||||
list_display = ["name", "order", "project"]
|
list_display = ["name", "order", "project"]
|
||||||
list_display_links = list_display
|
list_display_links = list_display
|
||||||
|
|
||||||
admin.site.register(models.Priority, PriorityAdmin)
|
|
||||||
|
|
||||||
|
|
||||||
class IssueTypeAdmin(admin.ModelAdmin):
|
class IssueTypeAdmin(admin.ModelAdmin):
|
||||||
list_display = ["name", "order", "project"]
|
list_display = ["name", "order", "project"]
|
||||||
list_display_links = list_display
|
list_display_links = list_display
|
||||||
|
|
||||||
admin.site.register(models.IssueType, IssueTypeAdmin)
|
|
||||||
|
|
||||||
|
|
||||||
class IssueStatusAdmin(admin.ModelAdmin):
|
class IssueStatusAdmin(admin.ModelAdmin):
|
||||||
list_display = ["name", "order", "is_closed", "project"]
|
list_display = ["name", "order", "is_closed", "project"]
|
||||||
list_display_links = list_display
|
list_display_links = list_display
|
||||||
|
|
||||||
admin.site.register(models.IssueStatus, IssueStatusAdmin)
|
|
||||||
|
|
||||||
|
admin.site.register(models.IssueStatus, IssueStatusAdmin)
|
||||||
|
admin.site.register(models.TaskStatus, TaskStatusAdmin)
|
||||||
|
admin.site.register(models.UserStoryStatus, UserStoryStatusAdmin)
|
||||||
|
admin.site.register(models.Points, PointsAdmin)
|
||||||
|
admin.site.register(models.Project, ProjectAdmin)
|
||||||
|
admin.site.register(models.Attachment, AttachmentAdmin)
|
||||||
|
admin.site.register(models.Membership, MembershipAdmin)
|
||||||
|
admin.site.register(models.Severity, SeverityAdmin)
|
||||||
|
admin.site.register(models.Priority, PriorityAdmin)
|
||||||
|
admin.site.register(models.IssueType, IssueTypeAdmin)
|
||||||
|
|
||||||
# Questions common admins
|
# Questions common admins
|
||||||
|
|
||||||
|
|
|
@ -1,24 +1,30 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
from django.contrib import admin
|
from django.contrib import admin
|
||||||
|
import reversion
|
||||||
|
|
||||||
from . import models
|
from . import models
|
||||||
|
|
||||||
import reversion
|
|
||||||
|
|
||||||
|
|
||||||
class MilestoneInline(admin.TabularInline):
|
class MilestoneInline(admin.TabularInline):
|
||||||
model = models.Milestone
|
model = models.Milestone
|
||||||
fields = ('name', 'owner', 'estimated_start', 'estimated_finish', 'closed',
|
|
||||||
'disponibility', 'order')
|
fields = ['name', 'owner', 'estimated_start', 'estimated_finish', 'closed',
|
||||||
|
'disponibility', 'order']
|
||||||
|
readonly_fields = ["owner"]
|
||||||
|
|
||||||
sortable_field_name = 'order'
|
sortable_field_name = 'order'
|
||||||
extra = 0
|
extra = 0
|
||||||
|
max_num = 0
|
||||||
|
can_delete = False
|
||||||
|
|
||||||
|
|
||||||
class MilestoneAdmin(reversion.VersionAdmin):
|
class MilestoneAdmin(reversion.VersionAdmin):
|
||||||
list_display = ["name", "project", "owner", "closed", "estimated_start",
|
list_display = ["name", "project", "owner", "closed", "estimated_start",
|
||||||
"estimated_finish"]
|
"estimated_finish"]
|
||||||
|
list_display_links = list_display
|
||||||
|
list_filter = ["project"]
|
||||||
|
readonly_fields = ["owner"]
|
||||||
|
|
||||||
|
|
||||||
admin.site.register(models.Milestone, MilestoneAdmin)
|
admin.site.register(models.Milestone, MilestoneAdmin)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,17 +1,18 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
from django.contrib import admin
|
from django.contrib import admin
|
||||||
|
import reversion
|
||||||
|
|
||||||
from greenmine.projects.admin import AttachmentInline
|
from greenmine.projects.admin import AttachmentInline
|
||||||
|
|
||||||
from . import models
|
from . import models
|
||||||
|
|
||||||
import reversion
|
|
||||||
|
|
||||||
|
|
||||||
class TaskAdmin(reversion.VersionAdmin):
|
class TaskAdmin(reversion.VersionAdmin):
|
||||||
list_display = ["subject", "ref", "user_story", "milestone", "project", "user_story_id"]
|
list_display = ["subject", "ref", "user_story", "milestone", "project", "user_story_id"]
|
||||||
list_filter = ["user_story", "milestone", "project"]
|
list_filter = ["project"]
|
||||||
|
list_display_links = list_display
|
||||||
|
readonly_fields = ["project", "milestone", "user_story", "status", "owner", "assigned_to"]
|
||||||
inlines = [AttachmentInline]
|
inlines = [AttachmentInline]
|
||||||
|
|
||||||
def user_story_id(self, instance):
|
def user_story_id(self, instance):
|
||||||
|
|
|
@ -1,46 +1,37 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
from django.contrib import admin
|
from django.contrib import admin
|
||||||
|
import reversion
|
||||||
|
|
||||||
from greenmine.projects.admin import AttachmentInline
|
from greenmine.projects.admin import AttachmentInline
|
||||||
|
|
||||||
from . import models
|
from . import models
|
||||||
|
|
||||||
import reversion
|
|
||||||
|
|
||||||
|
|
||||||
class UserStoryInline(admin.TabularInline):
|
|
||||||
model = models.UserStory
|
|
||||||
fields = ('subject', 'order')
|
|
||||||
sortable_field_name = 'order'
|
|
||||||
extra = 0
|
|
||||||
|
|
||||||
def get_inline_instances(self, request, obj=None):
|
|
||||||
if obj:
|
|
||||||
return obj.user_stories.filter(mileston__isnone=True)
|
|
||||||
else:
|
|
||||||
return models.UserStory.objects.none()
|
|
||||||
|
|
||||||
|
|
||||||
class RolePointsInline(admin.TabularInline):
|
class RolePointsInline(admin.TabularInline):
|
||||||
model = models.RolePoints
|
model = models.RolePoints
|
||||||
sortable_field_name = 'role'
|
sortable_field_name = 'role'
|
||||||
readonly_fields = ["id"]
|
readonly_fields = ["user_story", "role", "points"]
|
||||||
|
can_delete = False
|
||||||
extra = 0
|
extra = 0
|
||||||
|
max_num = 0
|
||||||
|
|
||||||
|
|
||||||
class RolePointsAdmin(admin.ModelAdmin):
|
class RolePointsAdmin(admin.ModelAdmin):
|
||||||
list_display = ["user_story", "role", "points"]
|
list_display = ["user_story", "role", "points"]
|
||||||
list_display_links = list_display
|
list_display_links = list_display
|
||||||
list_filter = ["role", "user_story__project"]
|
list_filter = ["role", "user_story__project"]
|
||||||
|
readonly_fields = ["user_story", "role", "points"]
|
||||||
|
|
||||||
|
|
||||||
class UserStoryAdmin(reversion.VersionAdmin):
|
class UserStoryAdmin(reversion.VersionAdmin):
|
||||||
list_display = ["id", "ref", "milestone", "project", "owner", 'status', 'is_closed']
|
list_display = ["id", "ref", "milestone", "project", "owner", 'status', 'is_closed']
|
||||||
list_filter = ["milestone", "project"]
|
list_filter = ["project"]
|
||||||
list_display_links = list_display
|
list_display_links = list_display
|
||||||
readonly_fields = ["project", "status"]
|
readonly_fields = ["project", "status"]
|
||||||
inlines = [RolePointsInline, AttachmentInline]
|
inlines = [RolePointsInline, AttachmentInline]
|
||||||
|
|
||||||
|
|
||||||
admin.site.register(models.UserStory, UserStoryAdmin)
|
admin.site.register(models.UserStory, UserStoryAdmin)
|
||||||
admin.site.register(models.RolePoints, RolePointsAdmin)
|
admin.site.register(models.RolePoints, RolePointsAdmin)
|
||||||
|
|
|
@ -136,8 +136,4 @@ def us_ref_handler(sender, instance, **kwargs):
|
||||||
|
|
||||||
@receiver(models.signals.post_save, sender=UserStory, dispatch_uid="user_story_create_role_points_handler")
|
@receiver(models.signals.post_save, sender=UserStory, dispatch_uid="user_story_create_role_points_handler")
|
||||||
def us_create_role_points_handler(sender, instance, **kwargs):
|
def us_create_role_points_handler(sender, instance, **kwargs):
|
||||||
created_roles_ids = instance.role_points.all().values_list("role__id", flat=True)
|
instance.project.update_role_points()
|
||||||
null_points_value = instance.project.points.get(value=None)
|
|
||||||
|
|
||||||
for role in instance.project.get_roles().exclude(id__in=created_roles_ids):
|
|
||||||
instance.role_points.create(role=role, points=null_points_value)
|
|
||||||
|
|
Loading…
Reference in New Issue