This change modifies the SessionInactivityTimeout middleware to prevent the session ID from changing on every request while still enforcing the inactivity timeout. Key improvements: - Store datetime values as ISO strings for proper serialization - Implement hybrid session save approach that only allows full session saves periodically (controlled by SESSION_SAVE_FREQUENCY_SECONDS) - Preserve session ID between requests while still tracking user activity This resolves the issue where lms_sessionid was changing on every user interaction, which caused problems. BREAKING CHANGE: The breaking change is that SESSION_ACTIVITY_SAVE_DELAY_SECONDS was introduced with a 15 minute default, which will change the current behavior. It is not necessarily breaking (since it actually fixes an issue), but this is to bring more attention to the new setting because the default is reasonable, but also somewhat arbitrary.
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.