Skip to content

Commit cdfa616

Browse files
Merge pull request #67 from edx/farhan/default-edx-theme
Set edx.org theme as default for edx-platform and MFEs
2 parents ec3bd77 + e2e7a62 commit cdfa616

File tree

4 files changed

+86
-1
lines changed

4 files changed

+86
-1
lines changed

docker-compose.yml

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -860,6 +860,8 @@ services:
860860
service: microfrontend
861861
working_dir: '/edx/app/frontend-app-account'
862862
container_name: "edx.${COMPOSE_PROJECT_NAME:-devstack}.frontend-app-account"
863+
environment:
864+
PARAGON_BRAND_PACKAGE: '@edx/[email protected]'
863865
networks:
864866
default:
865867
aliases:
@@ -875,6 +877,8 @@ services:
875877
service: microfrontend
876878
working_dir: '/edx/app/frontend-app-profile'
877879
container_name: "edx.${COMPOSE_PROJECT_NAME:-devstack}.frontend-app-profile"
880+
environment:
881+
PARAGON_BRAND_PACKAGE: '@edx/brand-edx.org@~2.0.0'
878882
networks:
879883
default:
880884
aliases:
@@ -890,6 +894,8 @@ services:
890894
service: microfrontend
891895
working_dir: '/edx/app/frontend-app-authn'
892896
container_name: "edx.${COMPOSE_PROJECT_NAME:-devstack}.frontend-app-authn"
897+
environment:
898+
PARAGON_BRAND_PACKAGE: '@edx/[email protected]'
893899
networks:
894900
default:
895901
aliases:
@@ -905,6 +911,8 @@ services:
905911
service: microfrontend
906912
working_dir: '/edx/app/frontend-app-course-authoring'
907913
container_name: "edx.${COMPOSE_PROJECT_NAME:-devstack}.frontend-app-course-authoring"
914+
environment:
915+
PARAGON_BRAND_PACKAGE: '@edx/[email protected]'
908916
networks:
909917
default:
910918
aliases:
@@ -935,6 +943,8 @@ services:
935943
service: microfrontend
936944
working_dir: '/edx/app/frontend-app-ora-grading'
937945
container_name: "edx.${COMPOSE_PROJECT_NAME:-devstack}.frontend-app-ora-grading"
946+
environment:
947+
PARAGON_BRAND_PACKAGE: '@edx/[email protected]'
938948
networks:
939949
default:
940950
aliases:
@@ -950,6 +960,8 @@ services:
950960
service: microfrontend
951961
working_dir: '/edx/app/frontend-app-learner-dashboard'
952962
container_name: "edx.${COMPOSE_PROJECT_NAME:-devstack}.frontend-app-learner-dashboard"
963+
environment:
964+
PARAGON_BRAND_PACKAGE: '@edx/[email protected]'
953965
networks:
954966
default:
955967
aliases:
@@ -965,6 +977,8 @@ services:
965977
service: microfrontend
966978
working_dir: '/edx/app/frontend-app-learner-record'
967979
container_name: "edx.${COMPOSE_PROJECT_NAME:-devstack}.frontend-app-learner-record"
980+
environment:
981+
PARAGON_BRAND_PACKAGE: '@edx/brand-edx.org@~2.0.0'
968982
networks:
969983
default:
970984
aliases:
@@ -980,6 +994,8 @@ services:
980994
service: microfrontend
981995
working_dir: '/edx/app/frontend-app-learning'
982996
container_name: "edx.${COMPOSE_PROJECT_NAME:-devstack}.frontend-app-learning"
997+
environment:
998+
PARAGON_BRAND_PACKAGE: '@edx/[email protected]'
983999
networks:
9841000
default:
9851001
aliases:
@@ -995,6 +1011,8 @@ services:
9951011
service: microfrontend
9961012
working_dir: '/edx/app/frontend-app-library-authoring'
9971013
container_name: "edx.${COMPOSE_PROJECT_NAME:-devstack}.frontend-app-library-authoring"
1014+
environment:
1015+
PARAGON_BRAND_PACKAGE: '@edx/[email protected]'
9981016
networks:
9991017
default:
10001018
aliases:
@@ -1011,6 +1029,8 @@ services:
10111029
service: microfrontend
10121030
working_dir: '/edx/app/frontend-app-payment'
10131031
container_name: "edx.${COMPOSE_PROJECT_NAME:-devstack}.frontend-app-payment"
1032+
environment:
1033+
PARAGON_BRAND_PACKAGE: '@edx/brand-edx.org@^2.0.6'
10141034
networks:
10151035
default:
10161036
aliases:
@@ -1026,6 +1046,8 @@ services:
10261046
service: microfrontend
10271047
working_dir: '/edx/app/frontend-app-program-console'
10281048
container_name: "edx.${COMPOSE_PROJECT_NAME:-devstack}.frontend-app-program-console"
1049+
environment:
1050+
PARAGON_BRAND_PACKAGE: '@edx/[email protected]'
10291051
networks:
10301052
default:
10311053
aliases:
@@ -1042,6 +1064,8 @@ services:
10421064
service: microfrontend
10431065
working_dir: '/edx/app/frontend-app-publisher'
10441066
container_name: "edx.${COMPOSE_PROJECT_NAME:-devstack}.frontend-app-publisher"
1067+
environment:
1068+
PARAGON_BRAND_PACKAGE: '@edx/[email protected]'
10451069
networks:
10461070
default:
10471071
aliases:

