Change a task with labels and attributes in admin panel (#157)

main
Nikita Manovich 7 years ago committed by GitHub
parent ae779938a9
commit 2816657948
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -4,6 +4,66 @@
# SPDX-License-Identifier: MIT
from django.contrib import admin
from .models import Task, Segment, Label, AttributeSpec
# Register your models here.
class SegmentInline(admin.TabularInline):
model = Segment
readonly_fields = ('start_frame', 'stop_frame')
can_delete = False
# Don't show on admin index page
def has_add_permission(self, request, object=None):
return False
class AttributeSpecInline(admin.TabularInline):
model = AttributeSpec
extra = 0
max_num = None
class LabelInline(admin.TabularInline):
model = Label
show_change_link = True
extra = 0
max_num = None
class LabelAdmin(admin.ModelAdmin):
# Don't show on admin index page
def has_module_permission(self, request):
return False
inlines = [
AttributeSpecInline
]
class TaskAdmin(admin.ModelAdmin):
date_hierarchy = 'updated_date'
readonly_fields = ('size', 'path', 'created_date', 'updated_date',
'overlap', 'flipped')
list_display = ('name', 'mode', 'owner', 'created_date', 'updated_date')
search_fields = ('name', 'mode', 'owner_username', 'owner_first_name',
'owner_last_name', 'owner_email')
inlines = [
SegmentInline,
LabelInline
]
# A callable object to use inside search_fields
def owner_first_name(self, obj):
return obj.owner.first_name
# A callable object to use inside search_fields
def owner_last_name(self, obj):
return obj.owner.last_name
# A callable object to use inside search_fields
def owner_email(self, obj):
return obj.owner.email
# Don't allow to add a task because it isn't trivial operation
def has_add_permission(self, request):
return False
admin.site.register(Task, TaskAdmin)
admin.site.register(Label, LabelAdmin)

Loading…
Cancel
Save