openedx-learning 0.10.0__tar.gz → 0.10.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (112) hide show
  1. {openedx_learning-0.10.0/openedx_learning.egg-info → openedx_learning-0.10.1}/PKG-INFO +5 -6
  2. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_learning/__init__.py +1 -1
  3. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_learning/apps/authoring/components/models.py +2 -0
  4. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_learning/apps/authoring/publishing/model_mixins.py +12 -0
  5. {openedx_learning-0.10.0 → openedx_learning-0.10.1/openedx_learning.egg-info}/PKG-INFO +5 -6
  6. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_tagging/core/tagging/api.py +4 -2
  7. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/setup.py +1 -2
  8. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/CHANGELOG.rst +0 -0
  9. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/LICENSE.txt +0 -0
  10. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/MANIFEST.in +0 -0
  11. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/README.rst +0 -0
  12. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_learning/api/__init__.py +0 -0
  13. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_learning/api/authoring.py +0 -0
  14. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_learning/api/authoring_models.py +0 -0
  15. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_learning/apps/__init__.py +0 -0
  16. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_learning/apps/authoring/__init__.py +0 -0
  17. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_learning/apps/authoring/components/__init__.py +0 -0
  18. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_learning/apps/authoring/components/admin.py +0 -0
  19. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_learning/apps/authoring/components/api.py +0 -0
  20. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_learning/apps/authoring/components/apps.py +0 -0
  21. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_learning/apps/authoring/components/migrations/0001_initial.py +0 -0
  22. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_learning/apps/authoring/components/migrations/0002_alter_componentversioncontent_key.py +0 -0
  23. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_learning/apps/authoring/components/migrations/__init__.py +0 -0
  24. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_learning/apps/authoring/contents/__init__.py +0 -0
  25. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_learning/apps/authoring/contents/admin.py +0 -0
  26. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_learning/apps/authoring/contents/api.py +0 -0
  27. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_learning/apps/authoring/contents/apps.py +0 -0
  28. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_learning/apps/authoring/contents/migrations/0001_initial.py +0 -0
  29. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_learning/apps/authoring/contents/migrations/__init__.py +0 -0
  30. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_learning/apps/authoring/contents/models.py +0 -0
  31. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_learning/apps/authoring/publishing/__init__.py +0 -0
  32. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_learning/apps/authoring/publishing/admin.py +0 -0
  33. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_learning/apps/authoring/publishing/api.py +0 -0
  34. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_learning/apps/authoring/publishing/apps.py +0 -0
  35. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_learning/apps/authoring/publishing/migrations/0001_initial.py +0 -0
  36. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_learning/apps/authoring/publishing/migrations/0002_alter_learningpackage_key_and_more.py +0 -0
  37. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_learning/apps/authoring/publishing/migrations/__init__.py +0 -0
  38. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_learning/apps/authoring/publishing/models.py +0 -0
  39. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_learning/contrib/__init__.py +0 -0
  40. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_learning/contrib/media_server/__init__.py +0 -0
  41. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_learning/contrib/media_server/apps.py +0 -0
  42. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_learning/contrib/media_server/urls.py +0 -0
  43. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_learning/contrib/media_server/views.py +0 -0
  44. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_learning/lib/__init__.py +0 -0
  45. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_learning/lib/admin_utils.py +0 -0
  46. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_learning/lib/cache.py +0 -0
  47. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_learning/lib/collations.py +0 -0
  48. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_learning/lib/fields.py +0 -0
  49. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_learning/lib/managers.py +0 -0
  50. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_learning/lib/test_utils.py +0 -0
  51. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_learning/lib/validators.py +0 -0
  52. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_learning/py.typed +0 -0
  53. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_learning.egg-info/SOURCES.txt +0 -0
  54. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_learning.egg-info/dependency_links.txt +0 -0
  55. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_learning.egg-info/not-zip-safe +0 -0
  56. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_learning.egg-info/requires.txt +3 -3
  57. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_learning.egg-info/top_level.txt +0 -0
  58. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_tagging/__init__.py +0 -0
  59. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_tagging/core/__init__.py +0 -0
  60. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_tagging/core/tagging/__init__.py +0 -0
  61. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_tagging/core/tagging/admin.py +0 -0
  62. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_tagging/core/tagging/apps.py +0 -0
  63. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_tagging/core/tagging/data.py +0 -0
  64. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_tagging/core/tagging/import_export/__init__.py +0 -0
  65. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_tagging/core/tagging/import_export/actions.py +0 -0
  66. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_tagging/core/tagging/import_export/api.py +0 -0
  67. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_tagging/core/tagging/import_export/exceptions.py +0 -0
  68. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_tagging/core/tagging/import_export/import_plan.py +0 -0
  69. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_tagging/core/tagging/import_export/parsers.py +0 -0
  70. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_tagging/core/tagging/import_export/tasks.py +0 -0
  71. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_tagging/core/tagging/import_export/template.csv +0 -0
  72. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_tagging/core/tagging/import_export/template.json +0 -0
  73. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_tagging/core/tagging/migrations/0001_initial.py +0 -0
  74. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_tagging/core/tagging/migrations/0001_squashed.py +0 -0
  75. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_tagging/core/tagging/migrations/0002_auto_20230718_2026.py +0 -0
  76. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_tagging/core/tagging/migrations/0003_auto_20230721_1238.py +0 -0
  77. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_tagging/core/tagging/migrations/0004_auto_20230723_2001.py +0 -0
  78. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_tagging/core/tagging/migrations/0005_language_taxonomy.py +0 -0
  79. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_tagging/core/tagging/migrations/0006_alter_objecttag_unique_together.py +0 -0
  80. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_tagging/core/tagging/migrations/0006_auto_20230802_1631.py +0 -0
  81. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_tagging/core/tagging/migrations/0007_tag_import_task_log_null_fix.py +0 -0
  82. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_tagging/core/tagging/migrations/0008_taxonomy_description_not_null.py +0 -0
  83. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_tagging/core/tagging/migrations/0009_alter_objecttag_object_id.py +0 -0
  84. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_tagging/core/tagging/migrations/0010_cleanups.py +0 -0
  85. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_tagging/core/tagging/migrations/0011_remove_required.py +0 -0
  86. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_tagging/core/tagging/migrations/0012_language_taxonomy.py +0 -0
  87. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_tagging/core/tagging/migrations/0013_tag_parent_blank.py +0 -0
  88. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_tagging/core/tagging/migrations/0014_minor_fixes.py +0 -0
  89. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_tagging/core/tagging/migrations/0015_taxonomy_export_id.py +0 -0
  90. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_tagging/core/tagging/migrations/0016_object_tag_export_id.py +0 -0
  91. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_tagging/core/tagging/migrations/0017_alter_tagimporttask_status.py +0 -0
  92. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_tagging/core/tagging/migrations/__init__.py +0 -0
  93. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_tagging/core/tagging/models/__init__.py +0 -0
  94. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_tagging/core/tagging/models/base.py +0 -0
  95. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_tagging/core/tagging/models/import_export.py +0 -0
  96. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_tagging/core/tagging/models/system_defined.py +0 -0
  97. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_tagging/core/tagging/models/utils.py +0 -0
  98. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_tagging/core/tagging/rest_api/__init__.py +0 -0
  99. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_tagging/core/tagging/rest_api/paginators.py +0 -0
  100. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_tagging/core/tagging/rest_api/urls.py +0 -0
  101. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_tagging/core/tagging/rest_api/utils.py +0 -0
  102. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_tagging/core/tagging/rest_api/v1/__init__.py +0 -0
  103. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_tagging/core/tagging/rest_api/v1/permissions.py +0 -0
  104. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_tagging/core/tagging/rest_api/v1/serializers.py +0 -0
  105. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_tagging/core/tagging/rest_api/v1/urls.py +0 -0
  106. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_tagging/core/tagging/rest_api/v1/views.py +0 -0
  107. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_tagging/core/tagging/rest_api/v1/views_import.py +0 -0
  108. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_tagging/core/tagging/rules.py +0 -0
  109. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_tagging/core/tagging/urls.py +0 -0
  110. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/openedx_tagging/py.typed +0 -0
  111. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/requirements/base.in +0 -0
  112. {openedx_learning-0.10.0 → openedx_learning-0.10.1}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: openedx-learning
