This step involves implementing a way to associate library component(s) with one or more collection(s).
- Define new
CollectionObject Model with the following fields in openedx_learning:
collection_id - ForeignKey to Collection instance
object_id - ForeignKey to PublishableEntity instance (e.g. library component). This would allow for adding other publishable items (like units + sections) to collections in the future.
- Create a python API in
openedx-learning that can associate a [set of] publishable entities with a [set of] collections, or remove an entity/entities from the given collection(s)
- Create a REST API in
content_libraries django app that can do the same as 2 for library components, with permissions checks.
- Collections can not be associated with other collections.
- Library components can be associated with multiple collections.
- Emit an event(s) when the collections associated with a component have changed. This can just be the existing
CONTENT_OBJECT_TAGS_CHANGED event, if we think of collections as a sort of special tag.
- Modifying a collection's components should update the collection's
modified timestamp.
This step involves implementing a way to associate library component(s) with one or more collection(s).
CollectionObjectModel with the following fields inopenedx_learning:collection_id- ForeignKey toCollectioninstanceobject_id- ForeignKey toPublishableEntityinstance (e.g. library component). This would allow for adding other publishable items (like units + sections) to collections in the future.openedx-learningthat can associate a [set of] publishable entities with a [set of] collections, or remove an entity/entities from the given collection(s)content_librariesdjango app that can do the same as 2 for library components, with permissions checks.CONTENT_OBJECT_TAGS_CHANGEDevent, if we think of collections as a sort of special tag.modifiedtimestamp.