* fix: prevent None entrance_exam_minimum_score_pct from breaking CourseOverview sync When entrance exams are disabled in Studio, the field `entrance_exam_minimum_score_pct` was set to `None`. This caused silent failures when saving `CourseOverview` because the database column requires a float (NOT NULL). This patch ensures that: - CourseOverview sanitizes None values by falling back to `settings.ENTRANCE_EXAM_MIN_SCORE_PCT` (default=50). - Studio avoids writing `None` and instead applies the configured default. Impact: - Prevents IntegrityErrors and silent failures when updating course settings. - Restores proper syncing between modulestore (Mongo) and CourseOverview (MySQL). - Fixes reported issues such as display name changes not persisting and course start dates not syncing. Closes: https://github.com/openedx/edx-platform/issues/37319# * refactor: clean up entrance_exam_minimum_score_pct handling - Consolidate logic to avoid repeated assignments - Centralize None fallback and int/float normalization - Improve readability with inline comment and consistency with Open edX style * test: update entrance exam deletion test to expect default min score - Adjusted `test_entrance_exam_created_updated_and_deleted_successfully` to check for `settings.ENTRANCE_EXAM_MIN_SCORE_PCT` instead of `None` after exam deletion - Added handling for both int and float defaults (`/100` for integer case)
openedx ------- This directory (openedx) should contain code that is used by both `LMS <https://github.com/openedx/edx-platform/tree/master/lms>`_ and `CMS <https://github.com/openedx/edx-platform/tree/master/cms>`_. If your code is specific to LMS or CMS, put it in those directories instead. Like openedx, the directory `common <https://github.com/openedx/edx-platform/tree/master/common>`_ also contains code used by both LMS and CMS. At some point we'll merge the two. Lastly, the directory `xmodule <https://github.com/openedx/edx-platform/tree/master/xmodule>`_ contains legacy core code, also used by both LMS and CMS. We're in the middle of a long process of phasing that code out. Don't add new code there.