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
