From b8888a5bb073b1dd47a2c3b2588594b79ab94f97 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Valenta?= <tomas@imaniti.org>
Date: Mon, 1 Jul 2024 17:33:08 +0200
Subject: [PATCH] fix(?) MS Pardubice menu

---
 .../migrations/0241_auto_20240701_1616.py     | 25 +++++++++++++++++++
 district/models.py                            | 16 +++++++++++-
 2 files changed, 40 insertions(+), 1 deletion(-)
 create mode 100644 district/migrations/0241_auto_20240701_1616.py

diff --git a/district/migrations/0241_auto_20240701_1616.py b/district/migrations/0241_auto_20240701_1616.py
new file mode 100644
index 00000000..02770a03
--- /dev/null
+++ b/district/migrations/0241_auto_20240701_1616.py
@@ -0,0 +1,25 @@
+# Generated by Django 5.0.6 on 2024-07-01 14:16
+
+from django.db import migrations
+
+
+def fix_menu(apps, schema_editor):
+    from district.models import DistrictHomePage
+
+    new_menu = []
+
+    for page in DistrictHomePage.objects.all():
+        if page.title == "PirĂ¡ti Pardubicko":
+            page.menu = []
+            page.save()
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('district', '0240_alter_districthomepage_content'),
+    ]
+
+    operations = [
+        migrations.RunPython(fix_menu)
+    ]
diff --git a/district/models.py b/district/models.py
index 0398fc55..7b6c3c50 100644
--- a/district/models.py
+++ b/district/models.py
@@ -20,7 +20,7 @@ from wagtail.admin.panels import (
     TabbedInterface,
 )
 from wagtail.fields import RichTextField, StreamField
-from wagtail.models import Orderable, Page
+from wagtail.models import Orderable, Page, Site
 from wagtailmetadata.models import MetadataPageMixin
 
 from calendar_utils.models import CalendarMixin
@@ -65,6 +65,20 @@ from shared.utils import make_promote_panels, strip_all_html_tags, subscribe_to_
 
 from . import blocks
 from .forms import JekyllImportForm
+from wagtail import hooks
+
+
+@hooks.register('construct_page_chooser_queryset')
+def limit_page_chooser_to_site_specific_pages(pages, request):
+    try:
+        site = Site.find_for_request(request)
+
+        return pages.in_site(site)
+    except Exception as e:
+        print(e)
+        # couldn't filter by site so return untouched pages queryset
+        return pages
+
 
 CONTENT_BLOCKS = DEFAULT_CONTENT_BLOCKS + [
     ("chart", ChartBlock(template="district/blocks/chart.html")),
-- 
GitLab