mirror of
https://github.com/bringout/oca-ocb-sale.git
synced 2026-04-27 01:52:02 +02:00
Initial commit: Sale packages
This commit is contained in:
commit
14e3d26998
6469 changed files with 2479670 additions and 0 deletions
|
|
@ -0,0 +1,52 @@
|
|||
<?xml version="1.0"?>
|
||||
<odoo>
|
||||
<!--
|
||||
crm.tag views
|
||||
-->
|
||||
<record id="sales_team_crm_tag_view_form" model="ir.ui.view">
|
||||
<field name="name">sales.team.crm.tag.view.form</field>
|
||||
<field name="model">crm.tag</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Tags">
|
||||
<sheet>
|
||||
<div class="oe_title">
|
||||
<label for="name"/>
|
||||
<h1>
|
||||
<field name="name" placeholder="e.g. Services"/>
|
||||
</h1>
|
||||
</div>
|
||||
<group>
|
||||
<group>
|
||||
<field name="color" required="True" widget="color_picker"/>
|
||||
</group>
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="sales_team_crm_tag_view_tree" model="ir.ui.view">
|
||||
<field name="name">sales.team.crm.tag.view.tree</field>
|
||||
<field name="model">crm.tag</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Tags" editable="bottom" sample="1">
|
||||
<field name="name"/>
|
||||
<field name="color" widget="color_picker" />
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Tags Configuration -->
|
||||
<record id="sales_team_crm_tag_action" model="ir.actions.act_window">
|
||||
<field name="name">Tags</field>
|
||||
<field name="res_model">crm.tag</field>
|
||||
<field name="view_id" ref="sales_team_crm_tag_view_tree"/>
|
||||
<field name="help" type="html">
|
||||
<p class="o_view_nocontent_smiling_face">
|
||||
Create CRM Tags
|
||||
</p><p>
|
||||
Use Tags to manage and track your Opportunities (product structure, sales type, ...)
|
||||
</p>
|
||||
</field>
|
||||
</record>
|
||||
</odoo>
|
||||
|
|
@ -0,0 +1,164 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo><data>
|
||||
|
||||
<record id="crm_team_member_view_search" model="ir.ui.view">
|
||||
<field name="name">crm.team.member.view.search</field>
|
||||
<field name="model">crm.team.member</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Sales Person">
|
||||
<field name="user_id"/>
|
||||
<field name="crm_team_id"/>
|
||||
<separator/>
|
||||
<filter name="archived" string="Archived" domain="[('active', '=', False)]"/>
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="Sales Team" name="groupby_crm_team_id" context="{'group_by': 'crm_team_id'}"/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="crm_team_member_view_tree" model="ir.ui.view">
|
||||
<field name="name">crm.team.member.view.tree</field>
|
||||
<field name="model">crm.team.member</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Sales Men" sample="1">
|
||||
<field name="crm_team_id"/>
|
||||
<field name="user_id"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="crm_team_member_view_tree_from_team" model="ir.ui.view">
|
||||
<field name="name">crm.team.member.view.tree.from.team</field>
|
||||
<field name="model">crm.team.member</field>
|
||||
<field name="inherit_id" ref="sales_team.crm_team_member_view_tree"/>
|
||||
<field name="mode">primary</field>
|
||||
<field name="priority">32</field>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//field[@name='crm_team_id']" position="replace">
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="crm_team_member_view_kanban" model="ir.ui.view">
|
||||
<field name="name">crm.team.member.view.kanban</field>
|
||||
<field name="model">crm.team.member</field>
|
||||
<field name="arch" type="xml">
|
||||
<kanban quick_create="false"
|
||||
group_create="0"
|
||||
records_draggable="0"
|
||||
sample="1"
|
||||
default_group_by="crm_team_id"
|
||||
class="o_crm_team_member_kanban">
|
||||
<field name="user_id"/>
|
||||
<field name="active"/>
|
||||
<templates>
|
||||
<t t-name="kanban-box">
|
||||
<div class="oe_kanban_card oe_kanban_global_click">
|
||||
<div class="ribbon ribbon-top-right" attrs="{'invisible': [('active', '=', True)]}">
|
||||
<span class="bg-odoo">Archived</span>
|
||||
</div>
|
||||
<div class="o_kanban_card_content d-flex">
|
||||
<div>
|
||||
<img t-att-src="kanban_image('res.users', 'avatar_128', record.user_id.raw_value)" class="o_kanban_image o_image_64_cover" alt="Avatar"/>
|
||||
</div>
|
||||
<div class="oe_kanban_details d-flex flex-column ms-3">
|
||||
<strong class="o_kanban_record_title oe_partner_heading"><field name="user_id"/></strong>
|
||||
<a type="open" class="nav-link p-0"><field name="crm_team_id"/></a>
|
||||
<div class="d-flex align-items-baseline text-break">
|
||||
<i class="fa fa-envelope me-1" role="img" aria-label="Email" title="Email"/><field name="email"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</t>
|
||||
</templates>
|
||||
</kanban>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="crm_team_member_view_kanban_from_team" model="ir.ui.view">
|
||||
<field name="name">crm.team.member.view.kanban.from.team</field>
|
||||
<field name="model">crm.team.member</field>
|
||||
<field name="inherit_id" ref="sales_team.crm_team_member_view_kanban"/>
|
||||
<field name="mode">primary</field>
|
||||
<field name="priority">32</field>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//field[@name='crm_team_id']" position="replace">
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="crm_team_member_view_form" model="ir.ui.view">
|
||||
<field name="name">crm.team.member.view.form</field>
|
||||
<field name="model">crm.team.member</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Sales Men">
|
||||
<field name="active" invisible="1"/>
|
||||
<field name="company_id" invisible="1"/>
|
||||
<field name="is_membership_multi" invisible="1"/>
|
||||
<field name="member_warning" invisible="1"/>
|
||||
<field name="user_in_teams_ids" invisible="1"/>
|
||||
<field name="user_company_ids" invisible="1"/>
|
||||
<sheet>
|
||||
<div class="alert alert-info text-center" role="alert"
|
||||
attrs="{'invisible': [('member_warning', '=', False)]}">
|
||||
<field name="member_warning"/>
|
||||
</div>
|
||||
<widget name="web_ribbon" title="Archived" bg_color="bg-danger" attrs="{'invisible': [('active', '=', True)]}"/>
|
||||
<field name="image_1920" widget='image' class="oe_avatar"
|
||||
attrs="{'invisible': [('user_id', '=', False)]}"
|
||||
options='{"preview_image": "image_128"}'/>
|
||||
<div class="oe_title">
|
||||
<label for="user_id" class="oe_edit_only"/>
|
||||
<h1 class="d-flex">
|
||||
<field name="user_id" class="flex-grow-1"
|
||||
options="{'no_quick_create': True}"/>
|
||||
</h1>
|
||||
</div>
|
||||
<group name="member_partner_info">
|
||||
<group name="group_owner">
|
||||
<field name="crm_team_id" kanban_view_ref="%(sales_team.crm_team_view_kanban)s"/>
|
||||
</group>
|
||||
<group name="group_user">
|
||||
<field name="company_id" attrs="{'invisible': [('user_id', '=', False)]}"
|
||||
groups="base.group_multi_company"/>
|
||||
<field name="email" attrs="{'invisible': [('user_id', '=', False)]}"/>
|
||||
<field name="mobile" attrs="{'invisible': [('user_id', '=', False)]}"/>
|
||||
<field name="phone" attrs="{'invisible': [('user_id', '=', False)]}"/>
|
||||
</group>
|
||||
</group>
|
||||
</sheet>
|
||||
<div class="oe_chatter">
|
||||
<field name="message_follower_ids"/>
|
||||
<field name="message_ids"/>
|
||||
</div>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="crm_team_member_view_form_from_team" model="ir.ui.view">
|
||||
<field name="name">crm.team.member.view.form.from.team</field>
|
||||
<field name="model">crm.team.member</field>
|
||||
<field name="inherit_id" ref="sales_team.crm_team_member_view_form"/>
|
||||
<field name="mode">primary</field>
|
||||
<field name="priority">32</field>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//group[@name='group_owner']" position="replace"/>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="crm_team_member_action" model="ir.actions.act_window">
|
||||
<field name="name">Team Members</field>
|
||||
<field name="res_model">crm.team.member</field>
|
||||
<field name="view_mode">kanban,tree,form</field>
|
||||
<field name="help" type="html">
|
||||
<p class="o_view_nocontent_smiling_face">
|
||||
Create a new salesman
|
||||
</p><p>
|
||||
Link salespersons to sales teams.
|
||||
</p>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
</data></odoo>
|
||||
|
|
@ -0,0 +1,267 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo><data>
|
||||
|
||||
<record id="crm_team_view_search" model="ir.ui.view">
|
||||
<field name="name">crm.team.view.search</field>
|
||||
<field name="model">crm.team</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Salesteams Search">
|
||||
<filter string="Archived" name="inactive" domain="[('active','=',False)]"/>
|
||||
<field name="name"/>
|
||||
<field name="user_id"/>
|
||||
<field name="member_ids"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<filter string="Team Leader" name="team_leader" domain="[]" context="{'group_by': 'user_id'}"/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="crm_team_view_form" model="ir.ui.view">
|
||||
<field name="name">crm.team.form</field>
|
||||
<field name="model">crm.team</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Sales Team">
|
||||
<div class="alert alert-info text-center" role="alert"
|
||||
attrs="{'invisible': ['|', ('is_membership_multi', '=', True), ('member_warning', '=', False)]}">
|
||||
<field name="member_warning"/>
|
||||
</div>
|
||||
<sheet>
|
||||
<div class="oe_button_box" name="button_box"/>
|
||||
<widget name="web_ribbon" title="Archived" bg_color="bg-danger" attrs="{'invisible': [('active', '=', True)]}"/>
|
||||
<div class="oe_title">
|
||||
<label for="name" string="Sales Team"/>
|
||||
<h1>
|
||||
<field class="text-break" name="name" placeholder="e.g. North America"/>
|
||||
</h1>
|
||||
<div name="options_active"/>
|
||||
</div>
|
||||
<group>
|
||||
<group name="left" string="Team Details">
|
||||
<field name="active" invisible="1"/>
|
||||
<field name="sequence" invisible="1"/>
|
||||
<field name="is_membership_multi" invisible="1"/>
|
||||
<field name="user_id" widget="many2one_avatar_user" domain="[('share', '=', False)]"/>
|
||||
<field name="company_id" options="{'no_create': True}" groups="base.group_multi_company"/>
|
||||
<field name="currency_id" invisible="1"/>
|
||||
<field name="member_company_ids" invisible="1"/>
|
||||
</group>
|
||||
<group name="right">
|
||||
</group>
|
||||
</group>
|
||||
<notebook>
|
||||
<page string="Members" name="members_users">
|
||||
<field name="member_ids" mode="kanban"
|
||||
class="w-100">
|
||||
<kanban>
|
||||
<field name="id"/>
|
||||
<field name="name"/>
|
||||
<field name="email"/>
|
||||
<field name="avatar_128"/>
|
||||
<templates>
|
||||
<t t-name="kanban-box">
|
||||
<div class="oe_kanban_card oe_kanban_global_click">
|
||||
<div class="o_kanban_card_content d-flex">
|
||||
<div>
|
||||
<img t-att-src="kanban_image('res.users', 'avatar_128', record.id.raw_value)"
|
||||
class="o_kanban_image o_image_64_cover" alt="Avatar"/>
|
||||
</div>
|
||||
<div class="oe_kanban_details d-flex flex-column ms-3">
|
||||
<strong class="o_kanban_record_title oe_partner_heading"><field name="name"/></strong>
|
||||
<div class="d-flex align-items-baseline text-break">
|
||||
<i class="fa fa-envelope me-1" role="img" aria-label="Email" title="Email"/><field name="email"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</t>
|
||||
</templates>
|
||||
</kanban>
|
||||
</field>
|
||||
<field name="crm_team_member_ids" mode="kanban"
|
||||
class="w-100"
|
||||
attrs="{'invisible': ['|', ('is_membership_multi', '=', True), ('is_membership_multi', '=', False)]}"
|
||||
context="{
|
||||
'kanban_view_ref': 'sales_team.crm_team_member_view_kanban_from_team',
|
||||
'form_view_ref': 'sales_team.crm_team_member_view_form_from_team',
|
||||
'tree_view_ref': 'sales_team.crm_team_member_view_tree_from_team',
|
||||
'default_crm_team_id': active_id,
|
||||
}"/>
|
||||
</page>
|
||||
</notebook>
|
||||
</sheet>
|
||||
<div class="oe_chatter">
|
||||
<field name="message_follower_ids" help="Follow this salesteam to automatically track the events associated to users of this team."/>
|
||||
<field name="message_ids"/>
|
||||
</div>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- SALES TEAMS TREE VIEW + MUTI_EDIT -->
|
||||
<record id="crm_team_view_tree" model="ir.ui.view">
|
||||
<field name="name">crm.team.tree</field>
|
||||
<field name="model">crm.team</field>
|
||||
<field name="field_parent">child_ids</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Sales Team" sample="1" multi_edit="1">
|
||||
<field name="sequence" widget="handle"/>
|
||||
<field name="name" readonly="1"/>
|
||||
<field name="active" invisible="1"/>
|
||||
<field name="user_id" domain="[('share', '=', False)]" widget="many2one_avatar_user"/>
|
||||
<field name="company_id" groups="base.group_multi_company"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="crm_team_view_kanban" model="ir.ui.view">
|
||||
<field name="name">crm.team.view.kanban</field>
|
||||
<field name="model">crm.team</field>
|
||||
<field name="arch" type="xml">
|
||||
<kanban class="o_kanban_mobile" sample="1">
|
||||
<templates>
|
||||
<t t-name="kanban-box">
|
||||
<div t-attf-class="oe_kanban_content oe_kanban_global_click">
|
||||
<div class="row">
|
||||
<div class="col-6">
|
||||
<strong><field name="name"/></strong>
|
||||
</div>
|
||||
<div class="col-6">
|
||||
<span class="float-end"><field name="user_id"/></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</t>
|
||||
</templates>
|
||||
</kanban>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Case Teams Salesteams dashboard view -->
|
||||
<record id="crm_team_view_kanban_dashboard" model="ir.ui.view" >
|
||||
<field name="name">crm.team.view.kanban.dashboard</field>
|
||||
<field name="model">crm.team</field>
|
||||
<field name="priority">10</field>
|
||||
<field name="arch" type="xml">
|
||||
<kanban class="oe_background_grey o_kanban_dashboard o_crm_team_kanban" create="0" sample="1">
|
||||
<field name="name"/>
|
||||
<field name="user_id"/>
|
||||
<field name="member_ids"/>
|
||||
<field name="color"/>
|
||||
<field name="currency_id"/>
|
||||
<field name="is_favorite"/>
|
||||
<templates>
|
||||
<t t-name="kanban-box">
|
||||
<div t-attf-class="#{!selection_mode ? kanban_color(record.color.raw_value) : ''}">
|
||||
<div t-attf-class="o_kanban_card_header">
|
||||
<div class="o_kanban_card_header_title">
|
||||
<div class="o_primary o_text_overflow"><field name="name"/></div>
|
||||
</div>
|
||||
<div class="o_kanban_manage_button_section">
|
||||
<a class="o_kanban_manage_toggle_button" href="#"><i class="fa fa-ellipsis-v" role="img" aria-label="Manage" title="Manage"/></a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="container o_kanban_card_content">
|
||||
<div class="row o_kanban_card_upper_content">
|
||||
<div class="col-4 o_kanban_primary_left" name="to_replace_in_sale_crm">
|
||||
<button type="object" class="btn btn-primary" name="action_primary_channel_button"><field name="dashboard_button_name"/></button>
|
||||
</div>
|
||||
<div class="col-8 o_kanban_primary_right" style="padding-bottom:0;">
|
||||
<t name="first_options"/>
|
||||
<t name="second_options"/>
|
||||
<t name="third_options"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-12 o_kanban_primary_bottom">
|
||||
<t t-call="SalesTeamDashboardGraph"/>
|
||||
</div>
|
||||
</div>
|
||||
</div><div class="container o_kanban_card_manage_pane dropdown-menu" role="menu">
|
||||
<div class="row">
|
||||
<div class="col-4 o_kanban_card_manage_section o_kanban_manage_view">
|
||||
<div role="menuitem" class="o_kanban_card_manage_title">
|
||||
<span>View</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-4 o_kanban_card_manage_section o_kanban_manage_new">
|
||||
<div role="menuitem" class="o_kanban_card_manage_title">
|
||||
<span>New</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-4 o_kanban_card_manage_section o_kanban_manage_reports">
|
||||
<div role="menuitem" class="o_kanban_card_manage_title">
|
||||
<span>Reporting</span>
|
||||
</div>
|
||||
<div name="o_team_kanban_report_separator"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div t-if="widget.editable" class="o_kanban_card_manage_settings row" groups="sales_team.group_sale_manager">
|
||||
<div role="menuitem" aria-haspopup="true" class="col-8">
|
||||
<ul class="oe_kanban_colorpicker" data-field="color" role="menu"/>
|
||||
</div>
|
||||
<div role="menuitem" class="col-4">
|
||||
<a class="dropdown-item" type="edit">Configuration</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</t>
|
||||
<t t-name="SalesTeamDashboardGraph">
|
||||
<div t-if="record.dashboard_graph_data.raw_value" class="o_sales_team_kanban_graph_section">
|
||||
<field name="dashboard_graph_data" widget="dashboard_graph" t-att-graph_type="'bar'"/>
|
||||
</div>
|
||||
</t>
|
||||
</templates>
|
||||
</kanban>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Sales Teams Actions -->
|
||||
<record id="crm_team_action_sales" model="ir.actions.act_window">
|
||||
<field name="name">Sales Teams</field>
|
||||
<field name="res_model">crm.team</field>
|
||||
<field name="view_mode">kanban,form</field>
|
||||
<field name="context">{'in_sales_app': True}</field>
|
||||
<field name="help" type="html">
|
||||
<p class="o_view_nocontent_smiling_face">
|
||||
Define a new sales team
|
||||
</p><p>
|
||||
Use Sales Teams to organize your sales departments.
|
||||
Each team will work with a separate pipeline.
|
||||
</p>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="crm_team_action_pipeline" model="ir.actions.act_window">
|
||||
<field name="name">Teams</field>
|
||||
<field name="res_model">crm.team</field>
|
||||
<field name="view_mode">kanban,form</field>
|
||||
<field name="context">{}</field>
|
||||
<field name="help" type="html">
|
||||
<p class="o_view_nocontent_smiling_face">
|
||||
Define a new sales team
|
||||
</p><p>
|
||||
Use Sales Teams to organize your sales departments.
|
||||
Each team will work with a separate pipeline.
|
||||
</p>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="crm_team_action_config" model="ir.actions.act_window">
|
||||
<field name="name">Sales Teams</field>
|
||||
<field name="res_model">crm.team</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="context">{}</field>
|
||||
<field name="help" type="html">
|
||||
<p class="o_view_nocontent_smiling_face">
|
||||
Create a Sales Team
|
||||
</p><p>
|
||||
Use Sales Teams to organize your sales departments and draw up reports.
|
||||
</p>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</odoo>
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<record id="mail_activity_type_action_config_sales" model="ir.actions.act_window">
|
||||
<field name="name">Activity Types</field>
|
||||
<field name="res_model">mail.activity.type</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="domain">['|', ('res_model', '=', False), ('res_model', '=', 'res.partner')]</field>
|
||||
<field name="help" type="html">
|
||||
<p class="o_view_nocontent_smiling_face">
|
||||
Create an Activity Type
|
||||
</p><p>
|
||||
Those represent the different categories of things you have to do (e.g. "Call" or "Prepare meeting").
|
||||
</p>
|
||||
</field>
|
||||
</record>
|
||||
</odoo>
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
<?xml version="1.0"?>
|
||||
<odoo>
|
||||
<record id="res_partner_view_team" model="ir.ui.view">
|
||||
<field name="name">res.partner.view.team</field>
|
||||
<field name="model">res.partner</field>
|
||||
<field name="inherit_id" ref="base.view_partner_form" />
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//page[@name='sales_purchases']//field[@name='user_id']" position="after">
|
||||
<field name="team_id" invisible="1"/>
|
||||
<field name="team_id" groups="base.group_no_one" kanban_view_ref="%(sales_team.crm_team_view_kanban)s"/>
|
||||
</xpath>
|
||||
<field name="parent_id" position="attributes">
|
||||
<attribute name="context">{'default_is_company': True, 'show_vat': True, 'default_user_id': user_id, 'default_team_id': team_id}</attribute>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
</odoo>
|
||||
Loading…
Add table
Add a link
Reference in a new issue