diff --git a/.annotation_safe_list.yml b/.annotation_safe_list.yml index 45c6a18f6..f5b7eec98 100644 --- a/.annotation_safe_list.yml +++ b/.annotation_safe_list.yml @@ -13,9 +13,61 @@ auth.Group: ".. no_pii:": "This model has no PII" auth.Permission: ".. no_pii:": "This model has no PII" +auth.User: + ".. pii": "This model minimally contains a username, password, and email" + ".. pii_types": "username, email_address, password" + ".. pii_retirement": "consumer_api" contenttypes.ContentType: ".. no_pii:": "This model has no PII" -sessions.Session: +oel_collections.Collection: + ".. no_pii:": "This model has no PII" +oel_collections.CollectionPublishableEntity: + ".. no_pii:": "This model has no PII" +oel_components.Component: + ".. no_pii:": "This model has no PII" +oel_components.ComponentType: + ".. no_pii:": "This model has no PII" +oel_components.ComponentVersion: + ".. no_pii:": "This model has no PII" +oel_components.ComponentVersionContent: + ".. no_pii:": "This model has no PII" +oel_contents.Content: + ".. no_pii:": "This model has no PII" +oel_contents.MediaType: + ".. no_pii:": "This model has no PII" +oel_publishing.Container: + ".. no_pii:": "This model has no PII" +oel_publishing.ContainerVersion: + ".. no_pii:": "This model has no PII" +oel_publishing.Draft: + ".. no_pii:": "This model has no PII" +oel_publishing.EntityList: + ".. no_pii:": "This model has no PII" +oel_publishing.EntityListRow: + ".. no_pii:": "This model has no PII" +oel_publishing.LearningPackage: + ".. no_pii:": "This model has no PII" +oel_publishing.PublishLog: + ".. no_pii:": "This model has no PII" +oel_publishing.PublishLogRecord: + ".. no_pii:": "This model has no PII" +oel_publishing.PublishableEntity: + ".. no_pii:": "This model has no PII" +oel_publishing.PublishableEntityVersion: + ".. no_pii:": "This model has no PII" +oel_publishing.Published: + ".. no_pii:": "This model has no PII" +oel_tagging.ObjectTag: + ".. no_pii:": "This model has no PII" +oel_tagging.Tag: + ".. no_pii:": "This model has no PII" +oel_tagging.TagImportTask: + ".. no_pii:": "This model has no PII" +oel_tagging.Taxonomy: + ".. no_pii:": "This model has no PII" +oel_units.Unit: + ".. no_pii:": "This model has no PII" +oel_units.UnitVersion: ".. no_pii:": "This model has no PII" social_django.Association: ".. no_pii:": "This model has no PII" @@ -29,6 +81,8 @@ social_django.Partial: ".. no_pii:": "This model has no PII" social_django.UserSocialAuth: ".. no_pii:": "This model has no PII" +sessions.Session: + ".. no_pii:": "This model has no PII" waffle.Flag: ".. no_pii:": "This model has no PII" waffle.Sample: diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e06cecd1e..24e6f76ab 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -17,7 +17,7 @@ jobs: matrix: os: [ubuntu-latest] # Add macos-latest later? python-version: ['3.11', '3.12'] - toxenv: ["django42", "package", "quality"] + toxenv: ["django42", "django52", "package", "quality"] # We're only testing against MySQL 8 right now because 5.7 is # incompatible with Djagno 4.2. We'd have to make the tox.ini file more # complicated than it's worth given the short expected shelf-life of diff --git a/openedx_learning/__init__.py b/openedx_learning/__init__.py index 5f85ec83b..85ba9c333 100644 --- a/openedx_learning/__init__.py +++ b/openedx_learning/__init__.py @@ -2,4 +2,4 @@ Open edX Learning ("Learning Core"). """ -__version__ = "0.19.2" +__version__ = "0.20.0" diff --git a/openedx_learning/apps/authoring/publishing/migrations/0005_alter_entitylistrow_options.py b/openedx_learning/apps/authoring/publishing/migrations/0005_alter_entitylistrow_options.py new file mode 100644 index 000000000..84d603d51 --- /dev/null +++ b/openedx_learning/apps/authoring/publishing/migrations/0005_alter_entitylistrow_options.py @@ -0,0 +1,17 @@ +# Generated by Django 5.2 on 2025-04-08 10:50 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('oel_publishing', '0004_publishableentity_can_stand_alone'), + ] + + operations = [ + migrations.AlterModelOptions( + name='entitylistrow', + options={'ordering': ['order_num']}, + ), + ] diff --git a/requirements/base.in b/requirements/base.in index 33b66281a..f439bd117 100644 --- a/requirements/base.in +++ b/requirements/base.in @@ -5,7 +5,7 @@ attrs # Reduces boilerplate code involving class attributes celery # Asynchronous task execution library -Django<5.0 # Web application framework +Django # Web application framework djangorestframework<4.0 # REST API edx-drf-extensions # Extensions to the Django REST Framework used by Open edX diff --git a/setup.py b/setup.py index cebe7f47e..3dbaa6b47 100755 --- a/setup.py +++ b/setup.py @@ -86,6 +86,7 @@ def is_requirement(line): 'Development Status :: 3 - Alpha', 'Framework :: Django', 'Framework :: Django :: 4.2', + 'Framework :: Django :: 5.2', 'Intended Audience :: Developers', 'License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)', 'Natural Language :: English', diff --git a/tox.ini b/tox.ini index 8b64fbaaa..005ddb6c1 100644 --- a/tox.ini +++ b/tox.ini @@ -1,5 +1,5 @@ [tox] -envlist = py{311,312}-django{42}, quality, docs, pii_check, lint-imports +envlist = py{311,312}-django{42,52}, quality, docs, pii_check, lint-imports [doc8] ; D001 = Line too long @@ -38,6 +38,7 @@ norecursedirs = .* docs requirements site-packages deps = setuptools django42: Django>=4.2,<5.0 + django52: Django>=5.2,<6.0 -r{toxinidir}/requirements/test.txt setenv = # Note that the django32/django42 targets use MySQL, but running pytest by