3
- Version: 0.10.0
3
+ Version: 0.10.1
4
4
  Summary: Open edX Learning Core and Tagging.
5
5
  Home-page: https://github.com/openedx/openedx-learning
6
6
  Author: David Ormsbee
@@ -14,17 +14,16 @@ Classifier: Intended Audience :: Developers
14
14
  Classifier: License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)
15
15
  Classifier: Natural Language :: English
16
16
  Classifier: Programming Language :: Python :: 3
17
- Classifier: Programming Language :: Python :: 3.8
18
17
  Classifier: Programming Language :: Python :: 3.11
19
18
  Classifier: Programming Language :: Python :: 3.12
20
- Requires-Python: >=3.8
19
+ Requires-Python: >=3.11
21
20
  License-File: LICENSE.txt
21
+ Requires-Dist: djangorestframework<4.0
22
+ Requires-Dist: celery
22
23
  Requires-Dist: rules<4.0
23
- Requires-Dist: Django<5.0
24
24
  Requires-Dist: edx-drf-extensions
25
+ Requires-Dist: Django<5.0
25
26
  Requires-Dist: attrs
26
- Requires-Dist: celery
27
- Requires-Dist: djangorestframework<4.0
28
27
 
29
28
  Open edX Learning Core (and Tagging)
30
29
  ====================================
