eox-hooks


Nameeox-hooks JSON
Version 6.0.0 PyPI version JSON
download
home_page
SummaryEoxHooks
upload_time2024-02-09 15:52:46
maintainer
docs_urlNone
authoreduNEXT
requires_python
licenseAGPL
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            =========
Eox-hooks
=========

.. |build-status| image:: https://circleci.com/gh/eduNEXT/eox-hooks.svg?style=svg

Eox-hooks (A.K.A. Edunext Open extensions) is an `openedx plugin`_, for the `edx-platform`_ that allows extending
edx-platform through Django configurations and Open edX Events.

Compatibility Notes
--------------------

+-------------------+----------------+
| Open edX Release  |  Version       |
+===================+================+
|       Juniper     |   <= 1.0       |
+-------------------+----------------+
|        Koa        |    > 1.0       |
+-------------------+----------------+
|       Lilac       |    > 1.0 < 2.0 |
+-------------------+----------------+
|       Maple       |   >= 2.0 < 3.0 |
+-------------------+----------------+
|       Nutmeg      |   >= 3.0       |
+-------------------+----------------+
|       Olive       |   >= 4.0       |
+-------------------+----------------+
|       Palm        |   >= 5.0       |
+-------------------+----------------+
|       Quince      |   >= 6.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.


**Juniper**

.. code-block:: yaml

   EOX_HOOKS_ENROLLMENTS_BACKEND: "eox_hooks.edxapp_wrapper.backends.enrollments_l_v1"
   EOX_HOOKS_COURSES_BACKEND: "eox_hooks.edxapp_wrapper.backends.courses_l_v1"
   EOX_HOOKS_COURSE_MODES_BACKEND: "eox_hooks.edxapp_wrapper.backends.course_modes_l_v1"
   EOX_HOOKS_MODELS_BACKEND: "eox_hooks.edxapp_wrapper.backends.models_l_v1"

**Koa**

.. code-block:: yaml

   EOX_HOOKS_ENROLLMENTS_BACKEND: "eox_hooks.edxapp_wrapper.backends.enrollments_l_v1"
   EOX_HOOKS_COURSES_BACKEND: "eox_hooks.edxapp_wrapper.backends.courses_l_v1"
   EOX_HOOKS_COURSE_MODES_BACKEND: "eox_hooks.edxapp_wrapper.backends.course_modes_l_v1"
   EOX_HOOKS_MODELS_BACKEND: "eox_hooks.edxapp_wrapper.backends.models_l_v1"

**Lilac**

.. code-block:: yaml

   EOX_HOOKS_ENROLLMENTS_BACKEND: "eox_hooks.edxapp_wrapper.backends.enrollments_l_v1"
   EOX_HOOKS_COURSES_BACKEND: "eox_hooks.edxapp_wrapper.backends.courses_l_v1"
   EOX_HOOKS_COURSE_MODES_BACKEND: "eox_hooks.edxapp_wrapper.backends.course_modes_l_v1"
   EOX_HOOKS_MODELS_BACKEND: "eox_hooks.edxapp_wrapper.backends.models_l_v1"

**Maple**

.. code-block:: yaml

   EOX_HOOKS_ENROLLMENTS_BACKEND: "eox_hooks.edxapp_wrapper.backends.enrollments_l_v1"
   EOX_HOOKS_COURSES_BACKEND: "eox_hooks.edxapp_wrapper.backends.courses_l_v1"
   EOX_HOOKS_COURSE_MODES_BACKEND: "eox_hooks.edxapp_wrapper.backends.course_modes_l_v1"
   EOX_HOOKS_MODELS_BACKEND: "eox_hooks.edxapp_wrapper.backends.models_l_v1"

**Nutmeg**

