1
0
mirror of https://gitlab.crans.org/bde/nk20 synced 2025-07-18 07:10:18 +02:00

Rename 'caution' fields into 'deposit'

This commit is contained in:
Ehouarn
2025-07-15 18:10:28 +02:00
parent 3af35dc0fc
commit 852651d126
9 changed files with 114 additions and 74 deletions

View File

@ -77,7 +77,7 @@ class WEIRegistrationViewSet(ReadProtectedModelViewSet):
filter_backends = [DjangoFilterBackend, RegexSafeSearchFilter] filter_backends = [DjangoFilterBackend, RegexSafeSearchFilter]
filterset_fields = ['user', 'user__username', 'user__first_name', 'user__last_name', 'user__email', filterset_fields = ['user', 'user__username', 'user__first_name', 'user__last_name', 'user__email',
'user__note__alias__name', 'user__note__alias__normalized_name', 'wei', 'wei__name', 'user__note__alias__name', 'user__note__alias__normalized_name', 'wei', 'wei__name',
'wei__email', 'wei__year', 'soge_credit', 'caution_check', 'birth_date', 'gender', 'wei__email', 'wei__year', 'soge_credit', 'deposit_check', 'birth_date', 'gender',
'clothing_cut', 'clothing_size', 'first_year', 'emergency_contact_name', 'clothing_cut', 'clothing_size', 'first_year', 'emergency_contact_name',
'emergency_contact_phone', ] 'emergency_contact_phone', ]
search_fields = ['$user__username', '$user__first_name', '$user__last_name', '$user__email', search_fields = ['$user__username', '$user__first_name', '$user__last_name', '$user__email',

View File

@ -24,7 +24,7 @@ class WEIForm(forms.ModelForm):
"membership_end": DatePickerInput(), "membership_end": DatePickerInput(),
"date_start": DatePickerInput(), "date_start": DatePickerInput(),
"date_end": DatePickerInput(), "date_end": DatePickerInput(),
"caution_amount": AmountInput(), "deposit_amount": AmountInput(),
} }
@ -43,7 +43,7 @@ class WEIRegistrationForm(forms.ModelForm):
fields = [ fields = [
'user', 'soge_credit', 'birth_date', 'gender', 'clothing_size', 'user', 'soge_credit', 'birth_date', 'gender', 'clothing_size',
'health_issues', 'emergency_contact_name', 'emergency_contact_phone', 'health_issues', 'emergency_contact_name', 'emergency_contact_phone',
'first_year', 'information_json', 'caution_check' 'first_year', 'information_json', 'deposit_check'
] ]
widgets = { widgets = {
"user": Autocomplete( "user": Autocomplete(
@ -58,7 +58,7 @@ class WEIRegistrationForm(forms.ModelForm):
'minDate': '1900-01-01', 'minDate': '1900-01-01',
'maxDate': '2100-01-01' 'maxDate': '2100-01-01'
}), }),
"caution_check": forms.BooleanField( "deposit_check": forms.BooleanField(
required=False, required=False,
), ),
} }
@ -66,10 +66,10 @@ class WEIRegistrationForm(forms.ModelForm):
class WEIRegistration2AForm(WEIRegistrationForm): class WEIRegistration2AForm(WEIRegistrationForm):
class Meta(WEIRegistrationForm.Meta): class Meta(WEIRegistrationForm.Meta):
fields = WEIRegistrationForm.Meta.fields + ['caution_type'] fields = WEIRegistrationForm.Meta.fields + ['deposit_type']
widgets = WEIRegistrationForm.Meta.widgets.copy() widgets = WEIRegistrationForm.Meta.widgets.copy()
widgets.update({ widgets.update({
"caution_type": forms.RadioSelect(), "deposit_type": forms.RadioSelect(),
}) })
@ -173,7 +173,7 @@ class WEIMembership1AForm(WEIMembershipForm):
""" """
Used to confirm registrations of first year members without choosing a bus now. Used to confirm registrations of first year members without choosing a bus now.
""" """
caution_check = None deposit_check = None
roles = None roles = None
def clean(self): def clean(self):

View File

