kopia lustrzana https://github.com/jedie/PyInventory
76 wiersze
2.1 KiB
Python
76 wiersze
2.1 KiB
Python
import logging
|
|
|
|
import tagulous
|
|
from adminsortable2.admin import SortableAdminMixin, SortableInlineAdminMixin
|
|
from django.contrib import admin
|
|
from django.utils.translation import gettext_lazy as _
|
|
from import_export.admin import ImportExportMixin
|
|
from import_export.resources import ModelResource
|
|
|
|
from inventory.admin.base import BaseFileModelInline, BaseImageModelInline, BaseUserAdmin, UserInlineMixin
|
|
from inventory.admin.tagulous_fix import TagulousModelAdminFix
|
|
from inventory.models import MemoLinkModel, MemoModel
|
|
from inventory.models.memo import MemoFileModel, MemoImageModel
|
|
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
|
|
class MemoLinkModelInline(UserInlineMixin, SortableInlineAdminMixin, admin.TabularInline):
|
|
model = MemoLinkModel
|
|
extra = 0
|
|
|
|
|
|
class MemoImageModelInline(BaseImageModelInline):
|
|
model = MemoImageModel
|
|
|
|
|
|
class MemoFileModelInline(BaseFileModelInline):
|
|
model = MemoFileModel
|
|
|
|
|
|
class MemoModelResource(ModelResource):
|
|
class Meta:
|
|
model = MemoModel
|
|
|
|
|
|
@admin.register(MemoModel)
|
|
class MemoModelAdmin(TagulousModelAdminFix, ImportExportMixin, SortableAdminMixin, BaseUserAdmin):
|
|
def get_max_order(self, request, obj=None):
|
|
# Work-a-round for: https://github.com/jrief/django-admin-sortable2/issues/341
|
|
return 0
|
|
|
|
date_hierarchy = 'create_dt'
|
|
list_display = (
|
|
'name', 'update_dt'
|
|
)
|
|
ordering = ('-update_dt',)
|
|
list_display_links = ('name',)
|
|
list_filter = ('tags',)
|
|
search_fields = ('name', 'memo', 'tags__name')
|
|
fieldsets = (
|
|
(_('Internals'), {
|
|
'classes': ('collapse',),
|
|
'fields': (
|
|
('id', 'version'),
|
|
'user',
|
|
)
|
|
}),
|
|
(_('Meta'), {
|
|
'classes': ('collapse',),
|
|
'fields': (
|
|
'create_dt', 'update_dt'
|
|
)
|
|
}),
|
|
(_('Basic'), {'fields': (
|
|
'name',
|
|
'memo',
|
|
'tags',
|
|
)}),
|
|
)
|
|
readonly_fields = ('id', 'create_dt', 'update_dt', 'user')
|
|
inlines = (MemoImageModelInline, MemoFileModelInline, MemoLinkModelInline)
|
|
|
|
|
|
tagulous.admin.enhance(MemoModel, MemoModelAdmin)
|