1 <?xml version="1.0" encoding="utf-8"?>
8 groups="base.group_sale_salesman"
11 <menuitem id="base.menu_sales" parent="base.menu_base_partner" name="Sales" sequence="1" />
12 <menuitem id="menu_base_config" parent="menu_base_partner" name="Configuration" sequence="30" groups="group_system"/>
13 <menuitem id="menu_config_address_book" parent="menu_base_config" name="Contacts" sequence="4" groups="group_system"/>
15 <!-- Partner Titles -->
16 <record id="view_partner_title_tree" model="ir.ui.view">
17 <field name="name">res.partner.title.tree</field>
18 <field name="model">res.partner.title</field>
19 <field name="arch" type="xml">
20 <tree string="Partner Titles">
22 <field name="shortcut"/>
26 <record id="view_partner_title_form" model="ir.ui.view">
27 <field name="name">res.partner.title.form</field>
28 <field name="model">res.partner.title</field>
29 <field name="arch" type="xml">
30 <form string="Partner Titles">
33 <field name="shortcut"/>
40 <record id="action_partner_title" model="ir.actions.act_window">
41 <field name="name">Titles</field>
42 <field name="type">ir.actions.act_window</field>
43 <field name="res_model">res.partner.title</field>
44 <field name="view_type">form</field>
46 <menuitem action="action_partner_title" id="menu_partner_title" parent="base.menu_base_config"/>
49 <record id="action_partner_title_partner" model="ir.actions.act_window">
50 <field name="name">Company Titles</field>
51 <field name="type">ir.actions.act_window</field>
52 <field name="res_model">res.partner.title</field>
53 <field name="view_type">form</field>
54 <field name="domain">[('domain','=','partner')]</field>
55 <field name="context">{'default_domain': 'partner'}</field>
56 <field name="help">Manage the partner titles you want to have available in your system. The partner titles is the legal status of the company: Private Limited, SA, etc.</field>
59 <menuitem action="action_partner_title_partner" id="menu_partner_title_partner" parent="menu_config_address_book" sequence="2" groups="base.group_no_one"/>
61 <record id="action_partner_title_contact" model="ir.actions.act_window">
62 <field name="name">Contact Titles</field>
63 <field name="type">ir.actions.act_window</field>
64 <field name="res_model">res.partner.title</field>
65 <field name="view_type">form</field>
66 <field name="domain">[('domain','=','contact')]</field>
67 <field name="context">{'default_domain': 'contact'}</field>
68 <field name="help">Manage the contact titles you want to have available in your system and the way you want to print them in letters and other documents. Some example: Mr., Mrs. </field>
71 <menuitem action="action_partner_title_contact" id="menu_partner_title_contact" name="Contact Titles" parent="menu_config_address_book" sequence="3" groups="base.group_no_one"/>
74 <record id="view_partner_tree" model="ir.ui.view">
75 <field name="name">res.partner.tree</field>
76 <field name="model">res.partner</field>
77 <field eval="8" name="priority"/>
78 <field name="arch" type="xml">
79 <tree string="Contacts">
80 <field name="display_name"/>
81 <field name="function" invisible="1"/>
84 <field name="user_id" invisible="1"/>
85 <field name="is_company" invisible="1"/>
86 <field name="country_id" invisible="1"/>
87 <field name="parent_id" invisible="1"/>
92 <record id="view_partner_simple_form" model="ir.ui.view">
93 <field name="name">res.partner.simplified.form</field>
94 <field name="model">res.partner</field>
95 <field name="arch" type="xml">
96 <form string="Contact">
97 <field name="image" widget='image' class="oe_avatar oe_left" options='{"preview_image": "image_medium"}'/>
98 <div class="oe_title">
99 <div class="oe_edit_only">
100 <label for="name"/> (
101 <field name="is_company" on_change="onchange_type(is_company)" class="oe_inline"/> <label for="is_company" string="Is a Company?"/>)
104 <field name="name" default_focus="1" placeholder="Name" />
106 <field name="parent_id"
107 placeholder="Company"
108 domain="[('is_company', '=', True)]" context="{'default_is_company': True}"
109 attrs="{'invisible': [('is_company','=', True)]}"/>
112 <field name="category_id" widget="many2many_tags" placeholder="Tags..."/>
113 <field name="function" placeholder="e.g. Sales Director"/>
114 <field name="user_ids" invisible="1"/>
115 <field name="email" widget="email" required="context.get('force_email', False)" attrs="{'required': [('user_ids','!=', [])]}"/>
116 <field name="phone"/>
117 <field name="mobile"/>
123 <record id="view_partner_form" model="ir.ui.view">
124 <field name="name">res.partner.form</field>
125 <field name="model">res.partner</field>
126 <field eval="1" name="priority"/>
127 <field name="arch" type="xml">
128 <form string="Partners">
130 <field name="image" widget='image' class="oe_left oe_avatar" options='{"preview_image": "image_medium", "size": [90, 90]}'/>
131 <div class="oe_title oe_left">
132 <div class="oe_edit_only">
133 <label for="name"/> (
134 <field name="is_company" on_change="onchange_type(is_company)" class="oe_inline"/> <label for="is_company" string="Is a Company?"/>)
137 <field name="name" default_focus="1" placeholder="Name" />
139 <field name="parent_id"
140 placeholder="Company"
141 domain="[('is_company', '=', True)]" context="{'default_is_company': True, 'default_supplier': supplier, 'default_customer': customer}"
142 attrs="{'invisible': [('is_company','=', True),('parent_id', '=', False)]}"
143 on_change="onchange_address(use_parent_address, parent_id)"/>
144 <field name="category_id" widget="many2many_tags" placeholder="Tags..."/>
146 <div class="oe_right oe_button_box" name="buttons"> </div>
150 <label for="type" attrs="{'invisible': [('parent_id','=', False)]}" groups="base.group_no_one"/>
151 <div attrs="{'invisible': [('parent_id','=', False)]}" name="div_type" groups="base.group_no_one">
152 <field class="oe_inline"
156 <label for="street" string="Address"/>
158 <div class="oe_edit_only">
159 <field name="use_parent_address" class="oe_inline"
160 on_change="onchange_address(use_parent_address, parent_id)"
161 attrs="{'invisible': ['|', ('is_company', '=', True),('parent_id', '=', False)]}"/>
162 <label for="use_parent_address" attrs="{'invisible': ['|', ('is_company', '=', True), ('parent_id', '=', False)]}"/>
164 <button name="open_parent" type="object" string="(edit company address)" class="oe_link oe_edit_only"
165 attrs="{'invisible': ['|',('parent_id','=', False),('use_parent_address','=',False)]}"/>
166 <field name="street" placeholder="Street..." attrs="{'readonly': [('use_parent_address','=',True)]}"/>
167 <field name="street2" attrs="{'readonly': [('use_parent_address','=',True)]}"/>
168 <div class="address_format">
169 <field name="city" placeholder="City" style="width: 40%%" attrs="{'readonly': [('use_parent_address','=',True)]}"/>
170 <field name="state_id" class="oe_no_button" placeholder="State" style="width: 37%%" options='{"no_open": True}' on_change="onchange_state(state_id)" attrs="{'readonly': [('use_parent_address','=',True)]}"/>
171 <field name="zip" placeholder="ZIP" style="width: 20%%" attrs="{'readonly': [('use_parent_address','=',True)]}"/>
173 <field name="country_id" placeholder="Country" class="oe_no_button" options='{"no_open": True}' attrs="{'readonly': [('use_parent_address','=',True)]}"/>
175 <field name="website" widget="url" placeholder="e.g. www.odoo.com"/>
178 <field name="function" placeholder="e.g. Sales Director"
179 attrs="{'invisible': [('is_company','=', True)]}"/>
180 <field name="phone" placeholder="e.g. +32.81.81.37.00"/>
181 <field name="mobile"/>
183 <field name="user_ids" invisible="1"/>
184 <field name="email" widget="email" attrs="{'required': [('user_ids','!=', [])]}"/>
185 <field name="title" options='{"no_open": True}'/>
189 <notebook colspan="4">
190 <page string="Contacts" attrs="{'invisible': [('is_company','=',False), ('child_ids', '=', [])]}" autofocus="autofocus">
191 <field name="child_ids" mode="kanban" context="{'default_parent_id': active_id, 'default_street': street, 'default_street2': street2, 'default_city': city, 'default_state_id': state_id, 'default_zip': zip, 'default_country_id': country_id, 'default_supplier': supplier, 'default_customer': customer, 'default_use_parent_address': True}">
193 <field name="color"/>
195 <field name="title"/>
196 <field name="email"/>
197 <field name="parent_id"/>
198 <field name="is_company"/>
199 <field name="function"/>
200 <field name="phone"/>
201 <field name="street"/>
202 <field name="street2"/>
205 <field name="country_id"/>
206 <field name="mobile"/>
208 <field name="state_id"/>
209 <field name="has_image"/>
211 <t t-name="kanban-box">
212 <t t-set="color" t-value="kanban_color(record.color.raw_value)"/>
213 <div t-att-class="color + (record.title.raw_value == 1 ? ' oe_kanban_color_alert' : '')" style="position: relative">
214 <a t-if="! read_only_mode" type="delete" style="position: absolute; right: 0; padding: 4px; diplay: inline-block">X</a>
215 <div class="oe_module_vignette">
216 <a type="open" class="col-md-2">
217 <t t-if="record.has_image.raw_value === true">
218 <img t-att-src="kanban_image('res.partner', 'image', record.id.value, {'preview_image': 'image_small'})" class="oe_avatar oe_kanban_avatar_smallbox"/>
220 <t t-if="record.image and record.image.raw_value !== false">
221 <img t-att-src="'data:image/png;base64,'+record.image.raw_value" class="oe_avatar oe_kanban_avatar_smallbox"/>
223 <t t-if="record.has_image.raw_value === false and (!record.image or record.image.raw_value === false)">
224 <t t-if="record.is_company.raw_value === true">
225 <img t-att-src='_s + "/base/static/src/img/company_image.png"' class="oe_kanban_image oe_kanban_avatar_smallbox"/>
227 <t t-if="record.is_company.raw_value === false">
228 <img t-att-src='_s + "/base/static/src/img/avatar.png"' class="oe_kanban_image oe_kanban_avatar_smallbox"/>
232 <div class="oe_module_desc">
233 <div class="oe_kanban_box_content oe_kanban_color_bglight oe_kanban_color_border">
234 <div class="col-md-12">
236 <h4><a type="open"><field name="name"/></a></h4>
237 <i><div t-if="record.function.raw_value">
238 <field name="function"/></div></i>
239 <div><a t-if="record.email.raw_value" title="Mail" t-att-href="'mailto:'+record.email.value">
240 <field name="email"/>
242 <div t-if="record.phone.raw_value">Phone: <field name="phone"/></div>
243 <div t-if="record.mobile.raw_value">Mobile: <field name="mobile"/></div>
244 <div t-if="record.fax.raw_value">Fax: <field name="fax"/></div>
254 <form string="Contact">
256 <field name="image" widget='image' class="oe_avatar oe_left" options='{"preview_image": "image_medium"}'/>
257 <div class="oe_title">
258 <label for="name" class="oe_edit_only"/>
259 <h1><field name="name" style="width: 70%%"/></h1>
260 <field name="category_id" widget="many2many_tags" placeholder="Tags..." style="width: 70%%"/>
263 <field name="function" placeholder="e.g. Sales Director"/>
264 <field name="email"/>
265 <field name="phone"/>
266 <field name="mobile"/>
267 <field name="title"/>
270 <field name="use_parent_address"/><label for="use_parent_address"/>
273 <label for="type" groups="base.group_no_one"/>
274 <div name="contact_div_type" groups="base.group_no_one">
275 <field class="oe_inline" name="type"/>
277 <label for="street" string="Address" attrs="{'invisible': [('use_parent_address','=', True)]}"/>
278 <div attrs="{'invisible': [('use_parent_address','=', True)]}" name="div_address">
279 <field name="street" placeholder="Street..."/>
280 <field name="street2"/>
281 <div class="address_format">
282 <field name="city" placeholder="City" style="width: 40%%"/>
283 <field name="state_id" class="oe_no_button" placeholder="State" style="width: 37%%" options='{"no_open": True}' on_change="onchange_state(state_id)"/>
284 <field name="zip" placeholder="ZIP" style="width: 20%%"/>
286 <field name="country_id" placeholder="Country" class="oe_no_button" options='{"no_open": True}'/>
289 <field name="supplier" invisible="True"/>
290 <field name="customer" invisible="True"/>
295 <page name='internal_notes' string="Internal Notes">
296 <field name="comment" placeholder="Put an internal note..."/>
298 <page name='sales_purchases' string="Sales & Purchases">
299 <group name="container_row_1">
305 <field name="company_id" groups="base.group_multi_company" widget="selection"/>
306 <field name="active"/>
309 <group name="container_row_2">
310 <group string="Sale" name="sale">
311 <field name="customer"/>
312 <field name="user_id"
313 context="{'default_groups_ref': ['base.group_partner_manager']}"/>
315 <group string="Purchase" name="purchase">
316 <field name="supplier"/>
319 <group name="container_row_3">
320 <group name="container_left"/>
321 <group name="container_right"/>
330 <record id="view_res_partner_filter" model="ir.ui.view">
331 <field name="name">res.partner.select</field>
332 <field name="model">res.partner</field>
333 <field name="arch" type="xml">
334 <search string="Search Partner">
336 filter_domain="['|','|',('display_name','ilike',self),('ref','=',self),('email','ilike',self)]"/>
337 <filter help="My Partners" icon="terp-personal+" domain="[('user_id','=',uid)]"/>
339 <filter string="Persons" name="type_person" domain="[('is_company','=',0)]"/>
340 <filter string="Companies" name="type_company" domain="[('is_company','=',1)]"/>
342 <filter string="Customers" name="customer" domain="[('customer','=',1)]" help="Customer Partners"/>
343 <filter string="Suppliers" name="supplier" domain="[('supplier','=',1)]" help="Supplier Partners"/>
345 <field name="category_id" string="Tag" filter_domain="[('category_id','ilike', self)]"/>
346 <field name="user_id"/>
347 <field name="parent_id" domain="[('is_company','=',1)]" operator="child_of"/>
348 <group expand="0" string="Group By">
349 <filter string="Salesperson" icon="terp-personal" domain="[]" context="{'group_by' : 'user_id'}" />
350 <filter string="Company" context="{'group_by': 'parent_id'}"/>
351 <filter string="Country" context="{'group_by': 'country_id'}"/>
357 <!-- Partner Kanban View -->
358 <record model="ir.ui.view" id="res_partner_kanban_view">
359 <field name="name">res.partner.kanban</field>
360 <field name="model">res.partner</field>
361 <field name="arch" type="xml">
363 <field name="color"/>
364 <field name="display_name"/>
365 <field name="title"/>
366 <field name="email"/>
367 <field name="parent_id"/>
368 <field name="is_company"/>
369 <field name="function"/>
370 <field name="phone"/>
371 <field name="street"/>
372 <field name="street2"/>
375 <field name="country_id"/>
376 <field name="mobile"/>
377 <field name="state_id"/>
378 <field name="category_id"/>
379 <field name="has_image"/>
381 <t t-name="kanban-box">
382 <div class="oe_kanban_vignette oe_semantic_html_override">
384 <t t-if="record.has_image.raw_value === true">
385 <img t-att-src="kanban_image('res.partner', 'image_small', record.id.value)" class="oe_kanban_image"/>
387 <t t-if="record.has_image.raw_value === false">
388 <t t-if="record.is_company.raw_value === true">
389 <img t-att-src='_s + "/base/static/src/img/company_image.png"' class="oe_kanban_image"/>
391 <t t-if="record.is_company.raw_value === false">
392 <img t-att-src='_s + "/base/static/src/img/avatar.png"' class="oe_kanban_image"/>
396 <div class="oe_kanban_details">
397 <h4 class="oe_partner_heading"><a type="open"><field name="display_name"/></a></h4>
398 <div class="oe_kanban_partner_categories"/>
399 <div class="oe_kanban_partner_links"/>
401 <li t-if="record.parent_id.raw_value and !record.function.raw_value"><field name="parent_id"/></li>
402 <li t-if="!record.parent_id.raw_value and record.function.raw_value"><field name="function"/></li>
403 <li t-if="record.parent_id.raw_value and record.function.raw_value"><field name="function"/> at <field name="parent_id"/></li>
404 <li t-if="record.city.raw_value and !record.country_id.raw_value"><field name="city"/></li>
405 <li t-if="!record.city.raw_value and record.country_id.raw_value"><field name="country_id"/></li>
406 <li t-if="record.city.raw_value and record.country_id.raw_value"><field name="city"/>, <field name="country_id"/></li>
407 <li t-if="record.email.raw_value"><a t-attf-href="mailto:#{record.email.raw_value}"><field name="email"/></a></li>
418 <record id="action_partner_form" model="ir.actions.act_window">
419 <field name="name">Customers</field>
420 <field name="type">ir.actions.act_window</field>
421 <field name="res_model">res.partner</field>
422 <field name="view_type">form</field>
423 <field name="view_mode">kanban,tree,form</field>
424 <field name="context">{"search_default_customer":1}</field>
425 <field name="search_view_id" ref="view_res_partner_filter"/>
426 <field name="help" type="html">
427 <p class="oe_view_nocontent_create">
428 Click to add a contact in your address book.
430 Odoo helps you easily track all activities related to
431 a customer; discussions, history of business opportunities,
436 <record id="action_partner_form_view1" model="ir.actions.act_window.view">
437 <field eval="0" name="sequence"/>
438 <field name="view_mode">kanban</field>
439 <field name="view_id" ref="res_partner_kanban_view"/>
440 <field name="act_window_id" ref="action_partner_form"/>
442 <record id="action_partner_form_view2" model="ir.actions.act_window.view">
443 <field eval="2" name="sequence"/>
444 <field name="view_mode">form</field>
445 <field name="view_id" ref="view_partner_form"/>
446 <field name="act_window_id" ref="action_partner_form"/>
448 <record id="action_partner_tree_view1" model="ir.actions.act_window.view">
449 <field name="sequence" eval="1"/>
450 <field name="view_mode">tree</field>
451 <field name="view_id" ref="view_partner_tree"/>
452 <field name="act_window_id" ref="action_partner_form"/>
454 <menuitem id="menu_partner_form" parent="base.menu_sales" action="action_partner_form" sequence="2"/>
456 <record id="action_partner_customer_form" model="ir.actions.act_window">
457 <field name="name">Customers</field>
458 <field name="type">ir.actions.act_window</field>
459 <field name="res_model">res.partner</field>
460 <field name="view_type">form</field>
461 <field name="view_mode">kanban,tree,form</field>
462 <field name="domain">[('customer','=',True)]</field>
463 <field name="context">{'default_customer':1, 'search_default_customer':1}</field>
464 <field name="filter" eval="True"/>
465 <field name="help" type="html">
466 <p class="oe_view_nocontent_create">
467 Click to add a contact in your address book.
469 Odoo helps you easily track all activities related to
470 a customer: discussions, history of business opportunities,
476 <record id="action_partner_supplier_form" model="ir.actions.act_window">
477 <field name="name">Suppliers</field>
478 <field name="type">ir.actions.act_window</field>
479 <field name="res_model">res.partner</field>
480 <field name="view_type">form</field>
481 <field name="domain">[]</field>
482 <field name="view_mode">kanban,tree,form</field>
483 <field name="context">{'search_default_supplier': 1,'default_customer': 0,'default_supplier': 1}</field>
484 <field name="filter" eval="True"/>
485 <field name="help" type="html">
486 <p class="oe_view_nocontent_create">
487 Click to add a contact in your address book.
489 Odoo helps you easily track all activities related to
490 a supplier: discussions, history of purchases,
496 <record id="action_partner_employee_form" model="ir.actions.act_window">
497 <field name="name">Employees</field>
498 <field name="type">ir.actions.act_window</field>
499 <field name="res_model">res.partner</field>
500 <field name="view_type">form</field>
501 <field name="domain">[('employee','=',1)]</field>
502 <field name="context">{'default_customer':0, 'default_supplier':0 , 'default_employee':1}</field>
503 <field name="filter" eval="True"/>
506 <record id="action_partner_other_form" model="ir.actions.act_window">
507 <field name="name">Other Partners</field>
508 <field name="type">ir.actions.act_window</field>
509 <field name="res_model">res.partner</field>
510 <field name="view_type">form</field>
511 <field name="domain">[('supplier','<>',1),('customer','<>',1)]</field>
512 <field name="filter" eval="True"/>
516 <record id="view_partner_category_form" model="ir.ui.view">
517 <field name="name">Partner Tags</field>
518 <field name="model">res.partner.category</field>
519 <field name="arch" type="xml">
520 <form string="Partner Tag">
523 <field name="active"/>
524 <field name="parent_id"/>
529 <record id="view_partner_category_list" model="ir.ui.view">
530 <field name="name">Partner Tags</field>
531 <field name="model">res.partner.category</field>
532 <field eval="6" name="priority"/>
533 <field name="arch" type="xml">
534 <tree string="Partner Tags">
535 <field name="complete_name"/>
539 <record id="view_partner_category_tree" model="ir.ui.view">
540 <field name="name">res.partner.category.tree</field>
541 <field name="model">res.partner.category</field>
542 <field name="field_parent">child_ids</field>
543 <field name="arch" type="xml">
544 <tree toolbar="1" string="Partner Tags">
550 <record id="action_partner_category" model="ir.actions.act_window">
551 <field name="name">Partners by Categories</field>
552 <field name="type">ir.actions.act_window</field>
553 <field name="res_model">res.partner.category</field>
554 <field name="view_type">tree</field>
555 <field name="view_id" ref="view_partner_category_tree"/>
556 <field name="domain">[('parent_id','=',False)]</field>
558 <menuitem action="action_partner_category" id="menu_partner_category_main" parent="base.menu_address_book" sequence="1"
559 groups="base.group_no_one"/>
562 <record id="action_partner_by_category" model="ir.actions.act_window">
563 <field name="name">Partner Tags</field>
564 <field name="res_model">res.partner</field>
565 <field name="view_type">form</field>
566 <field name="view_mode">tree,form</field>
567 <field name="domain">[('category_id','child_of', [active_id])]</field>
568 <field name="context">{'category_id':active_id}</field>
569 <field name="search_view_id" ref="view_res_partner_filter"/>
572 <record id="ir_action_partner_by_category" model="ir.values">
573 <field eval="'tree_but_open'" name="key2"/>
574 <field eval="'res.partner.category'" name="model"/>
575 <field name="name">Open partners</field>
576 <field eval="'ir.actions.act_window,%d'%action_partner_by_category" name="value"/>
579 <record id="action_partner_category_form" model="ir.actions.act_window">
580 <field name="name">Partner Tags</field>
581 <field name="type">ir.actions.act_window</field>
582 <field name="res_model">res.partner.category</field>
583 <field name="view_type">form</field>
584 <field name="help" type="html">
585 <p class="oe_view_nocontent_create">
586 Click to create a new partner tags.
588 Manage the partner tags to better classify them for tracking and analysis purposes.
589 A partner may have several tags and tags have a hierarchical structure: a partner with a tag has also the parent tags.
594 <menuitem action="action_partner_category_form" id="menu_partner_category_form" name="Tags" sequence="1" parent="menu_config_address_book" groups="base.group_no_one"/>