.. code-block:: yaml

   EOX_HOOKS_ENROLLMENTS_BACKEND: "eox_hooks.edxapp_wrapper.backends.enrollments_l_v1"
   EOX_HOOKS_COURSES_BACKEND: "eox_hooks.edxapp_wrapper.backends.courses_l_v1"
   EOX_HOOKS_COURSE_MODES_BACKEND: "eox_hooks.edxapp_wrapper.backends.course_modes_l_v1"
   EOX_HOOKS_MODELS_BACKEND: "eox_hooks.edxapp_wrapper.backends.models_l_v1"

**Olive**

.. code-block:: yaml

   EOX_HOOKS_ENROLLMENTS_BACKEND: "eox_hooks.edxapp_wrapper.backends.enrollments_l_v1"
   EOX_HOOKS_COURSES_BACKEND: "eox_hooks.edxapp_wrapper.backends.courses_l_v1"
   EOX_HOOKS_COURSE_MODES_BACKEND: "eox_hooks.edxapp_wrapper.backends.course_modes_l_v1"
   EOX_HOOKS_MODELS_BACKEND: "eox_hooks.edxapp_wrapper.backends.models_l_v1"

**Palm and Quince**

.. code-block:: yaml

   EOX_HOOKS_ENROLLMENTS_BACKEND: "eox_hooks.edxapp_wrapper.backends.enrollments_l_v1"
   EOX_HOOKS_COURSES_BACKEND: "eox_hooks.edxapp_wrapper.backends.courses_p_v1"
   EOX_HOOKS_COURSE_MODES_BACKEND: "eox_hooks.edxapp_wrapper.backends.course_modes_l_v1"
   EOX_HOOKS_MODELS_BACKEND: "eox_hooks.edxapp_wrapper.backends.models_l_v1"


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

**NOTE**:


- The current ``common.py`` works with Open edX Lilac version.
- Koa and Lilac work with PR (backports) 28266 and 28640 from Maple release.

Open edX devstack
*****************

- Clone this repo in the src folder of your devstack.
- Open a new Lms/Devstack shell.
- Install the plugin as follows: pip install -e /path/to/your/src/folder
- Restart Lms/Studio services.

Usage
#####

Before using eox-hooks, this plugin must be configured using EOX_HOOKS_DEFINITIONS:

.. code-block:: python

        {
            "trigger_event": {
                "module": "path_to_module",
                "action": "action_name",
                "fail_silently": True,
            },
        }

Where:

- trigger_event: is the name of the event sent by the platform. For example: pre_enrollment_trigger.
- module: path to the module where the action to be executed is defined. For example: eox_hooks.tests.tests_utils.
- action: name of the action to be executed. For example: custom_action.
- fail_silently: defines what happens if an exception raises while executing the action. If False, then the exception is raised.

Examples
########

.. code-block:: json

        "EOX_HOOKS_DEFINITIONS": {
            "post_certificate_creation": {
                "action": "post_to_webhook_url",
                "config": {
                    "send_certificate_data": true,
                    "url": "https://webhook.site"
                },
                "fail_silently": true,
                "module": "eox_hooks.actions"
            }
        }

.. code-block:: json

        "EOX_HOOKS_DEFINITIONS": {
            "post_register": {
                "action": "post_to_webhook_url",
                "fail_silently": true,
                "module": "eox_hooks.actions",
                "config" : {
                    "send_certificate_data": false,
                    "url": "https://webhook.site",
                    "fields": {
                            "recipient_email": "user.pii.email"
                    }
                }
            }
        }

.. code-block:: json

        "EOX_HOOKS_DEFINITIONS": {
            "post_certificate_creation": {
                "action": "trigger_grades_assignment",
                "fail_silently": true,
                "module": "eox_hooks.actions"
            }
        }

.. code-block:: json

        "EOX_HOOKS_DEFINITIONS": {
            "post_enrollment": {
                "action": "trigger_enrollments_creation",
                "fail_silently": false,
                "module": "eox_hooks.actions"
            }
        }


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.

