* refactor: convert libraries API from attr.s to dataclass, fix types * fix: make corresponding updates to 'search' code * feat: use new version of openedx-learning with containers support * temp: Use opencraft branch of opaquekeys * refactor: Use LibraryElementKey instead of LibraryCollectionKey * refactor: split libraries API & REST API up into smaller modules * feat: new REST API for units in content libraries * feat: python+REST API to get a unit * feat: auto-generate slug/key/ID from title of units * feat: generate search index documents for containers * refactor: rename LibraryElementKey to LibraryItemKey * fix: lint error * feat: adds new units to search index on create/update and when running reindex_studio. Updates requirements for openedx-events and openedx-learning to support these changes. * fix: pylint * fix: temp requirement * fix: search index container events/tasks * feat: add get_library_container_usage_key to libraries API and use it when search indexing containers * fix: index all containers during reindex_studio * chore: bump openedx-events requirement * fix: address review comments * chore: bumps openedx-learning to 0.19.1 * fix: rename api method to library_container_locator since container keys are locators, not usage keys * chore: bumps opaque-keys dependency * test: fix misnamed unit_usage_key * feat: adds APIs to update or delete a container (#757) * feat: adds python and REST APIs to update a container's display_name * refactor: adds _get_container method to api to reduce code duplication * feat: adds python and REST APIs to delete a container * test: add container permission tests --------- Co-authored-by: XnpioChV <xnpiochv@gmail.com> Co-authored-by: Jillian Vogel <jill@opencraft.com> Co-authored-by: Rômulo Penido <romulo.penido@gmail.com>
Open edX -------- This is the root package for Open edX. The intent is that all importable code from Open edX will eventually live here, including the code in the lms, cms, and common directories. If you're adding a new Django app, place it in core/djangoapps. If you're adding utilities that require Django, place them in core/djangolib. If you're adding code that defines no Django models or views of its own but is widely useful, put it in core/lib. Note: All new code should be created in this package, and the legacy code will be moved here gradually. For now the code is not structured like this, and hence legacy code will continue to live in a number of different packages.