learning-credentials 0.4.1rc4__tar.gz → 0.4.1rc5__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 (53) hide show
  1. {learning_credentials-0.4.1rc4/learning_credentials.egg-info → learning_credentials-0.4.1rc5}/PKG-INFO +1 -1
  2. {learning_credentials-0.4.1rc4 → learning_credentials-0.4.1rc5}/learning_credentials/generators.py +3 -2
  3. {learning_credentials-0.4.1rc4 → learning_credentials-0.4.1rc5/learning_credentials.egg-info}/PKG-INFO +1 -1
  4. {learning_credentials-0.4.1rc4 → learning_credentials-0.4.1rc5}/pyproject.toml +1 -1
  5. {learning_credentials-0.4.1rc4 → learning_credentials-0.4.1rc5}/tests/test_generators.py +9 -1
  6. {learning_credentials-0.4.1rc4 → learning_credentials-0.4.1rc5}/CHANGELOG.rst +0 -0
  7. {learning_credentials-0.4.1rc4 → learning_credentials-0.4.1rc5}/LICENSE.txt +0 -0
  8. {learning_credentials-0.4.1rc4 → learning_credentials-0.4.1rc5}/MANIFEST.in +0 -0
  9. {learning_credentials-0.4.1rc4 → learning_credentials-0.4.1rc5}/README.rst +0 -0
  10. {learning_credentials-0.4.1rc4 → learning_credentials-0.4.1rc5}/learning_credentials/__init__.py +0 -0
  11. {learning_credentials-0.4.1rc4 → learning_credentials-0.4.1rc5}/learning_credentials/admin.py +0 -0
  12. {learning_credentials-0.4.1rc4 → learning_credentials-0.4.1rc5}/learning_credentials/api/__init__.py +0 -0
  13. {learning_credentials-0.4.1rc4 → learning_credentials-0.4.1rc5}/learning_credentials/api/urls.py +0 -0
  14. {learning_credentials-0.4.1rc4 → learning_credentials-0.4.1rc5}/learning_credentials/api/v1/__init__.py +0 -0
  15. {learning_credentials-0.4.1rc4 → learning_credentials-0.4.1rc5}/learning_credentials/api/v1/permissions.py +0 -0
  16. {learning_credentials-0.4.1rc4 → learning_credentials-0.4.1rc5}/learning_credentials/api/v1/urls.py +0 -0
  17. {learning_credentials-0.4.1rc4 → learning_credentials-0.4.1rc5}/learning_credentials/api/v1/views.py +0 -0
  18. {learning_credentials-0.4.1rc4 → learning_credentials-0.4.1rc5}/learning_credentials/apps.py +0 -0
  19. {learning_credentials-0.4.1rc4 → learning_credentials-0.4.1rc5}/learning_credentials/compat.py +0 -0
  20. {learning_credentials-0.4.1rc4 → learning_credentials-0.4.1rc5}/learning_credentials/conf/locale/config.yaml +0 -0
  21. {learning_credentials-0.4.1rc4 → learning_credentials-0.4.1rc5}/learning_credentials/exceptions.py +0 -0
  22. {learning_credentials-0.4.1rc4 → learning_credentials-0.4.1rc5}/learning_credentials/migrations/0001_initial.py +0 -0
  23. {learning_credentials-0.4.1rc4 → learning_credentials-0.4.1rc5}/learning_credentials/migrations/0002_migrate_to_learning_credentials.py +0 -0
  24. {learning_credentials-0.4.1rc4 → learning_credentials-0.4.1rc5}/learning_credentials/migrations/0003_rename_certificates_to_credentials.py +0 -0
  25. {learning_credentials-0.4.1rc4 → learning_credentials-0.4.1rc5}/learning_credentials/migrations/0004_replace_course_keys_with_learning_context_keys.py +0 -0
  26. {learning_credentials-0.4.1rc4 → learning_credentials-0.4.1rc5}/learning_credentials/migrations/0005_rename_processors_and_generators.py +0 -0
  27. {learning_credentials-0.4.1rc4 → learning_credentials-0.4.1rc5}/learning_credentials/migrations/0006_cleanup_openedx_certificates_tables.py +0 -0
  28. {learning_credentials-0.4.1rc4 → learning_credentials-0.4.1rc5}/learning_credentials/migrations/0007_migrate_to_text_elements_format.py +0 -0
  29. {learning_credentials-0.4.1rc4 → learning_credentials-0.4.1rc5}/learning_credentials/migrations/__init__.py +0 -0
  30. {learning_credentials-0.4.1rc4 → learning_credentials-0.4.1rc5}/learning_credentials/models.py +0 -0
  31. {learning_credentials-0.4.1rc4 → learning_credentials-0.4.1rc5}/learning_credentials/processors.py +0 -0
  32. {learning_credentials-0.4.1rc4 → learning_credentials-0.4.1rc5}/learning_credentials/settings/__init__.py +0 -0
  33. {learning_credentials-0.4.1rc4 → learning_credentials-0.4.1rc5}/learning_credentials/settings/common.py +0 -0
  34. {learning_credentials-0.4.1rc4 → learning_credentials-0.4.1rc5}/learning_credentials/settings/production.py +0 -0
  35. {learning_credentials-0.4.1rc4 → learning_credentials-0.4.1rc5}/learning_credentials/tasks.py +0 -0
  36. {learning_credentials-0.4.1rc4 → learning_credentials-0.4.1rc5}/learning_credentials/templates/learning_credentials/base.html +0 -0
  37. {learning_credentials-0.4.1rc4 → learning_credentials-0.4.1rc5}/learning_credentials/templates/learning_credentials/edx_ace/certificate_generated/email/body.html +0 -0
  38. {learning_credentials-0.4.1rc4 → learning_credentials-0.4.1rc5}/learning_credentials/templates/learning_credentials/edx_ace/certificate_generated/email/body.txt +0 -0
  39. {learning_credentials-0.4.1rc4 → learning_credentials-0.4.1rc5}/learning_credentials/templates/learning_credentials/edx_ace/certificate_generated/email/from_name.txt +0 -0
  40. {learning_credentials-0.4.1rc4 → learning_credentials-0.4.1rc5}/learning_credentials/templates/learning_credentials/edx_ace/certificate_generated/email/head.html +0 -0
  41. {learning_credentials-0.4.1rc4 → learning_credentials-0.4.1rc5}/learning_credentials/templates/learning_credentials/edx_ace/certificate_generated/email/subject.txt +0 -0
  42. {learning_credentials-0.4.1rc4 → learning_credentials-0.4.1rc5}/learning_credentials/urls.py +0 -0
  43. {learning_credentials-0.4.1rc4 → learning_credentials-0.4.1rc5}/learning_credentials.egg-info/SOURCES.txt +0 -0
  44. {learning_credentials-0.4.1rc4 → learning_credentials-0.4.1rc5}/learning_credentials.egg-info/dependency_links.txt +0 -0
  45. {learning_credentials-0.4.1rc4 → learning_credentials-0.4.1rc5}/learning_credentials.egg-info/entry_points.txt +0 -0
  46. {learning_credentials-0.4.1rc4 → learning_credentials-0.4.1rc5}/learning_credentials.egg-info/requires.txt +0 -0
  47. {learning_credentials-0.4.1rc4 → learning_credentials-0.4.1rc5}/learning_credentials.egg-info/top_level.txt +0 -0
  48. {learning_credentials-0.4.1rc4 → learning_credentials-0.4.1rc5}/setup.cfg +0 -0
  49. {learning_credentials-0.4.1rc4 → learning_credentials-0.4.1rc5}/tests/test_migrations.py +0 -0
  50. {learning_credentials-0.4.1rc4 → learning_credentials-0.4.1rc5}/tests/test_models.py +0 -0
  51. {learning_credentials-0.4.1rc4 → learning_credentials-0.4.1rc5}/tests/test_processors.py +0 -0
  52. {learning_credentials-0.4.1rc4 → learning_credentials-0.4.1rc5}/tests/test_tasks.py +0 -0
  53. {learning_credentials-0.4.1rc4 → learning_credentials-0.4.1rc5}/tests/test_views.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: learning-credentials
