learning-credentials 0.2.2rc2__py3-none-any.whl

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 (34) hide show
  1. learning_credentials/__init__.py +1 -0
  2. learning_credentials/admin.py +265 -0
  3. learning_credentials/apps.py +24 -0
  4. learning_credentials/compat.py +119 -0
  5. learning_credentials/conf/locale/config.yaml +85 -0
  6. learning_credentials/exceptions.py +9 -0
  7. learning_credentials/generators.py +225 -0
  8. learning_credentials/migrations/0001_initial.py +205 -0
  9. learning_credentials/migrations/0002_migrate_to_learning_credentials.py +40 -0
  10. learning_credentials/migrations/0003_rename_certificates_to_credentials.py +128 -0
  11. learning_credentials/migrations/0004_replace_course_keys_with_learning_context_keys.py +59 -0
  12. learning_credentials/migrations/0005_rename_processors_and_generators.py +106 -0
  13. learning_credentials/migrations/0006_cleanup_openedx_certificates_tables.py +21 -0
  14. learning_credentials/migrations/__init__.py +0 -0
  15. learning_credentials/models.py +381 -0
  16. learning_credentials/processors.py +378 -0
  17. learning_credentials/settings/__init__.py +1 -0
  18. learning_credentials/settings/common.py +9 -0
  19. learning_credentials/settings/production.py +13 -0
  20. learning_credentials/tasks.py +53 -0
  21. learning_credentials/templates/learning_credentials/base.html +22 -0
  22. learning_credentials/templates/learning_credentials/edx_ace/certificate_generated/email/body.html +22 -0
  23. learning_credentials/templates/learning_credentials/edx_ace/certificate_generated/email/body.txt +13 -0
  24. learning_credentials/templates/learning_credentials/edx_ace/certificate_generated/email/from_name.txt +1 -0
  25. learning_credentials/templates/learning_credentials/edx_ace/certificate_generated/email/head.html +0 -0
  26. learning_credentials/templates/learning_credentials/edx_ace/certificate_generated/email/subject.txt +4 -0
  27. learning_credentials/urls.py +9 -0
  28. learning_credentials/views.py +1 -0
  29. learning_credentials-0.2.2rc2.dist-info/METADATA +212 -0
  30. learning_credentials-0.2.2rc2.dist-info/RECORD +34 -0
  31. learning_credentials-0.2.2rc2.dist-info/WHEEL +5 -0
  32. learning_credentials-0.2.2rc2.dist-info/entry_points.txt +2 -0
  33. learning_credentials-0.2.2rc2.dist-info/licenses/LICENSE.txt +664 -0
  34. learning_credentials-0.2.2rc2.dist-info/top_level.txt +1 -0
