You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by ma...@apache.org on 2023/09/25 17:47:45 UTC
[airavata-django-portal] 01/01: AIRAVATA-3698 management command to fix up the content type id in page revision json
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 <ma...@apache.org>
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: