summaryrefslogtreecommitdiff
path: root/docs/migrations/0008_documentrelease_global_context.py
diff options
context:
space:
mode:
Diffstat (limited to 'docs/migrations/0008_documentrelease_global_context.py')
-rw-r--r--docs/migrations/0008_documentrelease_global_context.py44
1 files changed, 44 insertions, 0 deletions
diff --git a/docs/migrations/0008_documentrelease_global_context.py b/docs/migrations/0008_documentrelease_global_context.py
new file mode 100644
index 00000000..79dfe154
--- /dev/null
+++ b/docs/migrations/0008_documentrelease_global_context.py
@@ -0,0 +1,44 @@
+# Generated by Django 6.0.4 on 2026-05-06 09:20
+
+import json
+
+from django.conf import settings
+from django.db import migrations, models
+
+
+def set_documentrelease_global_context(apps, schema_editor):
+ DocumentRelease = apps.get_model("docs", "DocumentRelease")
+ for doc_release in DocumentRelease.objects.filter(release__isnull=False):
+ if not doc_release.global_context:
+ try:
+ with open(
+ settings.DOCS_BUILD_ROOT
+ / doc_release.lang
+ / doc_release.release.version
+ / "_built"
+ / "json"
+ / "globalcontext.json"
+ ) as context:
+ doc_release.global_context = json.load(context)
+ except FileNotFoundError:
+ pass
+ else:
+ doc_release.save(update_fields=["global_context"])
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ("docs", "0007_add_docs_search_vector"),
+ ]
+
+ operations = [
+ migrations.AddField(
+ model_name="documentrelease",
+ name="global_context",
+ field=models.JSONField(default=dict),
+ ),
+ migrations.RunPython(
+ set_documentrelease_global_context, migrations.RunPython.noop, elidable=True
+ ),
+ ]