Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 0 additions & 11 deletions renovate.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,17 +16,6 @@
"django-storages"
]
},
{
"groupName": "allowed django versions",
"matchManagers": [
"setup-cfg",
"pep621"
],
"matchPackageNames": [
"Django"
],
"allowedVersions": "<5"
},
{
"enabled": false,
"groupName": "ignored js dependencies",
Expand Down
1 change: 1 addition & 0 deletions src/backend/joanie/badges/models.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
"""
Declare and configure the models for the badges part
"""
# pylint: disable=too-many-function-args

from functools import lru_cache

Expand Down
2 changes: 1 addition & 1 deletion src/backend/joanie/core/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -274,7 +274,7 @@ class CourseAdmin(DjangoObjectActions, TranslatableAdmin):
change_form_template = "joanie/admin/translatable_change_form_with_actions.html"
list_display = ("code", "title", "state")
readonly_fields = ("course_runs",)
filter_horizontal = ("products",)
# filter_horizontal = ("products",)
inlines = (CourseCourseRunsInline, CourseProductRelationInline)
fieldsets = (
(
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# Generated by Django 4.2.18 on 2025-01-30 16:20

from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
('core', '0052_alter_unique_constraint_order_when_canceled_or_refund'),
]

operations = [
migrations.AlterModelOptions(
name='certificate',
options={'ordering': ['-issued_on'], 'verbose_name': 'Certificate', 'verbose_name_plural': 'Certificates'},
),
migrations.AlterField(
model_name='certificatedefinition',
name='template',
field=models.CharField(blank=True, choices=[('certificate', 'Certificate'), ('degree', 'Degree'), ('unicamp-degree', 'Unicamp degree')], db_index=True, max_length=255, null=True, verbose_name='template to generate pdf'),
),
]
19 changes: 19 additions & 0 deletions src/backend/joanie/core/migrations/0054_alter_contract_order.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# Generated by Django 4.2.18 on 2025-01-30 16:22

from django.db import migrations, models
import django.db.models.deletion


class Migration(migrations.Migration):

dependencies = [
('core', '0053_alter_certificate_options_and_more'),
]

operations = [
migrations.AlterField(
model_name='contract',
name='order',
field=models.OneToOneField(editable=False, on_delete=django.db.models.deletion.PROTECT, related_name='contract', to='core.order', verbose_name='order'),
),
]
1 change: 1 addition & 0 deletions src/backend/joanie/core/models/contracts.py
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,7 @@ class Contract(BaseModel):
order = models.OneToOneField(
"core.order",
verbose_name=_("order"),
related_name="contract",
on_delete=models.PROTECT,
editable=False,
)
Expand Down
2 changes: 1 addition & 1 deletion src/backend/joanie/core/models/courses.py
Original file line number Diff line number Diff line change
Expand Up @@ -910,7 +910,7 @@ def get_equivalent_serialized_course_runs_for_related_products(
"""
products = self.course.products.model.objects.filter(
models.Q(target_course_relations__course_runs__isnull=True)
| models.Q(target_course_relations__course_runs=self),
| models.Q(target_course_relations__course_runs__id=self.id),
target_course_relations__course=self.course,
)

Expand Down
3 changes: 2 additions & 1 deletion src/backend/joanie/tests/swagger/admin-swagger.json
Original file line number Diff line number Diff line change
Expand Up @@ -7904,6 +7904,7 @@
"tr",
"tt",
"udm",
"ug",
"uk",
"ur",
"uz",
Expand All @@ -7912,7 +7913,7 @@
"zh-hant"
],
"type": "string",
"description": "* `af` - Afrikaans\n* `ar` - Arabic\n* `ar-dz` - Algerian Arabic\n* `ast` - Asturian\n* `az` - Azerbaijani\n* `bg` - Bulgarian\n* `be` - Belarusian\n* `bn` - Bengali\n* `br` - Breton\n* `bs` - Bosnian\n* `ca` - Catalan\n* `ckb` - Central Kurdish (Sorani)\n* `cs` - Czech\n* `cy` - Welsh\n* `da` - Danish\n* `de` - German\n* `dsb` - Lower Sorbian\n* `el` - Greek\n* `en` - English\n* `en-au` - Australian English\n* `en-gb` - British English\n* `eo` - Esperanto\n* `es` - Spanish\n* `es-ar` - Argentinian Spanish\n* `es-co` - Colombian Spanish\n* `es-mx` - Mexican Spanish\n* `es-ni` - Nicaraguan Spanish\n* `es-ve` - Venezuelan Spanish\n* `et` - Estonian\n* `eu` - Basque\n* `fa` - Persian\n* `fi` - Finnish\n* `fr` - French\n* `fy` - Frisian\n* `ga` - Irish\n* `gd` - Scottish Gaelic\n* `gl` - Galician\n* `he` - Hebrew\n* `hi` - Hindi\n* `hr` - Croatian\n* `hsb` - Upper Sorbian\n* `hu` - Hungarian\n* `hy` - Armenian\n* `ia` - Interlingua\n* `id` - Indonesian\n* `ig` - Igbo\n* `io` - Ido\n* `is` - Icelandic\n* `it` - Italian\n* `ja` - Japanese\n* `ka` - Georgian\n* `kab` - Kabyle\n* `kk` - Kazakh\n* `km` - Khmer\n* `kn` - Kannada\n* `ko` - Korean\n* `ky` - Kyrgyz\n* `lb` - Luxembourgish\n* `lt` - Lithuanian\n* `lv` - Latvian\n* `mk` - Macedonian\n* `ml` - Malayalam\n* `mn` - Mongolian\n* `mr` - Marathi\n* `ms` - Malay\n* `my` - Burmese\n* `nb` - Norwegian Bokmål\n* `ne` - Nepali\n* `nl` - Dutch\n* `nn` - Norwegian Nynorsk\n* `os` - Ossetic\n* `pa` - Punjabi\n* `pl` - Polish\n* `pt` - Portuguese\n* `pt-br` - Brazilian Portuguese\n* `ro` - Romanian\n* `ru` - Russian\n* `sk` - Slovak\n* `sl` - Slovenian\n* `sq` - Albanian\n* `sr` - Serbian\n* `sr-latn` - Serbian Latin\n* `sv` - Swedish\n* `sw` - Swahili\n* `ta` - Tamil\n* `te` - Telugu\n* `tg` - Tajik\n* `th` - Thai\n* `tk` - Turkmen\n* `tr` - Turkish\n* `tt` - Tatar\n* `udm` - Udmurt\n* `uk` - Ukrainian\n* `ur` - Urdu\n* `uz` - Uzbek\n* `vi` - Vietnamese\n* `zh-hans` - Simplified Chinese\n* `zh-hant` - Traditional Chinese"
"description": "* `af` - Afrikaans\n* `ar` - Arabic\n* `ar-dz` - Algerian Arabic\n* `ast` - Asturian\n* `az` - Azerbaijani\n* `bg` - Bulgarian\n* `be` - Belarusian\n* `bn` - Bengali\n* `br` - Breton\n* `bs` - Bosnian\n* `ca` - Catalan\n* `ckb` - Central Kurdish (Sorani)\n* `cs` - Czech\n* `cy` - Welsh\n* `da` - Danish\n* `de` - German\n* `dsb` - Lower Sorbian\n* `el` - Greek\n* `en` - English\n* `en-au` - Australian English\n* `en-gb` - British English\n* `eo` - Esperanto\n* `es` - Spanish\n* `es-ar` - Argentinian Spanish\n* `es-co` - Colombian Spanish\n* `es-mx` - Mexican Spanish\n* `es-ni` - Nicaraguan Spanish\n* `es-ve` - Venezuelan Spanish\n* `et` - Estonian\n* `eu` - Basque\n* `fa` - Persian\n* `fi` - Finnish\n* `fr` - French\n* `fy` - Frisian\n* `ga` - Irish\n* `gd` - Scottish Gaelic\n* `gl` - Galician\n* `he` - Hebrew\n* `hi` - Hindi\n* `hr` - Croatian\n* `hsb` - Upper Sorbian\n* `hu` - Hungarian\n* `hy` - Armenian\n* `ia` - Interlingua\n* `id` - Indonesian\n* `ig` - Igbo\n* `io` - Ido\n* `is` - Icelandic\n* `it` - Italian\n* `ja` - Japanese\n* `ka` - Georgian\n* `kab` - Kabyle\n* `kk` - Kazakh\n* `km` - Khmer\n* `kn` - Kannada\n* `ko` - Korean\n* `ky` - Kyrgyz\n* `lb` - Luxembourgish\n* `lt` - Lithuanian\n* `lv` - Latvian\n* `mk` - Macedonian\n* `ml` - Malayalam\n* `mn` - Mongolian\n* `mr` - Marathi\n* `ms` - Malay\n* `my` - Burmese\n* `nb` - Norwegian Bokmål\n* `ne` - Nepali\n* `nl` - Dutch\n* `nn` - Norwegian Nynorsk\n* `os` - Ossetic\n* `pa` - Punjabi\n* `pl` - Polish\n* `pt` - Portuguese\n* `pt-br` - Brazilian Portuguese\n* `ro` - Romanian\n* `ru` - Russian\n* `sk` - Slovak\n* `sl` - Slovenian\n* `sq` - Albanian\n* `sr` - Serbian\n* `sr-latn` - Serbian Latin\n* `sv` - Swedish\n* `sw` - Swahili\n* `ta` - Tamil\n* `te` - Telugu\n* `tg` - Tajik\n* `th` - Thai\n* `tk` - Turkmen\n* `tr` - Turkish\n* `tt` - Tatar\n* `udm` - Udmurt\n* `ug` - Uyghur\n* `uk` - Ukrainian\n* `ur` - Urdu\n* `uz` - Uzbek\n* `vi` - Vietnamese\n* `zh-hans` - Simplified Chinese\n* `zh-hant` - Traditional Chinese"
},
"NameEnum": {
"enum": [
Expand Down
5 changes: 3 additions & 2 deletions src/backend/joanie/tests/swagger/swagger.json
Original file line number Diff line number Diff line change
Expand Up @@ -5438,7 +5438,7 @@
}
],
"readOnly": true,
"description": "The list of languages in which the course content is available.\n\n* `af` - Afrikaans\n* `ar` - Arabic\n* `ar-dz` - Algerian Arabic\n* `ast` - Asturian\n* `az` - Azerbaijani\n* `bg` - Bulgarian\n* `be` - Belarusian\n* `bn` - Bengali\n* `br` - Breton\n* `bs` - Bosnian\n* `ca` - Catalan\n* `ckb` - Central Kurdish (Sorani)\n* `cs` - Czech\n* `cy` - Welsh\n* `da` - Danish\n* `de` - German\n* `dsb` - Lower Sorbian\n* `el` - Greek\n* `en` - English\n* `en-au` - Australian English\n* `en-gb` - British English\n* `eo` - Esperanto\n* `es` - Spanish\n* `es-ar` - Argentinian Spanish\n* `es-co` - Colombian Spanish\n* `es-mx` - Mexican Spanish\n* `es-ni` - Nicaraguan Spanish\n* `es-ve` - Venezuelan Spanish\n* `et` - Estonian\n* `eu` - Basque\n* `fa` - Persian\n* `fi` - Finnish\n* `fr` - French\n* `fy` - Frisian\n* `ga` - Irish\n* `gd` - Scottish Gaelic\n* `gl` - Galician\n* `he` - Hebrew\n* `hi` - Hindi\n* `hr` - Croatian\n* `hsb` - Upper Sorbian\n* `hu` - Hungarian\n* `hy` - Armenian\n* `ia` - Interlingua\n* `id` - Indonesian\n* `ig` - Igbo\n* `io` - Ido\n* `is` - Icelandic\n* `it` - Italian\n* `ja` - Japanese\n* `ka` - Georgian\n* `kab` - Kabyle\n* `kk` - Kazakh\n* `km` - Khmer\n* `kn` - Kannada\n* `ko` - Korean\n* `ky` - Kyrgyz\n* `lb` - Luxembourgish\n* `lt` - Lithuanian\n* `lv` - Latvian\n* `mk` - Macedonian\n* `ml` - Malayalam\n* `mn` - Mongolian\n* `mr` - Marathi\n* `ms` - Malay\n* `my` - Burmese\n* `nb` - Norwegian Bokmål\n* `ne` - Nepali\n* `nl` - Dutch\n* `nn` - Norwegian Nynorsk\n* `os` - Ossetic\n* `pa` - Punjabi\n* `pl` - Polish\n* `pt` - Portuguese\n* `pt-br` - Brazilian Portuguese\n* `ro` - Romanian\n* `ru` - Russian\n* `sk` - Slovak\n* `sl` - Slovenian\n* `sq` - Albanian\n* `sr` - Serbian\n* `sr-latn` - Serbian Latin\n* `sv` - Swedish\n* `sw` - Swahili\n* `ta` - Tamil\n* `te` - Telugu\n* `tg` - Tajik\n* `th` - Thai\n* `tk` - Turkmen\n* `tr` - Turkish\n* `tt` - Tatar\n* `udm` - Udmurt\n* `uk` - Ukrainian\n* `ur` - Urdu\n* `uz` - Uzbek\n* `vi` - Vietnamese\n* `zh-hans` - Simplified Chinese\n* `zh-hant` - Traditional Chinese"
"description": "The list of languages in which the course content is available.\n\n* `af` - Afrikaans\n* `ar` - Arabic\n* `ar-dz` - Algerian Arabic\n* `ast` - Asturian\n* `az` - Azerbaijani\n* `bg` - Bulgarian\n* `be` - Belarusian\n* `bn` - Bengali\n* `br` - Breton\n* `bs` - Bosnian\n* `ca` - Catalan\n* `ckb` - Central Kurdish (Sorani)\n* `cs` - Czech\n* `cy` - Welsh\n* `da` - Danish\n* `de` - German\n* `dsb` - Lower Sorbian\n* `el` - Greek\n* `en` - English\n* `en-au` - Australian English\n* `en-gb` - British English\n* `eo` - Esperanto\n* `es` - Spanish\n* `es-ar` - Argentinian Spanish\n* `es-co` - Colombian Spanish\n* `es-mx` - Mexican Spanish\n* `es-ni` - Nicaraguan Spanish\n* `es-ve` - Venezuelan Spanish\n* `et` - Estonian\n* `eu` - Basque\n* `fa` - Persian\n* `fi` - Finnish\n* `fr` - French\n* `fy` - Frisian\n* `ga` - Irish\n* `gd` - Scottish Gaelic\n* `gl` - Galician\n* `he` - Hebrew\n* `hi` - Hindi\n* `hr` - Croatian\n* `hsb` - Upper Sorbian\n* `hu` - Hungarian\n* `hy` - Armenian\n* `ia` - Interlingua\n* `id` - Indonesian\n* `ig` - Igbo\n* `io` - Ido\n* `is` - Icelandic\n* `it` - Italian\n* `ja` - Japanese\n* `ka` - Georgian\n* `kab` - Kabyle\n* `kk` - Kazakh\n* `km` - Khmer\n* `kn` - Kannada\n* `ko` - Korean\n* `ky` - Kyrgyz\n* `lb` - Luxembourgish\n* `lt` - Lithuanian\n* `lv` - Latvian\n* `mk` - Macedonian\n* `ml` - Malayalam\n* `mn` - Mongolian\n* `mr` - Marathi\n* `ms` - Malay\n* `my` - Burmese\n* `nb` - Norwegian Bokmål\n* `ne` - Nepali\n* `nl` - Dutch\n* `nn` - Norwegian Nynorsk\n* `os` - Ossetic\n* `pa` - Punjabi\n* `pl` - Polish\n* `pt` - Portuguese\n* `pt-br` - Brazilian Portuguese\n* `ro` - Romanian\n* `ru` - Russian\n* `sk` - Slovak\n* `sl` - Slovenian\n* `sq` - Albanian\n* `sr` - Serbian\n* `sr-latn` - Serbian Latin\n* `sv` - Swedish\n* `sw` - Swahili\n* `ta` - Tamil\n* `te` - Telugu\n* `tg` - Tajik\n* `th` - Thai\n* `tk` - Turkmen\n* `tr` - Turkish\n* `tt` - Tatar\n* `udm` - Udmurt\n* `ug` - Uyghur\n* `uk` - Ukrainian\n* `ur` - Urdu\n* `uz` - Uzbek\n* `vi` - Vietnamese\n* `zh-hans` - Simplified Chinese\n* `zh-hant` - Traditional Chinese"
},
"resource_link": {
"type": "string",
Expand Down Expand Up @@ -5858,6 +5858,7 @@
"tr",
"tt",
"udm",
"ug",
"uk",
"ur",
"uz",
Expand All @@ -5866,7 +5867,7 @@
"zh-hant"
],
"type": "string",
"description": "* `af` - Afrikaans\n* `ar` - Arabic\n* `ar-dz` - Algerian Arabic\n* `ast` - Asturian\n* `az` - Azerbaijani\n* `bg` - Bulgarian\n* `be` - Belarusian\n* `bn` - Bengali\n* `br` - Breton\n* `bs` - Bosnian\n* `ca` - Catalan\n* `ckb` - Central Kurdish (Sorani)\n* `cs` - Czech\n* `cy` - Welsh\n* `da` - Danish\n* `de` - German\n* `dsb` - Lower Sorbian\n* `el` - Greek\n* `en` - English\n* `en-au` - Australian English\n* `en-gb` - British English\n* `eo` - Esperanto\n* `es` - Spanish\n* `es-ar` - Argentinian Spanish\n* `es-co` - Colombian Spanish\n* `es-mx` - Mexican Spanish\n* `es-ni` - Nicaraguan Spanish\n* `es-ve` - Venezuelan Spanish\n* `et` - Estonian\n* `eu` - Basque\n* `fa` - Persian\n* `fi` - Finnish\n* `fr` - French\n* `fy` - Frisian\n* `ga` - Irish\n* `gd` - Scottish Gaelic\n* `gl` - Galician\n* `he` - Hebrew\n* `hi` - Hindi\n* `hr` - Croatian\n* `hsb` - Upper Sorbian\n* `hu` - Hungarian\n* `hy` - Armenian\n* `ia` - Interlingua\n* `id` - Indonesian\n* `ig` - Igbo\n* `io` - Ido\n* `is` - Icelandic\n* `it` - Italian\n* `ja` - Japanese\n* `ka` - Georgian\n* `kab` - Kabyle\n* `kk` - Kazakh\n* `km` - Khmer\n* `kn` - Kannada\n* `ko` - Korean\n* `ky` - Kyrgyz\n* `lb` - Luxembourgish\n* `lt` - Lithuanian\n* `lv` - Latvian\n* `mk` - Macedonian\n* `ml` - Malayalam\n* `mn` - Mongolian\n* `mr` - Marathi\n* `ms` - Malay\n* `my` - Burmese\n* `nb` - Norwegian Bokmål\n* `ne` - Nepali\n* `nl` - Dutch\n* `nn` - Norwegian Nynorsk\n* `os` - Ossetic\n* `pa` - Punjabi\n* `pl` - Polish\n* `pt` - Portuguese\n* `pt-br` - Brazilian Portuguese\n* `ro` - Romanian\n* `ru` - Russian\n* `sk` - Slovak\n* `sl` - Slovenian\n* `sq` - Albanian\n* `sr` - Serbian\n* `sr-latn` - Serbian Latin\n* `sv` - Swedish\n* `sw` - Swahili\n* `ta` - Tamil\n* `te` - Telugu\n* `tg` - Tajik\n* `th` - Thai\n* `tk` - Turkmen\n* `tr` - Turkish\n* `tt` - Tatar\n* `udm` - Udmurt\n* `uk` - Ukrainian\n* `ur` - Urdu\n* `uz` - Uzbek\n* `vi` - Vietnamese\n* `zh-hans` - Simplified Chinese\n* `zh-hant` - Traditional Chinese"
"description": "* `af` - Afrikaans\n* `ar` - Arabic\n* `ar-dz` - Algerian Arabic\n* `ast` - Asturian\n* `az` - Azerbaijani\n* `bg` - Bulgarian\n* `be` - Belarusian\n* `bn` - Bengali\n* `br` - Breton\n* `bs` - Bosnian\n* `ca` - Catalan\n* `ckb` - Central Kurdish (Sorani)\n* `cs` - Czech\n* `cy` - Welsh\n* `da` - Danish\n* `de` - German\n* `dsb` - Lower Sorbian\n* `el` - Greek\n* `en` - English\n* `en-au` - Australian English\n* `en-gb` - British English\n* `eo` - Esperanto\n* `es` - Spanish\n* `es-ar` - Argentinian Spanish\n* `es-co` - Colombian Spanish\n* `es-mx` - Mexican Spanish\n* `es-ni` - Nicaraguan Spanish\n* `es-ve` - Venezuelan Spanish\n* `et` - Estonian\n* `eu` - Basque\n* `fa` - Persian\n* `fi` - Finnish\n* `fr` - French\n* `fy` - Frisian\n* `ga` - Irish\n* `gd` - Scottish Gaelic\n* `gl` - Galician\n* `he` - Hebrew\n* `hi` - Hindi\n* `hr` - Croatian\n* `hsb` - Upper Sorbian\n* `hu` - Hungarian\n* `hy` - Armenian\n* `ia` - Interlingua\n* `id` - Indonesian\n* `ig` - Igbo\n* `io` - Ido\n* `is` - Icelandic\n* `it` - Italian\n* `ja` - Japanese\n* `ka` - Georgian\n* `kab` - Kabyle\n* `kk` - Kazakh\n* `km` - Khmer\n* `kn` - Kannada\n* `ko` - Korean\n* `ky` - Kyrgyz\n* `lb` - Luxembourgish\n* `lt` - Lithuanian\n* `lv` - Latvian\n* `mk` - Macedonian\n* `ml` - Malayalam\n* `mn` - Mongolian\n* `mr` - Marathi\n* `ms` - Malay\n* `my` - Burmese\n* `nb` - Norwegian Bokmål\n* `ne` - Nepali\n* `nl` - Dutch\n* `nn` - Norwegian Nynorsk\n* `os` - Ossetic\n* `pa` - Punjabi\n* `pl` - Polish\n* `pt` - Portuguese\n* `pt-br` - Brazilian Portuguese\n* `ro` - Romanian\n* `ru` - Russian\n* `sk` - Slovak\n* `sl` - Slovenian\n* `sq` - Albanian\n* `sr` - Serbian\n* `sr-latn` - Serbian Latin\n* `sv` - Swedish\n* `sw` - Swahili\n* `ta` - Tamil\n* `te` - Telugu\n* `tg` - Tajik\n* `th` - Thai\n* `tk` - Turkmen\n* `tr` - Turkish\n* `tt` - Tatar\n* `udm` - Udmurt\n* `ug` - Uyghur\n* `uk` - Ukrainian\n* `ur` - Urdu\n* `uz` - Uzbek\n* `vi` - Vietnamese\n* `zh-hans` - Simplified Chinese\n* `zh-hant` - Traditional Chinese"
},
"LevelEnum": {
"enum": [
Expand Down
2 changes: 1 addition & 1 deletion src/backend/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ dependencies = [
"django-redis==5.4.0",
"django-storages==1.14.3",
"django-viewflow==2.2.9",
"Django<5",
"Django==5.0.3",
"djangorestframework-simplejwt==5.4.0",
"djangorestframework==3.15.2",
"drf_spectacular==0.28.0",
Expand Down