add custom image model, fetch alt text
This commit is contained in:
51
dnscms/images/models.py
Normal file
51
dnscms/images/models.py
Normal file
@ -0,0 +1,51 @@
|
||||
from django.db import models
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
from grapple.models import (
|
||||
GraphQLString,
|
||||
)
|
||||
from wagtail.images.models import AbstractImage, AbstractRendition, Image
|
||||
|
||||
|
||||
class CustomImage(AbstractImage):
|
||||
alt = models.CharField(
|
||||
max_length=512,
|
||||
blank=True,
|
||||
verbose_name="Alternativ bildetekst",
|
||||
help_text=(
|
||||
"Er ikke synlig på nettsiden, men leses opp for de som bruker skjermlesere. "
|
||||
"Viktig for SEO og tilgjengelighet. "
|
||||
"Beskriv det du ser i bildet som til en blind person. "
|
||||
'F.eks. "Logo for Superforeningen" eller "Stemningsbilde fra konserten med Eminem"',
|
||||
),
|
||||
)
|
||||
attribution = models.CharField(
|
||||
max_length=255,
|
||||
blank=True,
|
||||
verbose_name="Kreditering",
|
||||
help_text="Navn på fotograf, illustratør, organisasjon, e.l.",
|
||||
)
|
||||
|
||||
admin_form_fields = Image.admin_form_fields + ("alt", "attribution")
|
||||
|
||||
@property
|
||||
def default_alt_text(self):
|
||||
return self.alt or self.title
|
||||
|
||||
class Meta(AbstractImage.Meta):
|
||||
verbose_name = _("image")
|
||||
verbose_name_plural = _("images")
|
||||
permissions = [
|
||||
("choose_image", "Can choose image"),
|
||||
]
|
||||
|
||||
graphql_fields = [
|
||||
GraphQLString("alt"),
|
||||
GraphQLString("attribution"),
|
||||
]
|
||||
|
||||
|
||||
class Rendition(AbstractRendition):
|
||||
image = models.ForeignKey(CustomImage, on_delete=models.CASCADE, related_name="renditions")
|
||||
|
||||
class Meta:
|
||||
unique_together = (("image", "filter_spec", "focal_point_key"),)
|
Reference in New Issue
Block a user