From eaae7e9ea2c114070ccfd602c4c60e6eb52a93e3 Mon Sep 17 00:00:00 2001
From: Raphael Michel
Date: Fri, 26 Jan 2024 19:22:15 +0100
Subject: [PATCH] Allow to set amount and date when manually confirming a
payment (#3828)
* Allow to set amount and date when manually confirming a payment
* Fix tests
---
src/pretix/control/forms/orders.py | 10 ++++------
.../pretixcontrol/order/pay_complete.html | 8 +++++++-
src/pretix/control/views/orders.py | 20 +++++++++++++++----
src/tests/control/test_orders.py | 15 +++++++++++---
4 files changed, 39 insertions(+), 14 deletions(-)
diff --git a/src/pretix/control/forms/orders.py b/src/pretix/control/forms/orders.py
index 2aeea894d8..fbaac26c43 100644
--- a/src/pretix/control/forms/orders.py
+++ b/src/pretix/control/forms/orders.py
@@ -151,10 +151,6 @@ class ForceQuotaConfirmationForm(forms.Form):
del self.fields['force']
-class ConfirmPaymentForm(ForceQuotaConfirmationForm):
- pass
-
-
class ReactivateOrderForm(ForceQuotaConfirmationForm):
pass
@@ -220,10 +216,11 @@ class DenyForm(forms.Form):
)
-class MarkPaidForm(ConfirmPaymentForm):
+class MarkPaidForm(ForceQuotaConfirmationForm):
send_email = forms.BooleanField(
required=False,
label=_('Notify customer by email'),
+ help_text=_('A mail will only be sent if the order is fully paid after this.'),
initial=True
)
amount = forms.DecimalField(
@@ -240,9 +237,10 @@ class MarkPaidForm(ConfirmPaymentForm):
)
def __init__(self, *args, **kwargs):
+ payment = kwargs.pop('payment', None)
super().__init__(*args, **kwargs)
change_decimal_field(self.fields['amount'], self.instance.event.currency)
- self.fields['amount'].initial = max(Decimal('0.00'), self.instance.pending_sum)
+ self.fields['amount'].initial = max(Decimal('0.00'), payment.amount if payment else self.instance.pending_sum)
class ExporterForm(forms.Form):
diff --git a/src/pretix/control/templates/pretixcontrol/order/pay_complete.html b/src/pretix/control/templates/pretixcontrol/order/pay_complete.html
index 591621ed9f..21d132d3f8 100644
--- a/src/pretix/control/templates/pretixcontrol/order/pay_complete.html
+++ b/src/pretix/control/templates/pretixcontrol/order/pay_complete.html
@@ -21,7 +21,13 @@
Do you really want to mark this payment as complete?
{% endblocktrans %}