From 8d95f128fbbb65ac9faa616231a1b44c8d868a8a Mon Sep 17 00:00:00 2001 From: Bossanyi Tibor Date: Tue, 24 Nov 2020 12:44:42 +0100 Subject: [PATCH] ExerciseDevice image --- .../aitrainer_backoffice/admin.py | 15 ++++++++++++--- .../aitrainer_backoffice/models.py | 17 ++++++++++++----- .../aitrainer_backoffice/settings/__init__.py | 1 - 3 files changed, 24 insertions(+), 9 deletions(-) diff --git a/aitrainer_backoffice/aitrainer_backoffice/admin.py b/aitrainer_backoffice/aitrainer_backoffice/admin.py index e84e036..2cc60c3 100644 --- a/aitrainer_backoffice/aitrainer_backoffice/admin.py +++ b/aitrainer_backoffice/aitrainer_backoffice/admin.py @@ -80,7 +80,7 @@ class ExerciseTreeAdmin(admin.ModelAdmin): def get_image_preview(self, obj): image_url = '/media/' + str(obj.image_url) if obj.pk: - return format_html(' ' \ + return format_html(' ' .format(url=image_url)) get_image_preview.short_description = _("Image Preview") @@ -132,7 +132,6 @@ class ExercisePlanDetailAdmin(admin.ModelAdmin): list_editable = ('serie', 'repeat', 'weight_equation',) #list_editable_link('',) - def get_plan(self, obj): return obj.exercise_plan.name @@ -179,7 +178,17 @@ class TranslationExerciseDeviceInline(admin.TabularInline): class ExerciseDeviceAdmin(admin.ModelAdmin): - list_display = ('device_id', 'name') + list_display = ('exercise_device_id', 'name') + fields = ('name', 'description', "image_url", "get_image_preview") + readonly_fields = ("get_image_preview",) + + def get_image_preview(self, obj): + image_url = '/media/' + str(obj.image_url) + if obj.pk: + return format_html(' ' \ + .format(url=image_url)) + + get_image_preview.short_description = _("Image Preview") inlines = [ TranslationExerciseDeviceInline diff --git a/aitrainer_backoffice/aitrainer_backoffice/models.py b/aitrainer_backoffice/aitrainer_backoffice/models.py index f9bed25..37cd776 100644 --- a/aitrainer_backoffice/aitrainer_backoffice/models.py +++ b/aitrainer_backoffice/aitrainer_backoffice/models.py @@ -1,4 +1,5 @@ from django.db import models +from django.utils.safestring import mark_safe from django.utils.translation import ugettext_lazy as _ @@ -8,17 +9,23 @@ class LanguageTypes(models.TextChoices): class ExerciseDevice(models.Model): - device_id = models.AutoField(primary_key=True) + exercise_device_id = models.AutoField(primary_key=True) name = models.CharField(max_length=100) - description = models.CharField(max_length=200, blank=True, null=True) + image_url = models.ImageField(upload_to='images/', help_text='The image size is 1366x768') + description = models.TextField(max_length=1000, blank=True, null=True, help_text="English description here") class Meta: db_table = 'exercise_device' verbose_name = _("Exercise Device") verbose_name_plural = _("Exercise Devices") + def image_tag(self): + return mark_safe('' % self.image_url) + + image_tag.short_description = 'Image' + def __str__(self): - return self.name + return self.name class ExerciseTree(models.Model): @@ -244,7 +251,7 @@ class ExerciseTypeDevice(models.Model): class ExerciseDeviceTranslation(models.Model): translation_id = models.AutoField(primary_key=True) - device = models.ForeignKey(ExerciseDevice, on_delete=models.CASCADE) + exercise_device = models.ForeignKey(ExerciseDevice, on_delete=models.CASCADE) name = models.CharField(max_length=100) language_code = models.CharField(max_length=2, choices=LanguageTypes.choices, default=LanguageTypes.HU) @@ -254,4 +261,4 @@ class ExerciseDeviceTranslation(models.Model): verbose_name_plural = _("Translations") def __str__(self): - return self.name \ No newline at end of file + return self.name diff --git a/aitrainer_backoffice/aitrainer_backoffice/settings/__init__.py b/aitrainer_backoffice/aitrainer_backoffice/settings/__init__.py index 8e28e9d..be7ce5e 100644 --- a/aitrainer_backoffice/aitrainer_backoffice/settings/__init__.py +++ b/aitrainer_backoffice/aitrainer_backoffice/settings/__init__.py @@ -1,2 +1 @@ from .prod import * -from .dev import *