Skip to content

Commit

Permalink
feat: set edx.org theme as default for edx-platform and MFEs in devst…
Browse files Browse the repository at this point in the history
…ack provisioning
  • Loading branch information
mfarhan943 committed Nov 6, 2024
1 parent a10a269 commit d77cf27
Show file tree
Hide file tree
Showing 4 changed files with 56 additions and 1 deletion.
2 changes: 1 addition & 1 deletion microfrontend.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ services:
#
# Fail fast if package install fails to avoid mysterious
# errors later.
command: bash -c 'npm ci || exit 1; while true; do npm start; sleep 2; done'
command: bash -c 'npm ci || exit 1; if [ ! -z "$PARAGON_BRAND_PACKAGE" ]; then npx paragon install-theme "@$PARAGON_BRAND_PACKAGE" || exit 1; fi; while true; do npm start; sleep 2; done'
stdin_open: true
tty: true
image: node:18
Expand Down
5 changes: 5 additions & 0 deletions options.mk
Original file line number Diff line number Diff line change
Expand Up @@ -91,3 +91,8 @@ credentials+discovery+ecommerce+insights+lms+registrar+cms
# Separated by plus signs. Listed in alphabetical order for clarity.
THIRD_PARTY_SERVICES ?= \
chrome+coursegraph+elasticsearch710+firefox+memcached+mongo+mysql57+mysql80+opensearch12+redis+namenode+datanode+resourcemanager+nodemanager+sparkmaster+sparkworker+vertica

# Set default theme for MFEs
ifndef PARAGON_BRAND_PACKAGE
PARAGON_BRAND_PACKAGE = edx/brand-edx.org
endif
3 changes: 3 additions & 0 deletions provision-lms.sh
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,9 @@ done
# Fix missing vendor file by clearing the cache
# docker compose exec -T lms bash -e -c 'rm /edx/app/edxapp/edx-platform/.prereqs_cache/Node_prereqs.sha1'

# Set edX theme in LMS and CMS.
./provision-set-edx-theme.sh

# Create static assets for both LMS and CMS
for app in "${apps[@]}"; do
docker compose exec -T $app bash -e -c 'source /edx/app/edxapp/edxapp_env && cd /edx/app/edxapp/edx-platform && npm run build && ./manage.py lms collectstatic --noinput --settings devstack_docker && ./manage.py cms collectstatic --noinput --settings devstack_docker'
Expand Down
47 changes: 47 additions & 0 deletions provision-set-edx-theme.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
#!/usr/bin/env bash

# This script sets up the edX theme in LMS and CMS.

REPO_URL="https://github.com/edx/edx-themes"
THEME_DIR="/edx/src/edx-themes/edx-platform"
DEVSTACK_FILE="../edx-platform/lms/envs/devstack.py"

# Clone the edx-themes repository into the src directory
cd ../src
if [ ! -d "edx-themes" ]; then
git clone "$REPO_URL"
else
echo "Directory 'edx-themes' already exists. Skipping clone."
fi
cd ../devstack

# Uncomment relevant lines in the devstack.py file
sed -i '' "s|^# from .common import _make_mako_template_dirs|from .common import _make_mako_template_dirs|" "$DEVSTACK_FILE"
sed -i '' "s|^# ENABLE_COMPREHENSIVE_THEMING = True|ENABLE_COMPREHENSIVE_THEMING = True|" "$DEVSTACK_FILE"
sed -i '' "s|^# COMPREHENSIVE_THEME_DIRS = \[|COMPREHENSIVE_THEME_DIRS = \[|" "$DEVSTACK_FILE"
sed -i '' "s|^# \"/edx/app/edxapp/edx-platform/themes/\"| \"/edx/app/edxapp/edx-platform/themes/\",|" "$DEVSTACK_FILE"
sed -i '' "/COMPREHENSIVE_THEME_DIRS = \[/a\\
\"$THEME_DIR\",
" "$DEVSTACK_FILE"
sed -i '' "s|^# \]|]|" "$DEVSTACK_FILE" # Uncomment the closing bracket
sed -i '' "s|^# TEMPLATES\[1\]\[\"DIRS\"\] = _make_mako_template_dirs|TEMPLATES[1][\"DIRS\"] = _make_mako_template_dirs|" "$DEVSTACK_FILE"
sed -i '' "s|^# derive_settings(__name__)|derive_settings(__name__)|" "$DEVSTACK_FILE"


# Add the theme directory to COMPREHENSIVE_THEME_DIRS if not already present
if ! grep -qF "$THEME_DIR" "$DEVSTACK_FILE"; then
sed -i '' "/COMPREHENSIVE_THEME_DIRS = \[/a\\
\"$THEME_DIR\",
" "$DEVSTACK_FILE"
fi

# Set the theme site-wide
SERVICE_NAME="mysql80"
DATABASE="edxapp"
THEME_NAME="edx.org-next"
SITE_ID=1

docker compose exec -T "$SERVICE_NAME" mysql -e "
USE $DATABASE;
INSERT INTO theming_sitetheme (theme_dir_name, site_id) VALUES ('$THEME_NAME', $SITE_ID);
"

0 comments on commit d77cf27

Please sign in to comment.