@@ -0,0 +1,212 @@
1
+ Metadata-Version: 2.4
2
+ Name: learning-credentials
3
+ Version: 0.2.2rc2
4
+ Summary: A pluggable service for preparing Open edX credentials.
5
+ Author-email: OpenCraft <help@opencraft.com>
6
+ License-Expression: AGPL-3.0-or-later
7
+ Project-URL: Homepage, https://github.com/open-craft/learning-credentials
8
+ Project-URL: Repository, https://github.com/open-craft/learning-credentials
9
+ Project-URL: Documentation, https://learning-credentials.readthedocs.io/
10
+ Keywords: Python,edx,credentials,django
11
+ Classifier: Development Status :: 5 - Production/Stable
12
+ Classifier: Framework :: Django
13
+ Classifier: Framework :: Django :: 4.2
14
+ Classifier: Intended Audience :: Developers
15
+ Classifier: Natural Language :: English
16
+ Classifier: Programming Language :: Python :: 3
17
+ Classifier: Programming Language :: Python :: 3.11
18
+ Classifier: Programming Language :: Python :: 3.12
19
+ Requires-Python: >=3.11
20
+ Description-Content-Type: text/x-rst
21
+ License-File: LICENSE.txt
22
+ Requires-Dist: django
23
+ Requires-Dist: django-model-utils
24
+ Requires-Dist: edx-opaque-keys
25
+ Requires-Dist: celery
26
+ Requires-Dist: django-celery-beat
27
+ Requires-Dist: django_reverse_admin
28
+ Requires-Dist: djangorestframework
29
+ Requires-Dist: django-object-actions
30
+ Requires-Dist: pypdf
31
+ Requires-Dist: reportlab
32
+ Requires-Dist: openedx-completion-aggregator
33
+ Requires-Dist: edx_ace
34
+ Requires-Dist: learning-paths-plugin>=0.3.4
35
+ Dynamic: license-file
36
+
37
+ learning-credentials
38
+ ####################
39
+
40
+ |pypi-badge| |ci-badge| |codecov-badge| |doc-badge| |pyversions-badge|
41
+ |license-badge| |status-badge| |visualization-badge|
42
+
43
+ Purpose
44
+ *******
45
+
46
+ A pluggable service for preparing Open edX credentials.
47
+
48
+ This is focused on the use cases of our client but designed to be a flexible foundation for any Open edX credential
49
+ needs. It natively supports generating PDF credentials, but can be extended to support other formats.
50
+
51
+ For the details about the purpose of this repository, please see the `the following ADR`_.
52
+
53
+ .. _the following ADR: https://learning-credentials.readthedocs.io/en/latest/decisions/0001-purpose-of-this-repo.html
54
+
55
+ Documentation
56
+ *************
57
+
58
+ Start by going through `the documentation`_.
59
+
60
+ .. _the documentation: https://learning-credentials.readthedocs.io/en/latest
61
+
62
+ Getting Help
63
+ ************
64
+
65
+ If you're having trouble, we have discussion forums at
66
+ https://discuss.openedx.org where you can connect with others in the
67
+ community.
68
+
69
+ Our real-time conversations are on Slack. You can request a `Slack
70
+ invitation`_, then join our `community Slack workspace`_.
71
+
72
+ For anything non-trivial, the best path is to open an issue in this
73
+ repository with as many details about the issue you are facing as you
74
+ can provide.
75
+
76
+ https://github.com/open-craft/learning-credentials/issues
77
+
78
+ For more information about these options, see the `Getting Help <https://openedx.org/getting-help>`__ page.
79
+
80
+ .. _Slack invitation: https://openedx.org/slack
81
+ .. _community Slack workspace: https://openedx.slack.com/
82
+
83
+ License
84
+ *******
85
+
86
+ The code in this repository is licensed under the AGPL 3.0 unless
87
+ otherwise noted.
88
+
89
+ Please see `LICENSE.txt <LICENSE.txt>`_ for details.
90
+
91
+ Contributing
92
+ ************
93
+
94
+ Contributions are very welcome.
95
+ Please read `How To Contribute <https://openedx.org/r/how-to-contribute>`_ for details.
96
+
97
+ This project is currently accepting all types of contributions, bug fixes,
98
+ security fixes, maintenance work, or new features. However, please make sure
99
+ to have a discussion about your new feature idea with the maintainers prior to
100
+ beginning development to maximize the chances of your change being accepted.
101
+ You can start a conversation by creating a new issue on this repo summarizing
102
+ your idea.
103
+
104
+ The Open edX Code of Conduct
105
+ ****************************
106
+
107
+ All community members are expected to follow the `Open edX Code of Conduct`_.
108
+
109
+ .. _Open edX Code of Conduct: https://openedx.org/code-of-conduct/
110
+
111
+ People
112
+ ******
113
+
114
+ .. TODO: Add the maintainers.
115
+
116
+ The assigned maintainers for this component and other project details may be
117
+ found in `Backstage`_. Backstage pulls this data from the ``catalog-info.yaml``
118
+ file in this repo.
119
+
120
+ .. _Backstage: https://backstage.openedx.org/catalog/default/component/learning-credentials
121
+
122
+ Reporting Security Issues
123
+ *************************
124
+
125
+ Please do not report security issues in public. Please email security@openedx.org.
126
+
127
+ .. |pypi-badge| image:: https://img.shields.io/pypi/v/learning-credentials.svg
128
+ :target: https://pypi.python.org/pypi/learning-credentials/
129
+ :alt: PyPI
130
+
131
+ .. |ci-badge| image:: https://github.com/open-craft/learning-credentials/actions/workflows/ci.yml/badge.svg?branch=main
132
+ :target: https://github.com/open-craft/learning-credentials/actions
133
+ :alt: CI
134
+
135
+ .. |codecov-badge| image:: https://codecov.io/github/open-craft/learning-credentials/coverage.svg?branch=main
136
+ :target: https://codecov.io/github/open-craft/learning-credentials?branch=main
137
+ :alt: Codecov
138
+
139
+ .. |doc-badge| image:: https://readthedocs.org/projects/learning-credentials/badge/?version=latest
140
+ :target: https://learning-credentials.readthedocs.io/en/latest
141
+ :alt: Documentation
142
+
143
+ .. |pyversions-badge| image:: https://img.shields.io/pypi/pyversions/learning-credentials.svg
144
+ :target: https://pypi.python.org/pypi/learning-credentials/
145
+ :alt: Supported Python versions
146
+
147
+ .. |license-badge| image:: https://img.shields.io/github/license/open-craft/learning-credentials.svg
148
+ :target: https://github.com/open-craft/learning-credentials/blob/main/LICENSE.txt
149
+ :alt: License
150
+
151
+ .. |status-badge| image:: https://img.shields.io/badge/Status-Maintained-brightgreen
152
+ :alt: Status
153
+
154
+ .. https://githubnext.com/projects/repo-visualization/
155
+ .. |visualization-badge| image:: https://img.shields.io/badge/Repo%20Visualization-8A2BE2
156
+ :target: https://mango-dune-07a8b7110.1.azurestaticapps.net/?repo=open-craft/learning-credentials
157
+ :alt: Visualization
158
+
159
+ Change Log
160
+ ##########
161
+
162
+ ..
163
+ All enhancements and patches to learning_credentials will be documented
164
+ in this file. It adheres to the structure of https://keepachangelog.com/ ,
165
+ but in reStructuredText instead of Markdown (for ease of incorporation into
166
+ Sphinx documentation and the PyPI description).
167
+
168
+ This project adheres to Semantic Versioning (https://semver.org/).
169
+
170
+ .. There should always be an "Unreleased" section for changes pending release.
171
+
172
+ Unreleased
173
+ **********
174
+
175
+ *
176
+
177
+ 0.2.2 - 2025-08-05
178
+
179
+ Added
180
+ =====
181
+
182
+ * Step-specific options support for Learning Path credentials.
183
+
184
+ Removed
185
+ =======
186
+
187
+ * Legacy `openedx_certificates` app.
188
+
189
+ 0.2.1 – 2025-05-05
190
+ ******************
191
+
192
+ Fixed
193
+ =====
194
+
195
+ * Check enrollment status before issuing Learning Path credentials.
196
+
197
+ 0.2.0 – 2025-04-03
198
+ ******************
199
+
200
+ Added
201
+ =====
202
+
203
+ * Learning Paths support.
204
+
205
+
206
+ 0.1.0 – 2025-01-29
207
+ ******************
208
+
209
+ Added
210
+ =====
211
+
212
+ * Initial implementation of the certificates app.
@@ -0,0 +1,34 @@
1
+ learning_credentials/__init__.py,sha256=8Q0-3Hdnfmcj41EKu1GSfzEfwWcYNDlItyEEke2r9bs,62
2
+ learning_credentials/admin.py,sha256=ynK3tVJwLsIeV7Jk66t1FAVyVsU1G-KRIAdRkycVTmA,10439
3
+ learning_credentials/apps.py,sha256=AA6JYUyqKYvNJ5POtQKw_s1g1VrUXuQI96hbea9H220,761
4
+ learning_credentials/compat.py,sha256=Btm1Ii3D0nHuPZWZya_VR0JkkFcNRstuwg7A1DXlWG0,4547
5
+ learning_credentials/exceptions.py,sha256=UaqBVXFMWR2Iob7_LMb3j4NNVmWQFAgLi_MNMRUvGsI,290
6
+ learning_credentials/generators.py,sha256=Tzl9fLEVxrjAB1lUYhifGEpIU3JzWPcwvFHeHcVxc4M,8960
7
+ learning_credentials/models.py,sha256=Wepzng9WYDAxF8ptyQokp_9jCmuEv_4FY7ytkKFS4uU,16047
8
+ learning_credentials/processors.py,sha256=LkdjmkLBnXc9qeMcksB1T8AQ5ZhYaECyQO__KfHB_aU,15212
9
+ learning_credentials/tasks.py,sha256=byoFEUvN_ayVaU5K5SlEiA7vu9BRPaSSmKnB9g5toec,1927
10
+ learning_credentials/urls.py,sha256=2YLZZW738D7Afyzq6hr5ajWIl6azmX-hNDGUg_8AFpE,370
11
+ learning_credentials/views.py,sha256=1iBgQYelVHO_QWtoUZfVeyUc0o89IxQWAIwjPjaYaBQ,12
12
+ learning_credentials/conf/locale/config.yaml,sha256=jPen2DmckNDKK30axCKEd2Q2ha9oOG3IBxrJ63Pvznk,2280
13
+ learning_credentials/migrations/0001_initial.py,sha256=61EvThCv-0UAnhCE5feyQVfjRodbp-6cDaAr4CY5PMA,8435
14
+ learning_credentials/migrations/0002_migrate_to_learning_credentials.py,sha256=vUhcnQKDdwOsppkXsjz2zZwOGMwIJ-fkQRsaj-K7l1o,1779
15
+ learning_credentials/migrations/0003_rename_certificates_to_credentials.py,sha256=YqSaHTB60VNc9k245um2GYVDH6J0l9BrN3ak6WKljjk,4677
16
+ learning_credentials/migrations/0004_replace_course_keys_with_learning_context_keys.py,sha256=5KaXvASl69qbEaHX5_Ty_3Dr7K4WV6p8VWOx72yJnTU,1919
17
+ learning_credentials/migrations/0005_rename_processors_and_generators.py,sha256=5UCqjq-CBJnRo1qBAoWs91ngyEuSMN8_tQtfzsuR5SI,5271
18
+ learning_credentials/migrations/0006_cleanup_openedx_certificates_tables.py,sha256=aJs_gOP4TmW9J-Dmr21m94jBfLQxzjAu6-ua7x4uYLE,727
19
+ learning_credentials/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
20
+ learning_credentials/settings/__init__.py,sha256=tofc5eg3Q2lV13Ff_jjg1ggGgWpKYoeESkP1qxl3H_A,29
21
+ learning_credentials/settings/common.py,sha256=4n9AeQD-GB2MYFVrwXWEsTSrKC9btn8bgyr9OQuXNsY,302
22
+ learning_credentials/settings/production.py,sha256=yEvsCldHOdsIswW7TPLW__b9YNEK-Qy05rX5WSAcEeo,484
23
+ learning_credentials/templates/learning_credentials/base.html,sha256=wtjBYqfHmOnyEY5tN3VGOmzYLsOD24MXdEUhTZ7OmwI,662
24
+ learning_credentials/templates/learning_credentials/edx_ace/certificate_generated/email/body.html,sha256=o-tfFQSNf-tuu_YzPosm0SFxUXe9oPh17PyjdiVSBhQ,811
25
+ learning_credentials/templates/learning_credentials/edx_ace/certificate_generated/email/body.txt,sha256=ld8bs0zbfVF6S-pPqjUKW6FRdITZO-gs4spZUpr-fpQ,675
26
+ learning_credentials/templates/learning_credentials/edx_ace/certificate_generated/email/from_name.txt,sha256=-n8tjPSwfwAfeOSZ1WhcCTrpOah4VswzMZ5mh63Pxow,20
27
+ learning_credentials/templates/learning_credentials/edx_ace/certificate_generated/email/head.html,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
28
+ learning_credentials/templates/learning_credentials/edx_ace/certificate_generated/email/subject.txt,sha256=S7Hc5T_sZSsSBXm5_H5HBNNv16Ohl0oZn0nVqqeWL0g,132
29
+ learning_credentials-0.2.2rc2.dist-info/licenses/LICENSE.txt,sha256=GDpsPnW_1NKhPvZpZL9imz25P2nIpbwJPEhrlq4vPAU,34523
30
+ learning_credentials-0.2.2rc2.dist-info/METADATA,sha256=zD1A7nB8WGbspH5q9ST9Uj2oEFVGfeTObQmtyKhDv-o,6753
31
+ learning_credentials-0.2.2rc2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
32
+ learning_credentials-0.2.2rc2.dist-info/entry_points.txt,sha256=hHqqLUEdzAN24v5OGBX9Fr-wh3ATDPjQjByKz03eC2Y,91
33
+ learning_credentials-0.2.2rc2.dist-info/top_level.txt,sha256=Ce-4_leZe_nny7CpmkeRiemcDV6jIHpIvLjlcQBuf18,21
34
+ learning_credentials-0.2.2rc2.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (80.9.0)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+
@@ -0,0 +1,2 @@
1
+ [lms.djangoapp]
2
+ learning_credentials = learning_credentials.apps:LearningCredentialsConfig