Those are already handled by new API onchange methods. They have probably been forgotten when migrating the module to new API.
376 lines
20 KiB
XML
376 lines
20 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<odoo>
|
|
<data>
|
|
|
|
<!-- Payment menu in settings -->
|
|
<menuitem
|
|
name='Payments'
|
|
id='root_payment_menu'
|
|
parent='account.menu_finance_configuration'/>
|
|
|
|
<!-- Payment acquirers -->
|
|
<record id="payment_transaction_action_child" model="ir.actions.act_window">
|
|
<field name="name">Payment Transactions</field>
|
|
<field name="res_model">payment.transaction</field>
|
|
<field name='view_type'>form</field>
|
|
<field name='view_mode'>tree,form</field>
|
|
<field name='domain'>[('acquirer_id','=',active_id)]</field>
|
|
<field name="context">{'default_acquirer_id': active_id}</field>
|
|
</record>
|
|
|
|
<record id="acquirer_form" model="ir.ui.view">
|
|
<field name="name">payment.acquirer.form</field>
|
|
<field name="model">payment.acquirer</field>
|
|
<field name="arch" type="xml">
|
|
<form string="Payment Acquirer">
|
|
<field name="environment" invisible='1'/>
|
|
<field name="fees_implemented" invisible='1'/>
|
|
<field name="token_implemented" invisible='1'/>
|
|
<sheet>
|
|
<field name="module_id" invisible="1"/>
|
|
<field name="module_state" invisible="1"/>
|
|
<div class="oe_button_box" name="button_box" attrs="{'invisible': ['&', ('module_id', '!=', False), ('module_state', '!=', 'installed')]}">
|
|
<button attrs="{'invisible': [('environment', '=', 'test')]}" class="oe_stat_button" name="toggle_enviroment_value" type="object" icon="fa-play">
|
|
<div class="o_stat_info o_form_field">
|
|
<span class="text-success">Production</span>
|
|
<span class="o_stat_text">Environment</span>
|
|
</div>
|
|
</button>
|
|
<button attrs="{'invisible': [('environment', '=', 'prod')]}" class="oe_stat_button" name="toggle_enviroment_value" type="object" icon="fa-stop">
|
|
<div class="o_stat_info o_form_field">
|
|
<span class="o_warning_text">Test</span>
|
|
<span class="o_stat_text">Environment</span>
|
|
</div>
|
|
</button>
|
|
<button class="oe_stat_button" name="%(payment_transaction_action_child)d"
|
|
type="action" icon="fa-money" string="Payments">
|
|
</button>
|
|
</div>
|
|
<field name="image" widget='image' class="oe_avatar" options='{"preview_image": "image_medium"}'/>
|
|
<div class="oe_title">
|
|
<h1><field name="name" placeholder="Name"/></h1>
|
|
</div>
|
|
<div attrs="{'invisible': ['|', ('module_state', '=', 'installed'), ('module_id', '=', False)]}">
|
|
<button type="object" class="btn btn-primary" name="button_immediate_install" string="Install"/>
|
|
<div class="o_payment_acquirer_desc">
|
|
<field name="description"/>
|
|
</div>
|
|
</div>
|
|
<group name="acquirer_base" col="2" attrs="{'invisible': ['&', ('module_id', '!=', False), ('module_state', '!=', 'installed')]}">
|
|
<group name="acquirer_left">
|
|
<field name="provider" groups="base.group_no_one"/>
|
|
<field name="company_id" groups="base.group_multi_company" options='{"no_open":True}'/>
|
|
</group>
|
|
</group>
|
|
<notebook attrs="{'invisible': ['&', ('module_id', '!=', False), ('module_state', '!=', 'installed')]}">
|
|
<page string="Credentials">
|
|
<group name="acquirer">
|
|
</group>
|
|
</page>
|
|
<page string="Messages">
|
|
<group>
|
|
<field name="pre_msg"/>
|
|
<field name="post_msg"/>
|
|
<field name="pending_msg"/>
|
|
<field name="done_msg"/>
|
|
<field name="cancel_msg"/>
|
|
<field name="error_msg"/>
|
|
</group>
|
|
</page>
|
|
<page string="Configuration">
|
|
<group name="acquirer_config">
|
|
<field name="auto_confirm" widget="radio"/>
|
|
<field name="save_token" widget="radio" attrs="{'invisible': [('token_implemented', '=', False)]}"/>
|
|
<field name="journal_id" attrs="{'required': [('auto_confirm', '=', 'generate_and_pay_invoice')], 'invisible': [('auto_confirm', '!=', 'generate_and_pay_invoice')]}"/>
|
|
<label for="view_template_id" groups="base.group_no_one"/>
|
|
<div groups="base.group_no_one">
|
|
<field name="view_template_id" nolabel="1"/>
|
|
<div>
|
|
This template renders the acquirer button with all necessary values.
|
|
It is be rendered with qWeb with the following evaluation context:
|
|
<ul>
|
|
<li>tx_url: transaction URL to post the form</li>
|
|
<li>acquirer: payment.acquirer browse record</li>
|
|
<li>user: current user browse record</li>
|
|
<li>reference: the transaction reference number</li>
|
|
<li>currency: the transaction currency browse record</li>
|
|
<li>amount: the transaction amount, a float</li>
|
|
<li>partner: the buyer partner browse record, not necessarily set</li>
|
|
<li>partner_values: specific values about the buyer, for example coming from a shipping form</li>
|
|
<li>tx_values: transaction values</li>
|
|
<li>context: the current context dictionary</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
<field name="registration_view_template_id" groups="base.group_no_one"/>
|
|
</group>
|
|
<group name="fees_config" attrs="{'invisible': [('fees_implemented', '=', False)]}">
|
|
<field name="fees_active"/>
|
|
<field name="fees_dom_fixed" attrs="{'invisible': [('fees_active', '=', False)]}"/>
|
|
<field name="fees_dom_var" attrs="{'invisible': [('fees_active', '=', False)]}"/>
|
|
<field name="fees_int_fixed" attrs="{'invisible': [('fees_active', '=', False)]}"/>
|
|
<field name="fees_int_var" attrs="{'invisible': [('fees_active', '=', False)]}"/>
|
|
</group>
|
|
</page>
|
|
</notebook>
|
|
</sheet>
|
|
</form>
|
|
</field>
|
|
</record>
|
|
|
|
|
|
<!-- Acquirer Kanban View -->
|
|
<record id="acquirer_kanban" model="ir.ui.view">
|
|
<field name="name">payment.acquirer.kanban</field>
|
|
<field name="model">payment.acquirer</field>
|
|
<field name="arch" type="xml">
|
|
<kanban quick_create="false" create="true" class="o_kanban_payment_acquirer">
|
|
<field name="id"/>
|
|
<field name="name"/>
|
|
<field name="description"/>
|
|
<field name="environment"/>
|
|
<field name="provider"/>
|
|
<field name="module_id"/>
|
|
<field name="module_state"/>
|
|
<templates>
|
|
<t t-name="kanban-box">
|
|
<div class="oe_kanban_global_click">
|
|
<t t-set="installed" t-value="!record.module_id.value || (record.module_id.value && record.module_state.raw_value === 'installed')"/>
|
|
<div class="o_kanban_image">
|
|
<img type="open" t-att-src="kanban_image('payment.acquirer', 'image_small', record.id.value)"/>
|
|
</div>
|
|
<div class="o_payment_acquirer_desc">
|
|
<h3 class="mt4"><t t-esc="record.name.value"/></h3>
|
|
<t t-if="record.description.raw_value" t-raw="record.description.raw_value"/>
|
|
</div>
|
|
<div class="o_payment_acquirer_bottom">
|
|
<t t-if="installed">
|
|
<field name="environment" widget="kanban_label_selection" options="{'classes': {'test': 'warning', 'production': 'success'}}"/>
|
|
</t>
|
|
<button t-if="!installed" type="object" class="btn btn-default pull-right btn-sm" name="button_immediate_install">Install</button>
|
|
<button t-if="installed" type="edit" class="btn btn-primary pull-right btn-sm">Configure</button>
|
|
</div>
|
|
</div>
|
|
</t>
|
|
</templates>
|
|
</kanban>
|
|
</field>
|
|
</record>
|
|
|
|
<record id="acquirer_list" model="ir.ui.view">
|
|
<field name="name">payment.acquirer.list</field>
|
|
<field name="model">payment.acquirer</field>
|
|
<field name="arch" type="xml">
|
|
<tree string="Payment Acquirers">
|
|
<field name="sequence" widget="handle"/>
|
|
<field name="name"/>
|
|
<field name="provider"/>
|
|
<field name="environment"/>
|
|
</tree>
|
|
</field>
|
|
</record>
|
|
|
|
<record id="acquirer_search" model="ir.ui.view">
|
|
<field name="name">payment.acquirer.search</field>
|
|
<field name="model">payment.acquirer</field>
|
|
<field name="arch" type="xml">
|
|
<search>
|
|
<field name="name"/>
|
|
<field name="provider"/>
|
|
<group expand="0" string="Group By">
|
|
<filter string="Provider" name="provider" domain="[]" context="{'group_by': 'provider'}"/>
|
|
<filter string="Environment" name="environment" domain="[]" context="{'group_by': 'environment'}"/>
|
|
</group>
|
|
</search>
|
|
</field>
|
|
</record>
|
|
|
|
<record id="action_payment_acquirer" model="ir.actions.act_window">
|
|
<field name="name">Payment Acquirers</field>
|
|
<field name="res_model">payment.acquirer</field>
|
|
<field name='view_type'>form</field>
|
|
<field name='view_mode'>kanban,tree,form</field>
|
|
<field name="help" type="html">
|
|
<p class="oe_view_nocontent_create">
|
|
Click to create a payment acquirer.
|
|
</p>
|
|
</field>
|
|
</record>
|
|
|
|
<menuitem
|
|
action='action_payment_acquirer'
|
|
id='payment_acquirer_menu'
|
|
parent='root_payment_menu'
|
|
sequence='10' />
|
|
|
|
<!-- Payment transactions -->
|
|
<record id="transaction_form" model="ir.ui.view">
|
|
<field name="name">payment.transaction.form</field>
|
|
<field name="model">payment.transaction</field>
|
|
<field name="arch" type="xml">
|
|
<form string="Payment Transactions">
|
|
<header>
|
|
<button type="object" name="action_capture" states="authorized" string="Capture Transaction" class="oe_highlight"/>
|
|
<button type="object" name="action_void" states="authorized" string="Void Transaction"/>
|
|
<field name="state" widget="statusbar" clickable="True"/>
|
|
</header>
|
|
<sheet>
|
|
<group>
|
|
<group>
|
|
<field name="reference"/>
|
|
<label for="amount"/>
|
|
<div class="o_row">
|
|
<field name="amount" class="oe_inline" />
|
|
<field name="currency_id" options="{'no_open': True, 'no_create': True}" class="oe_inline" />
|
|
</div>
|
|
<field name="fees"/>
|
|
<field name="partner_id"/>
|
|
<label for="partner_details" string="Customer Details"/>
|
|
<div name="partner_details">
|
|
<field name="partner_name" placeholder="Name" attrs="{'readonly': [('partner_id', '!=', False)]}"/>
|
|
<field name="partner_address" placeholder="Address" attrs="{'readonly': [('partner_id', '!=', False)]}"/>
|
|
<div class="o_row">
|
|
<field name="partner_zip" class="oe_inline" placeholder="ZIP" attrs="{'readonly': [('partner_id', '!=', False)]}"/>
|
|
<field name="partner_city" class="oe_inline" placeholder="City" attrs="{'readonly': [('partner_id', '!=', False)]}"/>
|
|
</div>
|
|
<field name="partner_country_id" placeholder="Country" attrs="{'readonly': [('partner_id', '!=', False)]}"/>
|
|
<field name="partner_lang" attrs="{'readonly': [('partner_id', '!=', False)]}"/>
|
|
<field name="partner_email" placeholder="E-mail" attrs="{'readonly': [('partner_id', '!=', False)]}"/>
|
|
</div>
|
|
</group>
|
|
<group>
|
|
<field name="acquirer_id"/>
|
|
<field name="payment_token_id"/>
|
|
<field name="acquirer_reference"/>
|
|
<field name="create_date"/>
|
|
<field name="date_validate"/>
|
|
</group>
|
|
</group>
|
|
<group string="Message">
|
|
<field name="state_message" nolabel="1"/>
|
|
</group>
|
|
<notebook>
|
|
</notebook>
|
|
</sheet>
|
|
</form>
|
|
</field>
|
|
</record>
|
|
|
|
<record id="transaction_list" model="ir.ui.view">
|
|
<field name="name">payment.transaction.list</field>
|
|
<field name="model">payment.transaction</field>
|
|
<field name="arch" type="xml">
|
|
<tree string="Payment Transactions">
|
|
<field name="reference"/>
|
|
<field name="create_date"/>
|
|
<field name="acquirer_id"/>
|
|
<field name="partner_id"/>
|
|
<field name="partner_name"/>
|
|
<field name="amount"/>
|
|
<field name="fees"/>
|
|
<field name="state"/>
|
|
</tree>
|
|
</field>
|
|
</record>
|
|
|
|
<record id="transaction" model="ir.ui.view">
|
|
<field name="name">payment.transaction.search</field>
|
|
<field name="model">payment.transaction</field>
|
|
<field name="arch" type="xml">
|
|
<search>
|
|
<field name="reference"/>
|
|
<field name="acquirer_id"/>
|
|
<field name="partner_id"/>
|
|
<field name="partner_name"/>
|
|
</search>
|
|
</field>
|
|
</record>
|
|
|
|
<record id="action_payment_transaction" model="ir.actions.act_window">
|
|
<field name="name">Payment Transactions</field>
|
|
<field name="res_model">payment.transaction</field>
|
|
<field name='view_type'>form</field>
|
|
<field name='view_mode'>tree,form</field>
|
|
</record>
|
|
|
|
<menuitem
|
|
action='action_payment_transaction'
|
|
id='payment_transaction_menu'
|
|
parent='root_payment_menu'
|
|
sequence='20' />
|
|
|
|
<!-- 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 Tokens'>
|
|
<field name="name"/>
|
|
<field name="active"/>
|
|
<field name='partner_id' />
|
|
<field name='acquirer_id' readonly='1'/>
|
|
<field name='acquirer_ref' readonly='1'/>
|
|
</tree>
|
|
</field>
|
|
</record>
|
|
|
|
<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 Tokens'>
|
|
<field name='partner_id'/>
|
|
</search>
|
|
</field>
|
|
</record>
|
|
|
|
<record id="action_payment_tx_ids" model="ir.actions.act_window">
|
|
<field name="name">Payment Transactions</field>
|
|
<field name="res_model">payment.transaction</field>
|
|
<field name="view_type">form</field>
|
|
<field name="view_mode">tree,form</field>
|
|
<field name="domain">[('payment_token_id','=', active_id)]</field>
|
|
<field name="context">{'create': False}</field>
|
|
</record>
|
|
|
|
<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 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"
|
|
type="action" icon="fa-money" string="Payments">
|
|
</button>
|
|
</div>
|
|
<group>
|
|
<field name="name"/>
|
|
<field name='partner_id' />
|
|
</group>
|
|
<group>
|
|
<field name="active"/>
|
|
<field name='acquirer_id'/>
|
|
<field name='acquirer_ref'/>
|
|
</group>
|
|
</sheet>
|
|
</form>
|
|
</field>
|
|
</record>
|
|
|
|
<record model='ir.actions.act_window' id='payment_token_action'>
|
|
<field name='name'>Saved Payment Data</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_token_action'
|
|
id='payment_token_menu'
|
|
parent='root_payment_menu'
|
|
groups='base.group_no_one'/>
|
|
|
|
</data>
|
|
</odoo>
|