@@ -1,4 +1,4 @@
1
1
  """
2
2
  Open edX Learning ("Learning Core").
3
3
  """
4
- __version__ = "0.10.0"
4
+ __version__ = "0.10.1"
@@ -134,6 +134,8 @@ class Component(PublishableEntityMixin): # type: ignore[django-manager-missing]
134
134
  'publishable_entity__draft__version__componentversion',
135
135
  'publishable_entity__published__version',
136
136
  'publishable_entity__published__version__componentversion',
137
+ 'publishable_entity__published__publish_log_record',
138
+ 'publishable_entity__published__publish_log_record__publish_log',
137
139
  )
138
140
 
139
141
  # This foreign key is technically redundant because we're already locked to
@@ -243,6 +243,18 @@ class PublishableEntityMixin(models.Model):
243
243
 
244
244
  return draft_version_id != published_version_id
245
245
 
246
+ @property
247
+ def last_publish_log(self):
248
+ """
249
+ Return the most recent PublishLog for this component.
250
+
251
+ Return None if the component is not published.
252
+ """
253
+ pub_entity = self.content_obj.publishable_entity
254
+ if hasattr(pub_entity, 'published'):
255
+ return pub_entity.published.publish_log_record.publish_log
256
+ return None
257
+
246
258
  @property
247
259
  def versions(self):
248
260
  """
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: openedx-learning
3
- Version: 0.10.0
3
+ Version: 0.10.1
4
4
  Summary: Open edX Learning Core and Tagging.
5
5
  Home-page: https://github.com/openedx/openedx-learning
6
6
  Author: David Ormsbee
@@ -14,17 +14,16 @@ Classifier: Intended Audience :: Developers
14
14
  Classifier: License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)
15
15
  Classifier: Natural Language :: English
16
16
  Classifier: Programming Language :: Python :: 3
17
- Classifier: Programming Language :: Python :: 3.8
18
17
  Classifier: Programming Language :: Python :: 3.11
19
18
  Classifier: Programming Language :: Python :: 3.12
20
- Requires-Python: >=3.8
19
+ Requires-Python: >=3.11
21
20
  License-File: LICENSE.txt
21
+ Requires-Dist: djangorestframework<4.0
22
+ Requires-Dist: celery
22
23
  Requires-Dist: rules<4.0
23
- Requires-Dist: Django<5.0
24
24
  Requires-Dist: edx-drf-extensions
25
+ Requires-Dist: Django<5.0
25
26
  Requires-Dist: attrs
26
- Requires-Dist: celery
27
- Requires-Dist: djangorestframework<4.0
28
27
 
29
28
  Open edX Learning Core (and Tagging)
30
29
  ====================================
@@ -190,8 +190,10 @@ def get_object_tags(
190
190
  .exclude(taxonomy__enabled=False) # Exclude if the whole taxonomy is disabled
191
191
  )
192
192
  if not include_deleted:
193
- base_qs = base_qs.exclude(taxonomy_id=None) # Exclude if the whole taxonomy was deleted
194
- base_qs = base_qs.exclude(tag_id=None, taxonomy__allow_free_text=False) # Exclude if just the tag is deleted
193
+ # Exclude if the whole taxonomy was deleted
194
+ base_qs = base_qs.exclude(taxonomy_id=None) # type: ignore
195
+ # Exclude if just the tag is deleted
196
+ base_qs = base_qs.exclude(tag_id=None, taxonomy__allow_free_text=False) # type: ignore
195
197
  tags = (
196
198
  base_qs
197
199
  # Preload related objects, including data for the "get_lineage" method on ObjectTag/Tag:
@@ -78,7 +78,7 @@ setup(
78
78
  ),
79
79
  include_package_data=True,
80
80
  install_requires=load_requirements('requirements/base.in'),
81
- python_requires=">=3.8",
81
+ python_requires=">=3.11",
82
82
  license="AGPL 3.0",
83
83
  zip_safe=False,
84
84
  keywords='Python edx',
@@ -90,7 +90,6 @@ setup(
90
90
  'License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)',
91
91
  'Natural Language :: English',
92
92
  'Programming Language :: Python :: 3',
93
- 'Programming Language :: Python :: 3.8',
94
93
  'Programming Language :: Python :: 3.11',
95
94
  'Programming Language :: Python :: 3.12',
96
95
  ],
@@ -1,6 +1,6 @@
1
+ djangorestframework<4.0
2
+ celery
1
3
  rules<4.0
2
- Django<5.0
3
4
  edx-drf-extensions
5
+ Django<5.0
4
6
  attrs
5
- celery
6
- djangorestframework<4.0