image library migration step 1
This commit is contained in:
parent
07bea333bc
commit
1a2bbb1c35
23 changed files with 413 additions and 57 deletions
|
@ -61,12 +61,47 @@ class ArticleAdmin(admin.ModelAdmin):
|
|||
readonly_fields = ("created_at", "updated_at")
|
||||
ordering = ("-article_date",)
|
||||
|
||||
fieldsets = (
|
||||
(None, {"fields": ("title", "slug", "excerpt", "content", "meta_keywords")}),
|
||||
(
|
||||
"Images",
|
||||
{
|
||||
"fields": (
|
||||
"image_library",
|
||||
"image",
|
||||
), # New image library field and legacy field
|
||||
"description": "Use the Image Library field for new images. Legacy field will be removed after migration.",
|
||||
},
|
||||
),
|
||||
(
|
||||
"Publishing",
|
||||
{"fields": ("author", "article_date", "is_published", "is_featured")},
|
||||
),
|
||||
(
|
||||
"Relations",
|
||||
{
|
||||
"fields": (
|
||||
"related_service",
|
||||
"related_consulting_partner",
|
||||
"related_cloud_provider",
|
||||
),
|
||||
"classes": ("collapse",),
|
||||
},
|
||||
),
|
||||
(
|
||||
"Metadata",
|
||||
{
|
||||
"fields": ("created_at", "updated_at"),
|
||||
"classes": ("collapse",),
|
||||
},
|
||||
),
|
||||
)
|
||||
|
||||
def image_preview(self, obj):
|
||||
"""Display image preview in admin list view"""
|
||||
if obj.image:
|
||||
return format_html(
|
||||
'<img src="{}" style="max-height: 50px;"/>', obj.image.url
|
||||
)
|
||||
image = obj.get_image
|
||||
if image:
|
||||
return format_html('<img src="{}" style="max-height: 50px;"/>', image.url)
|
||||
return "No image"
|
||||
|
||||
image_preview.short_description = "Image"
|
||||
|
|
|
@ -47,12 +47,30 @@ class CloudProviderAdmin(SortableAdminMixin, admin.ModelAdmin):
|
|||
inlines = [OfferingInline]
|
||||
ordering = ("order",)
|
||||
|
||||
fieldsets = (
|
||||
(None, {"fields": ("name", "slug", "description", "order")}),
|
||||
(
|
||||
"Images",
|
||||
{
|
||||
"fields": (
|
||||
"image_library",
|
||||
"logo",
|
||||
), # New image library field and legacy field
|
||||
"description": "Use the Image Library field for new images. Legacy field will be removed after migration.",
|
||||
},
|
||||
),
|
||||
(
|
||||
"Contact Information",
|
||||
{"fields": ("website", "linkedin", "phone", "email", "address")},
|
||||
),
|
||||
("Settings", {"fields": ("is_featured", "disable_listing")}),
|
||||
)
|
||||
|
||||
def logo_preview(self, obj):
|
||||
"""Display logo preview in admin list view"""
|
||||
if obj.logo:
|
||||
return format_html(
|
||||
'<img src="{}" style="max-height: 50px;"/>', obj.logo.url
|
||||
)
|
||||
logo = obj.get_logo
|
||||
if logo:
|
||||
return format_html('<img src="{}" style="max-height: 50px;"/>', logo.url)
|
||||
return "No logo"
|
||||
|
||||
logo_preview.short_description = "Logo"
|
||||
|
@ -75,12 +93,34 @@ class ConsultingPartnerAdmin(SortableAdminMixin, admin.ModelAdmin):
|
|||
filter_horizontal = ("services", "cloud_providers")
|
||||
ordering = ("order",)
|
||||
|
||||
fieldsets = (
|
||||
(None, {"fields": ("name", "slug", "description", "order")}),
|
||||
(
|
||||
"Images",
|
||||
{
|
||||
"fields": (
|
||||
"image_library",
|
||||
"logo",
|
||||
), # New image library field and legacy field
|
||||
"description": "Use the Image Library field for new images. Legacy field will be removed after migration.",
|
||||
},
|
||||
),
|
||||
(
|
||||
"Contact Information",
|
||||
{"fields": ("website", "linkedin", "phone", "email", "address")},
|
||||
),
|
||||
(
|
||||
"Relations",
|
||||
{"fields": ("services", "cloud_providers"), "classes": ("collapse",)},
|
||||
),
|
||||
("Settings", {"fields": ("is_featured", "disable_listing")}),
|
||||
)
|
||||
|
||||
def logo_preview(self, obj):
|
||||
"""Display logo preview in admin list view"""
|
||||
if obj.logo:
|
||||
return format_html(
|
||||
'<img src="{}" style="max-height: 50px;"/>', obj.logo.url
|
||||
)
|
||||
logo = obj.get_logo
|
||||
if logo:
|
||||
return format_html('<img src="{}" style="max-height: 50px;"/>', logo.url)
|
||||
return "No logo"
|
||||
|
||||
logo_preview.short_description = "Logo"
|
||||
|
|
|
@ -93,12 +93,37 @@ class ServiceAdmin(admin.ModelAdmin):
|
|||
filter_horizontal = ("categories",)
|
||||
inlines = [ExternalLinkInline, OfferingInline]
|
||||
|
||||
fieldsets = (
|
||||
(None, {"fields": ("name", "slug", "description", "tagline")}),
|
||||
(
|
||||
"Images",
|
||||
{
|
||||
"fields": (
|
||||
"image_library",
|
||||
"logo",
|
||||
), # New image library field and legacy field
|
||||
"description": "Use the Image Library field for new images. Legacy field will be removed after migration.",
|
||||
},
|
||||
),
|
||||
(
|
||||
"Configuration",
|
||||
{
|
||||
"fields": (
|
||||
"categories",
|
||||
"features",
|
||||
"is_featured",
|
||||
"is_coming_soon",
|
||||
"disable_listing",
|
||||
)
|
||||
},
|
||||
),
|
||||
)
|
||||
|
||||
def logo_preview(self, obj):
|
||||
"""Display logo preview in admin list view"""
|
||||
if obj.logo:
|
||||
return format_html(
|
||||
'<img src="{}" style="max-height: 50px;"/>', obj.logo.url
|
||||
)
|
||||
logo = obj.get_logo
|
||||
if logo:
|
||||
return format_html('<img src="{}" style="max-height: 50px;"/>', logo.url)
|
||||
return "No logo"
|
||||
|
||||
logo_preview.short_description = "Logo"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue