|
30 | 30 | RecurrenceUpgradeForm, |
31 | 31 | SimpleDonationForm, |
32 | 32 | ) |
33 | | -from .models import DonationFormViewCount, Donor |
| 33 | +from .models import DonationFormViewCount, Donor, DonorEvent |
34 | 34 | from .services import confirm_donor_email |
35 | 35 | from .utils import ( |
36 | 36 | DONOR_SESSION_KEY, |
@@ -114,7 +114,27 @@ def handle_upgrade(request) -> bool | None: |
114 | 114 | form = RecurrenceUpgradeForm(recurrence=recurrence, data=request.POST) |
115 | 115 | if not form.is_valid(): |
116 | 116 | return |
117 | | - return form.save() |
| 117 | + previous_amount = recurrence.amount |
| 118 | + previous_amount_per_month = recurrence.amount_per_month |
| 119 | + result = form.save() |
| 120 | + if result: |
| 121 | + DonorEvent.objects.create( |
| 122 | + donor=donor, |
| 123 | + kind=DonorEvent.Kind.UPGRADE_RECURRENCE, |
| 124 | + reference=form.cleaned_data["reference"], |
| 125 | + context={ |
| 126 | + "previous_amount": float(previous_amount), |
| 127 | + "previous_amount_decimal": str(previous_amount), |
| 128 | + "previous_amount_per_month": float(previous_amount_per_month), |
| 129 | + "previous_amount_per_month_decimal": str(previous_amount_per_month), |
| 130 | + "new_amount": float(recurrence.amount), |
| 131 | + "new_amount_decimal": str(recurrence.amount), |
| 132 | + "new_amount_per_month": float(recurrence.amount_per_month), |
| 133 | + "new_amount_per_month_decimal": str(recurrence.amount_per_month), |
| 134 | + "request": dict(request.GET), |
| 135 | + }, |
| 136 | + ) |
| 137 | + return result |
118 | 138 |
|
119 | 139 |
|
120 | 140 | class DonationView(FormView): |
|
0 commit comments