mirror of
				https://gitlab.crans.org/bde/nk20
				synced 2025-11-04 09:12:11 +01:00 
			
		
		
		
	possibilité de l'adhésion au BDA lors de l'inscription
This commit is contained in:
		@@ -237,6 +237,9 @@ class FutureUserDetailView(ProtectQuerysetMixin, LoginRequiredMixin, FormMixin,
 | 
			
		||||
        fee += bde.membership_fee_paid if user.profile.paid else bde.membership_fee_unpaid
 | 
			
		||||
        kfet = Club.objects.get(name="Kfet")
 | 
			
		||||
        fee += kfet.membership_fee_paid if user.profile.paid else kfet.membership_fee_unpaid
 | 
			
		||||
        if Club.objects.filter(name__iexact="BDA").exists():
 | 
			
		||||
            bda = Club.objects.get(name__iexact="BDA")
 | 
			
		||||
            fee += bda.membership_fee_paid if user.profile.paid else bda.membership_fee_unpaid
 | 
			
		||||
        ctx["total_fee"] = "{:.02f}".format(fee / 100, )
 | 
			
		||||
 | 
			
		||||
        ctx["declare_soge_account"] = SogeCredit.objects.filter(user=user).exists()
 | 
			
		||||
@@ -262,6 +265,11 @@ class FutureUserDetailView(ProtectQuerysetMixin, LoginRequiredMixin, FormMixin,
 | 
			
		||||
            form.add_error(None, _("An alias with a similar name already exists."))
 | 
			
		||||
            return self.form_invalid(form)
 | 
			
		||||
 | 
			
		||||
        # Check if BDA exist to propose membership at regisration
 | 
			
		||||
        bda_exists = False
 | 
			
		||||
        if Club.objects.filter(name__iexact="BDA").exists():
 | 
			
		||||
            bda_exists = True
 | 
			
		||||
 | 
			
		||||
        # Get form data
 | 
			
		||||
        soge = form.cleaned_data["soge"]
 | 
			
		||||
        credit_type = form.cleaned_data["credit_type"]
 | 
			
		||||
@@ -271,6 +279,8 @@ class FutureUserDetailView(ProtectQuerysetMixin, LoginRequiredMixin, FormMixin,
 | 
			
		||||
        bank = form.cleaned_data["bank"]
 | 
			
		||||
        join_bde = form.cleaned_data["join_bde"]
 | 
			
		||||
        join_kfet = form.cleaned_data["join_kfet"]
 | 
			
		||||
        if bda_exists:
 | 
			
		||||
            join_bda = form.cleaned_data["join_bda"]
 | 
			
		||||
 | 
			
		||||
        if soge:
 | 
			
		||||
            # If Société Générale pays the inscription, the user automatically joins the two clubs.
 | 
			
		||||
@@ -292,6 +302,11 @@ class FutureUserDetailView(ProtectQuerysetMixin, LoginRequiredMixin, FormMixin,
 | 
			
		||||
        kfet_fee = kfet.membership_fee_paid if user.profile.paid else kfet.membership_fee_unpaid
 | 
			
		||||
        # Add extra fee for the full membership
 | 
			
		||||
        fee += kfet_fee if join_kfet else 0
 | 
			
		||||
        if bda_exists:
 | 
			
		||||
            bda = Club.objects.get(name__iexact="BDA")
 | 
			
		||||
            bda_fee = bda.membership_fee_paid if user.profile.paid else bda.membership_fee_unpaid
 | 
			
		||||
            # Add extra fee for the bda membership
 | 
			
		||||
            fee += bda_fee if join_bda else 0
 | 
			
		||||
 | 
			
		||||
        # If the bank pays, then we don't credit now. Treasurers will validate the transaction
 | 
			
		||||
        # and credit the note later.
 | 
			
		||||
@@ -369,6 +384,18 @@ class FutureUserDetailView(ProtectQuerysetMixin, LoginRequiredMixin, FormMixin,
 | 
			
		||||
            membership.roles.add(Role.objects.get(name="Adhérent Kfet"))
 | 
			
		||||
            membership.save()
 | 
			
		||||
 | 
			
		||||
        if bda_exists and join_bda:
 | 
			
		||||
            # Create membership for the user to the BDA starting today
 | 
			
		||||
            membership = Membership(
 | 
			
		||||
                club=bda,
 | 
			
		||||
                user=user,
 | 
			
		||||
                fee=bda_fee,
 | 
			
		||||
            )
 | 
			
		||||
            membership.save()
 | 
			
		||||
            membership.refresh_from_db()
 | 
			
		||||
            membership.roles.add(Role.objects.get(name="Membre de club"))
 | 
			
		||||
            membership.save()
 | 
			
		||||
 | 
			
		||||
        if soge:
 | 
			
		||||
            soge_credit = SogeCredit.objects.get(user=user)
 | 
			
		||||
            # Update the credit transaction amount
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user