Skip to main content

eduNEXT Openedx extensions

Project description

Eox-core (A.K.A. Edunext Open extensions) is an openedx plugin, for the edx-platform that adds multiple API endpoints in order to extend the functionality of the edx-platform and avoid changing the base code directly. These API endpoints includes bulk creation of pre-activated users (for example, skip sending an activation email), enrollments and pre-enrollment operations.

Installation

  1. Add this plugin in your Tutor config.yml in the OPENEDX_EXTRA_PIP_REQUIREMENTS variable.

  2. Save your configuration with tutor config save.

  3. Build your open edx image with tutor images build openedx.

  4. Launch your platform with tutor local launch.

Note: To use all the features, you need to have the tutor-forum plugin and the eox-tenant plugin.

Features

  • Support redirections with middlewares.

  • Add pipelines to be used with openedx-filters.

  • Add a group of APIs.

    Eox-core APIs

You can find more information in Help for devs doc.

Compatibility Notes

Open edX Release

Version

Ironwood

< 3.0

Juniper

>= 3.0 < 5.0

Koa

>= 4.9 < 6.0

Lilac

>= 4.9 < 6.0

Maple

>= 6.0

Nutmeg

>= 7.0

Olive

>= 8.0

Palm

>= 9.0

Quince

>= 10.0

NOTE: The Maple version does not support Django 2.2 but it does support Django 3.2 as of eox-core 7.0.

The following changes to the plugin settings are necessary. If the release you are looking for is not listed, then the accumulation of changes from previous releases is enough.

Lilac

EOX_CORE_USERS_BACKEND: "eox_core.edxapp_wrapper.backends.users_l_v1"
EOX_CORE_PRE_ENROLLMENT_BACKEND: "eox_core.edxapp_wrapper.backends.pre_enrollment_l_v1"
EOX_CORE_ENROLLMENT_BACKEND: "eox_core.edxapp_wrapper.backends.enrollment_l_v1"

Maple

EOX_CORE_USERS_BACKEND: "eox_core.edxapp_wrapper.backends.users_m_v1"
EOX_CORE_PRE_ENROLLMENT_BACKEND: "eox_core.edxapp_wrapper.backends.pre_enrollment_l_v1"
EOX_CORE_ENROLLMENT_BACKEND: "eox_core.edxapp_wrapper.backends.enrollment_l_v1"

Nutmeg

EOX_CORE_USERS_BACKEND: "eox_core.edxapp_wrapper.backends.users_m_v1"
EOX_CORE_PRE_ENROLLMENT_BACKEND: "eox_core.edxapp_wrapper.backends.pre_enrollment_l_v1"
EOX_CORE_ENROLLMENT_BACKEND: "eox_core.edxapp_wrapper.backends.enrollment_l_v1"

Olive, Palm and Quince

EOX_CORE_ENROLLMENT_BACKEND: "eox_core.edxapp_wrapper.backends.enrollment_o_v1"

These settings can be changed in eox_core/settings/common.py or, for example, in ansible configurations.

NOTE: the current common.py works with Open edX Nutmeg version.

Dependency Management

EOX core now follows OEP-18 so the correct way to update dependencies is to run make upgrade inside your virtualenv.

Integrations with third party services

The plugin offers some integrations listed below:

  1. Sentry: This service allows to track the errors generated on edx-platform. Check more details in https://sentry.io/welcome/. To enable the integration, follow the steps below:

    • Install the plugin with Sentry support (extras_require [sentry]).

    • Sign up/in to your sentry account and create a new Django application integration.

    • Get the DSN for your integration. This is an unique identifier for your application.

    • Setup the following configuration values for edx-platform:

      EOX_CORE_SENTRY_INTEGRATION_DSN: <your DSN value>
      EOX_CORE_SENTRY_IGNORED_ERRORS: [] # optional
      EOX_CORE_SENTRY_EXTRA_OPTIONS: {} # optional

      By default, EOX_CORE_SENTRY_INTEGRATION_DSN setting is None, which disables the sentry integration. EOX_CORE_SENTRY_IGNORED_ERRORS is optional. It is a list of the exceptions you want to ignore. For instance, it can be defined as: EOX_CORE_SENTRY_EXTRA_OPTIONS is optional. It is a dictionary with extra options to be passed to the sentry client. For instance, it can be defined as:

      EOX_CORE_SENTRY_IGNORED_ERRORS: [
        'xmodule.exceptions.NotFoundError',
        'openedx.core.djangoapps.user_authn.exceptions.AuthFailedError',
      ]
      EOX_CORE_SENTRY_EXTRA_OPTIONS:
          experiments:
             profiles_sample_rate: 0.5
          another_client_parameter: 'value'

Auditing Django views

The majority of views in eox-core use an auditing decorator, defined in our custom library called eox-audit-model, that helps saving relevant information about non-idempotent operations. By default this functionality is turned on. To check your auditing records go to Django sysadmin and find DJANGO EDUNEXT AUDIT MODEL.

For more information, check the eox-audit-model documentation.

How to Contribute

Contributions are welcome! See our CONTRIBUTING file for more information – it also contains guidelines for how to maintain high code quality, which will make your contribution more likely to be accepted.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

eox-core-10.0.0.tar.gz (93.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

eox_core-10.0.0-py3-none-any.whl (136.2 kB view details)

Uploaded Python 3

File details

Details for the file eox-core-10.0.0.tar.gz.

File metadata

  • Download URL: eox-core-10.0.0.tar.gz
  • Upload date:
  • Size: 93.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.7

File hashes

Hashes for eox-core-10.0.0.tar.gz
Algorithm Hash digest
SHA256 19482be5a9e7959e2dda481dd05dbc832859c6939c0c2f160bf094efeeac9e63
MD5 008f8fa2deaff174f0a80ce088498dd4
BLAKE2b-256 f4a1c90c4ee6938590a51cfbbc404dba47672d822119ffe7b70f43c0934bddd6

See more details on using hashes here.

File details

Details for the file eox_core-10.0.0-py3-none-any.whl.

File metadata

  • Download URL: eox_core-10.0.0-py3-none-any.whl
  • Upload date:
  • Size: 136.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.7

File hashes

Hashes for eox_core-10.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6a71df7edca6b5c33be59ac78fee1f63594d53ac96ea1479d1bd78c145dfa8e2
MD5 e7c3e8df163fbe4ea003b1c016f647ee
BLAKE2b-256 398b97b96906a818b4eb8a652e6f7cc2b10446c02fcc2bf93f2e0d5097b24a58

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page