Browse Source

Make FooterText translatable

Sage Abdullah 2 years ago
parent
commit
046eb8ecf8

+ 2 - 0
bakerydemo/base/fixtures/bakerydemo.json

@@ -91,6 +91,8 @@
     "model": "base.footertext",
     "pk": 1,
     "fields": {
+      "translation_key": "ec7d7b66-559e-4ca8-8ece-bc23cd3c2a00",
+      "locale": 1,
       "latest_revision": null,
       "live": true,
       "has_unpublished_changes": false,

+ 30 - 0
bakerydemo/base/migrations/0015_footertext_translatable.py

@@ -0,0 +1,30 @@
+# Generated by Django 4.2 on 2023-05-15 10:49
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ("base", "0014_person_enable_default_workflow"),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name="footertext",
+            name="locale",
+            field=models.ForeignKey(
+                editable=False,
+                null=True,
+                on_delete=django.db.models.deletion.PROTECT,
+                related_name="+",
+                to="wagtailcore.locale",
+            ),
+        ),
+        migrations.AddField(
+            model_name="footertext",
+            name="translation_key",
+            field=models.UUIDField(editable=False, null=True),
+        ),
+    ]

+ 15 - 0
bakerydemo/base/migrations/0016_footertext_bootstrap_translation.py

@@ -0,0 +1,15 @@
+# Generated by Django 4.2 on 2023-05-15 10:49
+
+from django.db import migrations
+from wagtail.models import BootstrapTranslatableModel
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ("base", "0015_footertext_translatable"),
+    ]
+
+    operations = [
+        BootstrapTranslatableModel("base.FooterText"),
+    ]

+ 34 - 0
bakerydemo/base/migrations/0017_footertext_enforce_not_null.py

@@ -0,0 +1,34 @@
+# Generated by Django 4.2 on 2023-05-15 10:51
+
+from django.db import migrations, models
+import django.db.models.deletion
+import uuid
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ("base", "0016_footertext_bootstrap_translation"),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name="footertext",
+            name="locale",
+            field=models.ForeignKey(
+                editable=False,
+                on_delete=django.db.models.deletion.PROTECT,
+                related_name="+",
+                to="wagtailcore.locale",
+            ),
+        ),
+        migrations.AlterField(
+            model_name="footertext",
+            name="translation_key",
+            field=models.UUIDField(default=uuid.uuid4, editable=False),
+        ),
+        migrations.AlterUniqueTogether(
+            name="footertext",
+            unique_together={("translation_key", "locale")},
+        ),
+    ]

+ 9 - 2
bakerydemo/base/models.py

@@ -20,6 +20,7 @@ from wagtail.models import (
     Page,
     PreviewableMixin,
     RevisionMixin,
+    TranslatableMixin,
     WorkflowMixin,
 )
 from wagtail.search import index
@@ -140,7 +141,13 @@ class Person(
         verbose_name_plural = "People"
 
 
-class FooterText(DraftStateMixin, RevisionMixin, PreviewableMixin, models.Model):
+class FooterText(
+    DraftStateMixin,
+    RevisionMixin,
+    PreviewableMixin,
+    TranslatableMixin,
+    models.Model,
+):
     """
     This provides editable text for the site footer. Again it is registered
     using `register_snippet` as a function in wagtail_hooks.py to be grouped
@@ -165,7 +172,7 @@ class FooterText(DraftStateMixin, RevisionMixin, PreviewableMixin, models.Model)
     def get_preview_context(self, request, mode_name):
         return {"footer_text": self.body}
 
-    class Meta:
+    class Meta(TranslatableMixin.Meta):
         verbose_name_plural = "Footer Text"