Skip to content

feat: deprecate indigo footer#181

Merged
HammadYousaf01 merged 6 commits intomainfrom
hammad/deprecate-indigo-footer
Dec 19, 2025
Merged

feat: deprecate indigo footer#181
HammadYousaf01 merged 6 commits intomainfrom
hammad/deprecate-indigo-footer

Conversation

@HammadYousaf01
Copy link
Collaborator

Deprecate Indigo footer package #144

@HammadYousaf01 HammadYousaf01 moved this from Pending Triage to In Progress in Tutor project management Oct 30, 2025
@HammadYousaf01 HammadYousaf01 moved this from In Progress to In review in Tutor project management Oct 30, 2025
@ahmed-arb
Copy link
Contributor

Is release the right target for this PR?

* feat: migrate from pylint/black to ruff
Copy link
Contributor

@ahmed-arb ahmed-arb left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. I just have a few questions

(
mfe,
"footer_slot",
"org.openedx.frontend.layout.footer.v1",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there a reason for changing the alias to its slot ID?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we should move from the legacy alias footer_slot to the canonical, versioned plugin slot ID org.openedx.frontend.layout.footer.v1. The alias still works for backward compatibility, but using the fully qualified slot ID aligns with current OpenEdx conventions and helps keep the code forward-compatible.

Copy link
Contributor

@ahmed-arb ahmed-arb left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good. Just change the base branch to main.

@HammadYousaf01 HammadYousaf01 changed the base branch from release to main December 18, 2025 13:50
@HammadYousaf01 HammadYousaf01 merged commit f090b4e into main Dec 19, 2025
1 check passed
@github-project-automation github-project-automation bot moved this from In review to Done in Tutor project management Dec 19, 2025
@HammadYousaf01 HammadYousaf01 deleted the hammad/deprecate-indigo-footer branch December 19, 2025 17:29
HammadYousaf01 added a commit that referenced this pull request Dec 19, 2025
Faraz32123 pushed a commit that referenced this pull request Jan 14, 2026
* feat: v20.0.1 release (#176)

* feat: deprecate indigo footer

* feat: migrate from pylint/black to ruff (#180)

* feat: migrate from pylint/black to ruff

* fix: resolve comments

---------

Co-authored-by: Syed Muhammad Dawoud Sheraz Ali <40599381+DawoudSheraz@users.noreply.github.com>
Faraz32123 pushed a commit that referenced this pull request Jan 15, 2026
* feat: v20.0.1 release (#176)

* feat: deprecate indigo footer

* feat: migrate from pylint/black to ruff (#180)

* feat: migrate from pylint/black to ruff

* fix: resolve comments

---------

Co-authored-by: Syed Muhammad Dawoud Sheraz Ali <40599381+DawoudSheraz@users.noreply.github.com>
Faraz32123 pushed a commit that referenced this pull request Jan 16, 2026
* feat: v20.0.1 release (#176)

* feat: deprecate indigo footer

* feat: migrate from pylint/black to ruff (#180)

* feat: migrate from pylint/black to ruff

* fix: resolve comments

---------

Co-authored-by: Syed Muhammad Dawoud Sheraz Ali <40599381+DawoudSheraz@users.noreply.github.com>
@mboisson
Copy link

This PR broke our own customizations of footer that we used to add on top of tutor-indigo, which we do through a tutor plugin:
https://github.com/calculquebec/tutor-plugins/blob/cq/ulmo.dev/plugin_slots.py#L102

@mboisson
Copy link

This is being discussed in this discuss thread: https://discuss.openedx.org/t/footer-slot-broken-in-ulmo/18329/6

@Faraz32123
Copy link
Collaborator

This PR broke our own customizations of footer that we used to add on top of tutor-indigo, which we do through a tutor plugin: https://github.com/calculquebec/tutor-plugins/blob/cq/ulmo.dev/plugin_slots.py#L102

Hey @mboisson,
Basically the purpose of this PR was to follow openedx convention of using plugin slots and reducing the maintenance for indigo footer separately.

And regarding the issue(i.e. overriding the indigo footer) you guys are facing, I had some capacity today to look into it.

Can you guys try using mfe-env-config-runtime-final patch in your tutor plugin like I am using in below code, this way you guys can use your custom footer while keeping the indigo(which offers better theming overall with a dark theme as well) plugin enabled.

from tutor import hooks
from tutormfe.hooks import PLUGIN_SLOTS

PLUGIN_SLOTS.add_item(
    (
        "all",
        "org.openedx.frontend.layout.footer.v1",
        """ 
        {
            op: PLUGIN_OPERATIONS.Insert,
            widget: {
                id: 'custom_footer_change',
                type: DIRECT_PLUGIN,
                priority: 2,
                RenderWidget: () => <div>
                    <h4>Custom Footer</h4>
                    <p>© 2026 Custom Platform. All rights reserved.</p>
                </div>,
            },
        },
        """,
    ),
)
hooks.Filters.ENV_PATCHES.add_item(
    (
        "mfe-env-config-runtime-final",
        """
if (config.pluginSlots && config.pluginSlots['org.openedx.frontend.layout.footer.v1']) {
  config.pluginSlots['org.openedx.frontend.layout.footer.v1'].plugins = 
    config.pluginSlots['org.openedx.frontend.layout.footer.v1'].plugins.filter(plugin => {
      const widgetId = plugin.widget?.id;
      return widgetId !== 'custom_footer';
    });
}
        """,
    )
)

We are open to discussion if you face any further errors.

@mboisson
Copy link

mboisson commented Feb 2, 2026

We ended up removing tutor-indigo instead. We are replacing the header and footer anyway, and had modified the templates for the legacy pages as well. There wasn't much left from the original tutor-indigo.

If I had to recommend something though, it would be to make sure that the "priority" actually work, i.e. operations with higher priority are applied after operations with lower priority.

@Faraz32123
Copy link
Collaborator

If I had to recommend something though, it would be to make sure that the "priority" actually work, i.e. operations with higher priority are applied after operations with lower priority.

It's an upstream issue as priorities for plugin slots are not handled in tutor-indigo plugin. May be you can create one in openedx/frontend-plugin-framework repository to confirm if there is some bug.

Faraz32123 pushed a commit that referenced this pull request Feb 11, 2026
Add support to override indigo footer using plugin slot.
Related conversation: #181 (comment).
@Faraz32123
Copy link
Collaborator

Hey @mboisson,
For your convenience, and those who visit this PR, We had a chance to discuss the priorities within our team.
And we reached to a conclusion that purpose of setting Priority isn't to override the default component or component with lower priority.
You can see this example(Link). I have also attached its image.
Screenshot 2026-02-11 at 8 07 25 PM

Let me Explain it a bit,
Default component has a priority of 50.
Let say we are inserting 2 widgets with 10 & 100 priority,
All of these will appear, none of these will be override. Priority just decide the order of the widget(component with lower priority will appear first).

So, we can close this issue: openedx/frontend-plugin-framework#121

@mboisson
Copy link

Hey @mboisson, For your convenience, and those who visit this PR, We had a chance to discuss the priorities within our team. And we reached to a conclusion that purpose of setting Priority isn't to override the default component or component with lower priority. You can see this example(Link). I have also attached its image. Screenshot 2026-02-11 at 8 07 25 PM

Let me Explain it a bit, Default component has a priority of 50. Let say we are inserting 2 widgets with 10 & 100 priority, All of these will appear, none of these will be override. Priority just decide the order of the widget(component with lower priority will appear first).

So, we can close this issue: openedx/frontend-plugin-framework#121

I see... so there's no way to hide something that has been added by another plugin ? (i.e. to replace it) ?

@Faraz32123
Copy link
Collaborator

I see... so there's no way to hide something that has been added by another plugin ? (i.e. to replace it) ?

Actually there is, that I have suggested above(Link). We are also adding this patch by default in tutor-indigo(PR) So that if someone wants to override the footer, they can do it while keeping the indigo plugin enabled.

Faraz32123 pushed a commit that referenced this pull request Feb 17, 2026
Add support to override indigo footer using plugin slot.
Related conversation: #181 (comment).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Development

Successfully merging this pull request may close these issues.

5 participants