edx-name-affirmation


Nameedx-name-affirmation JSON
Version 2.3.7 PyPI version JSON
download
home_pagehttps://github.com/edx/edx-name-affirmation
SummaryName affirmation app for Open edX
upload_time2023-09-27 13:45:55
maintainer
docs_urlNone
authoredX
requires_python
licenseAGPL 3.0
keywords django edx
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage
            ####################
edx-name-affirmation
####################

| |Build Status| |Coveralls|

This library contains data model and business logic to store verified 
personal information for learners of the edx-platform.
This library is designed to be a pluggable library to the edx-platform.

Overview
========

This library mainly stores various stages of a learner's verified identifying information.
The prevalent example is the learner's full name. To verify the full name, the learner
has to first initiate from UI that is part of the platform.
Here are the steps of which the PII information, for example: full name, goes through:

1. learner requests to update the name
2. learner is brought to go through ID verification process
3. learner submit the ID verification after providing supporting evidence
4. the ID Verification reviewer approves or denies the verification
5. the library receives the verdict and updates the name record in the model accordingly

The above process can also be triggered by a Proctored exam attempt, where the exam attempt status
can be the input into this library to create and update the name record's status. In this case,
the learner do not have to go through ID Verification. The proctoring process always collects ID
verification evidence.

For more context of the library, see `context`_.

Dependencies
------------

In addition to the edx-platform repository this library is installing into, the library also leverages
the `frontend-app-account`_ Micro-Frontend to capture learners' attempt to update their full name.

Installing in Docker Devstack
-----------------------------

Assuming that your ``devstack`` repo lives at ``~/edx/devstack``
and that ``edx-platform`` lives right alongside that directory, you'll want
to checkout ``edx-name-affirmation`` and have it live in ``~/edx/src/edx-name-affirmation``.
This will make it so that you can access it inside an LMS container shell
and easily make modifications for local testing.

Run ``make lms-shell`` from your ``devstack`` directory to enter a running LMS container.
Once in there, you can do the following to have your devstack pointing at a local development
version of ``edx-name-affirmation``:

.. code:: bash

    $ pushd /edx/src/edx-name-affirmation
    $ virtualenv venv/
    $ source venv/bin/activate
    $ make install
    $ make test  # optional, if you want to see that everything works
    $ deactivate
    $ pushd  # should take you back to /edx/edx-platform
    $ pip uninstall -y edx_name_affirmation
    $ pip install -e /edx/src/edx-name-affirmation

Alternatively, you can add ``./src/edx-name-affirmation`` to the edx-platform ``private.txt`` of the ``requirements`` folder
This way, when you are pip installing within edx-platform, you don't have to perform the above step again.

Enabling in LMS
---------------
Make sure your LMS settings have the Feature ``ENABLE_SPECIAL_EXAMS`` enabled.
Check your edx-platform ``lms/env`` settings file.

Disable the plugin library
--------------------------

There are two ways to disable the plugin library:

- You can uninstall the library from edx-platform.
- In the `setup.py`_, you can remove the ``entry_points`` into either ``LMS`` or ``CMS``

Development
-----------

installation and settings
=========================

Install to the python virtualenv with help from virtualenvwrapper:

.. code:: bash

    $ pip install --user virtualenvwrapper
    $ mkvirtualenv nameaffirmation

For detailed instructions on virtualenvwrapper: https://virtualenvwrapper.readthedocs.io/en/latest/install.html

Running tests
=============

From the edx-name-affirmation repo root, run the tests with the following command:

.. code:: bash

    $ make test

Running code quality check
==========================

From the edx-name-affirmation repo root, run the quality checks with the following command:

.. code:: bash

    $ make quality


Package Requirements
====================

``requirements/dev.txt`` contains a list of package dependencies which are required for this package.

``requirements/test.txt`` is used to install the same dependencies when running the tests for this package.


License
-------

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


How To Contribute
-----------------

Contributions are very welcome.

Please read `How To Contribute <https://github.com/edx/edx-platform/blob/master/CONTRIBUTING.rst>`_ for details.

Even though they were written with ``edx-platform`` in mind, the guidelines
should be followed for Open edX code in general.

Reporting Security Issues
-------------------------

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

Getting Help
------------

Have a question about this repository, or about Open edX in general?  Please
refer to this `list of resources`_ if you need any assistance.

.. _list of resources: https://open.edx.org/getting-help
.. _context: ./docs/context.rst
.. _frontend-app-account: https://github.com/openedx/frontend-app-account
.. _setup.py: ./setup.py


.. |Build Status| image:: https://github.com/edx/edx-name-affirmation/workflows/Python%20CI/badge.svg?branch=main
  :target: https://github.com/edx/edx-name-affirmation/actions?query=workflow%3A%22Python+CI%22

.. |Coveralls| image:: https://coveralls.io/repos/edx/edx-name-affirmation/badge.svg?branch=main&service=github
  :target: https://coveralls.io/github/edx/edx-name-affirmation?branch=main

Change Log
----------

..
   All enhancements and patches to edx-name-affirmation 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
~~~~~~~~~~

[2.3.6] - 2023-07-28
~~~~~~~~~~~~~~~~~~~~
* Upgrade django-simple-history. Added new migration. Fixed packages upgrade issues.

[2.3.5] - 2022-09-09
~~~~~~~~~~~~~~~~~~~~
* Fix bug that prevents a verified name from being updated if the user already has an approved verified name associated with a proctored exam attempt

[2.3.4] - 2022-05-17
~~~~~~~~~~~~~~~~~~~~
* Fix bug that prevents new verified names from being created if the user is trying to verify the same name

[2.3.3] - 2022-04-21
~~~~~~~~~~~~~~~~~~~~
* Leverage edx-api-doc-tools to provide better swagger documentation for the RESTFul API endpoints
* Updated internal documentation. Added to the readme and a new docs context

[2.3.2] - 2022-03-11
~~~~~~~~~~~~~~~~~~~~
* Add simple_history tracking to the VerifiedName model

[2.3.1] - 2022-03-02
~~~~~~~~~~~~~~~~~~~~
* Add two signal handlers to capture post_delete signals from ProctoredExamStudentAttempt and SoftwareSecurePhotoVerification models.
  If those signals are received, the corresponding VerifiedName(s), if it exists, will be deleted.

[2.3.0] - 2022-02-28
~~~~~~~~~~~~~~~~~~~~
* Add REST API functionality to update verified name status, and to delete verified names.

[2.2.1] - 2022-02-23
~~~~~~~~~~~~~~~~~~~~
* Update verified name status to `denied` if proctoring `error` status is received

[2.2.0] - 2022-02-14
~~~~~~~~~~~~~~~~~~~~
* Added Django40 testing and dropped Django22, 30 and 31 support

[2.1.0] - 2022-01-11
~~~~~~~~~~~~~~~~~~~~
* Add optional `statuses_to_exclude` argument to `get_verified_name` in order to filter out one or
  more statuses from the result.

[2.0.3] - 2021-11-17
~~~~~~~~~~~~~~~~~~~~
* Remove unused celery tasks

[2.0.2] - 2021-11-16
~~~~~~~~~~~~~~~~~~~~
* Cut over to new celery tasks for IDV and proctoring handlers.

[2.0.1] - 2021-11-15
~~~~~~~~~~~~~~~~~~~~
* If we receive a non-relevant status for either IDV or proctoring, do not
  trigger a celery task.

[2.0.0] - 2021-10-27
~~~~~~~~~~~~~~~~~~~~~
* Remove VERIFIED_NAME_FLAG and all references to it.
* Remove VerifiedNameEnabledView view.
* Remove verified_name_enabled key from responses for VerifiedNameView view and VerifiedNameHistoryView

[1.0.3] - 2021-10-26
~~~~~~~~~~~~~~~~~~~~~
* Add system check to CI.
* Add additional logs to IDV signal handler and Celery task logic.

[1.0.2] - 2021-09-29
~~~~~~~~~~~~~~~~~~~~~
* Add automatic retry logic to celery tasks.

[1.0.1] - 2021-09-28
~~~~~~~~~~~~~~~~~~~~~
* Move toggle check out of tasks

[1.0.0] - 2021-09-23
~~~~~~~~~~~~~~~~~~~~~
* Move signal receiver logic into celery task

[0.11.0] - 2021-09-15
~~~~~~~~~~~~~~~~~~~~~
* Add name change validator

[0.10.0] - 2021-09-13
~~~~~~~~~~~~~~~~~~~~~
* Add is verified name enabled endpoint

[0.9.2] - 2021-09-07
~~~~~~~~~~~~~~~~~~~~
* Update IDV signal handler field names to be more explicit about the received names.

[0.9.1] - 2021-09-07
~~~~~~~~~~~~~~~~~~~~
* Add extra validation for the VerifiedName serializer, throwing a 400 error if
  `verified_name` contains HTML or a URL.

[0.9.0] - 2021-09-01
~~~~~~~~~~~~~~~~~~~~
* Add is verified name enabled to the API
* ADR for the use of signals in name affirmation service

[0.8.2] - 2021-08-31
~~~~~~~~~~~~~~~~~~~~
* Update django admin to allow editing of VerifiedName and VerifiedNameConfig

[0.8.1] - 2021-08-30
~~~~~~~~~~~~~~~~~~~~
* Emit signal when `VerifiedName` status changes to "approved".

[0.8.0] - 2021-08-30
~~~~~~~~~~~~~~~~~~~~
* Add signal receivers for IDV and proctoring attempts

[0.7.0] - 2021-08-26
~~~~~~~~~~~~~~~~~~~~
* Add verified_name_enabled and use_verified_name_for_certs to the GET response of VerifiedNameHistoryView.

[0.6.4] - 2021-08-18
~~~~~~~~~~~~~~~~~~~~
* Remove verified name is_verified from DB

[0.6.3] - 2021-08-18
~~~~~~~~~~~~~~~~~~~~
* Update admin for verified name status

[0.6.2] - 2021-08-17
~~~~~~~~~~~~~~~~~~~~
* Remove verified name is_verified from model

[0.6.1] - 2021-08-17
~~~~~~~~~~~~~~~~~~~~
* Django settings updates for admin app

[0.6.0] - 2021-08-11
~~~~~~~~~~~~~~~~~~~~
* Add name verification status field, replacing single is_verified boolean.

[0.5.0] - 2021-08-11
~~~~~~~~~~~~~~~~~~~~
* Add API method and endpoint to return a complete list of the user's
  VerifiedNames, ordered by most recently created.

[0.4.0] - 2021-08-06
~~~~~~~~~~~~~~~~~~~~
* Expose API methods through `NameAffirmationService`.

[0.3.1] - 2021-08-03
~~~~~~~~~~~~~~~~~~~~
* Update `MANIFEST.in` to include all directories under `edx_name_affirmation`.

[0.3.0] - 2021-08-02
~~~~~~~~~~~~~~~~~~~~
* Add `use_verified_name_for_certs` field to the VerifiedNameView
  response, and create a new endpoint to update the user's verified
  name config.
* Admin page configuration for VerifiedName and VerifiedNameConfig.

[0.2.0] - 2021-07-22
~~~~~~~~~~~~~~~~~~~~
* Add verified_name_enabled to VerifiedNameView GET response.
* Add PR template.
* Add VerifiedNameConfig model and API functions.

[0.1.2] - 2021-07-02
~~~~~~~~~~~~~~~~~~~~
* Add plugin support.

[0.1.1] - 2021-06-30
~~~~~~~~~~~~~~~~~~~~
* Fix typo in publish-pypi job.