microfrontend.yml

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,18 @@ services:
1616
#
1717
# Fail fast if package install fails to avoid mysterious
1818
# errors later.
19-
command: bash -c 'npm ci || exit 1; while true; do npm start; sleep 2; done'
19+
command:
20+
- bash
21+
- -c
22+
- |
23+
npm ci || exit 1
24+
if [ -n "$(printenv PARAGON_BRAND_PACKAGE)" ]; then
25+
npx paragon install-theme "$(printenv PARAGON_BRAND_PACKAGE)" || exit 1
26+
fi
27+
while true; do
28+
npm start
29+
sleep 2
30+
done
2031
stdin_open: true
2132
tty: true
2233
image: node:18

provision-lms.sh

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,9 @@ done
7777
# Fix missing vendor file by clearing the cache
7878
# docker compose exec -T lms bash -e -c 'rm /edx/app/edxapp/edx-platform/.prereqs_cache/Node_prereqs.sha1'
7979

80+
# Set edX theme in LMS and CMS.
81+
./provision-set-edx-theme.sh
82+
8083
# Create static assets for both LMS and CMS
8184
for app in "${apps[@]}"; do
8285
make "dev.static.$app"

provision-set-edx-theme.sh

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
#!/usr/bin/env bash
2+
3+
# This script sets up the edX theme in LMS and CMS.
4+
5+
REPO_URL="https://github.com/edx/edx-themes"
6+
THEME_DIR="/edx/src/edx-themes/edx-platform"
7+
DEVSTACK_FILE="../edx-platform/lms/envs/devstack.py"
8+
9+
# Clone the edx-themes repository into the src directory
10+
cd ../src
11+
if [ ! -d "edx-themes" ]; then
12+
git clone "$REPO_URL"
13+
else
14+
echo "Directory 'edx-themes' already exists. Skipping clone."
15+
fi
16+
cd ../devstack
17+
18+
# Uncomment relevant lines in the devstack.py file
19+
sed -i '' "s|^# from .common import _make_mako_template_dirs|from .common import _make_mako_template_dirs|" "$DEVSTACK_FILE"
20+
sed -i '' "s|^# ENABLE_COMPREHENSIVE_THEMING = True|ENABLE_COMPREHENSIVE_THEMING = True|" "$DEVSTACK_FILE"
21+
sed -i '' "s|^# COMPREHENSIVE_THEME_DIRS = \[|COMPREHENSIVE_THEME_DIRS = \[|" "$DEVSTACK_FILE"
22+
sed -i '' "s|^# \"/edx/app/edxapp/edx-platform/themes/\"| \"/edx/app/edxapp/edx-platform/themes/\",|" "$DEVSTACK_FILE"
23+
sed -i '' "/COMPREHENSIVE_THEME_DIRS = \[/a\\
24+
\"$THEME_DIR\",
25+
" "$DEVSTACK_FILE"
26+
sed -i '' "s|^# \]|]|" "$DEVSTACK_FILE"
27+
sed -i '' "s|^# TEMPLATES\[1\]\[\"DIRS\"\] = _make_mako_template_dirs|TEMPLATES[1][\"DIRS\"] = _make_mako_template_dirs|" "$DEVSTACK_FILE"
28+
sed -i '' "s|^# derive_settings(__name__)|derive_settings(__name__)|" "$DEVSTACK_FILE"
29+
30+
31+
# Add the theme directory to COMPREHENSIVE_THEME_DIRS if not already present
32+
if ! grep -qF "$THEME_DIR" "$DEVSTACK_FILE"; then
33+
sed -i '' "/COMPREHENSIVE_THEME_DIRS = \[/a\\
34+
\"$THEME_DIR\",
35+
" "$DEVSTACK_FILE"
36+
fi
37+
38+
# Set the theme site-wide
39+
SERVICE_NAME="mysql80"
40+
DATABASE="edxapp"
41+
THEME_NAME="edx.org-next"
42+
SITE_ID=1
43+
44+
docker compose exec -T "$SERVICE_NAME" mysql -e "
45+
USE $DATABASE;
46+
INSERT INTO theming_sitetheme (theme_dir_name, site_id) VALUES ('$THEME_NAME', $SITE_ID);
47+
"

0 commit comments

Comments
 (0)