workouttest_backoffice/aitrainer_backoffice/aitrainer_backoffice/admin/exercise_device.py

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()