-
Notifications
You must be signed in to change notification settings - Fork 13
/
admin.py
33 lines (30 loc) · 1.27 KB
/
admin.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
"""Django admin module for :class:`apps.iiif.annotations`"""
from django.contrib import admin
from import_export import resources, fields
from import_export.admin import ImportExportModelAdmin
from import_export.widgets import ForeignKeyWidget, JSONWidget
from .models import Annotation
from ..canvases.models import Canvas
class AnnotationResource(resources.ModelResource):
"""Annotation resource"""
canvas_link = fields.Field(
column_name='canvas',
attribute='canvas',
widget=ForeignKeyWidget(Canvas, 'pid'))
oa_annotation = fields.Field(
attribute='oa_annotation',
column_name='oa_annotation',
widget=JSONWidget)
class Meta: # pylint: disable=too-few-public-methods, missing-class-docstring
model = Annotation
fields = (
'id', 'x', 'y', 'w', 'h' , 'order',
'content', 'resource_type', 'motivation',
'format', 'canvas_link', 'language', 'oa_annotation'
)
class AnnotationAdmin(ImportExportModelAdmin, admin.ModelAdmin):
"""Annotation admin"""
resource_class = AnnotationResource
list_display = ('id', 'canvas', 'order', 'content', 'x', 'y', 'w', 'h')
search_fields = ('content', 'oa_annotation', 'canvas__pid')
admin.site.register(Annotation, AnnotationAdmin)