changeset 53c0b88cade5 in modules/account_payment_stripe:default
details:
https://hg.tryton.org/modules/account_payment_stripe?cmd=changeset&node=53c0b88cade5
description:
Add approving employee on refunds
issue11297
review356071002
diffstat:
CHANGELOG | 1 +
payment.py | 16 ++++++++++++++++
view/refund_form.xml | 16 +++++++++-------
3 files changed, 26 insertions(+), 7 deletions(-)
diffs (93 lines):
diff -r b21f405ccacf -r 53c0b88cade5 CHANGELOG
--- a/CHANGELOG Sun Mar 20 01:02:06 2022 +0100
+++ b/CHANGELOG Sat Mar 26 12:17:01 2022 +0100
@@ -1,3 +1,4 @@
+* Add approving employee on refunds
* Add setup intent expire delay
* Add support for Python 3.10
* Remove support for Python 3.6
diff -r b21f405ccacf -r 53c0b88cade5 payment.py
--- a/payment.py Sun Mar 20 01:02:06 2022 +0100
+++ b/payment.py Sat Mar 26 12:17:01 2022 +0100
@@ -18,6 +18,8 @@
DeactivableMixin, ModelSQL, ModelView, Workflow, dualmethod, fields)
from trytond.modules.account_payment.exceptions import (
PaymentValidationError, ProcessError)
+from trytond.modules.company.model import (
+ employee_field, reset_employee, set_employee)
from trytond.modules.currency.fields import Monetary
from trytond.pool import Pool, PoolMeta
from trytond.pyson import Eval
@@ -688,6 +690,10 @@
'readonly': Eval('state') != 'draft',
},
depends=['state'])
+ approved_by = employee_field(
+ "Approved by",
+ states=['approved', 'processing', 'succeeded', 'failed'])
+
state = fields.Selection([
('draft', "Draft"),
('approved', "Approved"),
@@ -715,6 +721,9 @@
currency = fields.Function(
fields.Many2One('currency.currency', "Currency"),
'on_change_with_currency')
+ company = fields.Function(
+ fields.Many2One('company.company', "Company"),
+ 'on_change_with_company')
@classmethod
def __setup__(cls):
@@ -752,6 +761,11 @@
if self.payment and self.payment.currency:
return self.payment.currency.id
+ @fields.depends('payment', '_parent_payment.company')
+ def on_change_with_company(self, name=None):
+ if self.payment and self.payment.company:
+ return self.payment.company.id
+
@classmethod
def default_state(cls):
return 'draft'
@@ -781,12 +795,14 @@
@classmethod
@ModelView.button
@Workflow.transition('draft')
+ @reset_employee('approved_by')
def draft(cls, refunds):
pass
@classmethod
@ModelView.button
@Workflow.transition('approved')
+ @set_employee('approved_by')
def approve(cls, refunds):
pass
diff -r b21f405ccacf -r 53c0b88cade5 view/refund_form.xml
--- a/view/refund_form.xml Sun Mar 20 01:02:06 2022 +0100
+++ b/view/refund_form.xml Sat Mar 26 12:17:01 2022 +0100
@@ -19,12 +19,14 @@
<label name="stripe_error_param"/>
<field name="stripe_error_param"/>
- <group col="4" colspan="4" id="state_buttons">
- <label name="state"/>
- <field name="state"/>
- <group col="-1" colspan="2" id="buttons">
- <button name="draft"/>
- <button name="approve"/>
- </group>
+ <label name="approved_by"/>
+ <field name="approved_by"/>
+ <newline/>
+
+ <label name="state"/>
+ <field name="state"/>
+ <group col="-1" colspan="2" id="buttons">
+ <button name="draft"/>
+ <button name="approve"/>
</group>
</form>