openedx-course-enrollment-audit


Nameopenedx-course-enrollment-audit JSON
Version 1.0.0 PyPI version JSON
download
home_pagehttps://github.com/open-craft/openedx-course-enrollment-audit
SummaryStore parsed and summarized manual enrollment audit data.
upload_time2024-12-26 18:15:05
maintainerNone
docs_urlNone
authorOpenCraft
requires_python>=3.11
licenseAGPL 3.0
keywords python edx
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            openedx-course-enrollment-audit
###############################

|pypi-badge| |ci-badge| |codecov-badge| |doc-badge| |pyversions-badge|
|license-badge| |status-badge|

Purpose
*******

This plugin optimizes the tracking and auditing of manual enrollments in Open edX courses by:

1. Parsing and storing JSON data from the ``reason`` field of the ``ManualEnrollment`` model.
2. Ensuring that each ``enrolled_email`` and ``course_id`` pair is unique.

Getting Started
***************

Developing
==========

One-Time Setup
--------------
.. code-block:: bash

  # Clone the repository
  git clone git@github.com:open-craft/openedx-course-enrollment-audit.git
  cd openedx-course-enrollment-audit

  # Set up a virtualenv using virtualenvwrapper with the same name as the repo and activate it
  mkvirtualenv -p python3.11 openedx-course-enrollment-audit

Tutor Installation
------------------

To install this plugin using Tutor:

.. code-block:: bash

  # Mount the directory in Tutor
  tutor mounts add openedx:/local/projects/shared-src:/openedx/shared-src

  # Install the package
  tutor dev exec lms pip install -e /openedx/shared-src/openedx-course-enrollment-audit

  # Run migrations
  tutor dev exec lms ./manage.py lms migrate openedx_course_enrollment_audit

Every time you develop something in this repo
---------------------------------------------
.. code-block::

  # Activate the virtualenv
  workon openedx-course-enrollment-audit

  # Grab the latest code
  git checkout main
  git pull

  # Install/update the dev requirements
  make requirements

  # Run the tests and quality checks (to verify the status before you make any changes)
  make validate

  # Make a new branch for your changes
  git checkout -b <your_github_username>/<short_description>

  # Using your favorite editor, edit the code to make your change.
  vim ...

  # Run static analysis and packaging tests
  make test

  # Run integration tests within Tutor
  tutor dev exec lms -- bash -c "cd /openedx/shared-src/openedx-course-enrollment-audit && make test_integration"

  # Commit all your changes
  git commit ...
  git push

  # Open a PR and ask for review.

Deploying
=========

Native Installation
-------------------

To deploy this to an Open edX instance, include it in the ``EDXAPP_PRIVATE_REQUIREMENTS`` or ``EDXAPP_EXTRA_REQUIREMENTS`` variables.

Tutor Installation
------------------

To `install`_ this in the Open edX build, include it in the ``config.yml`` file using the ``OPENEDX_EXTRA_PIP_REQUIREMENTS`` variable.

You need to rebuild the Open edX image:

.. code-block:: bash

  tutor images build openedx


.. _install: https://docs.tutor.overhang.io/configuration.html?highlight=xblock#installing-extra-xblocks-and-requirements


Documentation
*************

Usage
=====

You can inspect the records by importing the ``CourseEnrollmentAudit`` model in your Django shell:

.. code-block:: python

  from openedx_course_enrollment_audit.models import CourseEnrollmentAudit
  CourseEnrollmentAudit.objects.all()

Alternatively, you can access them directly from the database shell:

.. code-block:: sql

  ./manage.py lms dbshell
  SELECT * FROM openedx_course_enrollment_audit_courseenrollmentaudit;

Backfilling Existing Data
=========================

To backfill existing data from ``ManualEnrollmentAudit`` into ``CourseEnrollmentAudit``, run the following management command:

.. code-block:: bash

  ./manage.py lms backfill_course_enrollment_audit

This command ensures that all existing manual enrollments are tracked and audited according to the plugin's logic.

Getting Help
============

If you're having trouble, we have discussion forums at
https://discuss.openedx.org where you can connect with others in the
community.

Our real-time conversations are on Slack. You can request a `Slack
invitation`_, then join our `community Slack workspace`_.

For anything non-trivial, the best path is to open an issue in this
repository with as many details about the issue you are facing as you
can provide.

https://github.com/open-craft/openedx-course-enrollment-audit/issues

For more information about these options, see the `Getting Help`_ page.

.. _Slack invitation: https://openedx.org/slack
.. _community Slack workspace: https://openedx.slack.com/
.. _Getting Help: https://openedx.org/getting-help

License
*******

The code in this repository is licensed under the AGPL 3.0 unless
otherwise noted.

Please see `LICENSE.txt <LICENSE.txt>`_ for details.

