Skip to content

Commit 059b0ea

Browse files
aclark4lifeCopilot
andcommitted
Move wagtail setup to script to avoid just parsing Python code
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 parent 7cb604d commit 059b0ea

2 files changed

Lines changed: 36 additions & 21 deletions

File tree

src/dbx_python_cli/templates/project_template/justfile

Lines changed: 1 addition & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -66,27 +66,7 @@ django-setup:
6666
#!/usr/bin/env sh
6767
export DJANGO_SETTINGS_MODULE={{ project_name }}.settings.{{ project_name }}
6868
python manage.py migrate
69-
python -c "
70-
import os, django
71-
os.environ.setdefault('DJANGO_SETTINGS_MODULE', '{{ project_name }}.settings.{{ project_name }}')
72-
django.setup()
73-
try:
74-
from wagtail.models import Page
75-
if not Page.objects.filter(depth=1).exists():
76-
from django.conf import settings as s
77-
from django.contrib.contenttypes.models import ContentType
78-
from wagtail.models import Locale, Site
79-
lang = (getattr(s, 'LANGUAGE_CODE', 'en') or 'en').split('-')[0][:2]
80-
locale, _ = Locale.objects.get_or_create(language_code=lang)
81-
ct, _ = ContentType.objects.get_or_create(app_label='wagtailcore', model='page')
82-
root = Page.add_root(title='Root', slug='root', content_type=ct, locale=locale)
83-
home = root.add_child(title='Home', slug='home', content_type=ct, locale=locale)
84-
if not Site.objects.exists():
85-
Site.objects.create(hostname='localhost', root_page=home, is_default_site=True)
86-
print('Wagtail root page and site created.')
87-
except ImportError:
88-
pass
89-
"
69+
python scripts/wagtail_setup.py
9070
export DJANGO_SUPERUSER_PASSWORD=admin && python manage.py createsuperuser --noinput --username=admin --email=admin@example.com || true
9171
alias setup := django-setup
9272

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
"""
2+
Create Wagtail root page, home page, default site, and superuser if they don't exist.
3+
Run with: python scripts/wagtail_setup.py
4+
"""
5+
import os
6+
import sys
7+
8+
import django
9+
10+
django.setup()
11+
12+
try:
13+
from wagtail.models import Page
14+
15+
if not Page.objects.filter(depth=1).exists():
16+
from django.conf import settings as s
17+
from django.contrib.contenttypes.models import ContentType
18+
from wagtail.models import Locale, Site
19+
20+
lang = (getattr(s, "LANGUAGE_CODE", "en") or "en").split("-")[0][:2]
21+
locale, _ = Locale.objects.get_or_create(language_code=lang)
22+
ct, _ = ContentType.objects.get_or_create(app_label="wagtailcore", model="page")
23+
root = Page.add_root(title="Root", slug="root", content_type=ct, locale=locale)
24+
home = root.add_child(title="Home", slug="home", content_type=ct, locale=locale)
25+
print("✅ Wagtail root page and home page created.")
26+
if not Site.objects.exists():
27+
Site.objects.create(hostname="localhost", root_page=home, is_default_site=True)
28+
print("✅ Wagtail default site created.")
29+
else:
30+
print("ℹ️ Wagtail root page already exists, skipping.")
31+
except ImportError:
32+
print("ℹ️ Wagtail not installed, skipping setup.")
33+
except Exception as e:
34+
print(f"⚠️ Wagtail setup error: {e}", file=sys.stderr)
35+
sys.exit(1)

0 commit comments

Comments
 (0)