47 lines
1.2 KiB
Python
47 lines
1.2 KiB
Python
# -*- coding: utf-8 -*-
|
|
|
|
from django.contrib import admin
|
|
|
|
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"]
|
|
extra = 0
|
|
|
|
|
|
class RolePointsAdmin(admin.ModelAdmin):
|
|
list_display = ["user_story", "role", "points"]
|
|
list_display_links = list_display
|
|
list_filter = ["role", "user_story__project"]
|
|
|
|
|
|
class UserStoryAdmin(reversion.VersionAdmin):
|
|
list_display = ["id", "ref", "milestone", "project", "owner", 'status', 'is_closed']
|
|
list_filter = ["milestone", "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)
|