diff options
| author | Joren Van Onder <jov@odoo.com> | 2016-06-01 11:27:05 +0200 |
|---|---|---|
| committer | Joren Van Onder <jov@odoo.com> | 2016-06-17 13:09:18 +0200 |
| commit | e3730cf1f29fc9df6eafb9022c74232c8028f73a (patch) | |
| tree | e19ec8509a23a7029d126fb63ff57e80df7a20c0 /addons | |
| parent | 5c63ed388c33bd002d1fa4c7b2cb9f8101f3f6ac (diff) | |
[IMP] payment*,website: rename payment.method -> payment.token
payment.method was not a good name because it was too easy to confuse
with account.payment.method.
Diffstat (limited to 'addons')
| -rw-r--r-- | addons/payment/models/account_payment.py | 10 | ||||
| -rw-r--r-- | addons/payment/models/payment_acquirer.py | 12 | ||||
| -rw-r--r-- | addons/payment/models/res_partner.py | 8 | ||||
| -rw-r--r-- | addons/payment/security/ir.model.access.csv | 8 | ||||
| -rw-r--r-- | addons/payment/security/payment_security.xml | 7 | ||||
| -rw-r--r-- | addons/payment/views/account_payment.xml | 2 | ||||
| -rw-r--r-- | addons/payment/views/payment_acquirer.xml | 38 | ||||
| -rw-r--r-- | addons/payment/views/res_partner_view.xml | 4 | ||||
| -rw-r--r-- | addons/payment_ogone/models/ogone.py | 26 | ||||
| -rw-r--r-- | addons/payment_paypal/models/paypal.py | 4 | ||||
| -rw-r--r-- | addons/payment_stripe/models/__init__.py | 2 | ||||
| -rw-r--r-- | addons/payment_stripe/models/payment_acquirer.py | 4 | ||||
| -rw-r--r-- | addons/payment_stripe/models/payment_token.py (renamed from addons/payment_stripe/models/payment_method.py) | 4 | ||||
| -rw-r--r-- | addons/payment_stripe/models/payment_transaction.py | 2 | ||||
| -rw-r--r-- | addons/payment_stripe/tests/test_stripe.py | 4 | ||||
| -rw-r--r-- | addons/website_payment/controllers/main.py | 6 | ||||
| -rw-r--r-- | addons/website_sale/security/website_sale.xml | 6 |
17 files changed, 73 insertions, 74 deletions
diff --git a/addons/payment/models/account_payment.py b/addons/payment/models/account_payment.py index ea8da16b54b..c9d3e610f5a 100644 --- a/addons/payment/models/account_payment.py +++ b/addons/payment/models/account_payment.py @@ -11,12 +11,12 @@ class AccountPayment(models.Model): def onchange_partner_id(self): res = {} if self.partner_id: - res['domain'] = {'electronic_payment_method_id': [('partner_id', '=', self.partner_id.id)]} + res['domain'] = {'payment_token_id': [('partner_id', '=', self.partner_id.id)]} return res payment_transaction_id = fields.Many2one('payment.transaction', string="Payment Transaction") - electronic_payment_method_id = fields.Many2one('payment.method', string="Saved payment method") + payment_token_id = fields.Many2one('payment.token', string="Saved payment token") def _do_payment(self): tx_obj = self.env['payment.transaction'] @@ -24,11 +24,11 @@ class AccountPayment(models.Model): tx_values = { 'amount': self.amount, - 'acquirer_id': self.electronic_payment_method_id.acquirer_id.id, + 'acquirer_id': self.payment_token_id.acquirer_id.id, 'type': 'server2server', 'currency_id': self.currency_id.id, 'reference': reference, - 'payment_method_id': self.electronic_payment_method_id.id, + 'payment_token_id': self.payment_token_id.id, 'partner_id': self.partner_id.id, 'partner_country_id': self.partner_id.country_id.id, } @@ -46,7 +46,7 @@ class AccountPayment(models.Model): def create(self, vals): res = super(AccountPayment, self).create(vals) - if res.electronic_payment_method_id: + if res.payment_token_id: res._do_payment() return res diff --git a/addons/payment/models/payment_acquirer.py b/addons/payment/models/payment_acquirer.py index eaa8263478a..1a742674339 100644 --- a/addons/payment/models/payment_acquirer.py +++ b/addons/payment/models/payment_acquirer.py @@ -402,7 +402,7 @@ class PaymentTransaction(osv.Model): 'callback_eval': fields.char('S2S Callback', help="""\ Will be safe_eval with `self` being the current transaction. i.e.: self.env['my.model'].payment_validated(self)""", oldname="s2s_cb_eval"), - 'payment_method_id': fields.many2one('payment.method', 'Payment Method', domain="[('acquirer_id', '=', acquirer_id)]"), + 'payment_token_id': fields.many2one('payment.token', 'Payment Token', domain="[('acquirer_id', '=', acquirer_id)]"), } def _check_reference(self, cr, uid, ids, context=None): @@ -576,17 +576,17 @@ class PaymentTransaction(osv.Model): return True -class PaymentMethod(osv.Model): - _name = 'payment.method' +class PaymentToken(osv.Model): + _name = 'payment.token' _order = 'partner_id' _columns = { - 'name': fields.char('Name', help='Name of the payment method'), + 'name': fields.char('Name', help='Name of the payment token'), 'partner_id': fields.many2one('res.partner', 'Partner', required=True), 'acquirer_id': fields.many2one('payment.acquirer', 'Acquirer Account', required=True), 'acquirer_ref': fields.char('Acquirer Ref.', required=True), 'active': fields.boolean('Active'), - 'payment_ids': fields.one2many('payment.transaction', 'payment_method_id', 'Payment Transactions'), + 'payment_ids': fields.one2many('payment.transaction', 'payment_token_id', 'Payment Transactions'), } _defaults = { @@ -603,4 +603,4 @@ class PaymentMethod(osv.Model): if hasattr(self, custom_method_name): values.update(getattr(self, custom_method_name)(cr, uid, values, context=context)) - return super(PaymentMethod, self).create(cr, uid, values, context=context) + return super(PaymentToken, self).create(cr, uid, values, context=context) diff --git a/addons/payment/models/res_partner.py b/addons/payment/models/res_partner.py index 5a014979635..801415b3bcf 100644 --- a/addons/payment/models/res_partner.py +++ b/addons/payment/models/res_partner.py @@ -5,9 +5,9 @@ class res_partner(osv.osv): _name = 'res.partner' _inherit = 'res.partner' - def _compute_payment_method_count(self, cr, uid, ids, field_names, arg, context=None): + def _compute_payment_token_count(self, cr, uid, ids, field_names, arg, context=None): result = {} - payment_data = self.pool['payment.method'].read_group( + payment_data = self.pool['payment.token'].read_group( cr, uid, [('partner_id', 'in', ids)], ['partner_id'], ['partner_id'], context=context) mapped_data = dict([(payment['partner_id'][0], payment['partner_id_count']) for payment in payment_data]) for partner in self.browse(cr, uid, ids, context=context): @@ -15,6 +15,6 @@ class res_partner(osv.osv): return result _columns = { - 'payment_method_ids': fields.one2many('payment.method', 'partner_id', 'Payment Methods'), - 'payment_method_count': fields.function(_compute_payment_method_count, string='Count Payment Method', type="integer"), + 'payment_token_ids': fields.one2many('payment.token', 'partner_id', 'Payment Tokens'), + 'payment_token_count': fields.function(_compute_payment_token_count, string='Count Payment Token', type="integer"), } diff --git a/addons/payment/security/ir.model.access.csv b/addons/payment/security/ir.model.access.csv index 4b04317deb3..2bfa46839a0 100644 --- a/addons/payment/security/ir.model.access.csv +++ b/addons/payment/security/ir.model.access.csv @@ -5,7 +5,7 @@ payment_acquirer_system,payment.acquirer.system,model_payment_acquirer,base.grou payment_transaction_all,payment.transaction.all,model_payment_transaction,,1,0,0,0 payment_transaction_user,payment.transaction.user,model_payment_transaction,base.group_user,1,1,1,0 payment_transaction_system,payment.transaction.system,model_payment_transaction,base.group_system,1,1,1,1 -payment_method_all,payment.method.all,model_payment_method,,1,0,0,0 -payment_method_user,payment.method.user,model_payment_method,base.group_user,1,1,1,1 -payment_method_portal,payment.method.portal,model_payment_method,base.group_portal,1,1,1,1 -payment_method_system,payment.method.system,model_payment_method,base.group_system,1,1,1,1 +payment_method_all,payment.token.all,model_payment_token,,1,0,0,0 +payment_method_user,payment.token.user,model_payment_token,base.group_user,1,1,1,1 +payment_method_portal,payment.token.portal,model_payment_token,base.group_portal,1,1,1,1 +payment_method_system,payment.token.system,model_payment_token,base.group_system,1,1,1,1 diff --git a/addons/payment/security/payment_security.xml b/addons/payment/security/payment_security.xml index fe49d1b4b17..4c1f3403f2a 100644 --- a/addons/payment/security/payment_security.xml +++ b/addons/payment/security/payment_security.xml @@ -12,10 +12,9 @@ ]</field> <field name="groups" eval="[(4, ref('base.group_user')), (4, ref('base.group_portal')), (4, ref('base.group_public'))]"/> </record> - - <record id="payment_method_user_rule" model="ir.rule"> - <field name="name">Access own payment methods only</field> - <field name="model_id" ref="payment.model_payment_method"/> + <record id="payment_token_user_rule" model="ir.rule"> + <field name="name">Access own payment tokens only</field> + <field name="model_id" ref="payment.model_payment_token"/> <field name="domain_force">[('partner_id','=',user.partner_id.id)]</field> <field name="groups" eval="[(4, ref('base.group_user')), (4, ref('base.group_portal')), (4, ref('base.group_public'))]"/> </record> diff --git a/addons/payment/views/account_payment.xml b/addons/payment/views/account_payment.xml index 80e0707f21a..07fba1d644f 100644 --- a/addons/payment/views/account_payment.xml +++ b/addons/payment/views/account_payment.xml @@ -18,7 +18,7 @@ <field name="inherit_id" ref="account.view_account_payment_invoice_form"/> <field name="arch" type="xml"> <field name="payment_method_id" position="after"> - <field name="electronic_payment_method_id"/> + <field name="payment_token_id"/> </field> </field> </record> diff --git a/addons/payment/views/payment_acquirer.xml b/addons/payment/views/payment_acquirer.xml index bb0bd7e79a5..3a7a0b060ad 100644 --- a/addons/payment/views/payment_acquirer.xml +++ b/addons/payment/views/payment_acquirer.xml @@ -233,7 +233,7 @@ </group> <group> <field name="acquirer_id"/> - <field name="payment_method_id"/> + <field name="payment_token_id"/> <field name="acquirer_reference"/> <field name="create_date"/> <field name="date_validate"/> @@ -292,12 +292,12 @@ parent='root_payment_menu' sequence='20' /> - <!-- Payment Methods --> - <record model='ir.ui.view' id='payment_method_tree_view'> - <field name='name'>payment.method.tree</field> - <field name='model'>payment.method</field> + <!-- Payment Tokens --> + <record model='ir.ui.view' id='payment_token_tree_view'> + <field name='name'>payment.token.tree</field> + <field name='model'>payment.token</field> <field name='arch' type='xml'> - <tree string='Payment Methods'> + <tree string='Payment Tokens'> <field name="name"/> <field name="active"/> <field name='partner_id' /> @@ -307,11 +307,11 @@ </field> </record> - <record id='payment_method_view_search' model='ir.ui.view'> - <field name='name'>payment.method.search</field> - <field name='model'>payment.method</field> + <record id='payment_token_view_search' model='ir.ui.view'> + <field name='name'>payment.token.search</field> + <field name='model'>payment.token</field> <field name='arch' type='xml'> - <search string='Payment Methods'> + <search string='Payment Tokens'> <field name='partner_id'/> </search> </field> @@ -322,15 +322,15 @@ <field name="res_model">payment.transaction</field> <field name="view_type">form</field> <field name="view_mode">tree,form</field> - <field name="domain">[('payment_method_id','=', active_id)]</field> + <field name="domain">[('payment_token_id','=', active_id)]</field> <field name="context">{'create': False}</field> </record> - <record model='ir.ui.view' id='payment_method_form_view'> - <field name='name'>payment.method.form</field> - <field name='model'>payment.method</field> + <record model='ir.ui.view' id='payment_token_form_view'> + <field name='name'>payment.token.form</field> + <field name='model'>payment.token</field> <field name='arch' type='xml'> - <form string='Payment Methods' create='false' editable='bottom'> + <form string='Payment Tokens' create='false' editable='bottom'> <sheet> <div class="oe_button_box" name="button_box"> <button class="oe_stat_button" name="%(action_payment_tx_ids)d" @@ -351,16 +351,16 @@ </field> </record> - <record model='ir.actions.act_window' id='payment_method_action'> + <record model='ir.actions.act_window' id='payment_token_action'> <field name='name'>Saved Payment Data</field> - <field name='res_model'>payment.method</field> + <field name='res_model'>payment.token</field> <field name='view_type'>form</field> <field name='view_mode'>tree,form</field> </record> <menuitem - action='payment_method_action' - id='payment_method_menu' + action='payment_token_action' + id='payment_token_menu' parent='root_payment_menu'/> </data> diff --git a/addons/payment/views/res_partner_view.xml b/addons/payment/views/res_partner_view.xml index 056656839d4..b0145045222 100644 --- a/addons/payment/views/res_partner_view.xml +++ b/addons/payment/views/res_partner_view.xml @@ -10,9 +10,9 @@ <field name="arch" type="xml"> <xpath expr='//group[@name="banks"]' position="inside"> <button type="action" class="btn-link" - name="%(payment.payment_method_action)d" + name="%(payment.payment_token_action)d" context="{'search_default_partner_id': active_id}"> - <field name="payment_method_count" widget="statinfo" string="Credit card(s)"/> + <field name="payment_token_count" widget="statinfo" string="Credit card(s)"/> </button> </xpath> </field> diff --git a/addons/payment_ogone/models/ogone.py b/addons/payment_ogone/models/ogone.py index 27a19b0e39f..b11b6f25969 100644 --- a/addons/payment_ogone/models/ogone.py +++ b/addons/payment_ogone/models/ogone.py @@ -206,7 +206,7 @@ class PaymentAcquirerOgone(osv.Model): 'acquirer_id': int(data.get('acquirer_id')), 'partner_id': int(data.get('partner_id')) } - pm_id = self.pool['payment.method'].create(cr, SUPERUSER_ID, values, context=context) + pm_id = self.pool['payment.token'].create(cr, SUPERUSER_ID, values, context=context) return pm_id @@ -224,7 +224,7 @@ class PaymentTxOgone(osv.Model): def _ogone_form_get_tx_from_data(self, cr, uid, data, context=None): """ Given a data dict coming from ogone, verify it and find the related - transaction record. Create a payment method if an alias is returned.""" + transaction record. Create a payment token if an alias is returned.""" reference, pay_id, shasign, alias = data.get('orderID'), data.get('PAYID'), data.get('SHASIGN'), data.get('ALIAS') if not reference or not pay_id or not shasign: error_msg = _('Ogone: received data with missing reference (%s) or pay_id (%s) or shasign (%s)') % (reference, pay_id, shasign) @@ -255,7 +255,7 @@ class PaymentTxOgone(osv.Model): # alias was created on ogone server, store it if alias: - method_obj = self.pool['payment.method'] + method_obj = self.pool['payment.token'] domain = [('acquirer_ref', '=', alias)] cardholder = data.get('CN') if not method_obj.search_count(cr, uid, domain, context=context): @@ -265,7 +265,7 @@ class PaymentTxOgone(osv.Model): 'acquirer_id': tx.acquirer_id.id, 'acquirer_ref': alias }) - tx.write({'payment_method_id': ref}) + tx.write({'payment_token_id': ref}) return tx @@ -295,14 +295,14 @@ class PaymentTxOgone(osv.Model): 'date_validate': datetime.datetime.strptime(data['TRXDATE'], '%m/%d/%y').strftime(DEFAULT_SERVER_DATE_FORMAT), 'acquirer_reference': data['PAYID'], } - if data.get('ALIAS') and tx.partner_id and tx.type == 'form_save' and not tx.payment_method_id: - pm_id = self.pool['payment.method'].create(cr, uid, { + if data.get('ALIAS') and tx.partner_id and tx.type == 'form_save' and not tx.payment_token_id: + pm_id = self.pool['payment.token'].create(cr, uid, { 'partner_id': tx.partner_id.id, 'acquirer_id': tx.acquirer_id.id, 'acquirer_ref': data.get('ALIAS'), 'name': '%s - %s' % (data.get('CARDNO'), data.get('CN')) }, context=context) - vals.update(payment_method_id=pm_id) + vals.update(payment_token_id=pm_id) tx.write(vals) if tx.callback_eval: safe_eval(tx.callback_eval, {'self': tx}) @@ -349,7 +349,7 @@ class PaymentTxOgone(osv.Model): 'CURRENCY': tx.currency_id.name, 'OPERATION': 'SAL', 'ECI': 2, # Recurring (from MOTO) - 'ALIAS': tx.payment_method_id.acquirer_ref, + 'ALIAS': tx.payment_token_id.acquirer_ref, 'RTIMEOUT': 30, } @@ -400,14 +400,14 @@ class PaymentTxOgone(osv.Model): 'date_validate': datetime.date.today().strftime(DEFAULT_SERVER_DATE_FORMAT), 'acquirer_reference': tree.get('PAYID'), }) - if tree.get('ALIAS') and tx.partner_id and tx.type == 'form_save' and not tx.payment_method_id: - pm = tx.env['payment.method'].create({ + if tree.get('ALIAS') and tx.partner_id and tx.type == 'form_save' and not tx.payment_token_id: + pm = tx.env['payment.token'].create({ 'partner_id': tx.partner_id.id, 'acquirer_id': tx.acquirer_id.id, 'acquirer_ref': tree.get('ALIAS'), 'name': tree.get('CARDNO'), }) - tx.write({'payment_method_id': pm.id}) + tx.write({'payment_token_id': pm.id}) if tx.callback_eval: safe_eval(tx.callback_eval, {'self': tx}) return True @@ -469,8 +469,8 @@ class PaymentTxOgone(osv.Model): return tree -class PaymentMethod(osv.Model): - _inherit = 'payment.method' +class PaymentToken(osv.Model): + _inherit = 'payment.token' def ogone_create(self, cr, uid, values, context=None): if values.get('cc_number'): diff --git a/addons/payment_paypal/models/paypal.py b/addons/payment_paypal/models/paypal.py index d4b8f615bb3..a92086c49c9 100644 --- a/addons/payment_paypal/models/paypal.py +++ b/addons/payment_paypal/models/paypal.py @@ -196,8 +196,8 @@ class TxPaypal(osv.Model): if 'handling_amount' in data and float_compare(float(data.get('handling_amount')), tx.fees, 2) != 0: invalid_parameters.append(('handling_amount', data.get('handling_amount'), tx.fees)) # check buyer - if tx.payment_method_id and data.get('payer_id') != tx.payment_method_id.acquirer_ref: - invalid_parameters.append(('payer_id', data.get('payer_id'), tx.payment_method_id.acquirer_ref)) + if tx.payment_token_id and data.get('payer_id') != tx.payment_token_id.acquirer_ref: + invalid_parameters.append(('payer_id', data.get('payer_id'), tx.payment_token_id.acquirer_ref)) # check seller if data.get('receiver_id') and tx.acquirer_id.paypal_seller_account and data['receiver_id'] != tx.acquirer_id.paypal_seller_account: invalid_parameters.append(('receiver_id', data.get('receiver_id'), tx.acquirer_id.paypal_seller_account)) diff --git a/addons/payment_stripe/models/__init__.py b/addons/payment_stripe/models/__init__.py index 49cea96f9de..fa88cddcbb1 100644 --- a/addons/payment_stripe/models/__init__.py +++ b/addons/payment_stripe/models/__init__.py @@ -2,4 +2,4 @@ import payment_transaction import payment_acquirer -import payment_method +import payment_token diff --git a/addons/payment_stripe/models/payment_acquirer.py b/addons/payment_stripe/models/payment_acquirer.py index 2ef53629481..42e69be74b0 100644 --- a/addons/payment_stripe/models/payment_acquirer.py +++ b/addons/payment_stripe/models/payment_acquirer.py @@ -46,7 +46,7 @@ class PaymentAcquirerStripe(models.Model): @api.model def stripe_s2s_form_process(self, data): - payment_method = self.env['payment.method'].sudo().create({ + payment_token = self.env['payment.token'].sudo().create({ 'cc_number': data['cc_number'], 'cc_holder_name': data['cc_holder_name'], 'cc_expiry': data['cc_expiry'], @@ -55,7 +55,7 @@ class PaymentAcquirerStripe(models.Model): 'acquirer_id': int(data['acquirer_id']), 'partner_id': int(data['partner_id']) }) - return payment_method.id + return payment_token.id @api.multi def stripe_s2s_form_validate(self, data): diff --git a/addons/payment_stripe/models/payment_method.py b/addons/payment_stripe/models/payment_token.py index 3bb0deb8de9..ca2921c8a72 100644 --- a/addons/payment_stripe/models/payment_method.py +++ b/addons/payment_stripe/models/payment_token.py @@ -7,8 +7,8 @@ from odoo.exceptions import UserError from . import payment_acquirer as pa -class PaymentMethodStripe(models.Model): - _inherit = 'payment.method' +class PaymentTokenStripe(models.Model): + _inherit = 'payment.token' @api.model def stripe_create(self, values): diff --git a/addons/payment_stripe/models/payment_transaction.py b/addons/payment_stripe/models/payment_transaction.py index a4b7affb331..5682123d71d 100644 --- a/addons/payment_stripe/models/payment_transaction.py +++ b/addons/payment_stripe/models/payment_transaction.py @@ -37,7 +37,7 @@ class PaymentTransactionStripe(models.Model): @api.multi def stripe_s2s_do_transaction(self, **kwargs): self.ensure_one() - result = self._create_stripe_charge(acquirer_ref=self.payment_method_id.acquirer_ref) + result = self._create_stripe_charge(acquirer_ref=self.payment_token_id.acquirer_ref) return self._stripe_s2s_validate_tree(result) @api.model diff --git a/addons/payment_stripe/tests/test_stripe.py b/addons/payment_stripe/tests/test_stripe.py index a29b4a84be2..496ede5c8fd 100644 --- a/addons/payment_stripe/tests/test_stripe.py +++ b/addons/payment_stripe/tests/test_stripe.py @@ -32,7 +32,7 @@ class StripeTest(StripeCommon): }) # Create payment meethod for Stripe - payment_method = self.env['payment.method'].create({ + payment_token = self.env['payment.token'].create({ 'acquirer_id': self.stripe_id, 'partner_id': self.buyer_id, 'cc_number': '4242424242424242', @@ -48,7 +48,7 @@ class StripeTest(StripeCommon): 'currency_id': self.currency_euro.id, 'acquirer_id': self.stripe_id, 'partner_id': self.buyer_id, - 'payment_method_id': payment_method.id, + 'payment_token_id': payment_token.id, 'type': 'server2server', 'amount': 115.0 }) diff --git a/addons/website_payment/controllers/main.py b/addons/website_payment/controllers/main.py index 800860a783b..5c21df1033c 100644 --- a/addons/website_payment/controllers/main.py +++ b/addons/website_payment/controllers/main.py @@ -9,9 +9,9 @@ class website_payment(http.Controller): def payment_method(self): acquirers = list(request.env['payment.acquirer'].search([('website_published', '=', True), ('registration_view_template_id', '!=', False)])) partner = request.env.user.partner_id - payment_methods = partner.payment_method_ids + payment_tokens = partner.payment_token_ids values = { - 'pms': payment_methods, + 'pms': payment_tokens, 'acquirers': acquirers } for acquirer in acquirers: @@ -21,7 +21,7 @@ class website_payment(http.Controller): @http.route(['/website_payment/delete/'], methods=['POST'], type='http', auth="user", website=True) def delete(self, delete_pm_id=None): if delete_pm_id: - pay_meth = request.env['payment.method'].browse(int(delete_pm_id)) + pay_meth = request.env['payment.token'].browse(int(delete_pm_id)) pay_meth.unlink() return request.redirect('/my/payment_method') diff --git a/addons/website_sale/security/website_sale.xml b/addons/website_sale/security/website_sale.xml index b03c07a344f..fb2057b1979 100644 --- a/addons/website_sale/security/website_sale.xml +++ b/addons/website_sale/security/website_sale.xml @@ -30,9 +30,9 @@ <field name="groups" eval="[(4, ref('sales_team.group_sale_salesman'))]"/> </record> - <record id="payment_method_salesman_rule" model="ir.rule"> - <field name="name">Access every payment method</field> - <field name="model_id" ref="payment.model_payment_method"/> + <record id="payment_token_salesman_rule" model="ir.rule"> + <field name="name">Access every payment token</field> + <field name="model_id" ref="payment.model_payment_token"/> <field name="groups" eval="[(4, ref('sales_team.group_sale_salesman'))]"/> </record> |
