mirror of
https://github.com/bringout/oca-technical.git
synced 2026-04-26 18:12:05 +02:00
Initial commit: OCA Technical packages (595 packages)
This commit is contained in:
commit
2cc02aac6e
24950 changed files with 2318079 additions and 0 deletions
|
|
@ -0,0 +1,19 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!-- Copyright 2021 Sygel - Valentin Vinagre
|
||||
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -->
|
||||
<odoo>
|
||||
<record id="crm_lead_crm_salesperson_planner" model="ir.ui.view">
|
||||
<field name="name">crm.lead.view.crm.salesperson.planner</field>
|
||||
<field name="model">crm.lead</field>
|
||||
<field name="inherit_id" ref="crm.crm_lead_view_form" />
|
||||
<field name="arch" type="xml">
|
||||
<notebook position="inside">
|
||||
<page string="Salesperson Visits">
|
||||
<group>
|
||||
<field name="crm_salesperson_planner_visit_ids" nolabel="1" />
|
||||
</group>
|
||||
</page>
|
||||
</notebook>
|
||||
</field>
|
||||
</record>
|
||||
</odoo>
|
||||
|
|
@ -0,0 +1,49 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!-- Copyright 2021 Sygel - Valentin Vinagre
|
||||
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -->
|
||||
<odoo>
|
||||
<menuitem
|
||||
id="menu_salesperson_planner"
|
||||
name="Salesperson Planner"
|
||||
groups="sales_team.group_sale_salesman"
|
||||
parent="crm.crm_menu_root"
|
||||
sequence="4"
|
||||
/>
|
||||
<menuitem
|
||||
name="My Visits"
|
||||
id="menu_crm_salesperson_planner_my_visits"
|
||||
parent="menu_salesperson_planner"
|
||||
action="my_crm_salesperson_planner_visit_action"
|
||||
sequence="1"
|
||||
/>
|
||||
<menuitem
|
||||
name="All Visits"
|
||||
id="menu_crm_salesperson_planner_visits"
|
||||
parent="menu_salesperson_planner"
|
||||
action="all_crm_salesperson_planner_visit_action"
|
||||
sequence="2"
|
||||
groups="sales_team.group_sale_salesman_all_leads"
|
||||
/>
|
||||
<menuitem
|
||||
name="Visit Templates"
|
||||
id="menu_crm_salesperson_planner_visit_template"
|
||||
parent="menu_salesperson_planner"
|
||||
action="crm_salesperson_planner_visit_template_action"
|
||||
sequence="3"
|
||||
/>
|
||||
<!-- CONFIGURATION -->
|
||||
<menuitem
|
||||
id="menu_crm_config_salesperson_planner"
|
||||
name="Salesperson Planner"
|
||||
parent="crm.crm_menu_config"
|
||||
sequence="30"
|
||||
groups="sales_team.group_sale_manager"
|
||||
/>
|
||||
<menuitem
|
||||
name="Close Reasons"
|
||||
id="menu_crm_config_salesperson_planner_close_reason"
|
||||
parent="menu_crm_config_salesperson_planner"
|
||||
action="crm_salesperson_planner_visit_close_reason_action"
|
||||
sequence="2"
|
||||
/>
|
||||
</odoo>
|
||||
|
|
@ -0,0 +1,60 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!-- Copyright 2021 Sygel - Valentin Vinagre
|
||||
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -->
|
||||
<odoo>
|
||||
<record
|
||||
model="ir.ui.view"
|
||||
id="crm_salesperson_planner_visit_close_reason_tree_view"
|
||||
>
|
||||
<field name="name">CRM - Salesperson Planner Visit Close Reason Tree</field>
|
||||
<field name="model">crm.salesperson.planner.visit.close.reason</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree>
|
||||
<field name="name" />
|
||||
<field name="close_type" />
|
||||
<field name="require_image" />
|
||||
<field name="reschedule" />
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
<record
|
||||
model="ir.ui.view"
|
||||
id="crm_salesperson_planner_visit_close_reason_form_view"
|
||||
>
|
||||
<field name="name">CRM - Salesperson Planner Visit Close Reason Form</field>
|
||||
<field name="model">crm.salesperson.planner.visit.close.reason</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Close Reason">
|
||||
<sheet string="Close Reason">
|
||||
<div class="oe_title">
|
||||
<h1>
|
||||
<field name="name" />
|
||||
</h1>
|
||||
</div>
|
||||
<group>
|
||||
<group>
|
||||
<field name="close_type" />
|
||||
<field name="require_image" />
|
||||
<field name="reschedule" />
|
||||
</group>
|
||||
<group>
|
||||
</group>
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
<record
|
||||
model="ir.actions.act_window"
|
||||
id="crm_salesperson_planner_visit_close_reason_action"
|
||||
>
|
||||
<field name="name">Close Reasons</field>
|
||||
<field name="res_model">crm.salesperson.planner.visit.close.reason</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="help" type="html">
|
||||
<p class="oe_view_nocontent_create">
|
||||
Record reason for close commercial visits.
|
||||
</p>
|
||||
</field>
|
||||
</record>
|
||||
</odoo>
|
||||
|
|
@ -0,0 +1,172 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!-- Copyright 2021 Sygel - Valentin Vinagre
|
||||
Copyright 2021 Sygel - Manuel Regidor
|
||||
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -->
|
||||
<odoo>
|
||||
<record model="ir.ui.view" id="crm_salesperson_planner_visit_template_tree_view">
|
||||
<field name="name">CRM - Salesperson Planner Visit Template Tree</field>
|
||||
<field name="model">crm.salesperson.planner.visit.template</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree>
|
||||
<field name="name" />
|
||||
<field name="partner_id" />
|
||||
<field name="start_date" />
|
||||
<field name="sequence" />
|
||||
<field name="user_id" />
|
||||
<field name="company_id" groups="base.group_multi_company" />
|
||||
<field name="state" />
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
<record model="ir.ui.view" id="crm_salesperson_planner_visit_template_form_view">
|
||||
<field name="name">CRM - Salesperson Planner Visit Template Form</field>
|
||||
<field name="model">crm.salesperson.planner.visit.template</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Visit Template">
|
||||
<header>
|
||||
<button
|
||||
name="action_validate"
|
||||
string="Validate"
|
||||
type="object"
|
||||
attrs="{'invisible': [('state', '!=', 'draft')]}"
|
||||
/>
|
||||
<button
|
||||
name="%(crm_salesperson_planner_visit_template_create_action)d"
|
||||
string="Manually Create Visits"
|
||||
type="action"
|
||||
attrs="{'invisible': [('state', '!=', 'in-progress')]}"
|
||||
/>
|
||||
<button
|
||||
name="action_cancel"
|
||||
string="Cancel"
|
||||
type="object"
|
||||
attrs="{'invisible': [('state', '!=', 'in-progress')]}"
|
||||
/>
|
||||
<button
|
||||
name="action_draft"
|
||||
string="Send to Draft"
|
||||
type="object"
|
||||
attrs="{'invisible': [('state', '!=', 'cancel')]}"
|
||||
/>
|
||||
<field
|
||||
name="state"
|
||||
widget="statusbar"
|
||||
statusbar_visible="draft,in-progress,done,cancel"
|
||||
/>
|
||||
</header>
|
||||
<sheet string="Visit Template">
|
||||
<div class="oe_button_box" name="button_box">
|
||||
<button
|
||||
class="oe_stat_button"
|
||||
type="object"
|
||||
name="action_view_salesperson_planner_visit"
|
||||
icon="fa-building"
|
||||
>
|
||||
<field
|
||||
string="Sales Visits"
|
||||
name="visit_ids_count"
|
||||
widget="statinfo"
|
||||
/>
|
||||
</button>
|
||||
</div>
|
||||
<div class="oe_title">
|
||||
<h1>
|
||||
<field name="name" readonly="1" />
|
||||
</h1>
|
||||
</div>
|
||||
<group>
|
||||
<group>
|
||||
<field name="partner_id" invisible="1" />
|
||||
<field name="partner_ids" widget="many2many_tags" />
|
||||
<field name="start_date" required="1" />
|
||||
<field name="start" invisible="1" />
|
||||
<field name="stop" invisible="1" />
|
||||
<field name="stop_date" invisible="1" />
|
||||
<field name="start" invisible="1" />
|
||||
<field name="sequence" />
|
||||
<field name="user_id" />
|
||||
<field
|
||||
name="company_id"
|
||||
groups="base.group_multi_company"
|
||||
/>
|
||||
<field name="last_visit_date" />
|
||||
<field name="auto_validate" />
|
||||
<field name="event_tz" invisible="1" />
|
||||
<field name="allday" force_save="1" />
|
||||
<field name="rrule" invisible="1" />
|
||||
</group>
|
||||
<!-- Display fields similar to calendar.event (Display data similar to calendar.event (for UX is better)). -->
|
||||
<group>
|
||||
<label for="interval" />
|
||||
<div class="o_col">
|
||||
<div class="o_row">
|
||||
<field
|
||||
name="interval"
|
||||
class="oe_inline"
|
||||
required="1"
|
||||
/>
|
||||
<field name="rrule_type" required="1" />
|
||||
</div>
|
||||
<widget
|
||||
name="week_days"
|
||||
attrs="{'invisible': [('rrule_type', '!=', 'weekly')]}"
|
||||
/>
|
||||
</div>
|
||||
<label string="Until" for="end_type" />
|
||||
<div class="o_row">
|
||||
<field name="end_type" required="1" />
|
||||
<field
|
||||
name="count"
|
||||
required="1"
|
||||
attrs="{'invisible': [('end_type', '!=', 'count')]}"
|
||||
/>
|
||||
<field
|
||||
name="until"
|
||||
attrs="{'invisible': [('end_type', '!=', 'end_date')], 'required': [('end_type', '=', 'end_date')]}"
|
||||
/>
|
||||
</div>
|
||||
</group>
|
||||
<group attrs="{'invisible': [('rrule_type', '!=', 'monthly')]}">
|
||||
<label string="Day of Month" for="month_by" />
|
||||
<div class="o_row">
|
||||
<field name="month_by" />
|
||||
<field
|
||||
name="day"
|
||||
attrs="{'required': [('month_by', '=', 'date'), ('rrule_type', '=', 'monthly')], 'invisible': [('month_by', '!=', 'date')]}"
|
||||
/>
|
||||
<field
|
||||
name="byday"
|
||||
string="The"
|
||||
attrs="{'required': [('month_by', '=', 'day'), ('rrule_type', '=', 'monthly')], 'invisible': [('month_by', '!=', 'day')]}"
|
||||
/>
|
||||
<field
|
||||
name="weekday"
|
||||
nolabel="1"
|
||||
attrs="{'required': [('month_by', '=', 'day'), ('rrule_type', '=', 'monthly')], 'invisible': [('month_by', '!=', 'day')]}"
|
||||
/>
|
||||
</div>
|
||||
</group>
|
||||
</group>
|
||||
<notebook>
|
||||
<page string="Description">
|
||||
<field name="description" />
|
||||
</page>
|
||||
</notebook>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
<record
|
||||
model="ir.actions.act_window"
|
||||
id="crm_salesperson_planner_visit_template_action"
|
||||
>
|
||||
<field name="name">Visit Templates</field>
|
||||
<field name="res_model">crm.salesperson.planner.visit.template</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="help" type="html">
|
||||
<p class="oe_view_nocontent_create">
|
||||
Create and plan commercial visit templates
|
||||
</p>
|
||||
</field>
|
||||
</record>
|
||||
</odoo>
|
||||
|
|
@ -0,0 +1,300 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!-- Copyright 2021 Sygel - Valentin Vinagre
|
||||
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -->
|
||||
<odoo>
|
||||
<record model="ir.ui.view" id="crm_salesperson_planner_visit_tree_view">
|
||||
<field name="name">CRM - Salesperson Planner Visit Tree</field>
|
||||
<field name="model">crm.salesperson.planner.visit</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree
|
||||
decoration-success="state == 'done'"
|
||||
decoration-info="state == 'confirm'"
|
||||
decoration-warning="state == 'incident'"
|
||||
decoration-muted="state == 'cancel'"
|
||||
>
|
||||
<field name="name" />
|
||||
<field name="sequence" />
|
||||
<field name="date" />
|
||||
<field name="partner_id" />
|
||||
<field name="user_id" />
|
||||
<field name="company_id" groups="base.group_multi_company" />
|
||||
<field name="state" />
|
||||
<button
|
||||
name="action_draft"
|
||||
type="object"
|
||||
attrs="{'invisible': [('state', 'not in', ['cancel','incident', 'done'])]}"
|
||||
icon="fa-undo"
|
||||
/>
|
||||
<button
|
||||
name="action_confirm"
|
||||
type="object"
|
||||
icon="fa-calendar text-success"
|
||||
attrs="{'invisible': [('state', '!=', 'draft')]}"
|
||||
/>
|
||||
<button
|
||||
name="action_done"
|
||||
type="object"
|
||||
icon="fa-check"
|
||||
attrs="{'invisible': [('state', '!=', 'confirm')]}"
|
||||
/>
|
||||
<button
|
||||
name="%(crm_salesperson_planner_visit_close_wiz_action)d"
|
||||
type="action"
|
||||
icon="fa-ban text-danger"
|
||||
attrs="{'invisible': [('state', 'in', ['cancel','incident', 'done'])]}"
|
||||
context="{'att_close_type':'cancel'}"
|
||||
title="Close Reasons"
|
||||
/>
|
||||
<button
|
||||
name="%(crm_salesperson_planner_visit_close_wiz_action)d"
|
||||
type="action"
|
||||
icon="fa-exclamation-triangle"
|
||||
attrs="{'invisible': [('state', '!=', 'confirm')]}"
|
||||
context="{'att_close_type':'incident'}"
|
||||
title="Close Reasons"
|
||||
/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
<record model="ir.ui.view" id="crm_salesperson_planner_visit_form_view">
|
||||
<field name="name">CRM - Salesperson Planner Visit Form</field>
|
||||
<field name="model">crm.salesperson.planner.visit</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Visit">
|
||||
<header>
|
||||
<button
|
||||
name="action_draft"
|
||||
id="action_draft"
|
||||
string="Draft"
|
||||
type="object"
|
||||
attrs="{'invisible': [('state', 'not in', ['cancel','incident', 'done'])]}"
|
||||
/>
|
||||
<button
|
||||
name="action_confirm"
|
||||
id="action_confirm"
|
||||
string="Confirm"
|
||||
class="btn-primary"
|
||||
type="object"
|
||||
attrs="{'invisible': [('state', '!=', 'draft')]}"
|
||||
/>
|
||||
<button
|
||||
name="action_done"
|
||||
id="action_done"
|
||||
string="Done"
|
||||
class="btn-primary"
|
||||
type="object"
|
||||
attrs="{'invisible': [('state', '!=', 'confirm')]}"
|
||||
/>
|
||||
<button
|
||||
name="%(crm_salesperson_planner_visit_close_wiz_action)d"
|
||||
id="action_cancel"
|
||||
string="Cancel"
|
||||
type="action"
|
||||
attrs="{'invisible': [('state', 'in', ['cancel','incident', 'done'])]}"
|
||||
context="{'att_close_type':'cancel'}"
|
||||
/>
|
||||
<button
|
||||
name="%(crm_salesperson_planner_visit_close_wiz_action)d"
|
||||
id="action_incident"
|
||||
string="Incident"
|
||||
type="action"
|
||||
attrs="{'invisible': [('state', '!=', 'confirm')]}"
|
||||
context="{'att_close_type':'incident'}"
|
||||
/>
|
||||
<field
|
||||
name="state"
|
||||
widget="statusbar"
|
||||
statusbar_visible="draft,confirm,done,cancel"
|
||||
/>
|
||||
</header>
|
||||
<sheet string="Visit">
|
||||
<div class="oe_button_box" name="button_box">
|
||||
</div>
|
||||
<div class="oe_title">
|
||||
<h1>
|
||||
<field name="name" readonly="1" />
|
||||
</h1>
|
||||
</div>
|
||||
<group>
|
||||
<group>
|
||||
<field
|
||||
name="partner_id"
|
||||
widget="res_partner_many2one"
|
||||
context="{'res_partner_search_mode': 'customer', 'show_address': True, 'show_vat': True}"
|
||||
options="{"always_reload": True}"
|
||||
/>
|
||||
<field
|
||||
name="partner_phone"
|
||||
widget="phone"
|
||||
attrs="{'invisible': [('partner_id', '=', False)]}"
|
||||
/>
|
||||
<field
|
||||
name="partner_mobile"
|
||||
widget="phone"
|
||||
attrs="{'invisible': [('partner_id', '=', False)]}"
|
||||
/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="date" />
|
||||
<field name="calendar_event_id" readonly="1" />
|
||||
<field name="sequence" />
|
||||
<field name="user_id" />
|
||||
<field
|
||||
name="company_id"
|
||||
groups="base.group_multi_company"
|
||||
/>
|
||||
</group>
|
||||
</group>
|
||||
<notebook>
|
||||
<page
|
||||
string="Close Info"
|
||||
attrs="{'invisible': [('state', 'not in', ['cancel', 'incident'])]}"
|
||||
>
|
||||
<group>
|
||||
<field
|
||||
name="close_reason_id"
|
||||
readonly="1"
|
||||
options="{'no_edit': True, 'no_open': True}"
|
||||
/>
|
||||
<field name="close_reason_notes" readonly="1" />
|
||||
<field
|
||||
name="close_reason_image"
|
||||
widget="image"
|
||||
readonly="1"
|
||||
attrs="{'invisible': [('close_reason_image', '=', False)]}"
|
||||
/>
|
||||
</group>
|
||||
</page>
|
||||
<page string="Internal Notes">
|
||||
<field
|
||||
name="description"
|
||||
placeholder="Add a description..."
|
||||
/>
|
||||
</page>
|
||||
<page string="Opportunities">
|
||||
<group>
|
||||
<field
|
||||
name="opportunity_ids"
|
||||
nolabel="1"
|
||||
options="{'no_create': True}"
|
||||
/>
|
||||
</group>
|
||||
</page>
|
||||
</notebook>
|
||||
</sheet>
|
||||
<div class="oe_chatter">
|
||||
<field
|
||||
name="message_follower_ids"
|
||||
widget="mail_followers"
|
||||
groups="base.group_user"
|
||||
/>
|
||||
<field name="activity_ids" widget="mail_activity" />
|
||||
<field name="message_ids" widget="mail_thread" />
|
||||
</div>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
<record id="crm_salesperson_planner_visit_filter" model="ir.ui.view">
|
||||
<field name="name">CRM - Salesperson Planner Visit Search</field>
|
||||
<field name="model">crm.salesperson.planner.visit</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Search Visits">
|
||||
<field name="name" />
|
||||
<field
|
||||
name="partner_id"
|
||||
filter_domain="[('partner_id','child_of',self)]"
|
||||
/>
|
||||
<field name="user_id" />
|
||||
<field name="date" />
|
||||
<field name="opportunity_ids" />
|
||||
<separator />
|
||||
<filter
|
||||
string="My Visits"
|
||||
name="assigned_to_me"
|
||||
domain="[('user_id', '=', uid)]"
|
||||
help="Visits that are assigned to me"
|
||||
/>
|
||||
<separator orientation="vertical" />
|
||||
<filter
|
||||
string="Late Visits"
|
||||
name="visits_overdue"
|
||||
domain="[('date', '<', context_today().strftime('%Y-%m-%d'))]"
|
||||
/>
|
||||
<filter
|
||||
string="Today Visits"
|
||||
name="visits_today"
|
||||
domain="[('date', '=', context_today().strftime('%Y-%m-%d'))]"
|
||||
/>
|
||||
<filter
|
||||
string="Future Visits"
|
||||
name="visits_upcoming_all"
|
||||
domain="[('date', '>', context_today().strftime('%Y-%m-%d'))]"
|
||||
/>
|
||||
<group expand="0" name="visits" string="Group By">
|
||||
<filter
|
||||
string="Salesperson"
|
||||
name="salesperson"
|
||||
context="{'group_by': 'user_id'}"
|
||||
/>
|
||||
<filter
|
||||
string="Partner"
|
||||
name="partner"
|
||||
context="{'group_by': 'partner_id'}"
|
||||
/>
|
||||
<filter
|
||||
string="State"
|
||||
name="state"
|
||||
context="{'group_by': 'state'}"
|
||||
/>
|
||||
<filter
|
||||
string="Company"
|
||||
name="company"
|
||||
context="{'group_by':'company_id'}"
|
||||
groups="base.group_multi_company"
|
||||
/>
|
||||
<separator orientation="vertical" />
|
||||
<filter
|
||||
string="Visit by Date"
|
||||
context="{'group_by':'date'}"
|
||||
name="date"
|
||||
/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
<record model="ir.actions.act_window" id="my_crm_salesperson_planner_visit_action">
|
||||
<field name="name">Visits</field>
|
||||
<field name="res_model">crm.salesperson.planner.visit</field>
|
||||
<field name="view_mode">tree,form,pivot</field>
|
||||
<field name="context">{
|
||||
'search_default_visits_today':1,
|
||||
}</field>
|
||||
<field name="domain">[('user_id', '=', uid)]</field>
|
||||
<field
|
||||
name="search_view_id"
|
||||
ref="crm_salesperson_planner.crm_salesperson_planner_visit_filter"
|
||||
/>
|
||||
<field name="help" type="html">
|
||||
<p class="oe_view_nocontent_create">
|
||||
Record and track my sales commercial visits.
|
||||
</p>
|
||||
</field>
|
||||
</record>
|
||||
<record model="ir.actions.act_window" id="all_crm_salesperson_planner_visit_action">
|
||||
<field name="name">Visits</field>
|
||||
<field name="res_model">crm.salesperson.planner.visit</field>
|
||||
<field name="view_mode">tree,form,pivot</field>
|
||||
<field name="context">{
|
||||
'search_default_salesperson':1,
|
||||
}</field>
|
||||
<field
|
||||
name="search_view_id"
|
||||
ref="crm_salesperson_planner.crm_salesperson_planner_visit_filter"
|
||||
/>
|
||||
<field name="help" type="html">
|
||||
<p class="oe_view_nocontent_create">
|
||||
Record and track all sales commercial visits.
|
||||
</p>
|
||||
</field>
|
||||
</record>
|
||||
</odoo>
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!-- Copyright 2021 Sygel - Valentin Vinagre
|
||||
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -->
|
||||
<odoo>
|
||||
<record id="partner_view_crm_salesperson_planner" model="ir.ui.view">
|
||||
<field name="name">partner.view.crm.salesperson.planner</field>
|
||||
<field name="model">res.partner</field>
|
||||
<field name="inherit_id" ref="base.view_partner_form" />
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//div[@name='button_box']" position="inside">
|
||||
<button
|
||||
class="oe_stat_button"
|
||||
type="object"
|
||||
name="action_view_salesperson_planner_visit"
|
||||
icon="fa-building"
|
||||
groups="sales_team.group_sale_salesman"
|
||||
context="{'default_partner_id': active_id}"
|
||||
>
|
||||
<field
|
||||
string="Sales Visits"
|
||||
name="salesperson_planner_visit_count"
|
||||
widget="statinfo"
|
||||
/>
|
||||
</button>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
</odoo>
|
||||
Loading…
Add table
Add a link
Reference in a new issue