This is an automated email from the ASF dual-hosted git repository.

yasith pushed a commit to branch feat/sdk-facade-migration
in repository https://gitbox.apache.org/repos/asf/airavata-portals.git

commit ac8c2cd07d91e3181f267b388732574a5e723fd1
Author: yasithdev <[email protected]>
AuthorDate: Wed Apr 8 00:32:02 2026 -0500

    refactor: Django 3.2 -> 5.1, Wagtail 2.x -> 6.x namespace migration
    
    - DEFAULT_AUTO_FIELD: AutoField -> BigAutoField
    - django.conf.urls.include -> django.urls.include
    - wagtail.core.* -> wagtail.* (blocks, fields, models, hooks)
    - wagtail.admin.edit_handlers -> wagtail.admin.panels
    - StreamFieldPanel/ImageChooserPanel/PageChooserPanel -> FieldPanel
    - Add use_json_field=True to all StreamField declarations
---
 .../django_airavata/apps/auth/urls.py              |  3 +-
 .../django_airavata/dynamic_apps/urls.py           |  3 +-
 airavata-django-portal/django_airavata/settings.py |  2 +-
 airavata-django-portal/django_airavata/urls.py     | 21 +-----
 .../django_airavata/wagtailapps/base/blocks.py     |  2 +-
 .../commands/fix_page_revision_content_type.py     |  2 +-
 .../base/management/commands/load_cms_data.py      |  2 +-
 .../base/management/commands/set_wagtail_site.py   |  2 +-
 .../django_airavata/wagtailapps/base/models.py     | 77 ++++++++++++----------
 .../base/templatetags/navigation_tags.py           |  2 +-
 .../base/tests/management/test_set_wagtail_site.py |  2 +-
 .../wagtailapps/base/wagtail_hooks.py              |  2 +-
 12 files changed, 54 insertions(+), 66 deletions(-)

diff --git a/airavata-django-portal/django_airavata/apps/auth/urls.py 
b/airavata-django-portal/django_airavata/apps/auth/urls.py
index a76227189..1e2845e4e 100644
--- a/airavata-django-portal/django_airavata/apps/auth/urls.py
+++ b/airavata-django-portal/django_airavata/apps/auth/urls.py
@@ -1,6 +1,5 @@
 
-from django.conf.urls import include
-from django.urls import path, re_path
+from django.urls import include, path, re_path
 from rest_framework import routers
 
 from . import views
diff --git a/airavata-django-portal/django_airavata/dynamic_apps/urls.py 
b/airavata-django-portal/django_airavata/dynamic_apps/urls.py
index 915b1eb4c..03630541e 100644
--- a/airavata-django-portal/django_airavata/dynamic_apps/urls.py
+++ b/airavata-django-portal/django_airavata/dynamic_apps/urls.py
@@ -1,6 +1,5 @@
 from django_airavata.dynamic_apps import CUSTOM_DJANGO_APPS
-from django.conf.urls import include
-from django.urls import path
+from django.urls import include, path
 
 urlpatterns = []
 for custom_django_app in CUSTOM_DJANGO_APPS:
diff --git a/airavata-django-portal/django_airavata/settings.py 
b/airavata-django-portal/django_airavata/settings.py
index 68cc93e8a..b4caa1635 100644
--- a/airavata-django-portal/django_airavata/settings.py
+++ b/airavata-django-portal/django_airavata/settings.py
@@ -137,7 +137,7 @@ DATABASES = {
     }
 }
 
-DEFAULT_AUTO_FIELD = 'django.db.models.AutoField'
+DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'
 
 
 # Password validation
diff --git a/airavata-django-portal/django_airavata/urls.py 
b/airavata-django-portal/django_airavata/urls.py
index 9989e3b33..c13d362b0 100644
--- a/airavata-django-portal/django_airavata/urls.py
+++ b/airavata-django-portal/django_airavata/urls.py
@@ -1,25 +1,10 @@
-"""django_airavata_gateway URL Configuration
-
-The `urlpatterns` list routes URLs to views. For more information please see:
-    https://docs.djangoproject.com/en/1.10/topics/http/urls/
-Examples:
-Function views
-    1. Add an import:  from my_app import views
-    2. Add a URL to urlpatterns:  url(r'^$', views.home, name='home')
-Class-based views
-    1. Add an import:  from other_app.views import Home
-    2. Add a URL to urlpatterns:  url(r'^$', Home.as_view(), name='home')
-Including another URLconf
-    1. Import the include() function: from django.conf.urls import url, include
-    2. Add a URL to urlpatterns:  url(r'^blog/', include('blog.urls'))
-"""
+"""django_airavata_gateway URL Configuration."""
 from django.conf import settings
