From c383a561afb30b831ece99d961985d04ba2cb965 Mon Sep 17 00:00:00 2001 From: jbpenrath Date: Wed, 29 Jan 2025 14:38:24 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=94=96(chore)=20bump=20to=202.14.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Added - Add management command to delete orders stuck in signing states and orders stuck in `to_save_payment_method` to purchase a product of type certificate - BD: Add `updated_on` date field to the order list view Fixed - BO: Set properly the `is_graded` property on target course creation - BO: Allow to use nested TranslatableForms - Allow a user to create a new order when the previous order already exists but it is in `refunding` or `refunded` state - Prevent multiple payments if the provider server has a problem - Fix the logic to get the organization with the least active orders to assign which could have duplicated orders in its sum. --- CHANGELOG.md | 16 +- arnold.yml | 2 +- .../locale/es_ES/LC_MESSAGES/django.mo | Bin 463 -> 463 bytes .../locale/es_ES/LC_MESSAGES/django.po | 200 +++++++++--------- .../locale/fr_CA/LC_MESSAGES/django.mo | Bin 469 -> 469 bytes .../locale/fr_CA/LC_MESSAGES/django.po | 200 +++++++++--------- .../locale/fr_FR/LC_MESSAGES/django.mo | Bin 49539 -> 49539 bytes .../locale/fr_FR/LC_MESSAGES/django.po | 200 +++++++++--------- src/backend/pyproject.toml | 2 +- src/frontend/admin/i18n/locales/es-ES.json | 4 + src/frontend/admin/i18n/locales/fr-CA.json | 4 + src/frontend/admin/i18n/locales/fr-FR.json | 4 + src/frontend/admin/package.json | 2 +- src/mail/package.json | 2 +- src/openApiClientJs/package.json | 2 +- src/tray/tray.yml | 2 +- src/tray/vars/all/main.yml | 4 +- 17 files changed, 330 insertions(+), 314 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d30ffd549..507151fec 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,14 @@ and this project adheres to ## [Unreleased] +## [2.14.0] - 2025-01-29 + +### Added + +- Add management command to delete orders stuck in signing states and orders + stuck in `to_save_payment_method` to purchase a product of type certificate +- BD: Add `updated_on` date field to the order list view + ### Fixed - BO: Set properly the `is_graded` property on target course creation @@ -18,16 +26,11 @@ and this project adheres to - Fix the logic to get the organization with the least active orders to assign which could have duplicated orders in its sum. -### Added - -- BD: Add `updated_on` date field to the order list view ## [2.13.0] - 2025-01-15 ### Added -- Add management command to delete orders stuck in signing states and orders - stuck in `to_save_payment_method` to purchase a product of type certificate - Add order export to CSV in back office - Branded Unicamp degrees @@ -567,7 +570,8 @@ and this project adheres to - First working version serving sellable micro-credentials for multiple organizations synchronized to a remote catalog -[unreleased]: https://github.com/openfun/joanie/compare/v2.13.0...main +[unreleased]: https://github.com/openfun/joanie/compare/v2.14.0...main +[2.14.0]: https://github.com/openfun/joanie/compare/v2.13.0...v2.14.0 [2.13.0]: https://github.com/openfun/joanie/compare/v2.12.0...v2.13.0 [2.12.0]: https://github.com/openfun/joanie/compare/v2.11.0...v2.12.0 [2.11.0]: https://github.com/openfun/joanie/compare/v2.10.0...v2.11.0 diff --git a/arnold.yml b/arnold.yml index 906631d33..2d862e85b 100644 --- a/arnold.yml +++ b/arnold.yml @@ -1,6 +1,6 @@ # arnold.yml metadata: name: joanie - version: 2.13.0 + version: 2.14.0 source: path: src/tray diff --git a/src/backend/locale/es_ES/LC_MESSAGES/django.mo b/src/backend/locale/es_ES/LC_MESSAGES/django.mo index 5b854eb8bf999398efa7c0730a315a66aa942222..c7fd9926dc4adef1ae02f179ff1a707d4d8bf421 100644 GIT binary patch delta 18 ZcmX@le4cqiE4z`Uf}ydM@x~r!MgTgT1)cx^ delta 18 ZcmX@le4cqiE4!hof}ydM;l>_kMgTfr1(yH- diff --git a/src/backend/locale/es_ES/LC_MESSAGES/django.po b/src/backend/locale/es_ES/LC_MESSAGES/django.po index cfa709b6b..10fbdd9e7 100644 --- a/src/backend/locale/es_ES/LC_MESSAGES/django.po +++ b/src/backend/locale/es_ES/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: joanie\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-01-15 11:27+0000\n" -"PO-Revision-Date: 2025-01-15 13:19\n" +"POT-Creation-Date: 2025-01-29 09:29+0000\n" +"PO-Revision-Date: 2025-01-29 13:39\n" "Last-Translator: \n" "Language-Team: Spanish\n" "Language: es_ES\n" @@ -114,7 +114,7 @@ msgstr[1] "" msgid "Course" msgstr "" -#: joanie/core/admin.py:71 joanie/core/models/products.py:143 +#: joanie/core/admin.py:71 joanie/core/models/products.py:145 #: joanie/core/serializers/admin.py:1284 #: joanie/core/templates/issuers/invoice.html:78 msgid "Product" @@ -191,7 +191,7 @@ msgstr "" msgid "Config fields" msgstr "" -#: joanie/core/api/client/__init__.py:443 +#: joanie/core/api/client/__init__.py:441 #, python-brace-format msgid "This order cannot be linked to the product \"{product.title}\", " msgstr "" @@ -208,12 +208,12 @@ msgstr "" msgid "Credential" msgstr "" -#: joanie/core/enums.py:34 joanie/core/enums.py:177 +#: joanie/core/enums.py:34 joanie/core/enums.py:182 #: joanie/core/models/courses.py:1071 msgid "Enrollment" msgstr "" -#: joanie/core/enums.py:37 joanie/core/enums.py:167 +#: joanie/core/enums.py:37 joanie/core/enums.py:172 #: joanie/core/models/certifications.py:117 #: joanie/core/templates/issuers/degree.html:27 msgid "Certificate" @@ -239,7 +239,7 @@ msgstr "" msgid "Signing" msgstr "" -#: joanie/core/enums.py:82 joanie/core/enums.py:213 +#: joanie/core/enums.py:82 joanie/core/enums.py:219 msgid "Pending" msgstr "" @@ -278,105 +278,105 @@ msgctxt "As in: the order payments are refunded" msgid "Refunded" msgstr "" -#: joanie/core/enums.py:128 +#: joanie/core/enums.py:133 msgctxt "As in: the enrollment was successfully set on the LMS." msgid "Set" msgstr "" -#: joanie/core/enums.py:132 +#: joanie/core/enums.py:137 msgctxt "As in: the enrollment failed on the LMS." msgid "Failed" msgstr "" -#: joanie/core/enums.py:141 +#: joanie/core/enums.py:146 msgid "Contract Definition Default" msgstr "" -#: joanie/core/enums.py:142 +#: joanie/core/enums.py:147 msgid "Contract Definition Unicamp" msgstr "" -#: joanie/core/enums.py:151 +#: joanie/core/enums.py:156 msgid "Unsigned" msgstr "" -#: joanie/core/enums.py:154 +#: joanie/core/enums.py:159 msgid "Partially signed" msgstr "" -#: joanie/core/enums.py:156 +#: joanie/core/enums.py:161 msgid "Signed" msgstr "" -#: joanie/core/enums.py:168 +#: joanie/core/enums.py:173 msgid "Degree" msgstr "" -#: joanie/core/enums.py:169 +#: joanie/core/enums.py:174 msgid "Unicamp degree" msgstr "" -#: joanie/core/enums.py:176 joanie/core/models/products.py:564 +#: joanie/core/enums.py:181 joanie/core/models/products.py:617 msgid "Order" msgstr "" -#: joanie/core/enums.py:187 +#: joanie/core/enums.py:192 msgid "Info" msgstr "" -#: joanie/core/enums.py:188 +#: joanie/core/enums.py:193 msgid "Success" msgstr "" -#: joanie/core/enums.py:189 +#: joanie/core/enums.py:194 msgid "Warning" msgstr "" -#: joanie/core/enums.py:190 +#: joanie/core/enums.py:195 joanie/core/enums.py:224 msgid "Error" msgstr "" -#: joanie/core/enums.py:200 +#: joanie/core/enums.py:205 msgid "Notification" msgstr "" -#: joanie/core/enums.py:201 +#: joanie/core/enums.py:206 msgid "Payment succeeded" msgstr "" -#: joanie/core/enums.py:202 +#: joanie/core/enums.py:207 msgid "Payment failed" msgstr "" -#: joanie/core/enums.py:203 +#: joanie/core/enums.py:208 msgid "Payment refunded" msgstr "" -#: joanie/core/enums.py:214 joanie/payment/enums.py:28 +#: joanie/core/enums.py:220 joanie/payment/enums.py:28 msgid "Paid" msgstr "" -#: joanie/core/enums.py:215 +#: joanie/core/enums.py:221 msgid "Refused" msgstr "" -#: joanie/core/enums.py:216 joanie/payment/enums.py:30 +#: joanie/core/enums.py:222 joanie/payment/enums.py:30 msgid "Refunded" msgstr "" -#: joanie/core/enums.py:217 +#: joanie/core/enums.py:223 msgid "Canceled" msgstr "" -#: joanie/core/factories.py:1243 joanie/core/utils/contract_definition.py:101 +#: joanie/core/factories.py:1258 joanie/core/utils/contract_definition.py:101 msgid "" msgstr "" -#: joanie/core/factories.py:1248 joanie/core/utils/contract_definition.py:102 +#: joanie/core/factories.py:1263 joanie/core/utils/contract_definition.py:102 msgid "" msgstr "" -#: joanie/core/factories.py:1255 +#: joanie/core/factories.py:1270 msgid "" msgstr "" @@ -459,7 +459,7 @@ msgstr "" #: joanie/core/models/accounts.py:161 joanie/core/models/certifications.py:33 #: joanie/core/models/contracts.py:29 joanie/core/models/courses.py:173 #: joanie/core/models/courses.py:474 joanie/core/models/courses.py:825 -#: joanie/core/models/products.py:81 joanie/core/models/products.py:1383 +#: joanie/core/models/products.py:83 joanie/core/models/products.py:1442 #: joanie/payment/models.py:394 msgid "title" msgstr "" @@ -480,22 +480,22 @@ msgstr "" msgid "country" msgstr "" -#: joanie/core/models/accounts.py:166 joanie/core/models/products.py:1425 +#: joanie/core/models/accounts.py:166 joanie/core/models/products.py:1484 msgid "first name" msgstr "" -#: joanie/core/models/accounts.py:167 joanie/core/models/products.py:1426 +#: joanie/core/models/accounts.py:167 joanie/core/models/products.py:1485 msgid "last name" msgstr "" #: joanie/core/models/accounts.py:170 joanie/core/models/courses.py:361 -#: joanie/core/models/courses.py:605 joanie/core/models/products.py:492 +#: joanie/core/models/courses.py:605 joanie/core/models/products.py:545 #: joanie/payment/models.py:403 msgid "owner" msgstr "" #: joanie/core/models/accounts.py:178 joanie/core/models/certifications.py:98 -#: joanie/core/models/products.py:435 +#: joanie/core/models/products.py:488 msgid "organization" msgstr "" @@ -541,7 +541,7 @@ msgstr "" msgid "context" msgstr "" -#: joanie/core/models/activity_logs.py:79 joanie/core/models/products.py:78 +#: joanie/core/models/activity_logs.py:79 joanie/core/models/products.py:80 msgid "type" msgstr "" @@ -598,7 +598,7 @@ msgid "name" msgstr "" #: joanie/core/models/certifications.py:34 joanie/core/models/contracts.py:30 -#: joanie/core/models/products.py:82 +#: joanie/core/models/products.py:84 msgid "description" msgstr "" @@ -620,11 +620,11 @@ msgid "Date of issuance" msgstr "" #: joanie/core/models/certifications.py:83 joanie/core/models/contracts.py:93 -#: joanie/core/models/products.py:1344 joanie/payment/models.py:54 +#: joanie/core/models/products.py:1403 joanie/payment/models.py:54 msgid "order" msgstr "" -#: joanie/core/models/certifications.py:92 joanie/core/models/products.py:457 +#: joanie/core/models/certifications.py:92 joanie/core/models/products.py:510 msgid "enrollment" msgstr "" @@ -657,7 +657,7 @@ msgid "template name" msgstr "" #: joanie/core/models/contracts.py:55 joanie/core/models/contracts.py:86 -#: joanie/core/models/products.py:112 +#: joanie/core/models/products.py:114 msgid "Contract definition" msgstr "" @@ -862,13 +862,13 @@ msgid "Course accesses" msgstr "" #: joanie/core/models/courses.py:723 joanie/core/models/courses.py:819 -#: joanie/core/models/products.py:307 joanie/core/models/products.py:450 -#: joanie/core/models/products.py:1332 +#: joanie/core/models/products.py:309 joanie/core/models/products.py:503 +#: joanie/core/models/products.py:1391 msgid "course" msgstr "" -#: joanie/core/models/courses.py:729 joanie/core/models/products.py:313 -#: joanie/core/models/products.py:442 +#: joanie/core/models/courses.py:729 joanie/core/models/products.py:315 +#: joanie/core/models/products.py:495 msgid "product" msgstr "" @@ -972,225 +972,225 @@ msgstr "" msgid "You are not allowed to enroll to a course run not listed." msgstr "" -#: joanie/core/models/products.py:83 +#: joanie/core/models/products.py:85 msgid "instructions" msgstr "" -#: joanie/core/models/products.py:84 +#: joanie/core/models/products.py:86 msgid "call to action" msgstr "" -#: joanie/core/models/products.py:91 +#: joanie/core/models/products.py:93 msgid "target courses" msgstr "" -#: joanie/core/models/products.py:95 joanie/core/models/products.py:481 +#: joanie/core/models/products.py:97 joanie/core/models/products.py:534 msgid "price" msgstr "" -#: joanie/core/models/products.py:96 joanie/core/models/products.py:483 +#: joanie/core/models/products.py:98 joanie/core/models/products.py:536 msgid "tax included" msgstr "" -#: joanie/core/models/products.py:105 +#: joanie/core/models/products.py:107 msgid "certificate definition" msgstr "" -#: joanie/core/models/products.py:118 +#: joanie/core/models/products.py:120 msgid "level of certification" msgstr "" -#: joanie/core/models/products.py:121 +#: joanie/core/models/products.py:123 msgid "Level of certification as defined by the European Qualifications Framework." msgstr "" -#: joanie/core/models/products.py:129 +#: joanie/core/models/products.py:131 msgid "teachers" msgstr "" -#: joanie/core/models/products.py:130 +#: joanie/core/models/products.py:132 msgid "Teachers that will be displayed on the delivered certificate." msgstr "" -#: joanie/core/models/products.py:136 +#: joanie/core/models/products.py:138 msgid "skills" msgstr "" -#: joanie/core/models/products.py:137 +#: joanie/core/models/products.py:139 msgid "Skills that will be displayed on the delivered certificate." msgstr "" -#: joanie/core/models/products.py:144 +#: joanie/core/models/products.py:146 msgid "Products" msgstr "" -#: joanie/core/models/products.py:287 +#: joanie/core/models/products.py:289 msgid "Certificate definition is only allowed for product kinds: " msgstr "" -#: joanie/core/models/products.py:322 joanie/core/models/products.py:1338 +#: joanie/core/models/products.py:324 joanie/core/models/products.py:1397 msgid "course runs" msgstr "" -#: joanie/core/models/products.py:325 +#: joanie/core/models/products.py:327 msgid "position in product" msgstr "" -#: joanie/core/models/products.py:327 joanie/core/models/products.py:1350 +#: joanie/core/models/products.py:329 joanie/core/models/products.py:1409 msgid "take into account for certification" msgstr "" -#: joanie/core/models/products.py:328 joanie/core/models/products.py:1351 +#: joanie/core/models/products.py:330 joanie/core/models/products.py:1410 msgid "Take into account the course grade for certification." msgstr "" -#: joanie/core/models/products.py:336 +#: joanie/core/models/products.py:338 msgid "Target course relation to a product with a position" msgstr "" -#: joanie/core/models/products.py:337 +#: joanie/core/models/products.py:339 msgid "Target courses relations to products with a position" msgstr "" -#: joanie/core/models/products.py:368 +#: joanie/core/models/products.py:370 msgid "Number of seats" msgstr "" -#: joanie/core/models/products.py:370 +#: joanie/core/models/products.py:372 msgid "The maximum number of orders that can be validated for a given order group" msgstr "" -#: joanie/core/models/products.py:375 +#: joanie/core/models/products.py:377 msgid "course product relation" msgstr "" -#: joanie/core/models/products.py:379 +#: joanie/core/models/products.py:381 msgid "is active" msgstr "" -#: joanie/core/models/products.py:466 +#: joanie/core/models/products.py:519 msgid "order group" msgstr "" -#: joanie/core/models/products.py:477 +#: joanie/core/models/products.py:530 msgid "courses" msgstr "" -#: joanie/core/models/products.py:498 +#: joanie/core/models/products.py:551 msgid "has consent to terms" msgstr "" -#: joanie/core/models/products.py:501 +#: joanie/core/models/products.py:554 msgid "User has consented to the platform terms and conditions." msgstr "" -#: joanie/core/models/products.py:505 +#: joanie/core/models/products.py:558 msgid "has waived their right of withdrawal" msgstr "" -#: joanie/core/models/products.py:508 +#: joanie/core/models/products.py:561 msgid "User has waived their withdrawal right." msgstr "" -#: joanie/core/models/products.py:516 +#: joanie/core/models/products.py:569 msgid "payment schedule" msgstr "" -#: joanie/core/models/products.py:517 +#: joanie/core/models/products.py:570 msgid "Payment schedule for the order." msgstr "" -#: joanie/core/models/products.py:527 +#: joanie/core/models/products.py:580 msgid "credit card" msgstr "" -#: joanie/core/models/products.py:565 +#: joanie/core/models/products.py:618 msgid "Orders" msgstr "" -#: joanie/core/models/products.py:676 +#: joanie/core/models/products.py:729 #, python-brace-format msgid "{required_field} field should be set for {self.product.type} products." msgstr "" -#: joanie/core/models/products.py:682 +#: joanie/core/models/products.py:735 #, python-brace-format msgid "{empty_field} field should be left empty for {self.product.type} products." msgstr "" -#: joanie/core/models/products.py:689 +#: joanie/core/models/products.py:742 msgid "The enrollment should belong to the owner of this order." msgstr "" -#: joanie/core/models/products.py:694 +#: joanie/core/models/products.py:747 msgid "Orders can't be placed on enrollments originating from an order." msgstr "" -#: joanie/core/models/products.py:705 +#: joanie/core/models/products.py:758 msgid "The order cannot be created on course run that is in archived state." msgstr "" -#: joanie/core/models/products.py:724 +#: joanie/core/models/products.py:777 #, python-brace-format msgid "This order cannot be linked to the product \"{product_title}\", " msgstr "" -#: joanie/core/models/products.py:730 +#: joanie/core/models/products.py:783 #, python-brace-format msgid "This order cannot be linked to the product \"{product_title}\" and " msgstr "" -#: joanie/core/models/products.py:880 +#: joanie/core/models/products.py:933 #, python-brace-format msgid "Cannot automatically enroll the user {self.owner.id} in the course" msgstr "" -#: joanie/core/models/products.py:946 +#: joanie/core/models/products.py:999 #, python-brace-format msgid "Product {self.product.title} does not allow to generate a certificate." msgstr "" -#: joanie/core/models/products.py:961 +#: joanie/core/models/products.py:1014 msgid "No graded courses found." msgstr "" -#: joanie/core/models/products.py:977 +#: joanie/core/models/products.py:1030 msgid "This order is not ready for gradation." msgstr "" -#: joanie/core/models/products.py:987 +#: joanie/core/models/products.py:1040 msgid "Course run " msgstr "" -#: joanie/core/models/products.py:1348 +#: joanie/core/models/products.py:1407 msgid "position in order" msgstr "" -#: joanie/core/models/products.py:1359 +#: joanie/core/models/products.py:1418 msgid "Course relation to an order with a position" msgstr "" -#: joanie/core/models/products.py:1360 +#: joanie/core/models/products.py:1419 msgid "Courses relations to orders with a position" msgstr "" -#: joanie/core/models/products.py:1378 +#: joanie/core/models/products.py:1437 msgid "Skill" msgstr "" -#: joanie/core/models/products.py:1379 +#: joanie/core/models/products.py:1438 msgid "Skills" msgstr "" -#: joanie/core/models/products.py:1398 +#: joanie/core/models/products.py:1457 msgid "A skill with this title already exists." msgstr "" -#: joanie/core/models/products.py:1420 +#: joanie/core/models/products.py:1479 msgid "Teacher" msgstr "" -#: joanie/core/models/products.py:1421 +#: joanie/core/models/products.py:1480 msgid "Teachers" msgstr "" diff --git a/src/backend/locale/fr_CA/LC_MESSAGES/django.mo b/src/backend/locale/fr_CA/LC_MESSAGES/django.mo index a8292092ef7db029f90b5e0dfae6796372280df6..a82ca6ba41f2461040d7fe811970b598d8b0f4b7 100644 GIT binary patch delta 18 Zcmcc0e3f}ZE4z`Uf}ydM@x~rcMgTi>1+V}B delta 18 Zcmcc0e3f}ZE4!hof}ydM;l>_MMgTiE1*rf4 diff --git a/src/backend/locale/fr_CA/LC_MESSAGES/django.po b/src/backend/locale/fr_CA/LC_MESSAGES/django.po index acc864116..4cb52eb48 100644 --- a/src/backend/locale/fr_CA/LC_MESSAGES/django.po +++ b/src/backend/locale/fr_CA/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: joanie\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-01-15 11:27+0000\n" -"PO-Revision-Date: 2025-01-15 13:19\n" +"POT-Creation-Date: 2025-01-29 09:29+0000\n" +"PO-Revision-Date: 2025-01-29 13:39\n" "Last-Translator: \n" "Language-Team: French, Canada\n" "Language: fr_CA\n" @@ -114,7 +114,7 @@ msgstr[1] "" msgid "Course" msgstr "" -#: joanie/core/admin.py:71 joanie/core/models/products.py:143 +#: joanie/core/admin.py:71 joanie/core/models/products.py:145 #: joanie/core/serializers/admin.py:1284 #: joanie/core/templates/issuers/invoice.html:78 msgid "Product" @@ -191,7 +191,7 @@ msgstr "" msgid "Config fields" msgstr "" -#: joanie/core/api/client/__init__.py:443 +#: joanie/core/api/client/__init__.py:441 #, python-brace-format msgid "This order cannot be linked to the product \"{product.title}\", " msgstr "" @@ -208,12 +208,12 @@ msgstr "" msgid "Credential" msgstr "" -#: joanie/core/enums.py:34 joanie/core/enums.py:177 +#: joanie/core/enums.py:34 joanie/core/enums.py:182 #: joanie/core/models/courses.py:1071 msgid "Enrollment" msgstr "" -#: joanie/core/enums.py:37 joanie/core/enums.py:167 +#: joanie/core/enums.py:37 joanie/core/enums.py:172 #: joanie/core/models/certifications.py:117 #: joanie/core/templates/issuers/degree.html:27 msgid "Certificate" @@ -239,7 +239,7 @@ msgstr "" msgid "Signing" msgstr "" -#: joanie/core/enums.py:82 joanie/core/enums.py:213 +#: joanie/core/enums.py:82 joanie/core/enums.py:219 msgid "Pending" msgstr "" @@ -278,105 +278,105 @@ msgctxt "As in: the order payments are refunded" msgid "Refunded" msgstr "" -#: joanie/core/enums.py:128 +#: joanie/core/enums.py:133 msgctxt "As in: the enrollment was successfully set on the LMS." msgid "Set" msgstr "" -#: joanie/core/enums.py:132 +#: joanie/core/enums.py:137 msgctxt "As in: the enrollment failed on the LMS." msgid "Failed" msgstr "" -#: joanie/core/enums.py:141 +#: joanie/core/enums.py:146 msgid "Contract Definition Default" msgstr "" -#: joanie/core/enums.py:142 +#: joanie/core/enums.py:147 msgid "Contract Definition Unicamp" msgstr "" -#: joanie/core/enums.py:151 +#: joanie/core/enums.py:156 msgid "Unsigned" msgstr "" -#: joanie/core/enums.py:154 +#: joanie/core/enums.py:159 msgid "Partially signed" msgstr "" -#: joanie/core/enums.py:156 +#: joanie/core/enums.py:161 msgid "Signed" msgstr "" -#: joanie/core/enums.py:168 +#: joanie/core/enums.py:173 msgid "Degree" msgstr "" -#: joanie/core/enums.py:169 +#: joanie/core/enums.py:174 msgid "Unicamp degree" msgstr "" -#: joanie/core/enums.py:176 joanie/core/models/products.py:564 +#: joanie/core/enums.py:181 joanie/core/models/products.py:617 msgid "Order" msgstr "" -#: joanie/core/enums.py:187 +#: joanie/core/enums.py:192 msgid "Info" msgstr "" -#: joanie/core/enums.py:188 +#: joanie/core/enums.py:193 msgid "Success" msgstr "" -#: joanie/core/enums.py:189 +#: joanie/core/enums.py:194 msgid "Warning" msgstr "" -#: joanie/core/enums.py:190 +#: joanie/core/enums.py:195 joanie/core/enums.py:224 msgid "Error" msgstr "" -#: joanie/core/enums.py:200 +#: joanie/core/enums.py:205 msgid "Notification" msgstr "" -#: joanie/core/enums.py:201 +#: joanie/core/enums.py:206 msgid "Payment succeeded" msgstr "" -#: joanie/core/enums.py:202 +#: joanie/core/enums.py:207 msgid "Payment failed" msgstr "" -#: joanie/core/enums.py:203 +#: joanie/core/enums.py:208 msgid "Payment refunded" msgstr "" -#: joanie/core/enums.py:214 joanie/payment/enums.py:28 +#: joanie/core/enums.py:220 joanie/payment/enums.py:28 msgid "Paid" msgstr "" -#: joanie/core/enums.py:215 +#: joanie/core/enums.py:221 msgid "Refused" msgstr "" -#: joanie/core/enums.py:216 joanie/payment/enums.py:30 +#: joanie/core/enums.py:222 joanie/payment/enums.py:30 msgid "Refunded" msgstr "" -#: joanie/core/enums.py:217 +#: joanie/core/enums.py:223 msgid "Canceled" msgstr "" -#: joanie/core/factories.py:1243 joanie/core/utils/contract_definition.py:101 +#: joanie/core/factories.py:1258 joanie/core/utils/contract_definition.py:101 msgid "" msgstr "" -#: joanie/core/factories.py:1248 joanie/core/utils/contract_definition.py:102 +#: joanie/core/factories.py:1263 joanie/core/utils/contract_definition.py:102 msgid "" msgstr "" -#: joanie/core/factories.py:1255 +#: joanie/core/factories.py:1270 msgid "" msgstr "" @@ -459,7 +459,7 @@ msgstr "" #: joanie/core/models/accounts.py:161 joanie/core/models/certifications.py:33 #: joanie/core/models/contracts.py:29 joanie/core/models/courses.py:173 #: joanie/core/models/courses.py:474 joanie/core/models/courses.py:825 -#: joanie/core/models/products.py:81 joanie/core/models/products.py:1383 +#: joanie/core/models/products.py:83 joanie/core/models/products.py:1442 #: joanie/payment/models.py:394 msgid "title" msgstr "" @@ -480,22 +480,22 @@ msgstr "" msgid "country" msgstr "" -#: joanie/core/models/accounts.py:166 joanie/core/models/products.py:1425 +#: joanie/core/models/accounts.py:166 joanie/core/models/products.py:1484 msgid "first name" msgstr "" -#: joanie/core/models/accounts.py:167 joanie/core/models/products.py:1426 +#: joanie/core/models/accounts.py:167 joanie/core/models/products.py:1485 msgid "last name" msgstr "" #: joanie/core/models/accounts.py:170 joanie/core/models/courses.py:361 -#: joanie/core/models/courses.py:605 joanie/core/models/products.py:492 +#: joanie/core/models/courses.py:605 joanie/core/models/products.py:545 #: joanie/payment/models.py:403 msgid "owner" msgstr "" #: joanie/core/models/accounts.py:178 joanie/core/models/certifications.py:98 -#: joanie/core/models/products.py:435 +#: joanie/core/models/products.py:488 msgid "organization" msgstr "" @@ -541,7 +541,7 @@ msgstr "" msgid "context" msgstr "" -#: joanie/core/models/activity_logs.py:79 joanie/core/models/products.py:78 +#: joanie/core/models/activity_logs.py:79 joanie/core/models/products.py:80 msgid "type" msgstr "" @@ -598,7 +598,7 @@ msgid "name" msgstr "" #: joanie/core/models/certifications.py:34 joanie/core/models/contracts.py:30 -#: joanie/core/models/products.py:82 +#: joanie/core/models/products.py:84 msgid "description" msgstr "" @@ -620,11 +620,11 @@ msgid "Date of issuance" msgstr "" #: joanie/core/models/certifications.py:83 joanie/core/models/contracts.py:93 -#: joanie/core/models/products.py:1344 joanie/payment/models.py:54 +#: joanie/core/models/products.py:1403 joanie/payment/models.py:54 msgid "order" msgstr "" -#: joanie/core/models/certifications.py:92 joanie/core/models/products.py:457 +#: joanie/core/models/certifications.py:92 joanie/core/models/products.py:510 msgid "enrollment" msgstr "" @@ -657,7 +657,7 @@ msgid "template name" msgstr "" #: joanie/core/models/contracts.py:55 joanie/core/models/contracts.py:86 -#: joanie/core/models/products.py:112 +#: joanie/core/models/products.py:114 msgid "Contract definition" msgstr "" @@ -862,13 +862,13 @@ msgid "Course accesses" msgstr "" #: joanie/core/models/courses.py:723 joanie/core/models/courses.py:819 -#: joanie/core/models/products.py:307 joanie/core/models/products.py:450 -#: joanie/core/models/products.py:1332 +#: joanie/core/models/products.py:309 joanie/core/models/products.py:503 +#: joanie/core/models/products.py:1391 msgid "course" msgstr "" -#: joanie/core/models/courses.py:729 joanie/core/models/products.py:313 -#: joanie/core/models/products.py:442 +#: joanie/core/models/courses.py:729 joanie/core/models/products.py:315 +#: joanie/core/models/products.py:495 msgid "product" msgstr "" @@ -972,225 +972,225 @@ msgstr "" msgid "You are not allowed to enroll to a course run not listed." msgstr "" -#: joanie/core/models/products.py:83 +#: joanie/core/models/products.py:85 msgid "instructions" msgstr "" -#: joanie/core/models/products.py:84 +#: joanie/core/models/products.py:86 msgid "call to action" msgstr "" -#: joanie/core/models/products.py:91 +#: joanie/core/models/products.py:93 msgid "target courses" msgstr "" -#: joanie/core/models/products.py:95 joanie/core/models/products.py:481 +#: joanie/core/models/products.py:97 joanie/core/models/products.py:534 msgid "price" msgstr "" -#: joanie/core/models/products.py:96 joanie/core/models/products.py:483 +#: joanie/core/models/products.py:98 joanie/core/models/products.py:536 msgid "tax included" msgstr "" -#: joanie/core/models/products.py:105 +#: joanie/core/models/products.py:107 msgid "certificate definition" msgstr "" -#: joanie/core/models/products.py:118 +#: joanie/core/models/products.py:120 msgid "level of certification" msgstr "" -#: joanie/core/models/products.py:121 +#: joanie/core/models/products.py:123 msgid "Level of certification as defined by the European Qualifications Framework." msgstr "" -#: joanie/core/models/products.py:129 +#: joanie/core/models/products.py:131 msgid "teachers" msgstr "" -#: joanie/core/models/products.py:130 +#: joanie/core/models/products.py:132 msgid "Teachers that will be displayed on the delivered certificate." msgstr "" -#: joanie/core/models/products.py:136 +#: joanie/core/models/products.py:138 msgid "skills" msgstr "" -#: joanie/core/models/products.py:137 +#: joanie/core/models/products.py:139 msgid "Skills that will be displayed on the delivered certificate." msgstr "" -#: joanie/core/models/products.py:144 +#: joanie/core/models/products.py:146 msgid "Products" msgstr "" -#: joanie/core/models/products.py:287 +#: joanie/core/models/products.py:289 msgid "Certificate definition is only allowed for product kinds: " msgstr "" -#: joanie/core/models/products.py:322 joanie/core/models/products.py:1338 +#: joanie/core/models/products.py:324 joanie/core/models/products.py:1397 msgid "course runs" msgstr "" -#: joanie/core/models/products.py:325 +#: joanie/core/models/products.py:327 msgid "position in product" msgstr "" -#: joanie/core/models/products.py:327 joanie/core/models/products.py:1350 +#: joanie/core/models/products.py:329 joanie/core/models/products.py:1409 msgid "take into account for certification" msgstr "" -#: joanie/core/models/products.py:328 joanie/core/models/products.py:1351 +#: joanie/core/models/products.py:330 joanie/core/models/products.py:1410 msgid "Take into account the course grade for certification." msgstr "" -#: joanie/core/models/products.py:336 +#: joanie/core/models/products.py:338 msgid "Target course relation to a product with a position" msgstr "" -#: joanie/core/models/products.py:337 +#: joanie/core/models/products.py:339 msgid "Target courses relations to products with a position" msgstr "" -#: joanie/core/models/products.py:368 +#: joanie/core/models/products.py:370 msgid "Number of seats" msgstr "" -#: joanie/core/models/products.py:370 +#: joanie/core/models/products.py:372 msgid "The maximum number of orders that can be validated for a given order group" msgstr "" -#: joanie/core/models/products.py:375 +#: joanie/core/models/products.py:377 msgid "course product relation" msgstr "" -#: joanie/core/models/products.py:379 +#: joanie/core/models/products.py:381 msgid "is active" msgstr "" -#: joanie/core/models/products.py:466 +#: joanie/core/models/products.py:519 msgid "order group" msgstr "" -#: joanie/core/models/products.py:477 +#: joanie/core/models/products.py:530 msgid "courses" msgstr "" -#: joanie/core/models/products.py:498 +#: joanie/core/models/products.py:551 msgid "has consent to terms" msgstr "" -#: joanie/core/models/products.py:501 +#: joanie/core/models/products.py:554 msgid "User has consented to the platform terms and conditions." msgstr "" -#: joanie/core/models/products.py:505 +#: joanie/core/models/products.py:558 msgid "has waived their right of withdrawal" msgstr "" -#: joanie/core/models/products.py:508 +#: joanie/core/models/products.py:561 msgid "User has waived their withdrawal right." msgstr "" -#: joanie/core/models/products.py:516 +#: joanie/core/models/products.py:569 msgid "payment schedule" msgstr "" -#: joanie/core/models/products.py:517 +#: joanie/core/models/products.py:570 msgid "Payment schedule for the order." msgstr "" -#: joanie/core/models/products.py:527 +#: joanie/core/models/products.py:580 msgid "credit card" msgstr "" -#: joanie/core/models/products.py:565 +#: joanie/core/models/products.py:618 msgid "Orders" msgstr "" -#: joanie/core/models/products.py:676 +#: joanie/core/models/products.py:729 #, python-brace-format msgid "{required_field} field should be set for {self.product.type} products." msgstr "" -#: joanie/core/models/products.py:682 +#: joanie/core/models/products.py:735 #, python-brace-format msgid "{empty_field} field should be left empty for {self.product.type} products." msgstr "" -#: joanie/core/models/products.py:689 +#: joanie/core/models/products.py:742 msgid "The enrollment should belong to the owner of this order." msgstr "" -#: joanie/core/models/products.py:694 +#: joanie/core/models/products.py:747 msgid "Orders can't be placed on enrollments originating from an order." msgstr "" -#: joanie/core/models/products.py:705 +#: joanie/core/models/products.py:758 msgid "The order cannot be created on course run that is in archived state." msgstr "" -#: joanie/core/models/products.py:724 +#: joanie/core/models/products.py:777 #, python-brace-format msgid "This order cannot be linked to the product \"{product_title}\", " msgstr "" -#: joanie/core/models/products.py:730 +#: joanie/core/models/products.py:783 #, python-brace-format msgid "This order cannot be linked to the product \"{product_title}\" and " msgstr "" -#: joanie/core/models/products.py:880 +#: joanie/core/models/products.py:933 #, python-brace-format msgid "Cannot automatically enroll the user {self.owner.id} in the course" msgstr "" -#: joanie/core/models/products.py:946 +#: joanie/core/models/products.py:999 #, python-brace-format msgid "Product {self.product.title} does not allow to generate a certificate." msgstr "" -#: joanie/core/models/products.py:961 +#: joanie/core/models/products.py:1014 msgid "No graded courses found." msgstr "" -#: joanie/core/models/products.py:977 +#: joanie/core/models/products.py:1030 msgid "This order is not ready for gradation." msgstr "" -#: joanie/core/models/products.py:987 +#: joanie/core/models/products.py:1040 msgid "Course run " msgstr "" -#: joanie/core/models/products.py:1348 +#: joanie/core/models/products.py:1407 msgid "position in order" msgstr "" -#: joanie/core/models/products.py:1359 +#: joanie/core/models/products.py:1418 msgid "Course relation to an order with a position" msgstr "" -#: joanie/core/models/products.py:1360 +#: joanie/core/models/products.py:1419 msgid "Courses relations to orders with a position" msgstr "" -#: joanie/core/models/products.py:1378 +#: joanie/core/models/products.py:1437 msgid "Skill" msgstr "" -#: joanie/core/models/products.py:1379 +#: joanie/core/models/products.py:1438 msgid "Skills" msgstr "" -#: joanie/core/models/products.py:1398 +#: joanie/core/models/products.py:1457 msgid "A skill with this title already exists." msgstr "" -#: joanie/core/models/products.py:1420 +#: joanie/core/models/products.py:1479 msgid "Teacher" msgstr "" -#: joanie/core/models/products.py:1421 +#: joanie/core/models/products.py:1480 msgid "Teachers" msgstr "" diff --git a/src/backend/locale/fr_FR/LC_MESSAGES/django.mo b/src/backend/locale/fr_FR/LC_MESSAGES/django.mo index b0ed048c7097b468c860bcd8fed4b7dc7459d803..24bbb00eeccce405d04fbca4f5e0a49861e23d68 100644 GIT binary patch delta 22 dcmZo}W^Qg~-jGtjZe*!oXl!M?IlDk25CBu`2Jrv@ delta 22 dcmZo}W^Qg~-jGtjZfL4tXl!M;IlDk25CBuC2I>F+ diff --git a/src/backend/locale/fr_FR/LC_MESSAGES/django.po b/src/backend/locale/fr_FR/LC_MESSAGES/django.po index 82df707ac..f110bf760 100644 --- a/src/backend/locale/fr_FR/LC_MESSAGES/django.po +++ b/src/backend/locale/fr_FR/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: joanie\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-01-15 11:27+0000\n" -"PO-Revision-Date: 2025-01-15 13:19\n" +"POT-Creation-Date: 2025-01-29 09:29+0000\n" +"PO-Revision-Date: 2025-01-29 13:39\n" "Last-Translator: \n" "Language-Team: French\n" "Language: fr_FR\n" @@ -114,7 +114,7 @@ msgstr[1] "{:d} certificats ont été générés." msgid "Course" msgstr "Cours" -#: joanie/core/admin.py:71 joanie/core/models/products.py:143 +#: joanie/core/admin.py:71 joanie/core/models/products.py:145 #: joanie/core/serializers/admin.py:1284 #: joanie/core/templates/issuers/invoice.html:78 msgid "Product" @@ -191,7 +191,7 @@ msgstr "Champ de configuration" msgid "Config fields" msgstr "Champs de configuration" -#: joanie/core/api/client/__init__.py:443 +#: joanie/core/api/client/__init__.py:441 #, python-brace-format msgid "This order cannot be linked to the product \"{product.title}\", " msgstr "Cette commande ne peut pas être liée au produit \"{product.title}\", " @@ -208,12 +208,12 @@ msgstr "Le token ne contient aucun identifiant utilisateur reconnaissable" msgid "Credential" msgstr "Diplôme" -#: joanie/core/enums.py:34 joanie/core/enums.py:177 +#: joanie/core/enums.py:34 joanie/core/enums.py:182 #: joanie/core/models/courses.py:1071 msgid "Enrollment" msgstr "Inscription" -#: joanie/core/enums.py:37 joanie/core/enums.py:167 +#: joanie/core/enums.py:37 joanie/core/enums.py:172 #: joanie/core/models/certifications.py:117 #: joanie/core/templates/issuers/degree.html:27 msgid "Certificate" @@ -239,7 +239,7 @@ msgstr "À signer" msgid "Signing" msgstr "En cours de signature" -#: joanie/core/enums.py:82 joanie/core/enums.py:213 +#: joanie/core/enums.py:82 joanie/core/enums.py:219 msgid "Pending" msgstr "En attente" @@ -278,105 +278,105 @@ msgctxt "As in: the order payments are refunded" msgid "Refunded" msgstr "Remboursée" -#: joanie/core/enums.py:128 +#: joanie/core/enums.py:133 msgctxt "As in: the enrollment was successfully set on the LMS." msgid "Set" msgstr "Défini" -#: joanie/core/enums.py:132 +#: joanie/core/enums.py:137 msgctxt "As in: the enrollment failed on the LMS." msgid "Failed" msgstr "En échec" -#: joanie/core/enums.py:141 +#: joanie/core/enums.py:146 msgid "Contract Definition Default" msgstr "Modèle de contrat par défaut" -#: joanie/core/enums.py:142 +#: joanie/core/enums.py:147 msgid "Contract Definition Unicamp" msgstr "Modèle de contrat Unicamp" -#: joanie/core/enums.py:151 +#: joanie/core/enums.py:156 msgid "Unsigned" msgstr "Non signé" -#: joanie/core/enums.py:154 +#: joanie/core/enums.py:159 msgid "Partially signed" msgstr "Partiellement signé" -#: joanie/core/enums.py:156 +#: joanie/core/enums.py:161 msgid "Signed" msgstr "Signé" -#: joanie/core/enums.py:168 +#: joanie/core/enums.py:173 msgid "Degree" msgstr "Diplôme" -#: joanie/core/enums.py:169 +#: joanie/core/enums.py:174 msgid "Unicamp degree" msgstr "Diplôme Unicamp" -#: joanie/core/enums.py:176 joanie/core/models/products.py:564 +#: joanie/core/enums.py:181 joanie/core/models/products.py:617 msgid "Order" msgstr "Commande" -#: joanie/core/enums.py:187 +#: joanie/core/enums.py:192 msgid "Info" msgstr "Info" -#: joanie/core/enums.py:188 +#: joanie/core/enums.py:193 msgid "Success" msgstr "Succès" -#: joanie/core/enums.py:189 +#: joanie/core/enums.py:194 msgid "Warning" msgstr "Avertissement" -#: joanie/core/enums.py:190 +#: joanie/core/enums.py:195 joanie/core/enums.py:224 msgid "Error" msgstr "Erreur" -#: joanie/core/enums.py:200 +#: joanie/core/enums.py:205 msgid "Notification" msgstr "Notification" -#: joanie/core/enums.py:201 +#: joanie/core/enums.py:206 msgid "Payment succeeded" msgstr "Paiement réussi" -#: joanie/core/enums.py:202 +#: joanie/core/enums.py:207 msgid "Payment failed" msgstr "Échec du paiement" -#: joanie/core/enums.py:203 +#: joanie/core/enums.py:208 msgid "Payment refunded" msgstr "Paiement remboursé" -#: joanie/core/enums.py:214 joanie/payment/enums.py:28 +#: joanie/core/enums.py:220 joanie/payment/enums.py:28 msgid "Paid" msgstr "Payée" -#: joanie/core/enums.py:215 +#: joanie/core/enums.py:221 msgid "Refused" msgstr "Refusé" -#: joanie/core/enums.py:216 joanie/payment/enums.py:30 +#: joanie/core/enums.py:222 joanie/payment/enums.py:30 msgid "Refunded" msgstr "Remboursée" -#: joanie/core/enums.py:217 +#: joanie/core/enums.py:223 msgid "Canceled" msgstr "Annulée" -#: joanie/core/factories.py:1243 joanie/core/utils/contract_definition.py:101 +#: joanie/core/factories.py:1258 joanie/core/utils/contract_definition.py:101 msgid "" msgstr "" -#: joanie/core/factories.py:1248 joanie/core/utils/contract_definition.py:102 +#: joanie/core/factories.py:1263 joanie/core/utils/contract_definition.py:102 msgid "" msgstr "" -#: joanie/core/factories.py:1255 +#: joanie/core/factories.py:1270 msgid "" msgstr "" @@ -459,7 +459,7 @@ msgstr "Utilisateurs" #: joanie/core/models/accounts.py:161 joanie/core/models/certifications.py:33 #: joanie/core/models/contracts.py:29 joanie/core/models/courses.py:173 #: joanie/core/models/courses.py:474 joanie/core/models/courses.py:825 -#: joanie/core/models/products.py:81 joanie/core/models/products.py:1383 +#: joanie/core/models/products.py:83 joanie/core/models/products.py:1442 #: joanie/payment/models.py:394 msgid "title" msgstr "titre" @@ -480,22 +480,22 @@ msgstr "ville" msgid "country" msgstr "pays" -#: joanie/core/models/accounts.py:166 joanie/core/models/products.py:1425 +#: joanie/core/models/accounts.py:166 joanie/core/models/products.py:1484 msgid "first name" msgstr "prénom" -#: joanie/core/models/accounts.py:167 joanie/core/models/products.py:1426 +#: joanie/core/models/accounts.py:167 joanie/core/models/products.py:1485 msgid "last name" msgstr "nom de famille" #: joanie/core/models/accounts.py:170 joanie/core/models/courses.py:361 -#: joanie/core/models/courses.py:605 joanie/core/models/products.py:492 +#: joanie/core/models/courses.py:605 joanie/core/models/products.py:545 #: joanie/payment/models.py:403 msgid "owner" msgstr "propriétaire" #: joanie/core/models/accounts.py:178 joanie/core/models/certifications.py:98 -#: joanie/core/models/products.py:435 +#: joanie/core/models/products.py:488 msgid "organization" msgstr "établissement" @@ -541,7 +541,7 @@ msgstr "niveau" msgid "context" msgstr "contexte" -#: joanie/core/models/activity_logs.py:79 joanie/core/models/products.py:78 +#: joanie/core/models/activity_logs.py:79 joanie/core/models/products.py:80 msgid "type" msgstr "type" @@ -598,7 +598,7 @@ msgid "name" msgstr "nom" #: joanie/core/models/certifications.py:34 joanie/core/models/contracts.py:30 -#: joanie/core/models/products.py:82 +#: joanie/core/models/products.py:84 msgid "description" msgstr "description" @@ -620,11 +620,11 @@ msgid "Date of issuance" msgstr "Date de délivrance" #: joanie/core/models/certifications.py:83 joanie/core/models/contracts.py:93 -#: joanie/core/models/products.py:1344 joanie/payment/models.py:54 +#: joanie/core/models/products.py:1403 joanie/payment/models.py:54 msgid "order" msgstr "commande" -#: joanie/core/models/certifications.py:92 joanie/core/models/products.py:457 +#: joanie/core/models/certifications.py:92 joanie/core/models/products.py:510 msgid "enrollment" msgstr "inscription" @@ -657,7 +657,7 @@ msgid "template name" msgstr "nom du modèle" #: joanie/core/models/contracts.py:55 joanie/core/models/contracts.py:86 -#: joanie/core/models/products.py:112 +#: joanie/core/models/products.py:114 msgid "Contract definition" msgstr "Définition de contrat" @@ -862,13 +862,13 @@ msgid "Course accesses" msgstr "Droits d'accès aux cours" #: joanie/core/models/courses.py:723 joanie/core/models/courses.py:819 -#: joanie/core/models/products.py:307 joanie/core/models/products.py:450 -#: joanie/core/models/products.py:1332 +#: joanie/core/models/products.py:309 joanie/core/models/products.py:503 +#: joanie/core/models/products.py:1391 msgid "course" msgstr "cours" -#: joanie/core/models/courses.py:729 joanie/core/models/products.py:313 -#: joanie/core/models/products.py:442 +#: joanie/core/models/courses.py:729 joanie/core/models/products.py:315 +#: joanie/core/models/products.py:495 msgid "product" msgstr "produit" @@ -972,225 +972,225 @@ msgstr "La session de cours \"{self.course_run.resource_link:s}\" nécessite une msgid "You are not allowed to enroll to a course run not listed." msgstr "Vous n'êtes pas autorisé à vous inscrire à une session de cours non répertoriée." -#: joanie/core/models/products.py:83 +#: joanie/core/models/products.py:85 msgid "instructions" msgstr "instructions" -#: joanie/core/models/products.py:84 +#: joanie/core/models/products.py:86 msgid "call to action" msgstr "appel à action" -#: joanie/core/models/products.py:91 +#: joanie/core/models/products.py:93 msgid "target courses" msgstr "cours ciblés" -#: joanie/core/models/products.py:95 joanie/core/models/products.py:481 +#: joanie/core/models/products.py:97 joanie/core/models/products.py:534 msgid "price" msgstr "prix" -#: joanie/core/models/products.py:96 joanie/core/models/products.py:483 +#: joanie/core/models/products.py:98 joanie/core/models/products.py:536 msgid "tax included" msgstr "taxe incluse" -#: joanie/core/models/products.py:105 +#: joanie/core/models/products.py:107 msgid "certificate definition" msgstr "définition de certificat" -#: joanie/core/models/products.py:118 +#: joanie/core/models/products.py:120 msgid "level of certification" msgstr "niveau de certification" -#: joanie/core/models/products.py:121 +#: joanie/core/models/products.py:123 msgid "Level of certification as defined by the European Qualifications Framework." msgstr "Niveau de certification comme défini par le Cadre Européen des Certifications." -#: joanie/core/models/products.py:129 +#: joanie/core/models/products.py:131 msgid "teachers" msgstr "responsables pédagogiques" -#: joanie/core/models/products.py:130 +#: joanie/core/models/products.py:132 msgid "Teachers that will be displayed on the delivered certificate." msgstr "Les responsables pédagogiques qui seront affichés sur le certificat." -#: joanie/core/models/products.py:136 +#: joanie/core/models/products.py:138 msgid "skills" msgstr "compétences" -#: joanie/core/models/products.py:137 +#: joanie/core/models/products.py:139 msgid "Skills that will be displayed on the delivered certificate." msgstr "Les compétences qui seront affichées sur le certificat." -#: joanie/core/models/products.py:144 +#: joanie/core/models/products.py:146 msgid "Products" msgstr "Produits" -#: joanie/core/models/products.py:287 +#: joanie/core/models/products.py:289 msgid "Certificate definition is only allowed for product kinds: " msgstr "La définition de certificat n'est autorisée que pour les produits de types : " -#: joanie/core/models/products.py:322 joanie/core/models/products.py:1338 +#: joanie/core/models/products.py:324 joanie/core/models/products.py:1397 msgid "course runs" msgstr "sessions de cours" -#: joanie/core/models/products.py:325 +#: joanie/core/models/products.py:327 msgid "position in product" msgstr "position dans le produit" -#: joanie/core/models/products.py:327 joanie/core/models/products.py:1350 +#: joanie/core/models/products.py:329 joanie/core/models/products.py:1409 msgid "take into account for certification" msgstr "prendre en compte pour la certification" -#: joanie/core/models/products.py:328 joanie/core/models/products.py:1351 +#: joanie/core/models/products.py:330 joanie/core/models/products.py:1410 msgid "Take into account the course grade for certification." msgstr "Prendre en compte la note du cours pour la certification." -#: joanie/core/models/products.py:336 +#: joanie/core/models/products.py:338 msgid "Target course relation to a product with a position" msgstr "Relation d'un cours cible à un produit avec une position" -#: joanie/core/models/products.py:337 +#: joanie/core/models/products.py:339 msgid "Target courses relations to products with a position" msgstr "Relation de cours cibles à des produits avec une position" -#: joanie/core/models/products.py:368 +#: joanie/core/models/products.py:370 msgid "Number of seats" msgstr "Nombre de sièges" -#: joanie/core/models/products.py:370 +#: joanie/core/models/products.py:372 msgid "The maximum number of orders that can be validated for a given order group" msgstr "Le nombre maximum de commandes pouvant être validées pour un groupe de commandes donné" -#: joanie/core/models/products.py:375 +#: joanie/core/models/products.py:377 msgid "course product relation" msgstr "relation cours produit" -#: joanie/core/models/products.py:379 +#: joanie/core/models/products.py:381 msgid "is active" msgstr "est actif" -#: joanie/core/models/products.py:466 +#: joanie/core/models/products.py:519 msgid "order group" msgstr "groupe de commandes" -#: joanie/core/models/products.py:477 +#: joanie/core/models/products.py:530 msgid "courses" msgstr "cours" -#: joanie/core/models/products.py:498 +#: joanie/core/models/products.py:551 msgid "has consent to terms" msgstr "a consenti aux conditions" -#: joanie/core/models/products.py:501 +#: joanie/core/models/products.py:554 msgid "User has consented to the platform terms and conditions." msgstr "L'utilisateur a consenti aux conditions générales de vente de la plateforme." -#: joanie/core/models/products.py:505 +#: joanie/core/models/products.py:558 msgid "has waived their right of withdrawal" msgstr "a renoncé à son droit de rétractation" -#: joanie/core/models/products.py:508 +#: joanie/core/models/products.py:561 msgid "User has waived their withdrawal right." msgstr "L'utilisateur a renoncé à son droit de rétractation." -#: joanie/core/models/products.py:516 +#: joanie/core/models/products.py:569 msgid "payment schedule" msgstr "échéancier" -#: joanie/core/models/products.py:517 +#: joanie/core/models/products.py:570 msgid "Payment schedule for the order." msgstr "Échéancier pour la commande." -#: joanie/core/models/products.py:527 +#: joanie/core/models/products.py:580 msgid "credit card" msgstr "carte de crédit" -#: joanie/core/models/products.py:565 +#: joanie/core/models/products.py:618 msgid "Orders" msgstr "Commandes" -#: joanie/core/models/products.py:676 +#: joanie/core/models/products.py:729 #, python-brace-format msgid "{required_field} field should be set for {self.product.type} products." msgstr "Le champ {required_field} doit être défini pour les produits {self.product.type}." -#: joanie/core/models/products.py:682 +#: joanie/core/models/products.py:735 #, python-brace-format msgid "{empty_field} field should be left empty for {self.product.type} products." msgstr "Le champ {empty_field} devrait être laissé vide pour les produits {self.product.type}." -#: joanie/core/models/products.py:689 +#: joanie/core/models/products.py:742 msgid "The enrollment should belong to the owner of this order." msgstr "L'inscription devrait appartenir au propriétaire de cette commande." -#: joanie/core/models/products.py:694 +#: joanie/core/models/products.py:747 msgid "Orders can't be placed on enrollments originating from an order." msgstr "Des commandes ne peuvent pas être passées sur des inscriptions créées à partir d'une commande." -#: joanie/core/models/products.py:705 +#: joanie/core/models/products.py:758 msgid "The order cannot be created on course run that is in archived state." msgstr "La commande ne peut pas être créée en lien avec une session archivée." -#: joanie/core/models/products.py:724 +#: joanie/core/models/products.py:777 #, python-brace-format msgid "This order cannot be linked to the product \"{product_title}\", " msgstr "Cette commande ne peut pas être liée au produit \"{product_title}\", " -#: joanie/core/models/products.py:730 +#: joanie/core/models/products.py:783 #, python-brace-format msgid "This order cannot be linked to the product \"{product_title}\" and " msgstr "Cette commande ne peut pas être liée au produit \"{product_title}\" et " -#: joanie/core/models/products.py:880 +#: joanie/core/models/products.py:933 #, python-brace-format msgid "Cannot automatically enroll the user {self.owner.id} in the course" msgstr "Impossible d'inscrire automatiquement l'utilisateur {self.owner.id} à ce cours" -#: joanie/core/models/products.py:946 +#: joanie/core/models/products.py:999 #, python-brace-format msgid "Product {self.product.title} does not allow to generate a certificate." msgstr "Le produit {self.product.title} ne permet pas de générer un certificat." -#: joanie/core/models/products.py:961 +#: joanie/core/models/products.py:1014 msgid "No graded courses found." msgstr "Aucun cours noté trouvé." -#: joanie/core/models/products.py:977 +#: joanie/core/models/products.py:1030 msgid "This order is not ready for gradation." msgstr "Cette commande n'est pas prête à être évaluée." -#: joanie/core/models/products.py:987 +#: joanie/core/models/products.py:1040 msgid "Course run " msgstr "Session de cours " -#: joanie/core/models/products.py:1348 +#: joanie/core/models/products.py:1407 msgid "position in order" msgstr "position dans la commande" -#: joanie/core/models/products.py:1359 +#: joanie/core/models/products.py:1418 msgid "Course relation to an order with a position" msgstr "Relation d'un cours à une commande avec une position" -#: joanie/core/models/products.py:1360 +#: joanie/core/models/products.py:1419 msgid "Courses relations to orders with a position" msgstr "Relations de cours à des commandes avec une position" -#: joanie/core/models/products.py:1378 +#: joanie/core/models/products.py:1437 msgid "Skill" msgstr "Compétence" -#: joanie/core/models/products.py:1379 +#: joanie/core/models/products.py:1438 msgid "Skills" msgstr "Compétences" -#: joanie/core/models/products.py:1398 +#: joanie/core/models/products.py:1457 msgid "A skill with this title already exists." msgstr "Cette compétence existe déjà." -#: joanie/core/models/products.py:1420 +#: joanie/core/models/products.py:1479 msgid "Teacher" msgstr "Responsable pédagogique" -#: joanie/core/models/products.py:1421 +#: joanie/core/models/products.py:1480 msgid "Teachers" msgstr "Responsables pédagogiques" diff --git a/src/backend/pyproject.toml b/src/backend/pyproject.toml index bd02c2bd9..9cb877fc8 100644 --- a/src/backend/pyproject.toml +++ b/src/backend/pyproject.toml @@ -7,7 +7,7 @@ build-backend = "setuptools.build_meta" [project] name = "joanie" -version = "2.13.0" +version = "2.14.0" authors = [{ "name" = "Open FUN (France Université Numérique)", "email" = "fun.dev@fun-mooc.fr" }] classifiers = [ "Development Status :: 5 - Production/Stable", diff --git a/src/frontend/admin/i18n/locales/es-ES.json b/src/frontend/admin/i18n/locales/es-ES.json index 4b8d60f3c..7d041c5d1 100644 --- a/src/frontend/admin/i18n/locales/es-ES.json +++ b/src/frontend/admin/i18n/locales/es-ES.json @@ -683,6 +683,10 @@ "description": "Label for the state header inside the table", "message": "State" }, + "components.templates.orders.list.updatedOn": { + "description": "Label for the updated on header inside the table", + "message": "Updated on" + }, "components.templates.orders.view.billingAddress": { "description": "Billing address field", "message": "Billing address" diff --git a/src/frontend/admin/i18n/locales/fr-CA.json b/src/frontend/admin/i18n/locales/fr-CA.json index 4b8d60f3c..7d041c5d1 100644 --- a/src/frontend/admin/i18n/locales/fr-CA.json +++ b/src/frontend/admin/i18n/locales/fr-CA.json @@ -683,6 +683,10 @@ "description": "Label for the state header inside the table", "message": "State" }, + "components.templates.orders.list.updatedOn": { + "description": "Label for the updated on header inside the table", + "message": "Updated on" + }, "components.templates.orders.view.billingAddress": { "description": "Billing address field", "message": "Billing address" diff --git a/src/frontend/admin/i18n/locales/fr-FR.json b/src/frontend/admin/i18n/locales/fr-FR.json index 3cbb79d45..d790e44de 100644 --- a/src/frontend/admin/i18n/locales/fr-FR.json +++ b/src/frontend/admin/i18n/locales/fr-FR.json @@ -683,6 +683,10 @@ "description": "Label for the state header inside the table", "message": "État" }, + "components.templates.orders.list.updatedOn": { + "description": "Label for the updated on header inside the table", + "message": "Mise à jour le" + }, "components.templates.orders.view.billingAddress": { "description": "Billing address field", "message": "Adresse de facturation" diff --git a/src/frontend/admin/package.json b/src/frontend/admin/package.json index b64f89da5..44386291b 100644 --- a/src/frontend/admin/package.json +++ b/src/frontend/admin/package.json @@ -1,6 +1,6 @@ { "name": "admin", - "version": "2.13.0", + "version": "2.14.0", "private": true, "scripts": { "dev": "next dev -p 8072", diff --git a/src/mail/package.json b/src/mail/package.json index b1904d582..1c38b04a9 100644 --- a/src/mail/package.json +++ b/src/mail/package.json @@ -1,6 +1,6 @@ { "name": "mail_mjml", - "version": "2.13.0", + "version": "2.14.0", "description": "An util to generate html and text django's templates from mjml templates", "type": "module", "dependencies": { diff --git a/src/openApiClientJs/package.json b/src/openApiClientJs/package.json index a08774120..24b0752a9 100644 --- a/src/openApiClientJs/package.json +++ b/src/openApiClientJs/package.json @@ -1,6 +1,6 @@ { "name": "joanie-openapi-client-ts", - "version": "2.13.0", + "version": "2.14.0", "private": true, "description": "Tool to generate Typescript api client for joanie", "scripts": { diff --git a/src/tray/tray.yml b/src/tray/tray.yml index 635d303cc..b5d3a2390 100644 --- a/src/tray/tray.yml +++ b/src/tray/tray.yml @@ -1,3 +1,3 @@ metadata: name: joanie - version: 2.13.0 + version: 2.14.0 diff --git a/src/tray/vars/all/main.yml b/src/tray/vars/all/main.yml index e408edaa0..3d05944e4 100644 --- a/src/tray/vars/all/main.yml +++ b/src/tray/vars/all/main.yml @@ -21,7 +21,7 @@ joanie_nginx_static_cache_expires: "1M" # -- admin nginx joanie_admin_nginx_image_name: "fundocker/joanie-admin" -joanie_admin_nginx_image_tag: "2.13.0" +joanie_admin_nginx_image_tag: "2.14.0" joanie_admin_nginx_port: 8061 joanie_admin_nginx_replicas: 1 joanie_admin_nginx_healthcheck_port: 5000 @@ -41,7 +41,7 @@ joanie_database_secret_name: "joanie-postgresql-{{ joanie_vault_checksum | defau # -- joanie joanie_image_name: "fundocker/joanie" -joanie_image_tag: "2.13.0" +joanie_image_tag: "2.14.0" # The image pull secret name should match the name of your secret created to # login to your private docker registry joanie_image_pull_secret_name: ""