Skip to content

Official plugins still set feature toggles as FEATURES dict entries #1479

Description

@ahmed-arb

edx-platform flattened FEATURES into the settings namespace (openedx/edx-platform#37067). FEATURES is now a proxy bound to the upstream settings module's namespace, so FEATURES["X"] = value in a downstream settings module writes somewhere Django never reads: the toggle silently keeps its default.

#1477 fixes this in Tutor core. Some official plugins still use the same pattern.

Needs fixing

The fix in each case is to assign the flat setting instead, as #1477 does.

Already done

tutor-mfe already sets ENABLE_AUTHN_MICROFRONTEND, ENABLE_CATALOG_MICROFRONTEND and ENABLE_NEW_BULK_EMAIL_EXPERIENCE flat on main.

Not affected

android, cairn, credentials, deck, jupyter, livedeps, minio, xqueue.

tutor-indigo only reads toggles, via settings.FEATURES.get(...) in Mako templates that are verbatim copies of the upstream ones. Those reads resolve against the upstream namespace and so cannot see a flat setting from a downstream module, but the same is true of vanilla Tutor (lms/templates/index.html, courseware/courses.html), so it is upstream's to fix and indigo should stay in sync with it.

LLM usage notice

Investigated with assistance from Claude.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions