Metadata-Version: 1.1
Name: edx-completion
Version: 3.2.2
Summary: A library for tracking completion of blocks by learners in edX courses.
Home-page: https://github.com/edx/completion
Author: edX
Author-email: oscm@edx.org
License: AGPL 3.0
Description: completion
        =============================
        
        |pypi-badge| |travis-badge| |codecov-badge| |doc-badge| |pyversions-badge|
        |license-badge|
        
        A library for tracking completion of blocks by learners in edX courses.
        
        Overview
        ________
        
        This repository provides a Django model `BlockCompletion` that is intended to be plugged into ``edx-platform``.  It
        provides various handlers and services for the recording of completion data.  It also provides a DRF API for submitting
        completion data in batches.
        
        Enabling in the LMS
        -------------------
        By default, the Open edX LMS does not use this library. To turn it on, go to http://localhost:18000/admin/waffle/switch/ (substitute your LMS URL for http://localhost:18000/), and add a new switch with Name ``completion.enable_completion_tracking`` and Active selected.
        
        See `Completion Tool <https://edx.readthedocs.io/projects/open-edx-building-and-running-a-course/en/latest/exercises_tools/completion.html>`_ in the Open edX documentation for details on what will happen once enabled.
        
        License
        -------
        
        The code in this repository is licensed under the AGPL 3.0 unless
        otherwise noted.
        
        Please see ``LICENSE.txt`` for details.
        
        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.
        
        PR description template should be automatically applied if you are sending PR from github interface; otherwise you
        can find it it at `PULL_REQUEST_TEMPLATE.md <https://github.com/edx/completion/blob/master/.github/PULL_REQUEST_TEMPLATE.md>`_
        
        Issue report template should be automatically applied if you are sending it from github UI as well; otherwise you
        can find it at `ISSUE_TEMPLATE.md <https://github.com/edx/completion/blob/master/.github/ISSUE_TEMPLATE.md>`_
        
        Reporting Security Issues
        -------------------------
        
        Please do not report security issues in public. Please email security@edx.org.
        
        Using with Docker Devstack
        --------------------------
        
        Prerequisite: Have your Open edX `Devstack <https://github.com/edx/devstack>`_ properly installed.
        
        Note: When you see "from inside the lms" below, it means that you've run ``make lms-shell`` from your devstack
        directory and are on a command prompt inside the LMS container.
        
        #. Clone this repo into ``../src/`` directory (relative to your "devstack" repo location). This will mount the
           directory in a way that is accessible to the lms container.
        
        #. From inside the lms, uninstall completion and reinstall your local copy. You can just copy the following line::
        
            pip uninstall completion -y; pip install -e /edx/src/completion/
        
        #. Now, get your completion development environment set up::
        
            cd /edx/src/completion
            virtualenv completion-env
            source completion-env/bin/activate
            make install
        
        #. Don't forget to enable the waffle switch as described above in "Enabling in the LMS"
        
        #. That's it!  In order to simulate a given tox environment ``(django18, django111, quality)``, run ``tox -e <env>`` for the env in question.  If you want to run ``pytest`` directly::
        
            pytest completion/tests/test_models.py
        
        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
        
        
        .. |pypi-badge| image:: https://img.shields.io/pypi/v/completion.svg
            :target: https://pypi.python.org/pypi/completion/
            :alt: PyPI
        
        .. |travis-badge| image:: https://travis-ci.org/edx/completion.svg?branch=master
            :target: https://travis-ci.org/edx/completion
            :alt: Travis
        
        .. |codecov-badge| image:: http://codecov.io/github/edx/completion/coverage.svg?branch=master
            :target: http://codecov.io/github/edx/completion?branch=master
            :alt: Codecov
        
        .. |doc-badge| image:: https://readthedocs.org/projects/completion/badge/?version=latest
            :target: http://completion.readthedocs.io/en/latest/
            :alt: Documentation
        
        .. |pyversions-badge| image:: https://img.shields.io/pypi/pyversions/completion.svg
            :target: https://pypi.python.org/pypi/completion/
            :alt: Supported Python versions
        
        .. |license-badge| image:: https://img.shields.io/github/license/edx/completion.svg
            :target: https://github.com/edx/completion/blob/master/LICENSE.txt
            :alt: License
        
        
        Change Log
        ----------
        
        ..
           All enhancements and patches to completion will be documented
           in this file.  It adheres to the structure of http://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 (http://semver.org/).
        
        .. There should always be an "Unreleased" section for changes pending release.
        
        Unreleased
        ~~~~~~~~~~
        
        [3.2.2] - 2020-06-30
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        * Adding recursive lookup for children of a vertical to the `vertical_is_complete` method in services.py.
        
          * This was added because verticals containing children that had their own children were not being properly marked
            as complete. Since the vertical was only looking one layer deep, it was possible to have children lower in the tree
            incomplete, but the vertical would still be marked as complete. Now it looks at all leaves under the vertical.
        
        [3.1.1] - 2020-02-24
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        * Remove unnecessary constraint for edx-drf-extensions<3.0.0
        
        [3.1.0] - 2020-02-18
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        * Upgrades packages, drops support for Python 2.
        
        [3.0.1] - 2019-10-22
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        * Fix the package long description to be valid rST, check this in CI.
        
        [3.0.0] - 2019-10-22
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        * Support tracking completion of XBlocks in any "learning context", such as in
          a content library, and not just in courses. To keep the code clean, this has
          been done as a **breaking change** to the python API. (The API has been
          simplified so that it's generally only necessary to pass in a block key /
          usage key rather than block key + course key.) The REST API is unchanged.
        
        [2.1.1] - 2019-10-21
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        * Updated credentials for PyPI deployment via token.
        
        [2.1.0] - 2019-10-18
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        * Switch blocks_to_mark_complete_on_view() to return a list of XBlocks instead of a set.  Many XBlocks aren't hashable;
          the old implementation allowed subtle bugs under Python 2.7 but triggers an immediate error under 3.5.
        
        [2.0.0] - 2019-04-23
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        * Unpin django-rest-framework requirements. This is a potentially **breaking change** if people were
          relying on this package to ensure the correct version of djangorestframework was being installed.
        * Remove the AUTHORS file and references to it.
        
        [1.0.2] - 2019-03-11
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        
        * Fix the 403 error occurring for completion-batch API for requests coming from the iOS devices
        
        [1.0.0] - 2018-10-16
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        * Updated edx-drf-extensions imports. Completion will no longer work with
          outdated versions of edx-drf-extensions.
        
        [0.1.14] - 2018-10-04
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        * Added submit_completion and submit_group_completion methods on
          CompletionService.
        
        [0.1.7] - 2018-06-18
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        * Added can_mark_block_complete_on_view() and blocks_to_mark_complete_on_view()
          methods on CompletionService and renamed get_completion_by_viewing_delay_ms()
          to get_complete_on_view_delay_ms().
        
        [0.1.6] - 2018-04-13
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        * Remove usage of deprecated CourseStructure api.
        
        [0.1.5] - 2018-04-03
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        * Delete enable_visual_progress methods and checks. Deprecate ENABLE_VISUAL_PROGRESS,
          ENABLE_COURSE_VISUAL_PROGRESS, and ENABLE_SITE_VISUAL_PROGRESS waffle flags
        
        [0.1.4] - 2018-03-28
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        * Site configurations must now explicitly disable visual progress for the
          enable_visual_progress() feature gating function to return False early.
        
        [0.1.3] - 2018-03-26
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        * Added some documentation.
        
        [0.1.2] - 2018-03-23
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        * Fix management of dependency versions
        
        [0.1.1] - 2018-03-23
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        * Fixes wildly inefficient raw query in BlockCompletion.latest_blocks_completed_all_courses()
        * Updates freezegun version, makes tests that use it somewhat faster.
        
        [0.1.0] - 2018-03-20
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        * Fixes https://openedx.atlassian.net/browse/EDUCATOR-2540
        
        [0.0.11] - 2018-03-20
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        * Added "subsection-completion/{username}/{course_key}/{subsection_id}" API
          endpoint, to be used with the completion milestones experiment.
        
        [0.0.9] - 2018-02-27
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        * Added "utilities.py", which houses methods for working with BlockCompletion
          data.
        
        [0.0.8] - 2018-03-01
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        * Add model method for superlative “last completed block” - for site awareness
          include every last completed block by course, for later sorting in business
          layer.
        
        [0.0.7] - 2018-02-15
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        * Add settings and service method for determining completion-by-viewing delay.
        
        [0.0.6] - 2018-02-13
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        * Add the additional completion logic into the service and models from edx-platform
        
        [0.0.2] - 2018-01-31
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        * Fix up edx-lint requirements shenanigans.
        
        [0.0.1] - 2018-01-31
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        * Initial release
        
Keywords: Django edx
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Framework :: Django
Classifier: Framework :: Django :: 2.2
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.8
