Metadata-Version: 2.1
Name: edx-when
Version: 2.3.0
Summary: Your project description goes here
Home-page: https://github.com/edx/edx-when
Author: edX
Author-email: oscm@edx.org
License: AGPL 3.0
Keywords: Django edx
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Framework :: Django
Classifier: Framework :: Django :: 3.2
Classifier: Framework :: Django :: 4.0
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.8
License-File: LICENSE.txt
License-File: AUTHORS

edx-when
=============================

|pypi-badge| |CI| |codecov-badge| |doc-badge| |pyversions-badge|
|license-badge|

Overview
--------

edx-when is designed to be the central source of dates for the LMS.
This repository is deployed to PyPI and designed to be installed and imported by an installation of edx-platform.
As part of being integrated into edx-platform, edx-when shares the **same** database as the rest of the platform.
It is written to by Studio when a Course is published
(via https://github.com/edx/edx-platform/blob/master/openedx/core/djangoapps/course_date_signals/handlers.py)
and then the LMS reads from it in several locations.
This repo contains start, end, and due dates for Courses and offers the
functionality to have both absolute and relative dates.

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/edx-when/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/edx-when/blob/master/.github/ISSUE_TEMPLATE.md>`_

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


.. |pypi-badge| image:: https://img.shields.io/pypi/v/edx-when.svg
    :target: https://pypi.python.org/pypi/edx-when/
    :alt: PyPI

.. |CI| image:: https://github.com/edx/edx-when/workflows/Python%20CI/badge.svg?branch=master
    :target: https://github.com/edx/edx-when/actions?query=workflow%3A%22Python+CI%22
    :alt: CI

.. |codecov-badge| image:: http://codecov.io/github/edx/edx-when/coverage.svg?branch=master
    :target: http://codecov.io/github/edx/edx-when?branch=master
    :alt: Codecov

.. |doc-badge| image:: https://readthedocs.org/projects/edx-when/badge/?version=latest
    :target: http://edx-when.readthedocs.io/en/latest/
    :alt: Documentation

.. |pyversions-badge| image:: https://img.shields.io/pypi/pyversions/edx-when.svg
    :target: https://pypi.python.org/pypi/edx-when/
    :alt: Supported Python versions

.. |license-badge| image:: https://img.shields.io/github/license/edx/edx-when.svg
    :target: https://github.com/edx/edx-when/blob/master/LICENSE.txt
    :alt: License


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

..
   All enhancements and patches to edx_when 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
~~~~~~~~~~

[2.3.0] - 2022-02-15
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
* Added Django40 support
* Dropped Django22, 30 and 31 support


[2.2.2] - 2021-10-21
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
* Bug fix to bust cache when Personalized Learner Schedules are updated.

[2.2.1] - 2021-09-15
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
* Bug fix for optimization in 2.2.0, to account for missing block_type data.

[2.2.0] - 2021-08-27
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
* Added optimization when requesting course block dates for an outline, where block dates below subsections are unneeded.
* Use current version of the course to improve the cache key, along with using the TieredCache to cache date data.

[2.1.0] - 2021-07-23
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Added Django 3.2 Support

[2.0.0] - 2021-01-19
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Dropped python3.5 support.

[1.3.2] - 2021-01-15
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Don't warn about missing schedules for relative dates.
It happens for legitimate reasons, and the layer above can check instead.

[1.3.1] - 2020-11-19
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Updated travis badge in README.rst to point to travis-ci.com instead of travis-ci.org


[1.3.0] - 2020-07-16
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Django 3.x deprecation warnings are fixed

[1.2.9] - 2020-06-30
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Don't return due dates for enrollments originally created too close to the
course end to allow for finishing the course in time.

[1.2.8] - 2020-06-17
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Don't return due dates for enrollments created after course end

[1.2.4] - 2020-06-01
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Updates function in API for finding learners with a specific Schedule
that has an assignment on a given day, to also be inclusive of absolute
date schedules (everyone active in the course without an override).

[1.2.3] - 2020-04-30
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* Dropped support for Django versions below 2.2
* Added support for python 3.8

[1.1.4] - 2019-03-30
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* Drop the active index from ContentDate. It has low cardinality and Aurora was
  doing a lot of extra work to try to do an intersect query with that and
  the course_id index, when using the latter by itself would be far more
  efficient.


[1.1.3] - 2019-03-25
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* Use memcache to cache ContentDate information in get_dates_for_course


[0.1.0] - 2019-03-04
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Added
_____

* First release on PyPI.


