From 7665d7efb410c254ab581166bf65defa52728351 Mon Sep 17 00:00:00 2001 From: imperosol Date: Fri, 7 Nov 2025 18:46:41 +0100 Subject: [PATCH] update subscription price --- locale/fr/LC_MESSAGES/django.po | 36 ++++++++-------- sith/settings.py | 4 +- ...16_alter_subscription_subscription_type.py | 21 ++++++++++ subscription/models.py | 13 +++--- subscription/tests/test_dates.py | 42 ------------------- 5 files changed, 48 insertions(+), 68 deletions(-) create mode 100644 subscription/migrations/0016_alter_subscription_subscription_type.py diff --git a/locale/fr/LC_MESSAGES/django.po b/locale/fr/LC_MESSAGES/django.po index d2a89b73..11e5ceb0 100644 --- a/locale/fr/LC_MESSAGES/django.po +++ b/locale/fr/LC_MESSAGES/django.po @@ -5065,47 +5065,47 @@ msgstr "Suppression de rechargement" #: sith/settings.py msgid "One semester" -msgstr "Un semestre, 20 €" +msgstr "Un semestre" #: sith/settings.py msgid "Two semesters" -msgstr "Deux semestres, 35 €" +msgstr "Deux semestres" #: sith/settings.py msgid "Common core cursus" -msgstr "Cursus tronc commun, 60 €" +msgstr "Cursus tronc commun" #: sith/settings.py msgid "Branch cursus" -msgstr "Cursus branche, 60 €" +msgstr "Cursus branche" #: sith/settings.py msgid "Alternating cursus" -msgstr "Cursus alternant, 30 €" +msgstr "Cursus alternant" #: sith/settings.py msgid "Honorary member" -msgstr "Membre honoraire, 0 €" +msgstr "Membre honoraire" #: sith/settings.py msgid "Assidu member" -msgstr "Membre d'Assidu, 0 €" +msgstr "Membre d'Assidu" #: sith/settings.py msgid "Amicale/DOCEO member" -msgstr "Membre de l'Amicale/DOCEO, 0 €" +msgstr "Membre de l'Amicale/DOCEO" #: sith/settings.py msgid "UT network member" -msgstr "Cotisant du réseau UT, 0 €" +msgstr "Cotisant du réseau UT" #: sith/settings.py msgid "CROUS member" -msgstr "Membres du CROUS, 0 €" +msgstr "Membres du CROUS" #: sith/settings.py msgid "Sbarro/ESTA member" -msgstr "Membre de Sbarro ou de l'ESTA, 20 €" +msgstr "Membre de Sbarro ou de l'ESTA" #: sith/settings.py msgid "One semester Welcome Week" @@ -5132,28 +5132,28 @@ msgid "One day" msgstr "Un jour" #: sith/settings.py -msgid "GA staff member" -msgstr "Membre staff GA (2 semaines), 1 €" +msgid "GA staff member (2 weeks)" +msgstr "Membre staff GA (2 semaines)" #: sith/settings.py msgid "One semester (-20%)" -msgstr "Un semestre (-20%), 12 €" +msgstr "Un semestre (-20%)" #: sith/settings.py msgid "Two semesters (-20%)" -msgstr "Deux semestres (-20%), 22 €" +msgstr "Deux semestres (-20%)" #: sith/settings.py msgid "Common core cursus (-20%)" -msgstr "Cursus tronc commun (-20%), 36 €" +msgstr "Cursus tronc commun (-20%)" #: sith/settings.py msgid "Branch cursus (-20%)" -msgstr "Cursus branche (-20%), 36 €" +msgstr "Cursus branche (-20%)" #: sith/settings.py msgid "Alternating cursus (-20%)" -msgstr "Cursus alternant (-20%), 24 €" +msgstr "Cursus alternant (-20%)" #: sith/settings.py msgid "One year for free(CA offer)" diff --git a/sith/settings.py b/sith/settings.py index b502dc56..8647d8e9 100644 --- a/sith/settings.py +++ b/sith/settings.py @@ -542,7 +542,7 @@ SITH_SUBSCRIPTIONS = { "duration": 4, }, "cursus-branche": {"name": _("Branch cursus"), "price": 60, "duration": 6}, - "cursus-alternant": {"name": _("Alternating cursus"), "price": 30, "duration": 6}, + "cursus-alternant": {"name": _("Alternating cursus"), "price": 35, "duration": 6}, "membre-honoraire": {"name": _("Honorary member"), "price": 0, "duration": 666}, "assidu": {"name": _("Assidu member"), "price": 0, "duration": 2}, "amicale/doceo": {"name": _("Amicale/DOCEO member"), "price": 0, "duration": 2}, @@ -554,8 +554,6 @@ SITH_SUBSCRIPTIONS = { "price": 0, "duration": 1, }, - "un-mois-essai": {"name": _("One month for free"), "price": 0, "duration": 0.166}, - "deux-mois-essai": {"name": _("Two months for free"), "price": 0, "duration": 0.33}, "benevoles-euroks": {"name": _("Eurok's volunteer"), "price": 5, "duration": 0.1}, "six-semaines-essai": { "name": _("Six weeks for free"), diff --git a/subscription/migrations/0016_alter_subscription_subscription_type.py b/subscription/migrations/0016_alter_subscription_subscription_type.py new file mode 100644 index 00000000..8e23097b --- /dev/null +++ b/subscription/migrations/0016_alter_subscription_subscription_type.py @@ -0,0 +1,21 @@ +# Generated by Django 5.2.3 on 2025-10-06 11:24 + +from django.db import migrations, models + +import subscription.models + + +class Migration(migrations.Migration): + dependencies = [("subscription", "0015_alter_subscription_location_and_more")] + + operations = [ + migrations.AlterField( + model_name="subscription", + name="subscription_type", + field=models.CharField( + choices=subscription.models.get_subscription_types, + max_length=255, + verbose_name="subscription type", + ), + ) + ] diff --git a/subscription/models.py b/subscription/models.py index e8aa4ff7..f44851ef 100644 --- a/subscription/models.py +++ b/subscription/models.py @@ -38,16 +38,19 @@ def validate_payment(value): raise ValidationError(_("Bad payment method")) +def get_subscription_types(): + return ( + (k, f"{v['name']}, {v['price']}€") + for k, v in sorted(settings.SITH_SUBSCRIPTIONS.items()) + ) + + class Subscription(models.Model): member = models.ForeignKey( User, related_name="subscriptions", on_delete=models.CASCADE ) subscription_type = models.CharField( - _("subscription type"), - max_length=255, - choices=( - (k, v["name"]) for k, v in sorted(settings.SITH_SUBSCRIPTIONS.items()) - ), + _("subscription type"), max_length=255, choices=get_subscription_types ) subscription_start = models.DateField(_("subscription start")) subscription_end = models.DateField(_("subscription end")) diff --git a/subscription/tests/test_dates.py b/subscription/tests/test_dates.py index f81cac82..a79fe2ed 100644 --- a/subscription/tests/test_dates.py +++ b/subscription/tests/test_dates.py @@ -175,45 +175,3 @@ class TestSubscriptionIntegration(TestCase): user=user, ) assert d == date(2017, 8, 29) - - def test_dates_renewal_sliding_during_two_free_monthes(self): - user = self.user - s = Subscription( - member=user, - subscription_type="deux-mois-essai", - payment_method=settings.SITH_SUBSCRIPTION_PAYMENT_METHOD[1], - ) - s.subscription_start = date(2015, 8, 29) - s.subscription_end = s.compute_end( - duration=settings.SITH_SUBSCRIPTIONS[s.subscription_type]["duration"], - start=s.subscription_start, - ) - s.save() - assert s.subscription_end == date(2015, 10, 29) - with freezegun.freeze_time("2015-09-25"): - d = Subscription.compute_end( - duration=settings.SITH_SUBSCRIPTIONS["deux-semestres"]["duration"], - user=user, - ) - assert d == date(2016, 10, 29) - - def test_dates_renewal_sliding_after_two_free_monthes(self): - user = self.user - s = Subscription( - member=user, - subscription_type="deux-mois-essai", - payment_method=settings.SITH_SUBSCRIPTION_PAYMENT_METHOD[1], - ) - s.subscription_start = date(2015, 8, 29) - s.subscription_end = s.compute_end( - duration=settings.SITH_SUBSCRIPTIONS[s.subscription_type]["duration"], - start=s.subscription_start, - ) - s.save() - assert s.subscription_end == date(2015, 10, 29) - with freezegun.freeze_time("2015-11-05"): - d = Subscription.compute_end( - duration=settings.SITH_SUBSCRIPTIONS["deux-semestres"]["duration"], - user=user, - ) - assert d == date(2016, 11, 5)