Add multilingual audit CI pipeline + extract mandelblog_content_guard

This commit is contained in:
2026-03-29 20:49:42 +02:00
parent 2a51989fa4
commit 1f05011a63
104 changed files with 3372 additions and 6 deletions

View File

@@ -0,0 +1,26 @@
from __future__ import annotations
from functools import lru_cache
from django.db.models.signals import pre_save
from django.dispatch import receiver
from wagtail.models import Page
from wagtail.snippets.models import get_snippet_models
from .validators.multilingual import validate_instance_or_raise
@lru_cache(maxsize=1)
def _snippet_models():
return tuple(get_snippet_models())
def _is_snippet_instance(instance) -> bool:
instance_model = instance.__class__
return any(model == instance_model for model in _snippet_models())
@receiver(pre_save)
def enforce_multilingual_integrity(sender, instance, **kwargs):
if isinstance(instance, Page) or _is_snippet_instance(instance):
validate_instance_or_raise(instance)