[0.1.0] - 2021-06-30
~~~~~~~~~~~~~~~~~~~~
* Initialize project along with `VerifiedName` model, Python API, and REST endpoints.



            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/edx/edx-name-affirmation",
    "name": "edx-name-affirmation",
    "maintainer": "",
    "docs_url": null,
    "requires_python": "",
    "maintainer_email": "",
    "keywords": "Django edx",
    "author": "edX",
    "author_email": "oscm@edx.org",
    "download_url": "https://files.pythonhosted.org/packages/c9/b7/abf6ad594db78645775089722041b50213307ec9b7621ccfac1752a35b44/edx-name-affirmation-2.3.7.tar.gz",
    "platform": null,
    "description": "####################\nedx-name-affirmation\n####################\n\n| |Build Status| |Coveralls|\n\nThis library contains data model and business logic to store verified \npersonal information for learners of the edx-platform.\nThis library is designed to be a pluggable library to the edx-platform.\n\nOverview\n========\n\nThis library mainly stores various stages of a learner's verified identifying information.\nThe prevalent example is the learner's full name. To verify the full name, the learner\nhas to first initiate from UI that is part of the platform.\nHere are the steps of which the PII information, for example: full name, goes through:\n\n1. learner requests to update the name\n2. learner is brought to go through ID verification process\n3. learner submit the ID verification after providing supporting evidence\n4. the ID Verification reviewer approves or denies the verification\n5. the library receives the verdict and updates the name record in the model accordingly\n\nThe above process can also be triggered by a Proctored exam attempt, where the exam attempt status\ncan be the input into this library to create and update the name record's status. In this case,\nthe learner do not have to go through ID Verification. The proctoring process always collects ID\nverification evidence.\n\nFor more context of the library, see `context`_.\n\nDependencies\n------------\n\nIn addition to the edx-platform repository this library is installing into, the library also leverages\nthe `frontend-app-account`_ Micro-Frontend to capture learners' attempt to update their full name.\n\nInstalling in Docker Devstack\n-----------------------------\n\nAssuming that your ``devstack`` repo lives at ``~/edx/devstack``\nand that ``edx-platform`` lives right alongside that directory, you'll want\nto checkout ``edx-name-affirmation`` and have it live in ``~/edx/src/edx-name-affirmation``.\nThis will make it so that you can access it inside an LMS container shell\nand easily make modifications for local testing.\n\nRun ``make lms-shell`` from your ``devstack`` directory to enter a running LMS container.\nOnce in there, you can do the following to have your devstack pointing at a local development\nversion of ``edx-name-affirmation``:\n\n.. code:: bash\n\n    $ pushd /edx/src/edx-name-affirmation\n    $ virtualenv venv/\n    $ source venv/bin/activate\n    $ make install\n    $ make test  # optional, if you want to see that everything works\n    $ deactivate\n    $ pushd  # should take you back to /edx/edx-platform\n    $ pip uninstall -y edx_name_affirmation\n    $ pip install -e /edx/src/edx-name-affirmation\n\nAlternatively, you can add ``./src/edx-name-affirmation`` to the edx-platform ``private.txt`` of the ``requirements`` folder\nThis way, when you are pip installing within edx-platform, you don't have to perform the above step again.\n\nEnabling in LMS\n---------------\nMake sure your LMS settings have the Feature ``ENABLE_SPECIAL_EXAMS`` enabled.\nCheck your edx-platform ``lms/env`` settings file.\n\nDisable the plugin library\n--------------------------\n\nThere are two ways to disable the plugin library:\n\n- You can uninstall the library from edx-platform.\n- In the `setup.py`_, you can remove the ``entry_points`` into either ``LMS`` or ``CMS``\n\nDevelopment\n-----------\n\ninstallation and settings\n=========================\n\nInstall to the python virtualenv with help from virtualenvwrapper:\n\n.. code:: bash\n\n    $ pip install --user virtualenvwrapper\n    $ mkvirtualenv nameaffirmation\n\nFor detailed instructions on virtualenvwrapper: https://virtualenvwrapper.readthedocs.io/en/latest/install.html\n\nRunning tests\n=============\n\nFrom the edx-name-affirmation repo root, run the tests with the following command:\n\n.. code:: bash\n\n    $ make test\n\nRunning code quality check\n==========================\n\nFrom the edx-name-affirmation repo root, run the quality checks with the following command:\n\n.. code:: bash\n\n    $ make quality\n\n\nPackage Requirements\n====================\n\n``requirements/dev.txt`` contains a list of package dependencies which are required for this package.\n\n``requirements/test.txt`` is used to install the same dependencies when running the tests for this package.\n\n\nLicense\n-------\n\nThe code in this repository is licensed under the AGPL 3.0 unless\notherwise noted.\n\n\nHow To Contribute\n-----------------\n\nContributions are very welcome.\n\nPlease read `How To Contribute <https://github.com/edx/edx-platform/blob/master/CONTRIBUTING.rst>`_ for details.\n\nEven though they were written with ``edx-platform`` in mind, the guidelines\nshould be followed for Open edX code in general.\n\nReporting Security Issues\n-------------------------\n\nPlease do not report security issues in public. Please email security@edx.org.\n\nGetting Help\n------------\n\nHave a question about this repository, or about Open edX in general?  Please\nrefer to this `list of resources`_ if you need any assistance.\n\n.. _list of resources: https://open.edx.org/getting-help\n.. _context: ./docs/context.rst\n.. _frontend-app-account: https://github.com/openedx/frontend-app-account\n.. _setup.py: ./setup.py\n\n\n.. |Build Status| image:: https://github.com/edx/edx-name-affirmation/workflows/Python%20CI/badge.svg?branch=main\n  :target: https://github.com/edx/edx-name-affirmation/actions?query=workflow%3A%22Python+CI%22\n\n.. |Coveralls| image:: https://coveralls.io/repos/edx/edx-name-affirmation/badge.svg?branch=main&service=github\n  :target: https://coveralls.io/github/edx/edx-name-affirmation?branch=main\n\nChange Log\n----------\n\n..\n   All enhancements and patches to edx-name-affirmation 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[2.3.6] - 2023-07-28\n~~~~~~~~~~~~~~~~~~~~\n* Upgrade django-simple-history. Added new migration. Fixed packages upgrade issues.\n\n[2.3.5] - 2022-09-09\n~~~~~~~~~~~~~~~~~~~~\n* Fix bug that prevents a verified name from being updated if the user already has an approved verified name associated with a proctored exam attempt\n\n[2.3.4] - 2022-05-17\n~~~~~~~~~~~~~~~~~~~~\n* Fix bug that prevents new verified names from being created if the user is trying to verify the same name\n\n[2.3.3] - 2022-04-21\n~~~~~~~~~~~~~~~~~~~~\n* Leverage edx-api-doc-tools to provide better swagger documentation for the RESTFul API endpoints\n* Updated internal documentation. Added to the readme and a new docs context\n\n[2.3.2] - 2022-03-11\n~~~~~~~~~~~~~~~~~~~~\n* Add simple_history tracking to the VerifiedName model\n\n[2.3.1] - 2022-03-02\n~~~~~~~~~~~~~~~~~~~~\n* Add two signal handlers to capture post_delete signals from ProctoredExamStudentAttempt and SoftwareSecurePhotoVerification models.\n  If those signals are received, the corresponding VerifiedName(s), if it exists, will be deleted.\n\n[2.3.0] - 2022-02-28\n~~~~~~~~~~~~~~~~~~~~\n* Add REST API functionality to update verified name status, and to delete verified names.\n\n[2.2.1] - 2022-02-23\n~~~~~~~~~~~~~~~~~~~~\n* Update verified name status to `denied` if proctoring `error` status is received\n\n[2.2.0] - 2022-02-14\n~~~~~~~~~~~~~~~~~~~~\n* Added Django40 testing and dropped Django22, 30 and 31 support\n\n[2.1.0] - 2022-01-11\n~~~~~~~~~~~~~~~~~~~~\n* Add optional `statuses_to_exclude` argument to `get_verified_name` in order to filter out one or\n  more statuses from the result.\n\n[2.0.3] - 2021-11-17\n~~~~~~~~~~~~~~~~~~~~\n* Remove unused celery tasks\n\n[2.0.2] - 2021-11-16\n~~~~~~~~~~~~~~~~~~~~\n* Cut over to new celery tasks for IDV and proctoring handlers.\n\n[2.0.1] - 2021-11-15\n~~~~~~~~~~~~~~~~~~~~\n* If we receive a non-relevant status for either IDV or proctoring, do not\n  trigger a celery task.\n\n[2.0.0] - 2021-10-27\n~~~~~~~~~~~~~~~~~~~~~\n* Remove VERIFIED_NAME_FLAG and all references to it.\n* Remove VerifiedNameEnabledView view.\n* Remove verified_name_enabled key from responses for VerifiedNameView view and VerifiedNameHistoryView\n\n[1.0.3] - 2021-10-26\n~~~~~~~~~~~~~~~~~~~~~\n* Add system check to CI.\n* Add additional logs to IDV signal handler and Celery task logic.\n\n[1.0.2] - 2021-09-29\n~~~~~~~~~~~~~~~~~~~~~\n* Add automatic retry logic to celery tasks.\n\n[1.0.1] - 2021-09-28\n~~~~~~~~~~~~~~~~~~~~~\n* Move toggle check out of tasks\n\n[1.0.0] - 2021-09-23\n~~~~~~~~~~~~~~~~~~~~~\n* Move signal receiver logic into celery task\n\n[0.11.0] - 2021-09-15\n~~~~~~~~~~~~~~~~~~~~~\n* Add name change validator\n\n[0.10.0] - 2021-09-13\n~~~~~~~~~~~~~~~~~~~~~\n* Add is verified name enabled endpoint\n\n[0.9.2] - 2021-09-07\n~~~~~~~~~~~~~~~~~~~~\n* Update IDV signal handler field names to be more explicit about the received names.\n\n[0.9.1] - 2021-09-07\n~~~~~~~~~~~~~~~~~~~~\n* Add extra validation for the VerifiedName serializer, throwing a 400 error if\n  `verified_name` contains HTML or a URL.\n\n[0.9.0] - 2021-09-01\n~~~~~~~~~~~~~~~~~~~~\n* Add is verified name enabled to the API\n* ADR for the use of signals in name affirmation service\n\n[0.8.2] - 2021-08-31\n~~~~~~~~~~~~~~~~~~~~\n* Update django admin to allow editing of VerifiedName and VerifiedNameConfig\n\n[0.8.1] - 2021-08-30\n~~~~~~~~~~~~~~~~~~~~\n* Emit signal when `VerifiedName` status changes to \"approved\".\n\n[0.8.0] - 2021-08-30\n~~~~~~~~~~~~~~~~~~~~\n* Add signal receivers for IDV and proctoring attempts\n\n[0.7.0] - 2021-08-26\n~~~~~~~~~~~~~~~~~~~~\n* Add verified_name_enabled and use_verified_name_for_certs to the GET response of VerifiedNameHistoryView.\n\n[0.6.4] - 2021-08-18\n~~~~~~~~~~~~~~~~~~~~\n* Remove verified name is_verified from DB\n\n[0.6.3] - 2021-08-18\n~~~~~~~~~~~~~~~~~~~~\n* Update admin for verified name status\n\n[0.6.2] - 2021-08-17\n~~~~~~~~~~~~~~~~~~~~\n* Remove verified name is_verified from model\n\n[0.6.1] - 2021-08-17\n~~~~~~~~~~~~~~~~~~~~\n* Django settings updates for admin app\n\n[0.6.0] - 2021-08-11\n~~~~~~~~~~~~~~~~~~~~\n* Add name verification status field, replacing single is_verified boolean.\n\n[0.5.0] - 2021-08-11\n~~~~~~~~~~~~~~~~~~~~\n* Add API method and endpoint to return a complete list of the user's\n  VerifiedNames, ordered by most recently created.\n\n[0.4.0] - 2021-08-06\n~~~~~~~~~~~~~~~~~~~~\n* Expose API methods through `NameAffirmationService`.\n\n[0.3.1] - 2021-08-03\n~~~~~~~~~~~~~~~~~~~~\n* Update `MANIFEST.in` to include all directories under `edx_name_affirmation`.\n\n[0.3.0] - 2021-08-02\n~~~~~~~~~~~~~~~~~~~~\n* Add `use_verified_name_for_certs` field to the VerifiedNameView\n  response, and create a new endpoint to update the user's verified\n  name config.\n* Admin page configuration for VerifiedName and VerifiedNameConfig.\n\n[0.2.0] - 2021-07-22\n~~~~~~~~~~~~~~~~~~~~\n* Add verified_name_enabled to VerifiedNameView GET response.\n* Add PR template.\n* Add VerifiedNameConfig model and API functions.\n\n[0.1.2] - 2021-07-02\n~~~~~~~~~~~~~~~~~~~~\n* Add plugin support.\n\n[0.1.1] - 2021-06-30\n~~~~~~~~~~~~~~~~~~~~\n* Fix typo in publish-pypi job.\n\n[0.1.0] - 2021-06-30\n~~~~~~~~~~~~~~~~~~~~\n* Initialize project along with `VerifiedName` model, Python API, and REST endpoints.\n\n\n",
    "bugtrack_url": null,
    "license": "AGPL 3.0",
    "summary": "Name affirmation app for Open edX",
    "version": "2.3.7",
    "project_urls": {
        "Homepage": "https://github.com/edx/edx-name-affirmation"
    },
    "split_keywords": [
        "django",
        "edx"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "8e7cd3c5ed9dc21f90ca350d94be6bac007d5a49c991555deeb274ab88b8cb09",
                "md5": "15d396bd8300263cb9db8d0c0b5f17b0",
                "sha256": "6982fcd96cba566d9106d6f9672f94e3630f3a3e5d8fa7a386382578b87da7bc"
            },
            "downloads": -1,
            "filename": "edx_name_affirmation-2.3.7-py2.py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "15d396bd8300263cb9db8d0c0b5f17b0",
            "packagetype": "bdist_wheel",
            "python_version": "py2.py3",
            "requires_python": null,
            "size": 53490,
            "upload_time": "2023-09-27T13:45:54",
            "upload_time_iso_8601": "2023-09-27T13:45:54.163746Z",
            "url": "https://files.pythonhosted.org/packages/8e/7c/d3c5ed9dc21f90ca350d94be6bac007d5a49c991555deeb274ab88b8cb09/edx_name_affirmation-2.3.7-py2.py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c9b7abf6ad594db78645775089722041b50213307ec9b7621ccfac1752a35b44",
                "md5": "3d53dc26d2f001d390550ca7aa5236be",
                "sha256": "84e28a4aca19d46d18b12451c787563a1c2002d8978ac25e13af0542e17fcf39"
            },
            "downloads": -1,
            "filename": "edx-name-affirmation-2.3.7.tar.gz",
            "has_sig": false,
            "md5_digest": "3d53dc26d2f001d390550ca7aa5236be",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 55014,
            "upload_time": "2023-09-27T13:45:55",
            "upload_time_iso_8601": "2023-09-27T13:45:55.886080Z",
            "url": "https://files.pythonhosted.org/packages/c9/b7/abf6ad594db78645775089722041b50213307ec9b7621ccfac1752a35b44/edx-name-affirmation-2.3.7.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-09-27 13:45:55",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "edx",
    "github_project": "edx-name-affirmation",
    "travis_ci": false,
    "coveralls": true,
    "github_actions": true,
    "tox": true,
    "lcname": "edx-name-affirmation"
}
        
edX
Elapsed time: 0.27806s