-from django.conf.urls import include
 from django.conf.urls.static import static
 from django.contrib import admin
-from django.urls import path, re_path
+from django.urls import include, path, re_path
 from wagtail.admin import urls as wagtailadmin_urls
-from wagtail.core import urls as wagtail_urls
+from wagtail import urls as wagtail_urls
 from wagtail.documents import urls as wagtaildocs_urls
 
 from . import views
diff --git a/airavata-django-portal/django_airavata/wagtailapps/base/blocks.py 
b/airavata-django-portal/django_airavata/wagtailapps/base/blocks.py
index fe2519654..f3cad89c6 100644
--- a/airavata-django-portal/django_airavata/wagtailapps/base/blocks.py
+++ b/airavata-django-portal/django_airavata/wagtailapps/base/blocks.py
@@ -1,4 +1,4 @@
-from wagtail.core.blocks import (
+from wagtail.blocks import (
     BooleanBlock,
     CharBlock,
     ChoiceBlock,
diff --git 
a/airavata-django-portal/django_airavata/wagtailapps/base/management/commands/fix_page_revision_content_type.py
 
b/airavata-django-portal/django_airavata/wagtailapps/base/management/commands/fix_page_revision_content_type.py
index 5cd2d9262..3a47aafb3 100644
--- 
a/airavata-django-portal/django_airavata/wagtailapps/base/management/commands/fix_page_revision_content_type.py
+++ 
b/airavata-django-portal/django_airavata/wagtailapps/base/management/commands/fix_page_revision_content_type.py
@@ -2,7 +2,7 @@
 import json
 
 from django.core.management.base import BaseCommand
-from wagtail.core.models import PageRevision
+from wagtail.models import PageRevision
 
 
 class Command(BaseCommand):
diff --git 
a/airavata-django-portal/django_airavata/wagtailapps/base/management/commands/load_cms_data.py
 
b/airavata-django-portal/django_airavata/wagtailapps/base/management/commands/load_cms_data.py
index 57c63fbc8..d4c84a3e0 100644
--- 
a/airavata-django-portal/django_airavata/wagtailapps/base/management/commands/load_cms_data.py
+++ 
b/airavata-django-portal/django_airavata/wagtailapps/base/management/commands/load_cms_data.py
@@ -3,7 +3,7 @@ import os
 from django.conf import settings
 from django.core.management import call_command
 from django.core.management.base import BaseCommand
-from wagtail.core.models import Page, Site
+from wagtail.models import Page, Site
 
 
 class Command(BaseCommand):
diff --git 
a/airavata-django-portal/django_airavata/wagtailapps/base/management/commands/set_wagtail_site.py
 
b/airavata-django-portal/django_airavata/wagtailapps/base/management/commands/set_wagtail_site.py
index 079d13a3a..fdbebf6a9 100644
--- 
a/airavata-django-portal/django_airavata/wagtailapps/base/management/commands/set_wagtail_site.py
+++ 
b/airavata-django-portal/django_airavata/wagtailapps/base/management/commands/set_wagtail_site.py
@@ -1,7 +1,7 @@
 from django.conf import settings
 from django.core.management.base import BaseCommand
 from django.db import transaction
-from wagtail.core.models import Page, Site
+from wagtail.models import Page, Site
 
 from django_airavata.wagtailapps.base.models import (
     BlankPage,
diff --git a/airavata-django-portal/django_airavata/wagtailapps/base/models.py 
b/airavata-django-portal/django_airavata/wagtailapps/base/models.py
index db2360d19..4281efaba 100644
--- a/airavata-django-portal/django_airavata/wagtailapps/base/models.py
+++ b/airavata-django-portal/django_airavata/wagtailapps/base/models.py
@@ -5,18 +5,15 @@ import os
 from django.db import models
 from modelcluster.fields import ParentalKey
 from modelcluster.models import ClusterableModel
-from wagtail.admin.edit_handlers import (
+from wagtail.admin.panels import (
     FieldPanel,
     InlinePanel,
     MultiFieldPanel,
     ObjectList,
-    PageChooserPanel,
-    StreamFieldPanel,
-    TabbedInterface
+    TabbedInterface,
 )
-from wagtail.core.fields import RichTextField, StreamField
-from wagtail.core.models import Orderable, Page
-from wagtail.images.edit_handlers import ImageChooserPanel
+from wagtail.fields import RichTextField, StreamField
+from wagtail.models import Orderable, Page
 from wagtail.snippets.models import register_snippet
 
 from .blocks import BaseStreamBlock, ContainerChoiceBlock, CssStreamBlock, Nav
@@ -63,9 +60,9 @@ class NavExtra(models.Model):
     """
     nav = StreamField([
         ('nav', Nav(max_num=1)),
-    ])
+    ], use_json_field=True)
     panels = [
-        StreamFieldPanel('nav'),
+        FieldPanel('nav'),
     ]
 
     def __str__(self):
@@ -87,10 +84,11 @@ class CustomCss(models.Model):
         blank=True,
         null=True,
         help_text="Write custom css and give comments as necessary",
-        default="")
+        default="",
+        use_json_field=True)
 
     panels = [
-        StreamFieldPanel('css'),
+        FieldPanel('css'),
     ]
 
     def __str__(self):
@@ -112,10 +110,11 @@ class FooterText(models.Model):
         BaseStreamBlock(),
         verbose_name="Footer content block",
         blank=True,
-        null=True)
+        null=True,
+        use_json_field=True)
 
     panels = [
-        StreamFieldPanel('footer'),
+        FieldPanel('footer'),
     ]
 
     def __str__(self):
@@ -196,7 +195,7 @@ class Navbar(models.Model):
     )
 
     panels = [
-        ImageChooserPanel('logo'),
+        FieldPanel('logo'),
         FieldPanel('logo_redirect_link'),
         FieldPanel('logo_width'),
         FieldPanel('logo_height'),
@@ -344,7 +343,7 @@ class GatewayIcon(models.Model):
     )
 
     panels = [
-        ImageChooserPanel('icon'),
+        FieldPanel('icon'),
         FieldPanel('background_color'),
     ]
 
@@ -480,7 +479,8 @@ class HomePage(Page):
         BaseStreamBlock(),
         verbose_name="Home content block",
         blank=True,
-        null=True)
+        null=True,
+        use_json_field=True)
 
     # Promo section of the HomePage
     site_logo = models.ForeignKey(
@@ -618,40 +618,40 @@ class HomePage(Page):
 
     content_panels = Page.content_panels + [
         MultiFieldPanel([
-            ImageChooserPanel('image'),
+            FieldPanel('image'),
             FieldPanel('hero_text', classname="full"),
             MultiFieldPanel([
                 FieldPanel('hero_cta'),
-                PageChooserPanel('hero_cta_link'),
+                FieldPanel('hero_cta_link'),
             ])
         ], heading="Hero section"),
-        StreamFieldPanel('body'),
+        FieldPanel('body'),
         MultiFieldPanel([
-            ImageChooserPanel('site_logo'),
+            FieldPanel('site_logo'),
             FieldPanel('features_text'),
             MultiFieldPanel([
-                ImageChooserPanel('feature_logo_1'),
+                FieldPanel('feature_logo_1'),
                 FieldPanel('feature_1_title'),
                 FieldPanel('feature_1_text'),
             ]),
             MultiFieldPanel([
-                ImageChooserPanel('feature_logo_2'),
+                FieldPanel('feature_logo_2'),
                 FieldPanel('feature_2_title'),
                 FieldPanel('feature_2_text'),
             ]),
             MultiFieldPanel([
-                ImageChooserPanel('feature_logo_3'),
+                FieldPanel('feature_logo_3'),
                 FieldPanel('feature_3_title'),
                 FieldPanel('feature_3_text'),
             ]),
             MultiFieldPanel([
-                ImageChooserPanel('feature_logo_4'),
+                FieldPanel('feature_logo_4'),
                 FieldPanel('feature_4_title'),
                 FieldPanel('feature_4_text'),
             ])
         ], heading="Feature section", classname="collapsible"),
         FieldPanel('custom_body_message'),
-        ImageChooserPanel('banner_image')
+        FieldPanel('banner_image')
     ]
 
     customization_panels = [
@@ -674,11 +674,12 @@ class HomePage(Page):
 
 class Row(models.Model):
     body = StreamField(
-        BaseStreamBlock(), verbose_name="Row Content", blank=True, null=True
+        BaseStreamBlock(), verbose_name="Row Content", blank=True, null=True,
+        use_json_field=True,
     )
 
     panels = [
-        StreamFieldPanel('body'),
+        FieldPanel('body'),
     ]
 
     class Meta:
@@ -691,14 +692,16 @@ class BootstrapRow(Row):
         null=True,
         blank=True,
         help_text="(Optional) Create a new Bootstrap container for this "
-                  "and following rows.")
+                  "and following rows.",
+        use_json_field=True)
     body = StreamField(
-        BaseStreamBlock(), verbose_name="Row Content", blank=True, null=True
+        BaseStreamBlock(), verbose_name="Row Content", blank=True, null=True,
+        use_json_field=True,
     )
 
     panels = [
-        StreamFieldPanel('container'),
-        StreamFieldPanel('body'),
+        FieldPanel('container'),
+        FieldPanel('body'),
     ]
 
     class Meta:
@@ -842,13 +845,15 @@ class CybergatewayHomePage(Page):
         BaseStreamBlock(),
         verbose_name="Contact Info Block",
         blank=True,
-        null=True)
+        null=True,
+        use_json_field=True)
 
     footer = StreamField(
         BaseStreamBlock(),
         verbose_name="Footer Content Block",
         blank=True,
-        null=True)
+        null=True,
+        use_json_field=True)
 
     boolean_choices = (
         ("yes", "Yes"),
@@ -875,7 +880,7 @@ class CybergatewayHomePage(Page):
 
     content_panels = Page.content_panels + [
         MultiFieldPanel([
-            ImageChooserPanel('site_logo'),
+            FieldPanel('site_logo'),
             FieldPanel('site_link'),
             FieldPanel('site_text'),
             FieldPanel('site_header'),
@@ -887,8 +892,8 @@ class CybergatewayHomePage(Page):
             FieldPanel('site_link_text3'),
         ], heading="Navbar Section"),
         InlinePanel("row", label="row"),
-        StreamFieldPanel('contact'),
-        StreamFieldPanel('footer'),
+        FieldPanel('contact'),
+        FieldPanel('footer'),
     ]
 
     customization_panels = [
diff --git 
a/airavata-django-portal/django_airavata/wagtailapps/base/templatetags/navigation_tags.py
 
b/airavata-django-portal/django_airavata/wagtailapps/base/templatetags/navigation_tags.py
index aa4c38b1b..7b84f1255 100644
--- 
a/airavata-django-portal/django_airavata/wagtailapps/base/templatetags/navigation_tags.py
+++ 
b/airavata-django-portal/django_airavata/wagtailapps/base/templatetags/navigation_tags.py
@@ -1,6 +1,6 @@
 from django import template
 from django.conf import settings
-from wagtail.core.models import Page, Site
+from wagtail.models import Page, Site
 
 from django_airavata.wagtailapps.base.models import (
     Announcements,
diff --git 
a/airavata-django-portal/django_airavata/wagtailapps/base/tests/management/test_set_wagtail_site.py
 
b/airavata-django-portal/django_airavata/wagtailapps/base/tests/management/test_set_wagtail_site.py
index ebaffccab..c7c0a78dd 100644
--- 
a/airavata-django-portal/django_airavata/wagtailapps/base/tests/management/test_set_wagtail_site.py
+++ 
b/airavata-django-portal/django_airavata/wagtailapps/base/tests/management/test_set_wagtail_site.py
@@ -1,7 +1,7 @@
 from django.conf import settings
 from django.core.management import call_command
 from django.test import TestCase, override_settings
-from wagtail.core.models import Page, Site
+from wagtail.models import Page, Site
 
 
 @override_settings(ALLOWED_HOSTS=['example.com'],
diff --git 
a/airavata-django-portal/django_airavata/wagtailapps/base/wagtail_hooks.py 
b/airavata-django-portal/django_airavata/wagtailapps/base/wagtail_hooks.py
index 7ef5d6d7f..22fd076cb 100644
--- a/airavata-django-portal/django_airavata/wagtailapps/base/wagtail_hooks.py
+++ b/airavata-django-portal/django_airavata/wagtailapps/base/wagtail_hooks.py
@@ -4,7 +4,7 @@ from django.shortcuts import redirect
 from wagtail.admin.rich_text.converters.html_to_contentstate import (
     BlockElementHandler
 )
-from wagtail.core import hooks
+from wagtail import hooks
 
 logger = logging.getLogger(__name__)
 

Reply via email to