...
There are a number of changes that are needed to truly support the ability for a new feature to be implemented purely within its own Django app:
- Stevedore extension points should be provided for each of the common UX changes that need to be made
- Note: see the Audit below for a comprehensive list
- An initial list would include:
- "Feature flag"
- Note: this will be a ConfigurationModel derivative (which includes a built-in
enabled
column) - We recommend this over using a Django settings feature flag
- Note: this will be a ConfigurationModel derivative (which includes a built-in
- URLs for new UI and REST APIs
- LMS tabs (although the concept should be more general as mobile won't render these items as tabs)
- Instructor Dashboard components/tabs
- New Studio editing tabs for xblocks
- "Feature flag"
- It would be useful to allow a feature to be enabled or disabled once and have all of its extensions follow
- XBlocks should be extended to provide more capabilities
- Course-scoped fields for configuration settings
- Admin views for both Studio and LMS
- Need built-in support for RequireJS or AMD compliant dependency management
- The Django asset pipeline needs to be improved
- Have the pipeline pick up assets from all installed Django apps (to support CDNs, minification etc)
- A spike was done at the beginning of the quarter: PR 7610: Django extension spike
- RequireJS Optimizer support should be added to the LMS
- Have the pipeline pick up assets from all installed Django apps (to support CDNs, minification etc)
- There are some interesting aspects of supporting arbitrary plug-ins
- An order must be established for visual aspects such as tabs. Today the order is implicit in the hard-coded list.
- If in doubt, sort the items alphabetically by name
- How can plug-ins adopt the correct look-and-feel?
- An initial thought is that we could document the boilerplate that each plug-in type should include
- Miki suggests that maybe we should use inheritance to our benefit here, where the superclass renders the boilerplate
- Eventually we might want to use a mechanism more like XBlock that can be rendered inline
- It needs to be decided how mobile can benefit from these plug-ins
- If they provide new UI as URLs then they won't just drop in to mobile
- XBlocks will just appear, but only by using a web view to render the HTML
- React, a JavaScript library from Facebook, might help with native rendering of HTML
- An order must be established for visual aspects such as tabs. Today the order is implicit in the hard-coded list.
...