Merge PR #96 into 14.0

Signed-off-by gurneyalex
This commit is contained in:
OCA-git-bot 2021-12-15 10:54:15 +00:00
commit 865689721d
1 changed files with 28 additions and 1 deletions

View File

@ -2,7 +2,8 @@
# @author Iván Todorovich <ivan.todorovich@gmail.com> # @author Iván Todorovich <ivan.todorovich@gmail.com>
# License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl.html) # License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl.html)
from odoo import models from odoo import fields, models
from odoo.osv import expression
class PaymentAcquirer(models.Model): class PaymentAcquirer(models.Model):
@ -21,3 +22,29 @@ class PaymentAcquirer(models.Model):
} }
acquirer_fields.update(base_fields) acquirer_fields.update(base_fields)
return acquirer_fields return acquirer_fields
state = fields.Selection(
search="_search_state",
)
def _search_state(self, operator, value):
"""
As state field is now managed as server environment fields,
the field is considered as a computed fields.
Then, we need to define a custom search function
to be able to search on this field.
We don't want to cover all cases,
just search implemented in core function
to display the acquirers when generating the payment link.
See module payment in controller/portal.py function pay()
Used domain is: ('state', 'in', ['enabled', 'test'])
"""
if operator == "in" and isinstance(value, list):
valid_acquirers = self.search([]).filtered_domain([("state", "in", value)])
if valid_acquirers:
return [("id", "in", valid_acquirers.ids)]
return expression.FALSE_DOMAIN