You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by ya...@apache.org on 2025/07/18 19:31:16 UTC
(airavata-portals) 03/07: update code for manage.py migrate to work
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 <ya...@icloud.com>
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__)
-@hooks.register('register_rich_text_features')
+@hooks.register('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"]
-@hooks.register('before_serve_document')
+@hooks.register('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