@ -0,0 +1,40 @@
# Generated by Django 4.2.23 on 2025-07-15 16:03
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('wei', '0014_weiclub_fee_soge_credit'),
]
operations = [
migrations.RemoveField(
model_name='weiclub',
name='caution_amount',
),
migrations.RemoveField(
model_name='weiregistration',
name='caution_check',
),
migrations.RemoveField(
model_name='weiregistration',
name='caution_type',
),
migrations.AddField(
model_name='weiclub',
name='deposit_amount',
field=models.PositiveIntegerField(default=0, verbose_name='deposit amount'),
),
migrations.AddField(
model_name='weiregistration',
name='deposit_check',
field=models.BooleanField(default=False, verbose_name='Deposit check given'),
),
migrations.AddField(
model_name='weiregistration',
name='deposit_type',
field=models.CharField(choices=[('check', 'Check'), ('note', 'Note transaction')], default='check', max_length=16, verbose_name='deposit type'),
),
]

View File

@ -33,8 +33,8 @@ class WEIClub(Club):
verbose_name=_("date end"), verbose_name=_("date end"),
) )
caution_amount = models.PositiveIntegerField( deposit_amount = models.PositiveIntegerField(
verbose_name=_("caution amount"), verbose_name=_("deposit amount"),
default=0, default=0,
) )
@ -202,19 +202,19 @@ class WEIRegistration(models.Model):
verbose_name=_("Credit from Société générale"), verbose_name=_("Credit from Société générale"),
) )
caution_check = models.BooleanField( deposit_check = models.BooleanField(
default=False, default=False,
verbose_name=_("Caution check given") verbose_name=_("Deposit check given")
) )
caution_type = models.CharField( deposit_type = models.CharField(
max_length=16, max_length=16,
choices=( choices=(
('check', _("Check")), ('check', _("Check")),
('note', _("Note transaction")), ('note', _("Note transaction")),
), ),
default='check', default='check',
verbose_name=_("caution type"), verbose_name=_("deposit type"),
) )
birth_date = models.DateField( birth_date = models.DateField(

View File

@ -123,7 +123,7 @@ class WEIRegistrationTable(tables.Table):
} }
model = WEIRegistration model = WEIRegistration
template_name = 'django_tables2/bootstrap4.html' template_name = 'django_tables2/bootstrap4.html'
fields = ('user', 'user__first_name', 'user__last_name', 'first_year', 'caution_check', fields = ('user', 'user__first_name', 'user__last_name', 'first_year', 'deposit_check',
'edit', 'validate', 'delete',) 'edit', 'validate', 'delete',)
row_attrs = { row_attrs = {
'class': 'table-row', 'class': 'table-row',
@ -163,7 +163,7 @@ class WEIMembershipTable(tables.Table):
model = WEIMembership model = WEIMembership
template_name = 'django_tables2/bootstrap4.html' template_name = 'django_tables2/bootstrap4.html'
fields = ('user', 'user__last_name', 'user__first_name', 'registration__gender', 'user__profile__department', fields = ('user', 'user__last_name', 'user__first_name', 'registration__gender', 'user__profile__department',
'year', 'bus', 'team', 'registration__caution_check', ) 'year', 'bus', 'team', 'registration__deposit_check', )
row_attrs = { row_attrs = {
'class': 'table-row', 'class': 'table-row',
'id': lambda record: "row-" + str(record.pk), 'id': lambda record: "row-" + str(record.pk),

View File

@ -49,9 +49,9 @@ SPDX-License-Identifier: GPL-3.0-or-later
{% endif %} {% endif %}
{% endif %} {% endif %}
{% if club.caution_amount > 0 %} {% if club.deposit_amount > 0 %}
<dt class="col-xl-6">{% trans 'Caution amount'|capfirst %}</dt> <dt class="col-xl-6">{% trans 'Deposit amount'|capfirst %}</dt>
<dd class="col-xl-6">{{ club.caution_amount|pretty_money }}</dd> <dd class="col-xl-6">{{ club.deposit_amount|pretty_money }}</dd>
{% endif %} {% endif %}
{% if "note.view_note"|has_perm:club.note %} {% if "note.view_note"|has_perm:club.note %}

View File

@ -95,8 +95,8 @@ SPDX-License-Identifier: GPL-3.0-or-later
<dd class="col-xl-6"><em>{% trans "The algorithm didn't run." %}</em></dd> <dd class="col-xl-6"><em>{% trans "The algorithm didn't run." %}</em></dd>
{% endif %} {% endif %}
{% else %} {% else %}
<dt class="col-xl-6">{% trans 'caution check given'|capfirst %}</dt> <dt class="col-xl-6">{% trans 'Deposit check given'|capfirst %}</dt>
<dd class="col-xl-6">{{ registration.caution_check|yesno }}</dd> <dd class="col-xl-6">{{ registration.deposit_check|yesno }}</dd>
{% with information=registration.information %} {% with information=registration.information %}
<dt class="col-xl-6">{% trans 'preferred bus'|capfirst %}</dt> <dt class="col-xl-6">{% trans 'preferred bus'|capfirst %}</dt>
@ -149,12 +149,12 @@ SPDX-License-Identifier: GPL-3.0-or-later
<li>{% blocktrans trimmed with amount=fee|pretty_money %} <li>{% blocktrans trimmed with amount=fee|pretty_money %}
Membership fees: {{ amount }} Membership fees: {{ amount }}
{% endblocktrans %}</li> {% endblocktrans %}</li>
{% if registration.caution_type == 'note' %} {% if registration.deposit_type == 'note' %}
<li>{% blocktrans trimmed with amount=club.caution_amount|pretty_money %} <li>{% blocktrans trimmed with amount=club.deposit_amount|pretty_money %}
Deposit (by Note transaction): {{ amount }} Deposit (by Note transaction): {{ amount }}
{% endblocktrans %}</li> {% endblocktrans %}</li>
{% else %} {% else %}
<li>{% blocktrans trimmed with amount=club.caution_amount|pretty_money %} <li>{% blocktrans trimmed with amount=club.deposit_amount|pretty_money %}
Deposit (by check): {{ amount }} Deposit (by check): {{ amount }}
{% endblocktrans %}</li> {% endblocktrans %}</li>
{% endif %} {% endif %}
@ -167,7 +167,7 @@ SPDX-License-Identifier: GPL-3.0-or-later
{% endblocktrans %}</p> {% endblocktrans %}</p>
</div> </div>
{% if not registration.caution_check and not registration.first_year and registration.caution_type == 'check' %} {% if not registration.deposit_check and not registration.first_year and registration.caution_type == 'check' %}
<div class="alert alert-danger"> <div class="alert alert-danger">
{% trans "The user didn't give her/his caution check." %} {% trans "The user didn't give her/his caution check." %}
</div> </div>

View File

@ -101,7 +101,7 @@ class TestWEIRegistration(TestCase):
user_id=self.user.id, user_id=self.user.id,
wei_id=self.wei.id, wei_id=self.wei.id,
soge_credit=True, soge_credit=True,
caution_check=True, deposit_check=True,
birth_date=date(2000, 1, 1), birth_date=date(2000, 1, 1),
gender="nonbinary", gender="nonbinary",
clothing_cut="male", clothing_cut="male",
@ -127,7 +127,7 @@ class TestWEIRegistration(TestCase):
year=self.year + 1, year=self.year + 1,
date_start=str(self.year + 1) + "-09-01", date_start=str(self.year + 1) + "-09-01",
date_end=str(self.year + 1) + "-09-03", date_end=str(self.year + 1) + "-09-03",
caution_amount=12000, deposit_amount=12000,
)) ))
qs = WEIClub.objects.filter(name="Create WEI Test", year=self.year + 1) qs = WEIClub.objects.filter(name="Create WEI Test", year=self.year + 1)
self.assertTrue(qs.exists()) self.assertTrue(qs.exists())
@ -163,7 +163,7 @@ class TestWEIRegistration(TestCase):
membership_end="2000-09-30", membership_end="2000-09-30",
date_start="2000-09-01", date_start="2000-09-01",
date_end="2000-09-03", date_end="2000-09-03",
caution_amount=12000, deposit_amount=12000,
)) ))
qs = WEIClub.objects.filter(name="Update WEI Test", id=self.wei.id) qs = WEIClub.objects.filter(name="Update WEI Test", id=self.wei.id)
self.assertRedirects(response, reverse("wei:wei_detail", kwargs=dict(pk=self.wei.pk)), 302, 200) self.assertRedirects(response, reverse("wei:wei_detail", kwargs=dict(pk=self.wei.pk)), 302, 200)
@ -322,7 +322,7 @@ class TestWEIRegistration(TestCase):
bus=[], bus=[],
team=[], team=[],
roles=[], roles=[],
caution_type='check' deposit_type='check'
)) ))
self.assertEqual(response.status_code, 200) self.assertEqual(response.status_code, 200)
self.assertFalse(response.context["membership_form"].is_valid()) self.assertFalse(response.context["membership_form"].is_valid())
@ -340,7 +340,7 @@ class TestWEIRegistration(TestCase):
bus=[self.bus.id], bus=[self.bus.id],
team=[self.team.id], team=[self.team.id],
roles=[role.id for role in WEIRole.objects.filter(~Q(name="1A") & ~Q(name="GC WEI")).all()], roles=[role.id for role in WEIRole.objects.filter(~Q(name="1A") & ~Q(name="GC WEI")).all()],
caution_type='check' deposit_type='check'
)) ))
qs = WEIRegistration.objects.filter(user_id=user.id) qs = WEIRegistration.objects.filter(user_id=user.id)
self.assertTrue(qs.exists()) self.assertTrue(qs.exists())
@ -360,7 +360,7 @@ class TestWEIRegistration(TestCase):
bus=[self.bus.id], bus=[self.bus.id],
team=[self.team.id], team=[self.team.id],
roles=[role.id for role in WEIRole.objects.filter(~Q(name="1A")).all()], roles=[role.id for role in WEIRole.objects.filter(~Q(name="1A")).all()],
caution_type='check' deposit_type='check'
)) ))
self.assertEqual(response.status_code, 200) self.assertEqual(response.status_code, 200)
self.assertTrue("This user is already registered to this WEI." in str(response.context["form"].errors)) self.assertTrue("This user is already registered to this WEI." in str(response.context["form"].errors))
@ -513,7 +513,7 @@ class TestWEIRegistration(TestCase):
team=[self.team.id], team=[self.team.id],
roles=[role.id for role in WEIRole.objects.filter(name="Adhérent⋅e WEI").all()], roles=[role.id for role in WEIRole.objects.filter(name="Adhérent⋅e WEI").all()],
information_json=self.registration.information_json, information_json=self.registration.information_json,
caution_type='check' deposit_type='check'
) )
) )
qs = WEIRegistration.objects.filter(user_id=self.user.id, soge_credit=False, clothing_size="M") qs = WEIRegistration.objects.filter(user_id=self.user.id, soge_credit=False, clothing_size="M")
@ -568,7 +568,7 @@ class TestWEIRegistration(TestCase):
team=[self.team.id], team=[self.team.id],
roles=[role.id for role in WEIRole.objects.filter(name="Adhérent⋅e WEI").all()], roles=[role.id for role in WEIRole.objects.filter(name="Adhérent⋅e WEI").all()],
information_json=self.registration.information_json, information_json=self.registration.information_json,
caution_type='check' deposit_type='check'
) )
) )
qs = WEIRegistration.objects.filter(user_id=self.user.id, clothing_size="L") qs = WEIRegistration.objects.filter(user_id=self.user.id, clothing_size="L")
@ -592,7 +592,7 @@ class TestWEIRegistration(TestCase):
team=[], team=[],
roles=[], roles=[],
information_json=self.registration.information_json, information_json=self.registration.information_json,
caution_type='check' deposit_type='check'
) )
) )
self.assertFalse(response.context["membership_form"].is_valid()) self.assertFalse(response.context["membership_form"].is_valid())
@ -642,7 +642,7 @@ class TestWEIRegistration(TestCase):
last_name="admin", last_name="admin",
first_name="admin", first_name="admin",
bank="Société générale", bank="Société générale",
caution_check=True, deposit_check=True,
)) ))
self.assertEqual(response.status_code, 200) self.assertEqual(response.status_code, 200)
self.assertFalse(response.context["form"].is_valid()) self.assertFalse(response.context["form"].is_valid())
@ -657,7 +657,7 @@ class TestWEIRegistration(TestCase):
last_name="admin", last_name="admin",
first_name="admin", first_name="admin",
bank="Société générale", bank="Société générale",
caution_check=True, deposit_check=True,
)) ))
self.assertRedirects(response, reverse("wei:wei_registrations", kwargs=dict(pk=self.registration.wei.pk)), 302, 200) self.assertRedirects(response, reverse("wei:wei_registrations", kwargs=dict(pk=self.registration.wei.pk)), 302, 200)
@ -813,7 +813,7 @@ class TestWeiAPI(TestAPI):
user_id=self.user.id, user_id=self.user.id,
wei_id=self.wei.id, wei_id=self.wei.id,
soge_credit=True, soge_credit=True,
caution_check=True, deposit_check=True,
birth_date=date(2000, 1, 1), birth_date=date(2000, 1, 1),
gender="nonbinary", gender="nonbinary",
clothing_cut="male", clothing_cut="male",

