This is an automated email from the ASF dual-hosted git repository. machristie pushed a commit to branch AIRAVATA-3698-fix-page-revision-content-type in repository https://gitbox.apache.org/repos/asf/airavata-django-portal.git
commit dd41406b112c7a6d5d2af74901f6de291b733ade Author: Marcus Christie <[email protected]> AuthorDate: Mon Sep 25 13:46:32 2023 -0400 AIRAVATA-3698 management command to fix up the content type id in page revision json --- .../commands/fix_page_revision_content_type.py | 23 ++++++++++++++++++++ .../base/management/commands/load_cms_data.py | 5 ++++- .../management/commands/load_cybergateway_data.py | 25 ---------------------- .../management/commands/load_default_gateway.py | 25 ---------------------- .../management/commands/load_hpcgateway_data.py | 25 ---------------------- .../commands/load_nanoconfinement_data.py | 25 ---------------------- .../base/management/commands/load_osu_data.py | 25 ---------------------- .../base/management/commands/load_phasta_data.py | 25 ---------------------- .../base/management/commands/load_seagrid_data.py | 25 ---------------------- .../management/commands/load_searching_sra_data.py | 25 ---------------------- .../base/management/commands/load_simccs_data.py | 25 ---------------------- .../management/commands/load_simvascular_data.py | 25 ---------------------- .../base/management/commands/load_siu_data.py | 25 ---------------------- .../management/commands/load_south_dakota_data.py | 25 ---------------------- .../base/management/commands/set_wagtail_site.py | 6 +++--- 15 files changed, 30 insertions(+), 304 deletions(-) diff --git a/django_airavata/wagtailapps/base/management/commands/fix_page_revision_content_type.py b/django_airavata/wagtailapps/base/management/commands/fix_page_revision_content_type.py new file mode 100644 index 00000000..5cd2d926 --- /dev/null +++ b/django_airavata/wagtailapps/base/management/commands/fix_page_revision_content_type.py @@ -0,0 +1,23 @@ + +import json + +from django.core.management.base import BaseCommand +from wagtail.core.models import PageRevision + + +class Command(BaseCommand): + help = "Fix the content_type id in the page revisions content_type which may be correct due to being imported from a different Django instance" + + 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['content_type'] = pr.page.content_type.id + pr.content_json = json.dumps(content_json) + pr.save() + fixed_count = fixed_count + 1 + if fixed_count > 0: + self.stdout.write( + self.style.SUCCESS(f"Successfully fixed the content type of {fixed_count} page revisions") + ) diff --git a/django_airavata/wagtailapps/base/management/commands/load_cms_data.py b/django_airavata/wagtailapps/base/management/commands/load_cms_data.py index fa8e1171..57c63fbc 100644 --- a/django_airavata/wagtailapps/base/management/commands/load_cms_data.py +++ b/django_airavata/wagtailapps/base/management/commands/load_cms_data.py @@ -35,5 +35,8 @@ class Command(BaseCommand): call_command('loaddata', fixture_file, verbosity=0) call_command('set_wagtail_site') + call_command('fix_page_revision_content_type') - print(f"{options['filename']} is loaded successfully....!") + self.stdout.write( + self.style.SUCCESS(f"{options['filename']} is loaded successfully....!") + ) diff --git a/django_airavata/wagtailapps/base/management/commands/load_cybergateway_data.py b/django_airavata/wagtailapps/base/management/commands/load_cybergateway_data.py deleted file mode 100644 index bab1d3af..00000000 --- a/django_airavata/wagtailapps/base/management/commands/load_cybergateway_data.py +++ /dev/null @@ -1,25 +0,0 @@ -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 - - -class Command(BaseCommand): - def handle(self, **options): - fixtures_dir = os.path.join( - settings.BASE_DIR, 'django_airavata', 'wagtailapps', 'base', 'fixtures') - fixture_file = os.path.join(fixtures_dir, 'cybergateway.json') - - # Wagtail creates default Site and Page instances during install, but we already have - # them in the data load. Remove the auto-generated ones. - if Site.objects.filter(hostname='localhost').exists(): - Site.objects.get(hostname='localhost').delete() - if Page.objects.filter(title='Welcome to your new Wagtail site!').exists(): - Page.objects.get( - title='Welcome to your new Wagtail site!').delete() - - call_command('loaddata', fixture_file, verbosity=0) - - print("IU Cybergateway Gateway data is loaded successfully....!") diff --git a/django_airavata/wagtailapps/base/management/commands/load_default_gateway.py b/django_airavata/wagtailapps/base/management/commands/load_default_gateway.py deleted file mode 100644 index 6640f3c6..00000000 --- a/django_airavata/wagtailapps/base/management/commands/load_default_gateway.py +++ /dev/null @@ -1,25 +0,0 @@ -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 - - -class Command(BaseCommand): - def handle(self, **options): - fixtures_dir = os.path.join( - settings.BASE_DIR, 'django_airavata', 'wagtailapps', 'base', 'fixtures') - fixture_file = os.path.join(fixtures_dir, 'default.json') - - # Wagtail creates default Site and Page instances during install, but we already have - # them in the data load. Remove the auto-generated ones. - if Site.objects.filter(hostname='localhost').exists(): - Site.objects.get(hostname='localhost').delete() - if Page.objects.filter(title='Welcome to your new Wagtail site!').exists(): - Page.objects.get( - title='Welcome to your new Wagtail site!').delete() - - call_command('loaddata', fixture_file, verbosity=0) - - print("Default Gateway data is loaded successfully....!") diff --git a/django_airavata/wagtailapps/base/management/commands/load_hpcgateway_data.py b/django_airavata/wagtailapps/base/management/commands/load_hpcgateway_data.py deleted file mode 100644 index d9c815f1..00000000 --- a/django_airavata/wagtailapps/base/management/commands/load_hpcgateway_data.py +++ /dev/null @@ -1,25 +0,0 @@ -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 - - -class Command(BaseCommand): - def handle(self, **options): - fixtures_dir = os.path.join( - settings.BASE_DIR, 'django_airavata', 'wagtailapps', 'base', 'fixtures') - fixture_file = os.path.join(fixtures_dir, 'hpcgateway.json') - - # Wagtail creates default Site and Page instances during install, but we already have - # them in the data load. Remove the auto-generated ones. - if Site.objects.filter(hostname='localhost').exists(): - Site.objects.get(hostname='localhost').delete() - if Page.objects.filter(title='Welcome to your new Wagtail site!').exists(): - Page.objects.get( - title='Welcome to your new Wagtail site!').delete() - - call_command('loaddata', fixture_file, verbosity=0) - - print("HPC Gateway data is loaded successfully....!") diff --git a/django_airavata/wagtailapps/base/management/commands/load_nanoconfinement_data.py b/django_airavata/wagtailapps/base/management/commands/load_nanoconfinement_data.py deleted file mode 100644 index ee667945..00000000 --- a/django_airavata/wagtailapps/base/management/commands/load_nanoconfinement_data.py +++ /dev/null @@ -1,25 +0,0 @@ -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 - - -class Command(BaseCommand): - def handle(self, **options): - fixtures_dir = os.path.join( - settings.BASE_DIR, 'django_airavata', 'wagtailapps', 'base', 'fixtures') - fixture_file = os.path.join(fixtures_dir, 'nanoconfinement.json') - - # Wagtail creates default Site and Page instances during install, but we already have - # them in the data load. Remove the auto-generated ones. - if Site.objects.filter(hostname='localhost').exists(): - Site.objects.get(hostname='localhost').delete() - if Page.objects.filter(title='Welcome to your new Wagtail site!').exists(): - Page.objects.get( - title='Welcome to your new Wagtail site!').delete() - - call_command('loaddata', fixture_file, verbosity=0) - - print("Nanoconfinement Gateway data is loaded successfully....!") diff --git a/django_airavata/wagtailapps/base/management/commands/load_osu_data.py b/django_airavata/wagtailapps/base/management/commands/load_osu_data.py deleted file mode 100644 index aaa1e086..00000000 --- a/django_airavata/wagtailapps/base/management/commands/load_osu_data.py +++ /dev/null @@ -1,25 +0,0 @@ -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 - - -class Command(BaseCommand): - def handle(self, **options): - fixtures_dir = os.path.join( - settings.BASE_DIR, 'django_airavata', 'wagtailapps', 'base', 'fixtures') - fixture_file = os.path.join(fixtures_dir, 'osu.json') - - # Wagtail creates default Site and Page instances during install, but we already have - # them in the data load. Remove the auto-generated ones. - if Site.objects.filter(hostname='localhost').exists(): - Site.objects.get(hostname='localhost').delete() - if Page.objects.filter(title='Welcome to your new Wagtail site!').exists(): - Page.objects.get( - title='Welcome to your new Wagtail site!').delete() - - call_command('loaddata', fixture_file, verbosity=0) - - print("OSU(Oklahoma state University) data is loaded successfully....!") diff --git a/django_airavata/wagtailapps/base/management/commands/load_phasta_data.py b/django_airavata/wagtailapps/base/management/commands/load_phasta_data.py deleted file mode 100644 index 814e628c..00000000 --- a/django_airavata/wagtailapps/base/management/commands/load_phasta_data.py +++ /dev/null @@ -1,25 +0,0 @@ -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 - - -class Command(BaseCommand): - def handle(self, **options): - fixtures_dir = os.path.join( - settings.BASE_DIR, 'django_airavata', 'wagtailapps', 'base', 'fixtures') - fixture_file = os.path.join(fixtures_dir, 'phasta.json') - - # Wagtail creates default Site and Page instances during install, but we already have - # them in the data load. Remove the auto-generated ones. - if Site.objects.filter(hostname='localhost').exists(): - Site.objects.get(hostname='localhost').delete() - if Page.objects.filter(title='Welcome to your new Wagtail site!').exists(): - Page.objects.get( - title='Welcome to your new Wagtail site!').delete() - - call_command('loaddata', fixture_file, verbosity=0) - - print("PHASTA data is loaded successfully....!") diff --git a/django_airavata/wagtailapps/base/management/commands/load_seagrid_data.py b/django_airavata/wagtailapps/base/management/commands/load_seagrid_data.py deleted file mode 100644 index 228b99dc..00000000 --- a/django_airavata/wagtailapps/base/management/commands/load_seagrid_data.py +++ /dev/null @@ -1,25 +0,0 @@ -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 - - -class Command(BaseCommand): - def handle(self, **options): - fixtures_dir = os.path.join( - settings.BASE_DIR, 'django_airavata', 'wagtailapps', 'base', 'fixtures') - fixture_file = os.path.join(fixtures_dir, 'seagrid.json') - - # Wagtail creates default Site and Page instances during install, but we already have - # them in the data load. Remove the auto-generated ones. - if Site.objects.filter(hostname='localhost').exists(): - Site.objects.get(hostname='localhost').delete() - if Page.objects.filter(title='Welcome to your new Wagtail site!').exists(): - Page.objects.get( - title='Welcome to your new Wagtail site!').delete() - - call_command('loaddata', fixture_file, verbosity=0) - - print("Seagrid data is loaded successfully....!") diff --git a/django_airavata/wagtailapps/base/management/commands/load_searching_sra_data.py b/django_airavata/wagtailapps/base/management/commands/load_searching_sra_data.py deleted file mode 100644 index 109dc4a3..00000000 --- a/django_airavata/wagtailapps/base/management/commands/load_searching_sra_data.py +++ /dev/null @@ -1,25 +0,0 @@ -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 - - -class Command(BaseCommand): - def handle(self, **options): - fixtures_dir = os.path.join( - settings.BASE_DIR, 'django_airavata', 'wagtailapps', 'base', 'fixtures') - fixture_file = os.path.join(fixtures_dir, 'searchingsra.json') - - # Wagtail creates default Site and Page instances during install, but we already have - # them in the data load. Remove the auto-generated ones. - if Site.objects.filter(hostname='localhost').exists(): - Site.objects.get(hostname='localhost').delete() - if Page.objects.filter(title='Welcome to your new Wagtail site!').exists(): - Page.objects.get( - title='Welcome to your new Wagtail site!').delete() - - call_command('loaddata', fixture_file, verbosity=0) - - print("Searching SRA data is loaded successfully....!") diff --git a/django_airavata/wagtailapps/base/management/commands/load_simccs_data.py b/django_airavata/wagtailapps/base/management/commands/load_simccs_data.py deleted file mode 100644 index 3973e578..00000000 --- a/django_airavata/wagtailapps/base/management/commands/load_simccs_data.py +++ /dev/null @@ -1,25 +0,0 @@ -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 - - -class Command(BaseCommand): - def handle(self, **options): - fixtures_dir = os.path.join( - settings.BASE_DIR, 'django_airavata', 'wagtailapps', 'base', 'fixtures') - fixture_file = os.path.join(fixtures_dir, 'simccs.json') - - # Wagtail creates default Site and Page instances during install, but we already have - # them in the data load. Remove the auto-generated ones. - if Site.objects.filter(hostname='localhost').exists(): - Site.objects.get(hostname='localhost').delete() - if Page.objects.filter(title='Welcome to your new Wagtail site!').exists(): - Page.objects.get( - title='Welcome to your new Wagtail site!').delete() - - call_command('loaddata', fixture_file, verbosity=0) - - print("SimCCS data is loaded successfully....!") diff --git a/django_airavata/wagtailapps/base/management/commands/load_simvascular_data.py b/django_airavata/wagtailapps/base/management/commands/load_simvascular_data.py deleted file mode 100644 index 3a8bd970..00000000 --- a/django_airavata/wagtailapps/base/management/commands/load_simvascular_data.py +++ /dev/null @@ -1,25 +0,0 @@ -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 - - -class Command(BaseCommand): - def handle(self, **options): - fixtures_dir = os.path.join( - settings.BASE_DIR, 'django_airavata', 'wagtailapps', 'base', 'fixtures') - fixture_file = os.path.join(fixtures_dir, 'simvascular.json') - - # Wagtail creates default Site and Page instances during install, but we already have - # them in the data load. Remove the auto-generated ones. - if Site.objects.filter(hostname='localhost').exists(): - Site.objects.get(hostname='localhost').delete() - if Page.objects.filter(title='Welcome to your new Wagtail site!').exists(): - Page.objects.get( - title='Welcome to your new Wagtail site!').delete() - - call_command('loaddata', fixture_file, verbosity=0) - - print("Simvascular data is loaded successfully....!") diff --git a/django_airavata/wagtailapps/base/management/commands/load_siu_data.py b/django_airavata/wagtailapps/base/management/commands/load_siu_data.py deleted file mode 100644 index 3a746a88..00000000 --- a/django_airavata/wagtailapps/base/management/commands/load_siu_data.py +++ /dev/null @@ -1,25 +0,0 @@ -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 - - -class Command(BaseCommand): - def handle(self, **options): - fixtures_dir = os.path.join( - settings.BASE_DIR, 'django_airavata', 'wagtailapps', 'base', 'fixtures') - fixture_file = os.path.join(fixtures_dir, 'siu.json') - - # Wagtail creates default Site and Page instances during install, but we already have - # them in the data load. Remove the auto-generated ones. - if Site.objects.filter(hostname='localhost').exists(): - Site.objects.get(hostname='localhost').delete() - if Page.objects.filter(title='Welcome to your new Wagtail site!').exists(): - Page.objects.get( - title='Welcome to your new Wagtail site!').delete() - - call_command('loaddata', fixture_file, verbosity=0) - - print("SIU (Southern Illinois University) data is loaded successfully....!") diff --git a/django_airavata/wagtailapps/base/management/commands/load_south_dakota_data.py b/django_airavata/wagtailapps/base/management/commands/load_south_dakota_data.py deleted file mode 100644 index 2d4a7604..00000000 --- a/django_airavata/wagtailapps/base/management/commands/load_south_dakota_data.py +++ /dev/null @@ -1,25 +0,0 @@ -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 - - -class Command(BaseCommand): - def handle(self, **options): - fixtures_dir = os.path.join( - settings.BASE_DIR, 'django_airavata', 'wagtailapps', 'base', 'fixtures') - fixture_file = os.path.join(fixtures_dir, 'southdakota.json') - - # Wagtail creates default Site and Page instances during install, but we already have - # them in the data load. Remove the auto-generated ones. - if Site.objects.filter(hostname='localhost').exists(): - Site.objects.get(hostname='localhost').delete() - if Page.objects.filter(title='Welcome to your new Wagtail site!').exists(): - Page.objects.get( - title='Welcome to your new Wagtail site!').delete() - - call_command('loaddata', fixture_file, verbosity=0) - - print("South Dakota data is loaded successfully....!") diff --git a/django_airavata/wagtailapps/base/management/commands/set_wagtail_site.py b/django_airavata/wagtailapps/base/management/commands/set_wagtail_site.py index 914858b1..079d13a3 100644 --- a/django_airavata/wagtailapps/base/management/commands/set_wagtail_site.py +++ b/django_airavata/wagtailapps/base/management/commands/set_wagtail_site.py @@ -25,16 +25,16 @@ class Command(BaseCommand): if site_root is None: raise Exception("Could not find site root page!") else: - print(f"Setting root page to {site_root.title}") + self.stdout.write(f"Setting root page to {site_root.title}") Site.objects.create( hostname=hostname, is_default_site=True, site_name=settings.PORTAL_TITLE, root_page=site_root ) - print(f"Created Site object for domain {hostname}") + self.stdout.write(f"Created Site object for domain {hostname}") else: - print(f"Site object for domain {hostname} already exists") + self.stdout.write(f"Site object for domain {hostname} already exists") def find_root_airavata_page(self, pages): for page in pages:
