`__ static template in edx-platform:
.. code-block:: mako
diff --git a/setup.py b/setup.py
index 6cdca5a7e..2a27cb9bd 100644
--- a/setup.py
+++ b/setup.py
@@ -45,8 +45,8 @@ def load_about():
packages=find_packages(exclude=["tests*"]),
include_package_data=True,
python_requires=">=3.9",
- install_requires=["tutor>=18.0.0,<19.0.0", "tutor-mfe>=18.0.0,<19.0.0"],
- extras_require={"dev": "tutor[dev]>=18.0.0,<19.0.0"},
+ install_requires=["tutor>=19.0.0,<20.0.0", "tutor-mfe>=19.0.0,<20.0.0"],
+ extras_require={"dev": "tutor[dev]>=19.0.0,<20.0.0"},
entry_points={"tutor.plugin.v1": ["indigo = tutorindigo.plugin"]},
classifiers=[
"Development Status :: 5 - Production/Stable",
diff --git a/tutorindigo/__about__.py b/tutorindigo/__about__.py
index 22ed76922..0122a6fac 100644
--- a/tutorindigo/__about__.py
+++ b/tutorindigo/__about__.py
@@ -1 +1 @@
-__version__ = "18.3.0"
+__version__ = "19.0.0"
diff --git a/tutorindigo/templates/indigo/env.config.jsx b/tutorindigo/patches/mfe-env-config-buildtime-definitions
similarity index 75%
rename from tutorindigo/templates/indigo/env.config.jsx
rename to tutorindigo/patches/mfe-env-config-buildtime-definitions
index ca3b70448..96bf159bf 100644
--- a/tutorindigo/templates/indigo/env.config.jsx
+++ b/tutorindigo/patches/mfe-env-config-buildtime-definitions
@@ -1,9 +1,4 @@
-import React, { useEffect } from 'react';
-import Cookies from 'universal-cookie';
-import Footer from '@edly-io/indigo-frontend-component-footer';
-import { getConfig } from '@edx/frontend-platform';
-import { DIRECT_PLUGIN, PLUGIN_OPERATIONS } from '@openedx/frontend-plugin-framework';
let themeCookie = 'indigo-toggle-dark';
let themeCookieExpiry = 90; // days
@@ -70,35 +65,3 @@ const AddDarkTheme = () => {
return ();
};
-
-const themePluginSlot = {
- keepDefault: false,
- plugins: [
- {
- op: PLUGIN_OPERATIONS.Insert,
- widget: {
- id: 'default_contents',
- type: DIRECT_PLUGIN,
- priority: 1,
- RenderWidget: ,
- },
- },
- {
- op: PLUGIN_OPERATIONS.Insert,
- widget: {
- id: 'read_theme_cookie',
- type: DIRECT_PLUGIN,
- priority: 2,
- RenderWidget: AddDarkTheme,
- },
- },
- ],
-};
-
-const config = {
- pluginSlots: {
- footer_slot: themePluginSlot,
- },
-};
-
-export default config;
diff --git a/tutorindigo/patches/mfe-env-config-buildtime-imports b/tutorindigo/patches/mfe-env-config-buildtime-imports
new file mode 100644
index 000000000..911c11c73
--- /dev/null
+++ b/tutorindigo/patches/mfe-env-config-buildtime-imports
@@ -0,0 +1,4 @@
+import React, { useEffect } from 'react';
+import Cookies from 'universal-cookie';
+
+import { getConfig } from '@edx/frontend-platform';
diff --git a/tutorindigo/patches/mfe-env-config-runtime-definitions b/tutorindigo/patches/mfe-env-config-runtime-definitions
new file mode 100644
index 000000000..2204c7301
--- /dev/null
+++ b/tutorindigo/patches/mfe-env-config-runtime-definitions
@@ -0,0 +1,2 @@
+
+const { default: IndigoFooter } = await import('@edly-io/indigo-frontend-component-footer');
diff --git a/tutorindigo/plugin.py b/tutorindigo/plugin.py
index 1a3311dd4..19aea2651 100644
--- a/tutorindigo/plugin.py
+++ b/tutorindigo/plugin.py
@@ -1,10 +1,12 @@
from __future__ import annotations
import os
+from glob import glob
import typing as t
import importlib_resources
from tutor import hooks
+from tutormfe.hooks import PLUGIN_SLOTS
from tutor.__about__ import __version_suffix__
from .__about__ import __version__
@@ -102,68 +104,37 @@ def _override_openedx_docker_image(
hooks.Filters.CONFIG_OVERRIDES.add_items(list(config["overrides"].items()))
+# MFEs that are styled using Indigo
+indigo_styled_mfes = [
+ "learning",
+ "learner-dashboard",
+ "profile",
+ "account",
+ "discussions",
+]
+
hooks.Filters.ENV_PATCHES.add_items(
[
- # MFE will install header version 3.0.x and will include indigo-footer as a
- # separate package for use in env.config.jsx
(
- "mfe-dockerfile-post-npm-install-learning",
+ f"mfe-dockerfile-post-npm-install-{mfe}",
"""
-RUN npm install '@edx/brand@npm:@edly-io/indigo-brand-openedx@^2.1.1'
-RUN npm install '@edx/frontend-component-header@npm:@edly-io/indigo-frontend-component-header@^3.1.3'
+
RUN npm install @edly-io/indigo-frontend-component-footer@^2.0.0
+RUN npm install '@edx/frontend-component-header@npm:@edly-io/indigo-frontend-component-header@^3.2.2'
+RUN npm install '@edx/brand@npm:@edly-io/indigo-brand-openedx@^2.2.2'
-COPY indigo/env.config.jsx /openedx/app/
-""",
- ),
- (
- "mfe-dockerfile-post-npm-install-authn",
- """
-RUN npm install '@edx/brand@npm:@edly-io/indigo-brand-openedx@^2.1.1'
""",
- ),
- # Tutor-Indigo v2.1 targets the styling updates in discussions and learner-dashboard MFE
- # brand-openedx is related to styling updates while others are for header and footer updates
- (
- "mfe-dockerfile-post-npm-install-discussions",
- """
-RUN npm install '@edx/brand@npm:@edly-io/indigo-brand-openedx@^2.1.1'
-RUN npm install '@edx/frontend-component-header@npm:@edly-io/indigo-frontend-component-header@^3.1.3'
-RUN npm install @edly-io/indigo-frontend-component-footer@^2.0.0
-
-COPY indigo/env.config.jsx /openedx/app/
-""",
- ),
- (
- "mfe-dockerfile-post-npm-install-learner-dashboard",
- """
-RUN npm install '@edx/brand@npm:@edly-io/indigo-brand-openedx@^2.1.1'
-RUN npm install @edly-io/indigo-frontend-component-footer@^2.0.0
-
-COPY indigo/env.config.jsx /openedx/app/
-""",
- ),
- (
- "mfe-dockerfile-post-npm-install-profile",
- """
-RUN npm install '@edx/brand@npm:@edly-io/indigo-brand-openedx@^2.1.1'
-RUN npm install '@edx/frontend-component-header@npm:@edly-io/indigo-frontend-component-header@^3.1.3'
-RUN npm install @edly-io/indigo-frontend-component-footer@^2.0.0
+ )
+ for mfe in indigo_styled_mfes
+ ]
+)
-COPY indigo/env.config.jsx /openedx/app/
-""",
- ),
- (
- "mfe-dockerfile-post-npm-install-account",
- """
-RUN npm install '@edx/brand@npm:@edly-io/indigo-brand-openedx@^2.1.1'
-RUN npm install '@edx/frontend-component-header@npm:@edly-io/indigo-frontend-component-header@^3.1.3'
-RUN npm install @edly-io/indigo-frontend-component-footer@^2.0.0
-COPY indigo/env.config.jsx /openedx/app/
-""",
- ),
- ]
+hooks.Filters.ENV_PATCHES.add_item(
+ (
+ "mfe-dockerfile-post-npm-install-authn",
+ "RUN npm install '@edx/brand@npm:@edly-io/indigo-brand-openedx@^2.2.2'",
+ )
)
# Include js file in lms main.html, main_django.html, and certificate.html
@@ -204,3 +175,47 @@ def _override_openedx_docker_image(
),
]
)
+
+
+# Apply patches from tutor-indigo
+for path in glob(
+ os.path.join(
+ str(importlib_resources.files("tutorindigo") / "patches"),
+ "*",
+ )
+):
+ with open(path, encoding="utf-8") as patch_file:
+ hooks.Filters.ENV_PATCHES.add_item((os.path.basename(path), patch_file.read()))
+
+
+for mfe in indigo_styled_mfes:
+ PLUGIN_SLOTS.add_item(
+ (
+ mfe,
+ "footer_slot",
+ """
+ {
+ op: PLUGIN_OPERATIONS.Hide,
+ widgetId: 'default_contents',
+ },
+ {
+ op: PLUGIN_OPERATIONS.Insert,
+ widget: {
+ id: 'default_contents',
+ type: DIRECT_PLUGIN,
+ priority: 1,
+ RenderWidget: ,
+ },
+ },
+ {
+ op: PLUGIN_OPERATIONS.Insert,
+ widget: {
+ id: 'read_theme_cookie',
+ type: DIRECT_PLUGIN,
+ priority: 2,
+ RenderWidget: AddDarkTheme,
+ },
+ },
+ """,
+ ),
+ )
diff --git a/tutorindigo/templates/indigo/lms/static/sass/courseware/_about.scss b/tutorindigo/templates/indigo/lms/static/sass/courseware/_about.scss
index e5732d2be..ae727313c 100644
--- a/tutorindigo/templates/indigo/lms/static/sass/courseware/_about.scss
+++ b/tutorindigo/templates/indigo/lms/static/sass/courseware/_about.scss
@@ -84,6 +84,9 @@
border-radius: 8px;
border: 1px solid $primary-light;
}
+ .play-intro{
+ z-index: 10;
+ }
}
}
}
diff --git a/tutorindigo/templates/indigo/lms/static/sass/xblock/_xblock.scss b/tutorindigo/templates/indigo/lms/static/sass/xblock/_xblock.scss
index a5f13dbcd..d1b6120ac 100644
--- a/tutorindigo/templates/indigo/lms/static/sass/xblock/_xblock.scss
+++ b/tutorindigo/templates/indigo/lms/static/sass/xblock/_xblock.scss
@@ -464,6 +464,20 @@
}
+ #feedback-container{
+ background: $body-bg-d;
+ border: 1px solid $text-color-d;
+ p{
+ color: $text-color-d;
+ }
+ }
+
+ .emoji-button{
+ background-color: $body-bg-d;
+ }
+ .xblock.xmodule_display.xmodule_HtmlBlock .blue-text{color: $primary;}
+
+
.edx-notes-wrapper{
.annotator-hl{
background: orange;
diff --git a/tutorindigo/templates/indigo/lms/templates/courseware/courses.html b/tutorindigo/templates/indigo/lms/templates/courseware/courses.html
index 4eaf3faea..a95151a5d 100644
--- a/tutorindigo/templates/indigo/lms/templates/courseware/courses.html
+++ b/tutorindigo/templates/indigo/lms/templates/courseware/courses.html
@@ -25,7 +25,8 @@
${course_discovery_meanings | n, dump_js_escaped_json},
getParameterByName('search_query'),
"${user_language | n, js_escaped_string}",
- "${user_timezone | n, js_escaped_string}"
+ "${user_timezone | n, js_escaped_string}",
+ ${set_default_filter | n, dump_js_escaped_json}
);
%static:require_module>
%block>
diff --git a/tutorindigo/templates/indigo/lms/templates/learner_dashboard/program_card.underscore b/tutorindigo/templates/indigo/lms/templates/learner_dashboard/program_card.underscore
index 6aeafb29c..67c9ddd24 100644
--- a/tutorindigo/templates/indigo/lms/templates/learner_dashboard/program_card.underscore
+++ b/tutorindigo/templates/indigo/lms/templates/learner_dashboard/program_card.underscore
@@ -63,8 +63,3 @@
-<% if (isSubscribed) { %>
-
- <%- gettext('Subscribed') %>
-
-<% } %>
diff --git a/tutorindigo/templates/indigo/lms/templates/learner_dashboard/programs_fragment.html b/tutorindigo/templates/indigo/lms/templates/learner_dashboard/programs_fragment.html
index dd3e94bcb..2c7eb2b4d 100644
--- a/tutorindigo/templates/indigo/lms/templates/learner_dashboard/programs_fragment.html
+++ b/tutorindigo/templates/indigo/lms/templates/learner_dashboard/programs_fragment.html
@@ -31,11 +31,8 @@
ProgramListFactory({
marketingUrl: '${marketing_url | n, js_escaped_string}',
programsData: ${programs | n, dump_js_escaped_json},
- programsSubscriptionData: ${programs_subscription_data | n, dump_js_escaped_json},
- subscriptionUpsellData: ${subscription_upsell_data | n, dump_js_escaped_json},
userProgress: ${progress | n, dump_js_escaped_json},
userPreferences: ${user_preferences | n, dump_js_escaped_json},
- isUserB2CSubscriptionsEnabled: ${is_user_b2c_subscriptions_enabled | n, dump_js_escaped_json},
mobileOnly: ${mobile_only | n, dump_js_escaped_json}
});
%static:webpack>