[Design Discussion]: module scheduling architecture for the new module management UI (#3854 + #2895) #4735
imran-techvoyager
started this conversation in
Ideas
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Hey @willgearty , Following up on the discussions in #3854 and #2895 , I've been tracing through the module and deadline system to understand what a clean implementation of module scheduling would require, and a few design questions came up that seem worth discussing before implementation starts.
A few observations from reading through the code:
ProgramModuleObjcurrently has no concept of time windows. Addingstart_date/end_datefields (similar to theExpirableModelpattern used byPermissionandStudentRegistration) seems like a natural first step.getModules_cached(): invalidation is triggered by DB writes, not time passage. This suggests time-based filtering may need to happen outside the cache layer (for example insidegetModules()), rather than inside the cache layer itself.Permission/ deadline types appears to be implicit in module handlers, which might matter later if the UI ever needs to automatically derive deadlines from module schedules.Before sketching anything more concrete, I wanted to ask a few questions for the team:
/manage/{prog}/modules/page, or live alongside it?Permissionrecords, or should the system eventually generate those automatically from module schedules?phase_zero), would it make sense for them to declare an invariant (e.g., something likealways_active = True) so the UI can treat them as locked rows?Happy to share a fuller design sketch if it would help ground the discussion. My main goal here is to make sure the data model direction makes sense before experimenting with any prototypes.
Beta Was this translation helpful? Give feedback.
All reactions