Browse Source

Enable locking on Person model

Sage Abdullah 1 year ago
parent
commit
f30c84888c

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

@@ -12,6 +12,9 @@
       "go_live_at": null,
       "expire_at": null,
       "expired": false,
+      "locked": false,
+      "locked_at": null,
+      "locked_by": null,
       "first_name": "Roberta",
       "last_name": "Johnson",
       "job_title": "Editorial Manager",
@@ -31,6 +34,9 @@
       "go_live_at": null,
       "expire_at": null,
       "expired": false,
+      "locked": false,
+      "locked_at": null,
+      "locked_by": null,
       "first_name": "Olivia",
       "last_name": "Ava",
       "job_title": "Director",
@@ -50,6 +56,9 @@
       "go_live_at": null,
       "expire_at": null,
       "expired": false,
+      "locked": false,
+      "locked_at": null,
+      "locked_by": null,
       "first_name": "Lightnin'",
       "last_name": "Hopkins",
       "job_title": "Designer",
@@ -69,6 +78,9 @@
       "go_live_at": null,
       "expire_at": null,
       "expired": false,
+      "locked": false,
+      "locked_at": null,
+      "locked_by": null,
       "first_name": "Muddy",
       "last_name": "Waters",
       "job_title": "Assistant Editor",

+ 43 - 0
bakerydemo/base/migrations/0013_person_lockablemixin.py

@@ -0,0 +1,43 @@
+# Generated by Django 4.2 on 2023-05-15 10:31
+
+from django.conf import settings
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
+        ("base", "0012_person_expire_at_person_expired_and_more"),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name="person",
+            name="locked",
+            field=models.BooleanField(
+                default=False, editable=False, verbose_name="locked"
+            ),
+        ),
+        migrations.AddField(
+            model_name="person",
+            name="locked_at",
+            field=models.DateTimeField(
+                editable=False, null=True, verbose_name="locked at"
+            ),
+        ),
+        migrations.AddField(
+            model_name="person",
+            name="locked_by",
+            field=models.ForeignKey(
+                blank=True,
+                editable=False,
+                null=True,
+                on_delete=django.db.models.deletion.SET_NULL,
+                related_name="locked_%(class)ss",
+                to=settings.AUTH_USER_MODEL,
+                verbose_name="locked by",
+            ),
+        ),
+    ]

+ 2 - 0
bakerydemo/base/models.py

@@ -16,6 +16,7 @@ from wagtail.fields import RichTextField, StreamField
 from wagtail.models import (
     Collection,
     DraftStateMixin,
+    LockableMixin,
     Page,
     PreviewableMixin,
     RevisionMixin,
@@ -27,6 +28,7 @@ from .blocks import BaseStreamBlock
 
 class Person(
     DraftStateMixin,
+    LockableMixin,
     RevisionMixin,
     PreviewableMixin,
     index.Indexed,