.. _CONTRIBUTING: https://github.com/eduNEXT/eox-hooks/blob/master/CONTRIBUTING.rst
.. _edx-platform: https://github.com/edx/edx-platform/
.. _openedx plugin: https://github.com/edx/edx-platform/tree/master/openedx/core/djangoapps/plugins

            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "eox-hooks",
    "maintainer": "",
    "docs_url": null,
    "requires_python": "",
    "maintainer_email": "",
    "keywords": "",
    "author": "eduNEXT",
    "author_email": "contact@edunext.co",
    "download_url": "https://files.pythonhosted.org/packages/c8/13/deea8bf21cb94e4f4796eafa87935fe360d9a59c56dfb4b00a15880ec689/eox-hooks-6.0.0.tar.gz",
    "platform": null,
    "description": "=========\nEox-hooks\n=========\n\n.. |build-status| image:: https://circleci.com/gh/eduNEXT/eox-hooks.svg?style=svg\n\nEox-hooks (A.K.A. Edunext Open extensions) is an `openedx plugin`_, for the `edx-platform`_ that allows extending\nedx-platform through Django configurations and Open edX Events.\n\nCompatibility Notes\n--------------------\n\n+-------------------+----------------+\n| Open edX Release  |  Version       |\n+===================+================+\n|       Juniper     |   <= 1.0       |\n+-------------------+----------------+\n|        Koa        |    > 1.0       |\n+-------------------+----------------+\n|       Lilac       |    > 1.0 < 2.0 |\n+-------------------+----------------+\n|       Maple       |   >= 2.0 < 3.0 |\n+-------------------+----------------+\n|       Nutmeg      |   >= 3.0       |\n+-------------------+----------------+\n|       Olive       |   >= 4.0       |\n+-------------------+----------------+\n|       Palm        |   >= 5.0       |\n+-------------------+----------------+\n|       Quince      |   >= 6.0       |\n+-------------------+----------------+\n\nThe following changes to the plugin settings are necessary. If the release you are looking for is\nnot listed, then the accumulation of changes from previous releases is enough.\n\n\n**Juniper**\n\n.. code-block:: yaml\n\n   EOX_HOOKS_ENROLLMENTS_BACKEND: \"eox_hooks.edxapp_wrapper.backends.enrollments_l_v1\"\n   EOX_HOOKS_COURSES_BACKEND: \"eox_hooks.edxapp_wrapper.backends.courses_l_v1\"\n   EOX_HOOKS_COURSE_MODES_BACKEND: \"eox_hooks.edxapp_wrapper.backends.course_modes_l_v1\"\n   EOX_HOOKS_MODELS_BACKEND: \"eox_hooks.edxapp_wrapper.backends.models_l_v1\"\n\n**Koa**\n\n.. code-block:: yaml\n\n   EOX_HOOKS_ENROLLMENTS_BACKEND: \"eox_hooks.edxapp_wrapper.backends.enrollments_l_v1\"\n   EOX_HOOKS_COURSES_BACKEND: \"eox_hooks.edxapp_wrapper.backends.courses_l_v1\"\n   EOX_HOOKS_COURSE_MODES_BACKEND: \"eox_hooks.edxapp_wrapper.backends.course_modes_l_v1\"\n   EOX_HOOKS_MODELS_BACKEND: \"eox_hooks.edxapp_wrapper.backends.models_l_v1\"\n\n**Lilac**\n\n.. code-block:: yaml\n\n   EOX_HOOKS_ENROLLMENTS_BACKEND: \"eox_hooks.edxapp_wrapper.backends.enrollments_l_v1\"\n   EOX_HOOKS_COURSES_BACKEND: \"eox_hooks.edxapp_wrapper.backends.courses_l_v1\"\n   EOX_HOOKS_COURSE_MODES_BACKEND: \"eox_hooks.edxapp_wrapper.backends.course_modes_l_v1\"\n   EOX_HOOKS_MODELS_BACKEND: \"eox_hooks.edxapp_wrapper.backends.models_l_v1\"\n\n**Maple**\n\n.. code-block:: yaml\n\n   EOX_HOOKS_ENROLLMENTS_BACKEND: \"eox_hooks.edxapp_wrapper.backends.enrollments_l_v1\"\n   EOX_HOOKS_COURSES_BACKEND: \"eox_hooks.edxapp_wrapper.backends.courses_l_v1\"\n   EOX_HOOKS_COURSE_MODES_BACKEND: \"eox_hooks.edxapp_wrapper.backends.course_modes_l_v1\"\n   EOX_HOOKS_MODELS_BACKEND: \"eox_hooks.edxapp_wrapper.backends.models_l_v1\"\n\n**Nutmeg**\n\n.. code-block:: yaml\n\n   EOX_HOOKS_ENROLLMENTS_BACKEND: \"eox_hooks.edxapp_wrapper.backends.enrollments_l_v1\"\n   EOX_HOOKS_COURSES_BACKEND: \"eox_hooks.edxapp_wrapper.backends.courses_l_v1\"\n   EOX_HOOKS_COURSE_MODES_BACKEND: \"eox_hooks.edxapp_wrapper.backends.course_modes_l_v1\"\n   EOX_HOOKS_MODELS_BACKEND: \"eox_hooks.edxapp_wrapper.backends.models_l_v1\"\n\n**Olive**\n\n.. code-block:: yaml\n\n   EOX_HOOKS_ENROLLMENTS_BACKEND: \"eox_hooks.edxapp_wrapper.backends.enrollments_l_v1\"\n   EOX_HOOKS_COURSES_BACKEND: \"eox_hooks.edxapp_wrapper.backends.courses_l_v1\"\n   EOX_HOOKS_COURSE_MODES_BACKEND: \"eox_hooks.edxapp_wrapper.backends.course_modes_l_v1\"\n   EOX_HOOKS_MODELS_BACKEND: \"eox_hooks.edxapp_wrapper.backends.models_l_v1\"\n\n**Palm and Quince**\n\n.. code-block:: yaml\n\n   EOX_HOOKS_ENROLLMENTS_BACKEND: \"eox_hooks.edxapp_wrapper.backends.enrollments_l_v1\"\n   EOX_HOOKS_COURSES_BACKEND: \"eox_hooks.edxapp_wrapper.backends.courses_p_v1\"\n   EOX_HOOKS_COURSE_MODES_BACKEND: \"eox_hooks.edxapp_wrapper.backends.course_modes_l_v1\"\n   EOX_HOOKS_MODELS_BACKEND: \"eox_hooks.edxapp_wrapper.backends.models_l_v1\"\n\n\nThese settings can be changed in ``eox_hooks/settings/common.py`` or, for example, in ansible configurations.\n\n**NOTE**:\n\n\n- The current ``common.py`` works with Open edX Lilac version.\n- Koa and Lilac work with PR (backports) 28266 and 28640 from Maple release.\n\nOpen edX devstack\n*****************\n\n- Clone this repo in the src folder of your devstack.\n- Open a new Lms/Devstack shell.\n- Install the plugin as follows: pip install -e /path/to/your/src/folder\n- Restart Lms/Studio services.\n\nUsage\n#####\n\nBefore using eox-hooks, this plugin must be configured using EOX_HOOKS_DEFINITIONS:\n\n.. code-block:: python\n\n        {\n            \"trigger_event\": {\n                \"module\": \"path_to_module\",\n                \"action\": \"action_name\",\n                \"fail_silently\": True,\n            },\n        }\n\nWhere:\n\n- trigger_event: is the name of the event sent by the platform. For example: pre_enrollment_trigger.\n- module: path to the module where the action to be executed is defined. For example: eox_hooks.tests.tests_utils.\n- action: name of the action to be executed. For example: custom_action.\n- fail_silently: defines what happens if an exception raises while executing the action. If False, then the exception is raised.\n\nExamples\n########\n\n.. code-block:: json\n\n        \"EOX_HOOKS_DEFINITIONS\": {\n            \"post_certificate_creation\": {\n                \"action\": \"post_to_webhook_url\",\n                \"config\": {\n                    \"send_certificate_data\": true,\n                    \"url\": \"https://webhook.site\"\n                },\n                \"fail_silently\": true,\n                \"module\": \"eox_hooks.actions\"\n            }\n        }\n\n.. code-block:: json\n\n        \"EOX_HOOKS_DEFINITIONS\": {\n            \"post_register\": {\n                \"action\": \"post_to_webhook_url\",\n                \"fail_silently\": true,\n                \"module\": \"eox_hooks.actions\",\n                \"config\" : {\n                    \"send_certificate_data\": false,\n                    \"url\": \"https://webhook.site\",\n                    \"fields\": {\n                            \"recipient_email\": \"user.pii.email\"\n                    }\n                }\n            }\n        }\n\n.. code-block:: json\n\n        \"EOX_HOOKS_DEFINITIONS\": {\n            \"post_certificate_creation\": {\n                \"action\": \"trigger_grades_assignment\",\n                \"fail_silently\": true,\n                \"module\": \"eox_hooks.actions\"\n            }\n        }\n\n.. code-block:: json\n\n        \"EOX_HOOKS_DEFINITIONS\": {\n            \"post_enrollment\": {\n                \"action\": \"trigger_enrollments_creation\",\n                \"fail_silently\": false,\n                \"module\": \"eox_hooks.actions\"\n            }\n        }\n\n\nHow to Contribute\n#################\n\nContributions are welcome! See our `CONTRIBUTING`_ file for more\ninformation \u2013 it also contains guidelines for how to maintain high code\nquality, which will make your contribution more likely to be accepted.\n\n.. _CONTRIBUTING: https://github.com/eduNEXT/eox-hooks/blob/master/CONTRIBUTING.rst\n.. _edx-platform: https://github.com/edx/edx-platform/\n.. _openedx plugin: https://github.com/edx/edx-platform/tree/master/openedx/core/djangoapps/plugins\n",
    "bugtrack_url": null,
    "license": "AGPL",
    "summary": "EoxHooks",
    "version": "6.0.0",
    "project_urls": null,
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "2af4a74214171ff1aaa5a38a63ade89943ef16d022fcb2d4da6f32dc63b6766c",
                "md5": "b8ac21cb489718399ece92557a712678",
                "sha256": "ddde300c259ed7f2524bad8d06ac8811b534c9ddc2579a929c421c7ee19b3a5e"
            },
            "downloads": -1,
            "filename": "eox_hooks-6.0.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "b8ac21cb489718399ece92557a712678",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 44851,
            "upload_time": "2024-02-09T15:52:44",
            "upload_time_iso_8601": "2024-02-09T15:52:44.216834Z",
            "url": "https://files.pythonhosted.org/packages/2a/f4/a74214171ff1aaa5a38a63ade89943ef16d022fcb2d4da6f32dc63b6766c/eox_hooks-6.0.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c813deea8bf21cb94e4f4796eafa87935fe360d9a59c56dfb4b00a15880ec689",
                "md5": "e32b6397a7560c366a216a4f57364b91",
                "sha256": "63c4495955796c3b23448acb1cc09debad5cf94834fdc62ee8c83fd273c38082"
            },
            "downloads": -1,
            "filename": "eox-hooks-6.0.0.tar.gz",
            "has_sig": false,
            "md5_digest": "e32b6397a7560c366a216a4f57364b91",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 36508,
            "upload_time": "2024-02-09T15:52:46",
            "upload_time_iso_8601": "2024-02-09T15:52:46.080151Z",
            "url": "https://files.pythonhosted.org/packages/c8/13/deea8bf21cb94e4f4796eafa87935fe360d9a59c56dfb4b00a15880ec689/eox-hooks-6.0.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-02-09 15:52:46",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "eox-hooks"
}
        
Elapsed time: 0.21641s