3
- Version: 0.4.1rc4
3
+ Version: 0.4.1rc5
4
4
  Summary: A pluggable service for preparing Open edX credentials.
5
5
  Author-email: OpenCraft <help@opencraft.com>
6
6
  License-Expression: AGPL-3.0-or-later
@@ -378,12 +378,13 @@ def generate_pdf_credential(
378
378
 
379
379
  # Handle multiline context name.
380
380
  context_name = get_learning_context_name(learning_context_key)
381
+ custom_context_name = ''
381
382
  custom_context_text_element = options.get('text_elements', {}).get('context', {})
382
383
  if isinstance(custom_context_text_element, dict):
383
- context_name = custom_context_text_element.get('text', '') or context_name
384
+ custom_context_name = custom_context_text_element.get('text', '')
384
385
 
385
386
  template_path = options.get('template')
386
- if '\n' in context_name:
387
+ if '\n' in context_name or '\n' in custom_context_name:
387
388
  template_path = options.get('template_multiline', template_path)
388
389
 
389
390
  if not template_path:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: learning-credentials
3
- Version: 0.4.1rc4
3
+ Version: 0.4.1rc5
4
4
  Summary: A pluggable service for preparing Open edX credentials.
5
5
  Author-email: OpenCraft <help@opencraft.com>
6
6
  License-Expression: AGPL-3.0-or-later
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "learning-credentials"
3
- version = "0.4.1rc4"
3
+ version = "0.4.1rc5"
4
4
  description = "A pluggable service for preparing Open edX credentials."
5
5
  dynamic = ["readme"]
6
6
  requires-python = ">=3.11"
@@ -484,7 +484,15 @@ def test_save_credential(mock_contentfile: Mock, mock_token_hex: Mock, storage:
484
484
  'Single Line',
485
485
  {'template_multiline': 'multiline', 'text_elements': {'context': {'text': 'Line 1\nLine 2'}}},
486
486
  'multiline',
487
- 'Line 1\nLine 2',
487
+ 'Single Line',
488
+ ),
489
+ # Custom context text without newlines still uses multiline template if the original context name has newlines.
490
+ # This allows using the `context_name` placeholder in the `context` text element.
491
+ (
492
+ 'Multi\nLine',
493
+ {'template_multiline': 'multiline', 'text_elements': {'context': {'text': 'Single Line'}}},
494
+ 'multiline',
495
+ 'Multi\nLine',
488
496
  ),
489
497
  # Disabled context element falls back to learning context name for template selection.
490
498
  (