Put to read only fields on admin some fields that can contain a lot of values.

remotes/origin/enhancement/email-actions
Andrey Antukh 2013-10-24 00:25:24 +02:00
parent 78ad9694cd
commit 0611f820a8
5 changed files with 45 additions and 52 deletions

View File

@ -12,8 +12,7 @@ import reversion
class AttachmentAdmin(reversion.VersionAdmin):
list_display = ["project", "attached_file", "owner"]
list_display_links = list_display
admin.site.register(models.Attachment, AttachmentAdmin)
list_filter = ["project"]
class AttachmentInline(generic.GenericTabularInline):
@ -26,38 +25,37 @@ class MembershipAdmin(admin.ModelAdmin):
list_display = ['project', 'role', 'user']
list_filter = ['project', 'role']
list_display_links = list_display
admin.site.register(models.Membership, MembershipAdmin)
list_filter = ["project"]
class MembershipInline(admin.TabularInline):
model = models.Membership
fields = ('user', 'project', 'role')
fields = ['user', 'project', 'role']
readonly_fields = ["user", "project", "role"]
extra = 0
max_num = 0
can_delete = False
class ProjectAdmin(reversion.VersionAdmin):
list_display = ["name", "owner"]
list_display = ["name", "owner", "created_date", "total_milestones", "total_story_points"]
list_display_links = list_display
readonly_fields = ["owner"]
inlines = [MembershipInline, MilestoneInline]
admin.site.register(models.Project, ProjectAdmin)
# User Stories common admins
class PointsAdmin(admin.ModelAdmin):
list_display = ["name", "order", "project"]
list_display_links = list_display
admin.site.register(models.Points, PointsAdmin)
list_filter = ["project"]
class UserStoryStatusAdmin(admin.ModelAdmin):
list_display = ["name", "order", "is_closed", "project"]
list_display_links = list_display
admin.site.register(models.UserStoryStatus, UserStoryStatusAdmin)
list_filter = ["project"]
# Tasks common admins
@ -66,8 +64,6 @@ class TaskStatusAdmin(admin.ModelAdmin):
list_display = ["name", "order", "is_closed", "project"]
list_display_links = list_display
admin.site.register(models.TaskStatus, TaskStatusAdmin)
# Issues common admins
@ -75,29 +71,32 @@ class SeverityAdmin(admin.ModelAdmin):
list_display = ["name", "order", "project"]
list_display_links = list_display
admin.site.register(models.Severity, SeverityAdmin)
class PriorityAdmin(admin.ModelAdmin):
list_display = ["name", "order", "project"]
list_display_links = list_display
admin.site.register(models.Priority, PriorityAdmin)
class IssueTypeAdmin(admin.ModelAdmin):
list_display = ["name", "order", "project"]
list_display_links = list_display
admin.site.register(models.IssueType, IssueTypeAdmin)
class IssueStatusAdmin(admin.ModelAdmin):
list_display = ["name", "order", "is_closed", "project"]
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

View File

@ -1,24 +1,30 @@
# -*- coding: utf-8 -*-
from django.contrib import admin
import reversion
from . import models
import reversion
class MilestoneInline(admin.TabularInline):
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'
extra = 0
max_num = 0
can_delete = False
class MilestoneAdmin(reversion.VersionAdmin):
list_display = ["name", "project", "owner", "closed", "estimated_start",
"estimated_finish"]
list_display_links = list_display
list_filter = ["project"]
readonly_fields = ["owner"]
admin.site.register(models.Milestone, MilestoneAdmin)

View File

@ -1,17 +1,18 @@
# -*- coding: utf-8 -*-
from django.contrib import admin
import reversion
from greenmine.projects.admin import AttachmentInline
from . import models
import reversion
class TaskAdmin(reversion.VersionAdmin):
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]
def user_story_id(self, instance):

View File

@ -1,46 +1,37 @@
# -*- coding: utf-8 -*-
from django.contrib import admin
import reversion
from greenmine.projects.admin import AttachmentInline
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):
model = models.RolePoints
sortable_field_name = 'role'
readonly_fields = ["id"]
readonly_fields = ["user_story", "role", "points"]
can_delete = False
extra = 0
max_num = 0
class RolePointsAdmin(admin.ModelAdmin):
list_display = ["user_story", "role", "points"]
list_display_links = list_display
list_filter = ["role", "user_story__project"]
readonly_fields = ["user_story", "role", "points"]
class UserStoryAdmin(reversion.VersionAdmin):
list_display = ["id", "ref", "milestone", "project", "owner", 'status', 'is_closed']
list_filter = ["milestone", "project"]
list_filter = ["project"]
list_display_links = list_display
readonly_fields = ["project", "status"]
inlines = [RolePointsInline, AttachmentInline]
admin.site.register(models.UserStory, UserStoryAdmin)
admin.site.register(models.RolePoints, RolePointsAdmin)

View File

@ -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")
def us_create_role_points_handler(sender, instance, **kwargs):
created_roles_ids = instance.role_points.all().values_list("role__id", flat=True)
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)
instance.project.update_role_points()