Contributing
************

Contributions are very welcome.
Please read `How To Contribute <https://openedx.org/r/how-to-contribute>`_ for details.

This project is currently accepting all types of contributions, bug fixes,
security fixes, maintenance work, or new features.  However, please make sure
to have a discussion about your new feature idea with the maintainers prior to
beginning development to maximize the chances of your change being accepted.
You can start a conversation by creating a new issue on this repo summarizing
your idea.

The Open edX Code of Conduct
****************************

All community members are expected to follow the `Open edX Code of Conduct`_.

.. _Open edX Code of Conduct: https://openedx.org/code-of-conduct/

People
******

The assigned maintainers for this component and other project details may be
found in `Backstage`_. Backstage pulls this data from the ``catalog-info.yaml``
file in this repo.

.. _Backstage: https://open-edx-backstage.herokuapp.com/catalog/default/component/openedx-course-enrollment-audit

Reporting Security Issues
*************************

Please do not report security issues in public. Please email security@tcril.org.

.. |pypi-badge| image:: https://img.shields.io/pypi/v/openedx-course-enrollment-audit.svg
    :target: https://pypi.python.org/pypi/openedx-course-enrollment-audit/
    :alt: PyPI

.. |ci-badge| image:: https://github.com/open-craft/openedx-course-enrollment-audit/workflows/Python%20CI/badge.svg?branch=main
    :target: https://github.com/open-craft/openedx-course-enrollment-audit/actions
    :alt: CI

.. |codecov-badge| image:: https://codecov.io/github/open-craft/openedx-course-enrollment-audit/coverage.svg?branch=main
    :target: https://codecov.io/github/open-craft/openedx-course-enrollment-audit?branch=main
    :alt: Codecov

.. |doc-badge| image:: https://readthedocs.org/projects/openedx-course-enrollment-audit/badge/?version=latest
    :target: https://openedx-course-enrollment-audit.readthedocs.io/en/latest/
    :alt: Documentation

.. |pyversions-badge| image:: https://img.shields.io/pypi/pyversions/openedx-course-enrollment-audit.svg
    :target: https://pypi.python.org/pypi/openedx-course-enrollment-audit/
    :alt: Supported Python versions

.. |license-badge| image:: https://img.shields.io/github/license/open-craft/openedx-course-enrollment-audit.svg
    :target: https://github.com/open-craft/openedx-course-enrollment-audit/blob/main/LICENSE.txt
    :alt: License

.. |status-badge| image:: https://img.shields.io/badge/Status-Maintained-brightgreen


Change Log
##########

