Course Discovery plugin for `Tutor `_ ===================================================================== This is a plugin for `Tutor `_ that integrates the `Course Discovery `__ application in an Open edX platform. it is useful for integration with, for example, `Ecommerce `__ or an external course catalog. .. image:: https://overhang.io/images/clients/e-ducation.jpg :alt: E-ducation :target: https://www.e-ducation.cn/ This plugin was developed and open sourced to the community thanks to the generous support of `E-ducation `_. Thank you! Installation ------------ This plugin requires tutor>=3.6.0. If you have installed tutor from a pre-compiled binary, it already comes bundled with the discovery plugin. Otherwise:: pip install tutor-discovery Then, to enable this plugin, run:: tutor plugins enable discovery You will have to re-generate the environment:: tutor config save The, run migrations:: tutor local init This last step is unnecessary if you run instead ``tutor local quickstart``. Operations ---------- Creating a user ~~~~~~~~~~~~~~~ The discovery user interface will be available at http://discovery.localhost for a local instance, and at ``DISCOVERY_HOST`` (by default: http(s)://discovery.) in production. In order to run commands from the UI, a user must be created:: tutor local run discovery ./manage.py createsuperuser Then, you must login with this user at http://discovery.localhost/admin. Alternatively, you can login with oauth2 using a pre-existing user created on the LMS/CMS by accessing http(s)://discovery./login. To do so, the proper domain names must exist and point to the production server. Re-indexing courses ~~~~~~~~~~~~~~~~~~~ :: tutor local run discovery ./manage.py refresh_course_metadata tutor local run discovery ./manage.py update_index --disable-change-limit Caching programs ~~~~~~~~~~~~~~~~ In order to cache programs in the LMS, you will need to manually create a catalog integration. This step should be performed just once:: tutor local run lms ./manage.py lms create_catalog_integrations --enabled \ --internal_api_url=http://discovery:8000 \ --service_username=lms_catalog_service_user Then:: tutor local run lms ./manage.py lms cache_programs Debugging --------- To debug the course discovery service, you are encouraged to mount the course-discovery repo from the host in the development container: tutor dev runserver -v ~/projets/openedx/repos/course-discovery/:/openedx/discovery discovery You can then access the development server at http://localhost:8381. Feel free to add breakpoints (``import pdb; pdb.set_trace()``) anywhere in your source code to debug your application. License ------- This work is licensed under the terms of the `GNU Affero General Public License (AGPL) `_.