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

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

commit 613df5e813bc9bbed58684cf45506653e82c43cf
Author: yasithdev <[email protected]>
AuthorDate: Thu Jul 17 01:45:07 2025 -0500

    update code for manage.py migrate  to work
---
 airavata-django-portal/django_airavata/settings.py | 11 +++++----
 airavata-django-portal/django_airavata/urls.py     |  2 +-
 .../django_airavata/wagtailapps/base/blocks.py     |  2 +-
 .../commands/fix_page_revision_content_type.py     |  8 +++----
 .../base/management/commands/load_cms_data.py      |  2 +-
 .../base/management/commands/set_wagtail_site.py   |  2 +-
 .../django_airavata/wagtailapps/base/models.py     | 17 +++++++-------
 .../base/templatetags/navigation_tags.py           | 11 +++++----
 .../base/tests/management/test_set_wagtail_site.py |  2 +-
 .../wagtailapps/base/wagtail_hooks.py              |  6 ++---
 airavata-django-portal/pyproject.toml              | 26 ++++++++++++++++++----
 11 files changed, 53 insertions(+), 36 deletions(-)

diff --git a/airavata-django-portal/django_airavata/settings.py 
b/airavata-django-portal/django_airavata/settings.py
index df495996a..f4b8324d8 100644
--- a/airavata-django-portal/django_airavata/settings.py
+++ b/airavata-django-portal/django_airavata/settings.py
@@ -51,6 +51,7 @@ INSTALLED_APPS = [
     'django.contrib.humanize',
 
     # wagtail related apps
+    'wagtail.locales',
     'wagtail.contrib.forms',
     'wagtail.contrib.redirects',
     'wagtail.embeds',
@@ -61,7 +62,7 @@ INSTALLED_APPS = [
     'wagtail.images',
     'wagtail.search',
     'wagtail.admin',
-    'wagtail.core',
+    'wagtail',
     'wagtail.contrib.styleguide',
 
     # wagtail third party dependencies
@@ -194,6 +195,7 @@ FILE_UPLOAD_HANDLERS = [
     'django.core.files.uploadhandler.MemoryFileUploadHandler',
     'django_airavata.uploadhandler.MaxFileSizeTemporaryFileUploadHandler',
 ]
+FILE_UPLOAD_TEMP_DIR = '/tmp'
 
 # Django max file size
 DATA_UPLOAD_MAX_MEMORY_SIZE =  64 * 1024 * 1024  # 64 MB
@@ -242,6 +244,7 @@ EMAIL_BACKEND = 
'django.core.mail.backends.console.EmailBackend'
 
 # Wagtail related stuff
 WAGTAIL_SITE_NAME = 'Django Airavata Portal'
+WAGTAILADMIN_BASE_URL = 'http://localhost:8000'
 
 WAGTAILIMAGES_JPEG_QUALITY = 100
 
@@ -376,10 +379,6 @@ LOGGING = {
         'verbose': {
             'format': '[%(asctime)s %(name)s:%(lineno)d %(levelname)s] 
%(message)s',
         },
-        'verbose-safe': {
-            '()': 'anticrlf.LogFormatter',
-            'format': '[%(asctime)s %(name)s:%(lineno)d %(levelname)s] 
%(message)s',
-        },
     },
     'handlers': {
         # Log everything to the console when DEBUG=True
@@ -392,7 +391,7 @@ LOGGING = {
         'console': {
             'filters': ['require_debug_false'],
             'class': 'logging.StreamHandler',
-            'formatter': 'verbose-safe',
+            'formatter': 'verbose',
             'level': 'INFO'
         },
         'mail_admins': {
diff --git a/airavata-django-portal/django_airavata/urls.py 
b/airavata-django-portal/django_airavata/urls.py
index 5c0dcf78d..2612371d9 100644
--- a/airavata-django-portal/django_airavata/urls.py
+++ b/airavata-django-portal/django_airavata/urls.py
@@ -19,7 +19,7 @@ from django.conf.urls.static import static
 from django.contrib import admin
 from django.urls import 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..3952b6434 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 Revision as PageRevision
 
 
 class Command(BaseCommand):
@@ -11,10 +11,10 @@ class Command(BaseCommand):
     def handle(self, **options):
         fixed_count = 0
         for pr in PageRevision.objects.all():
-            content_json = json.loads(pr.content_json)
-            if content_json['content_type'] != pr.page.content_type.id:
+            content_json = json.loads(pr.content)
+            if pr.page and content_json['content_type'] != 
pr.page.content_type.id:
                 content_json['content_type'] = pr.page.content_type.id
-                pr.content_json = json.dumps(content_json)
+                pr.content = json.dumps(content_json)
                 pr.save()
                 fixed_count = fixed_count + 1
         if fixed_count > 0:
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..1f99f03ca 100644
--- a/airavata-django-portal/django_airavata/wagtailapps/base/models.py
+++ b/airavata-django-portal/django_airavata/wagtailapps/base/models.py
@@ -1,6 +1,7 @@
 from __future__ import unicode_literals
 
 import os
+from typing import Any
 
 from django.db import models
 from modelcluster.fields import ParentalKey
@@ -14,8 +15,8 @@ from wagtail.admin.edit_handlers import (
     StreamFieldPanel,
     TabbedInterface
 )
-from wagtail.core.fields import RichTextField, StreamField
-from wagtail.core.models import Orderable, Page
+from wagtail.fields import RichTextField, StreamField
+from wagtail.models import Orderable, Page
 from wagtail.images.edit_handlers import ImageChooserPanel
 from wagtail.snippets.models import register_snippet
 
@@ -165,14 +166,14 @@ class Navbar(models.Model):
         help_text='Provide a width for the logo',
         null=True,
         blank=True,
-        default='144',
+        default=144
     )
 
     logo_height = models.IntegerField(
         help_text='Provide a height for the logo',
         null=True,
         blank=True,
-        default='43'
+        default=43
     )
 
     logo_text = models.CharField(
@@ -391,8 +392,8 @@ class ExtraWebResources(ClusterableModel):
     def __str__(self):
         try:
             return "Extra Web Resources: {}".format(", ".join(
-                [os.path.basename(link.url) for link in self.css_links.all()] +
-                [os.path.basename(link.url) for link in self.js_links.all()]))
+                [os.path.basename(link.url) for link in self.css_links.all()] 
+  # type: ignore
+                [os.path.basename(link.url) for link in self.js_links.all()])) 
 # type: ignore
         except Exception:
             return "Extra Web Resources"
 
@@ -602,13 +603,13 @@ class HomePage(Page):
         choices=boolean_choices,
         max_length=5,
         help_text="Choose yes if you want to display the navbar on home page 
and no if you don't want to.",
-        default=True)
+        default="yes")
 
     show_nav_extra = models.CharField(
         choices=boolean_choices,
         max_length=5,
         help_text="Choose yes if you want the secondary navbar to show on home 
page or no if you don't want to",
-        default=True)
+        default="yes")
 
     show_footer = models.CharField(
         choices=boolean_choices,
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..d734b709b 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,
@@ -23,8 +23,8 @@ def get_site_root(context):
     # This returns a core.Page. The main menu needs to have the site.root_page
     # defined else will return an object attribute error ('str' object has no
     # attribute 'get_children')
-    return Site.find_for_request(context['request']).root_page
-
+    site = Site.find_for_request(context['request'])
+    return site.root_page if site else None
 
 def has_menu_children(page):
     # This is used by the top_menu property
@@ -92,8 +92,7 @@ def breadcrumbs(context):
         # When on the home page, displaying breadcrumbs is irrelevant.
         ancestors = ()
     else:
-        ancestors = Page.objects.ancestor_of(
-            self, inclusive=True).filter(depth__gt=1)
+        ancestors = self.get_ancestors(inclusive=True).filter(depth__gt=1)
     return {
         'ancestors': ancestors,
         'request': context['request'],
@@ -176,7 +175,7 @@ def main_menu_navs(context):
     if NavExtra.objects.first() is not None:
         nav_extra = NavExtra.objects.first()
         # only return the nav_items that have 'include_in_main_menu' == yes
-        if nav_extra.nav and len(nav_extra.nav) > 0:
+        if nav_extra and nav_extra.nav and len(nav_extra.nav) > 0:
             nav = nav_extra.nav[0]
             nav_items = nav.value['nav_items']
             nav_items = filter(lambda n: n.value['include_in_main_menu'] == 
'yes', nav_items)
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..fc0286b59 100644
--- a/airavata-django-portal/django_airavata/wagtailapps/base/wagtail_hooks.py
+++ b/airavata-django-portal/django_airavata/wagtailapps/base/wagtail_hooks.py
@@ -4,12 +4,12 @@ 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__)
 
 
[email protected]('register_rich_text_features')
[email protected]('register_rich_text_features') # type: ignore
 def register_custom_style_feature(features):
 
     features.default_features.insert(5, 'h1')
@@ -41,7 +41,7 @@ def register_custom_style_feature(features):
 DIRECT_SERVE_FILE_EXTENSIONS = ["pdf"]
 
 
[email protected]('before_serve_document')
[email protected]('before_serve_document') # type: ignore
 def direct_serve_document(document, request):
     try:
         file_extension = document.file.name.split(".")[-1]
diff --git a/airavata-django-portal/pyproject.toml 
b/airavata-django-portal/pyproject.toml
index 85888f50a..f4bd58d04 100644
--- a/airavata-django-portal/pyproject.toml
+++ b/airavata-django-portal/pyproject.toml
@@ -42,9 +42,7 @@ classifiers = [
 
 [project.optional-dependencies]
 dev = [
-    "flake8",
-    "flake8-isort",
-    "autopep8",
+    "ruff",
     "Markdown",
     "mkdocs",
     "mkautodoc",
@@ -76,4 +74,24 @@ skip_gitignore = true
 known_third_party = ["airavata", "airavata_django_portal_sdk"]
 
 [tool.setuptools.packages.find]
-where = ["airavata_django_portal_commons", "airavata_django_portal_sdk", 
"django_airavata"] 
\ No newline at end of file
+where = ["airavata_django_portal_commons", "airavata_django_portal_sdk", 
"django_airavata"] 
+
+[tool.ruff]
+line-length = 120
+
+[tool.ruff.lint]
+exclude = [
+    "venv",
+    "./airavata",
+    "node_modules",
+    "settings_local.py",
+    "*/migrations",
+    ".tox"
+]
+ignore = ["E501"]
+extend-select = ["I"]  # isort rules
+
+[tool.ruff.format]
+quote-style = "double"
+indent-style = "space"
+line-ending = "auto" 
\ No newline at end of file

Reply via email to