angrybeanie_wagtail/env/lib/python3.12/site-packages/wagtail/blocks/static_block.py
2025-07-25 21:32:16 +10:00

76 lines
1.9 KiB
Python

from django import forms
from django.utils.functional import cached_property
from django.utils.safestring import SafeString
from django.utils.translation import gettext as _
from wagtail.admin.staticfiles import versioned_static
from wagtail.telepath import Adapter, register
from .base import Block
__all__ = ["StaticBlock"]
class StaticBlock(Block):
"""
A block that just 'exists' and has no fields.
"""
def get_admin_text(self):
if self.meta.admin_text is None:
if self.label:
return _("%(label)s: this block has no options.") % {
"label": self.label
}
else:
return _("This block has no options.")
return self.meta.admin_text
def value_from_datadict(self, data, files, prefix):
return None
def normalize(self, value):
return None
def render_basic(self, value, context=None):
return ""
class Meta:
admin_text = None
default = None
class StaticBlockAdapter(Adapter):
js_constructor = "wagtail.blocks.StaticBlock"
def js_args(self, block):
admin_text = block.get_admin_text()
if isinstance(admin_text, SafeString):
text_or_html = "html"
else:
text_or_html = "text"
return [
block.name,
{
text_or_html: admin_text,
"icon": block.meta.icon,
"label": block.label,
"description": block.get_description(),
"blockDefId": block.definition_prefix,
"isPreviewable": block.is_previewable,
},
]
@cached_property
def media(self):
return forms.Media(
js=[
versioned_static("wagtailadmin/js/telepath/blocks.js"),
]
)
register(StaticBlockAdapter(), StaticBlock)