View File

@ -560,12 +560,12 @@ class WEIRegister1AView(ProtectQuerysetMixin, ProtectedCreateView):
# Cacher les champs pendant l'inscription initiale # Cacher les champs pendant l'inscription initiale
if "first_year" in form.fields: if "first_year" in form.fields:
del form.fields["first_year"] del form.fields["first_year"]
if "caution_check" in form.fields: if "deposit_check" in form.fields:
del form.fields["caution_check"] del form.fields["deposit_check"]
if "information_json" in form.fields: if "information_json" in form.fields:
del form.fields["information_json"] del form.fields["information_json"]
if "caution_type" in form.fields: if "deposit_type" in form.fields:
del form.fields["caution_type"] del form.fields["deposit_type"]
if "soge_credit" in form.fields: if "soge_credit" in form.fields:
form.fields["soge_credit"].help_text = _('Check if you will open a Société Générale account') form.fields["soge_credit"].help_text = _('Check if you will open a Société Générale account')
@ -670,16 +670,16 @@ class WEIRegister2AView(ProtectQuerysetMixin, ProtectedCreateView):
# Cacher les champs pendant l'inscription initiale # Cacher les champs pendant l'inscription initiale
if "first_year" in form.fields: if "first_year" in form.fields:
del form.fields["first_year"] del form.fields["first_year"]
if "caution_check" in form.fields: if "deposit_check" in form.fields:
del form.fields["caution_check"] del form.fields["deposit_check"]
if "information_json" in form.fields: if "information_json" in form.fields:
del form.fields["information_json"] del form.fields["information_json"]
# S'assurer que le champ caution_type est obligatoire # S'assurer que le champ deposit_type est obligatoire
if "caution_type" in form.fields: if "deposit_type" in form.fields:
form.fields["caution_type"].required = True form.fields["deposit_type"].required = True
form.fields["caution_type"].help_text = _("Choose how you want to pay the deposit") form.fields["deposit_type"].help_text = _("Choose how you want to pay the deposit")
form.fields["caution_type"].widget = forms.RadioSelect(choices=form.fields["caution_type"].choices) form.fields["deposit_type"].widget = forms.RadioSelect(choices=form.fields["deposit_type"].choices)
return form return form
@ -708,7 +708,7 @@ class WEIRegister2AView(ProtectQuerysetMixin, ProtectedCreateView):
form.instance.information = information form.instance.information = information
# Sauvegarder le type de caution # Sauvegarder le type de caution
form.instance.caution_type = form.cleaned_data["caution_type"] form.instance.deposit_type = form.cleaned_data["deposit_type"]
form.instance.save() form.instance.save()
if 'treasury' in settings.INSTALLED_APPS: if 'treasury' in settings.INSTALLED_APPS:
@ -780,15 +780,15 @@ class WEIUpdateRegistrationView(ProtectQuerysetMixin, LoginRequiredMixin, Update
# The auto-json-format may cause issues with the default field remove # The auto-json-format may cause issues with the default field remove
if "information_json" in form.fields: if "information_json" in form.fields:
del form.fields["information_json"] del form.fields["information_json"]
# Masquer le champ caution_check pour tout le monde dans le formulaire de modification # Masquer le champ deposit_check pour tout le monde dans le formulaire de modification
if "caution_check" in form.fields: if "deposit_check" in form.fields:
del form.fields["caution_check"] del form.fields["deposit_check"]
# S'assurer que le champ caution_type est obligatoire pour les 2A+ # S'assurer que le champ deposit_type est obligatoire pour les 2A+
if not self.object.first_year and "caution_type" in form.fields: if not self.object.first_year and "deposit_type" in form.fields:
form.fields["caution_type"].required = True form.fields["deposit_type"].required = True
form.fields["caution_type"].help_text = _("Choose how you want to pay the deposit") form.fields["deposit_type"].help_text = _("Choose how you want to pay the deposit")
form.fields["caution_type"].widget = forms.RadioSelect(choices=form.fields["caution_type"].choices) form.fields["deposit_type"].widget = forms.RadioSelect(choices=form.fields["deposit_type"].choices)
return form return form
@ -850,8 +850,8 @@ class WEIUpdateRegistrationView(ProtectQuerysetMixin, LoginRequiredMixin, Update
form.instance.information = information form.instance.information = information
# Sauvegarder le type de caution pour les 2A+ # Sauvegarder le type de caution pour les 2A+
if "caution_type" in form.cleaned_data: if "deposit_type" in form.cleaned_data:
form.instance.caution_type = form.cleaned_data["caution_type"] form.instance.deposit_type = form.cleaned_data["deposit_type"]
form.instance.save() form.instance.save()
return super().form_valid(form) return super().form_valid(form)
@ -957,8 +957,8 @@ class WEIValidateRegistrationView(ProtectQuerysetMixin, ProtectedCreateView):
# Calculer le montant total nécessaire (frais + caution si transaction) # Calculer le montant total nécessaire (frais + caution si transaction)
total_needed = fee total_needed = fee
if registration.caution_type == 'note': if registration.deposit_type == 'note':
total_needed += registration.wei.caution_amount total_needed += registration.wei.deposit_amount
context["total_needed"] = total_needed context["total_needed"] = total_needed
form = context["form"] form = context["form"]
@ -988,22 +988,22 @@ class WEIValidateRegistrationView(ProtectQuerysetMixin, ProtectedCreateView):
form.fields["last_name"].initial = registration.user.last_name form.fields["last_name"].initial = registration.user.last_name
form.fields["first_name"].initial = registration.user.first_name form.fields["first_name"].initial = registration.user.first_name
# Ajouter le champ caution_check uniquement pour les non-première année et le rendre obligatoire # Ajouter le champ deposit_check uniquement pour les non-première année et le rendre obligatoire
if not registration.first_year: if not registration.first_year:
if registration.caution_type == 'check': if registration.deposit_type == 'check':
form.fields["caution_check"] = forms.BooleanField( form.fields["deposit_check"] = forms.BooleanField(
required=True, required=True,
initial=registration.caution_check, initial=registration.deposit_check,
label=_("Caution check given"), label=_("Deposit check given"),
help_text=_("Please make sure the check is given before validating the registration") help_text=_("Please make sure the check is given before validating the registration")
) )
else: else:
form.fields["caution_check"] = forms.BooleanField( form.fields["deposit_check"] = forms.BooleanField(
required=True, required=True,
initial=False, initial=False,
label=_("Create deposit transaction"), label=_("Create deposit transaction"),
help_text=_("A transaction of %(amount).2f€ will be created from the user's Note account") % { help_text=_("A transaction of %(amount).2f€ will be created from the user's Note account") % {
'amount': registration.wei.caution_amount / 100 'amount': registration.wei.deposit_amount / 100
} }
) )
@ -1039,8 +1039,8 @@ class WEIValidateRegistrationView(ProtectQuerysetMixin, ProtectedCreateView):
club = registration.wei club = registration.wei
user = registration.user user = registration.user
if "caution_check" in form.data: if "deposit_check" in form.data:
registration.caution_check = form.data["caution_check"] == "on" registration.deposit_check = form.data["deposit_check"] == "on"
registration.save() registration.save()
membership = form.instance membership = form.instance
membership.user = user membership.user = user
@ -1084,8 +1084,8 @@ class WEIValidateRegistrationView(ProtectQuerysetMixin, ProtectedCreateView):
# Calculer le montant total nécessaire (frais + caution si transaction) # Calculer le montant total nécessaire (frais + caution si transaction)
total_needed = fee total_needed = fee
if registration.caution_type == 'note': if registration.deposit_type == 'note':
total_needed += club.caution_amount total_needed += club.deposit_amount
# Vérifier que l'utilisateur a assez d'argent pour tout payer # Vérifier que l'utilisateur a assez d'argent pour tout payer
if user.note.balance + credit_amount < total_needed: if user.note.balance + credit_amount < total_needed:
@ -1136,14 +1136,14 @@ class WEIValidateRegistrationView(ProtectQuerysetMixin, ProtectedCreateView):
membership.roles.add(WEIRole.objects.get(name="Adhérent⋅e WEI")) membership.roles.add(WEIRole.objects.get(name="Adhérent⋅e WEI"))
# Créer la transaction de caution si nécessaire # Créer la transaction de caution si nécessaire
if registration.caution_type == 'note': if registration.deposit_type == 'note':
from note.models import Transaction from note.models import Transaction
Transaction.objects.create( Transaction.objects.create(
source=user.note, source=user.note,
destination=club.note, destination=club.note,
quantity=1, quantity=1,
amount=club.caution_amount, amount=club.deposit_amount,
reason=_("Caution %(name)s") % {'name': club.name}, reason=_("Deposit %(name)s") % {'name': club.name},
valid=True, valid=True,
) )