Files
old-saburly-wagtail-web/env/lib/python3.10/site-packages/wagtail/images/blocks.py
2024-08-27 20:33:44 +02:00

54 lines
1.3 KiB
Python

from django.template.loader import render_to_string
from django.utils.functional import cached_property
from wagtail.admin.compare import BlockComparison
from wagtail.blocks import ChooserBlock
from .shortcuts import get_rendition_or_not_found
class ImageChooserBlock(ChooserBlock):
@cached_property
def target_model(self):
from wagtail.images import get_image_model
return get_image_model()
@cached_property
def widget(self):
from wagtail.images.widgets import AdminImageChooser
return AdminImageChooser()
def render_basic(self, value, context=None):
if value:
return get_rendition_or_not_found(value, "original").img_tag()
else:
return ""
def get_comparison_class(self):
return ImageChooserBlockComparison
class Meta:
icon = "image"
class ImageChooserBlockComparison(BlockComparison):
def htmlvalue(self, val):
return render_to_string(
"wagtailimages/widgets/compare.html",
{
"image_a": val,
"image_b": val,
},
)
def htmldiff(self):
return render_to_string(
"wagtailimages/widgets/compare.html",
{
"image_a": self.val_a,
"image_b": self.val_b,
},
)