..
   All enhancements and patches to openedx_course_enrollment_audit will be documented
   in this file.  It adheres to the structure of https://keepachangelog.com/ ,
   but in reStructuredText instead of Markdown (for ease of incorporation into
   Sphinx documentation and the PyPI description).

   This project adheres to Semantic Versioning (https://semver.org/).

.. There should always be an "Unreleased" section for changes pending release.

Unreleased
**********

*

[1.0.0] - 2024-12-13
********************

Added
=====

* First release on PyPI.

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/open-craft/openedx-course-enrollment-audit",
    "name": "openedx-course-enrollment-audit",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.11",
    "maintainer_email": null,
    "keywords": "Python edx",
    "author": "OpenCraft",
    "author_email": "help@opencraft.com",
    "download_url": "https://files.pythonhosted.org/packages/17/1d/fbc642debc47c0b6b007617406647415b1ab23c48ede7505708e4133d423/openedx_course_enrollment_audit-1.0.0.tar.gz",
    "platform": null,
    "description": "openedx-course-enrollment-audit\n###############################\n\n|pypi-badge| |ci-badge| |codecov-badge| |doc-badge| |pyversions-badge|\n|license-badge| |status-badge|\n\nPurpose\n*******\n\nThis plugin optimizes the tracking and auditing of manual enrollments in Open edX courses by:\n\n1. Parsing and storing JSON data from the ``reason`` field of the ``ManualEnrollment`` model.\n2. Ensuring that each ``enrolled_email`` and ``course_id`` pair is unique.\n\nGetting Started\n***************\n\nDeveloping\n==========\n\nOne-Time Setup\n--------------\n.. code-block:: bash\n\n  # Clone the repository\n  git clone git@github.com:open-craft/openedx-course-enrollment-audit.git\n  cd openedx-course-enrollment-audit\n\n  # Set up a virtualenv using virtualenvwrapper with the same name as the repo and activate it\n  mkvirtualenv -p python3.11 openedx-course-enrollment-audit\n\nTutor Installation\n------------------\n\nTo install this plugin using Tutor:\n\n.. code-block:: bash\n\n  # Mount the directory in Tutor\n  tutor mounts add openedx:/local/projects/shared-src:/openedx/shared-src\n\n  # Install the package\n  tutor dev exec lms pip install -e /openedx/shared-src/openedx-course-enrollment-audit\n\n  # Run migrations\n  tutor dev exec lms ./manage.py lms migrate openedx_course_enrollment_audit\n\nEvery time you develop something in this repo\n---------------------------------------------\n.. code-block::\n\n  # Activate the virtualenv\n  workon openedx-course-enrollment-audit\n\n  # Grab the latest code\n  git checkout main\n  git pull\n\n  # Install/update the dev requirements\n  make requirements\n\n  # Run the tests and quality checks (to verify the status before you make any changes)\n  make validate\n\n  # Make a new branch for your changes\n  git checkout -b <your_github_username>/<short_description>\n\n  # Using your favorite editor, edit the code to make your change.\n  vim ...\n\n  # Run static analysis and packaging tests\n  make test\n\n  # Run integration tests within Tutor\n  tutor dev exec lms -- bash -c \"cd /openedx/shared-src/openedx-course-enrollment-audit && make test_integration\"\n\n  # Commit all your changes\n  git commit ...\n  git push\n\n  # Open a PR and ask for review.\n\nDeploying\n=========\n\nNative Installation\n-------------------\n\nTo deploy this to an Open edX instance, include it in the ``EDXAPP_PRIVATE_REQUIREMENTS`` or ``EDXAPP_EXTRA_REQUIREMENTS`` variables.\n\nTutor Installation\n------------------\n\nTo `install`_ this in the Open edX build, include it in the ``config.yml`` file using the ``OPENEDX_EXTRA_PIP_REQUIREMENTS`` variable.\n\nYou need to rebuild the Open edX image:\n\n.. code-block:: bash\n\n  tutor images build openedx\n\n\n.. _install: https://docs.tutor.overhang.io/configuration.html?highlight=xblock#installing-extra-xblocks-and-requirements\n\n\nDocumentation\n*************\n\nUsage\n=====\n\nYou can inspect the records by importing the ``CourseEnrollmentAudit`` model in your Django shell:\n\n.. code-block:: python\n\n  from openedx_course_enrollment_audit.models import CourseEnrollmentAudit\n  CourseEnrollmentAudit.objects.all()\n\nAlternatively, you can access them directly from the database shell:\n\n.. code-block:: sql\n\n  ./manage.py lms dbshell\n  SELECT * FROM openedx_course_enrollment_audit_courseenrollmentaudit;\n\nBackfilling Existing Data\n=========================\n\nTo backfill existing data from ``ManualEnrollmentAudit`` into ``CourseEnrollmentAudit``, run the following management command:\n\n.. code-block:: bash\n\n  ./manage.py lms backfill_course_enrollment_audit\n\nThis command ensures that all existing manual enrollments are tracked and audited according to the plugin's logic.\n\nGetting Help\n============\n\nIf you're having trouble, we have discussion forums at\nhttps://discuss.openedx.org where you can connect with others in the\ncommunity.\n\nOur real-time conversations are on Slack. You can request a `Slack\ninvitation`_, then join our `community Slack workspace`_.\n\nFor anything non-trivial, the best path is to open an issue in this\nrepository with as many details about the issue you are facing as you\ncan provide.\n\nhttps://github.com/open-craft/openedx-course-enrollment-audit/issues\n\nFor more information about these options, see the `Getting Help`_ page.\n\n.. _Slack invitation: https://openedx.org/slack\n.. _community Slack workspace: https://openedx.slack.com/\n.. _Getting Help: https://openedx.org/getting-help\n\nLicense\n*******\n\nThe code in this repository is licensed under the AGPL 3.0 unless\notherwise noted.\n\nPlease see `LICENSE.txt <LICENSE.txt>`_ for details.\n\nContributing\n************\n\nContributions are very welcome.\nPlease read `How To Contribute <https://openedx.org/r/how-to-contribute>`_ for details.\n\nThis project is currently accepting all types of contributions, bug fixes,\nsecurity fixes, maintenance work, or new features.  However, please make sure\nto have a discussion about your new feature idea with the maintainers prior to\nbeginning development to maximize the chances of your change being accepted.\nYou can start a conversation by creating a new issue on this repo summarizing\nyour idea.\n\nThe Open edX Code of Conduct\n****************************\n\nAll community members are expected to follow the `Open edX Code of Conduct`_.\n\n.. _Open edX Code of Conduct: https://openedx.org/code-of-conduct/\n\nPeople\n******\n\nThe assigned maintainers for this component and other project details may be\nfound in `Backstage`_. Backstage pulls this data from the ``catalog-info.yaml``\nfile in this repo.\n\n.. _Backstage: https://open-edx-backstage.herokuapp.com/catalog/default/component/openedx-course-enrollment-audit\n\nReporting Security Issues\n*************************\n\nPlease do not report security issues in public. Please email security@tcril.org.\n\n.. |pypi-badge| image:: https://img.shields.io/pypi/v/openedx-course-enrollment-audit.svg\n    :target: https://pypi.python.org/pypi/openedx-course-enrollment-audit/\n    :alt: PyPI\n\n.. |ci-badge| image:: https://github.com/open-craft/openedx-course-enrollment-audit/workflows/Python%20CI/badge.svg?branch=main\n    :target: https://github.com/open-craft/openedx-course-enrollment-audit/actions\n    :alt: CI\n\n.. |codecov-badge| image:: https://codecov.io/github/open-craft/openedx-course-enrollment-audit/coverage.svg?branch=main\n    :target: https://codecov.io/github/open-craft/openedx-course-enrollment-audit?branch=main\n    :alt: Codecov\n\n.. |doc-badge| image:: https://readthedocs.org/projects/openedx-course-enrollment-audit/badge/?version=latest\n    :target: https://openedx-course-enrollment-audit.readthedocs.io/en/latest/\n    :alt: Documentation\n\n.. |pyversions-badge| image:: https://img.shields.io/pypi/pyversions/openedx-course-enrollment-audit.svg\n    :target: https://pypi.python.org/pypi/openedx-course-enrollment-audit/\n    :alt: Supported Python versions\n\n.. |license-badge| image:: https://img.shields.io/github/license/open-craft/openedx-course-enrollment-audit.svg\n    :target: https://github.com/open-craft/openedx-course-enrollment-audit/blob/main/LICENSE.txt\n    :alt: License\n\n.. |status-badge| image:: https://img.shields.io/badge/Status-Maintained-brightgreen\n\n\nChange Log\n##########\n\n..\n   All enhancements and patches to openedx_course_enrollment_audit will be documented\n   in this file.  It adheres to the structure of https://keepachangelog.com/ ,\n   but in reStructuredText instead of Markdown (for ease of incorporation into\n   Sphinx documentation and the PyPI description).\n\n   This project adheres to Semantic Versioning (https://semver.org/).\n\n.. There should always be an \"Unreleased\" section for changes pending release.\n\nUnreleased\n**********\n\n*\n\n[1.0.0] - 2024-12-13\n********************\n\nAdded\n=====\n\n* First release on PyPI.\n",
    "bugtrack_url": null,
    "license": "AGPL 3.0",
    "summary": "Store parsed and summarized manual enrollment audit data.",
    "version": "1.0.0",
    "project_urls": {
        "Homepage": "https://github.com/open-craft/openedx-course-enrollment-audit"
    },
    "split_keywords": [
        "python",
        "edx"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "3b601e459291c66035b28de5e3d6877d9b85bd3522ef5d9e022096a9ed891b79",
                "md5": "c7733e01cf3f5750ef4805f9fc714391",
                "sha256": "0e4a03b4cf4232e9d227eb30a13998d1aefc302d63affdb5aa3948f456032516"
            },
            "downloads": -1,
            "filename": "openedx_course_enrollment_audit-1.0.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "c7733e01cf3f5750ef4805f9fc714391",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.11",
            "size": 22631,
            "upload_time": "2024-12-26T18:15:03",
            "upload_time_iso_8601": "2024-12-26T18:15:03.850063Z",
            "url": "https://files.pythonhosted.org/packages/3b/60/1e459291c66035b28de5e3d6877d9b85bd3522ef5d9e022096a9ed891b79/openedx_course_enrollment_audit-1.0.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "171dfbc642debc47c0b6b007617406647415b1ab23c48ede7505708e4133d423",
                "md5": "9a2b01af158cc6aca30248a6d89f6406",
                "sha256": "aa66d9240b9f518eb70d90554d4a030a3b23d164e3b18bada1d592b1419d57d8"
            },
            "downloads": -1,
            "filename": "openedx_course_enrollment_audit-1.0.0.tar.gz",
            "has_sig": false,
            "md5_digest": "9a2b01af158cc6aca30248a6d89f6406",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.11",
            "size": 26471,
            "upload_time": "2024-12-26T18:15:05",
            "upload_time_iso_8601": "2024-12-26T18:15:05.395553Z",
            "url": "https://files.pythonhosted.org/packages/17/1d/fbc642debc47c0b6b007617406647415b1ab23c48ede7505708e4133d423/openedx_course_enrollment_audit-1.0.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-12-26 18:15:05",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "open-craft",
    "github_project": "openedx-course-enrollment-audit",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "tox": true,
    "lcname": "openedx-course-enrollment-audit"
}
        
Elapsed time: 0.41850s