41 lines
1.3 KiB
Python
41 lines
1.3 KiB
Python
from django.contrib import admin
|
|
from django.utils.html import format_html
|
|
from django.utils.translation import ugettext_lazy as _
|
|
|
|
from ..models.exercise_device import ExerciseDeviceTranslation, ExerciseDeviceAlternative, ExerciseDevice
|
|
|
|
|
|
class TranslationExerciseDeviceInline(admin.TabularInline):
|
|
model = ExerciseDeviceTranslation
|
|
fields = ('language_code', 'name')
|
|
extra = 0
|
|
|
|
|
|
class ExerciseDeviceAlternativesInline(admin.TabularInline):
|
|
model = ExerciseDeviceAlternative
|
|
fk_name = 'exercise_device_child'
|
|
fields = ('exercise_device_parent',)
|
|
extra = 0
|
|
|
|
|
|
class ExerciseDeviceAdmin(admin.ModelAdmin):
|
|
list_display = ('name',)
|
|
fields = ('name', 'description', "image_url", "get_image_preview", "sort", "place")
|
|
readonly_fields = ("get_image_preview",)
|
|
|
|
def get_image_preview(self, obj):
|
|
image_url = '/media/' + str(obj.image_url)
|
|
if obj.pk:
|
|
return format_html('<img src="{url}" title="{url}" width="30%" height="30%"/> ' \
|
|
.format(url=image_url))
|
|
|
|
get_image_preview.short_description = _("Image Preview")
|
|
|
|
inlines = [
|
|
TranslationExerciseDeviceInline,
|
|
ExerciseDeviceAlternativesInline
|
|
]
|
|
|
|
|
|
admin.site.register(ExerciseDevice, ExerciseDeviceAdmin)
|
|
admin.autodiscover() |