[IMP] base: add partner categories in partner kanban view
[odoo/odoo.git] / openerp / addons / base / res / res_partner_view.xml
1 <?xml version="1.0" encoding="utf-8"?>
2 <openerp>
3     <data>
4         <menuitem icon="terp-partner" id="menu_base_partner" name="Sales" sequence="0" groups="base.group_sale_salesman"/>
5             <menuitem id="base.menu_sales" parent="base.menu_base_partner" name="Sales" sequence="1" />
6             <menuitem id="menu_base_config" parent="menu_base_partner" name="Configuration" sequence="30" groups="group_system"/>
7                 <menuitem id="menu_config_address_book" parent="menu_base_config" name="Address Book" sequence="40" groups="group_system"/>
8
9         <!--
10           =======================
11           Partner Titles
12           =======================
13         -->
14         <record id="view_partner_title_tree" model="ir.ui.view">
15             <field name="name">res.partner.title.tree</field>
16             <field name="model">res.partner.title</field>
17             <field name="type">tree</field>
18             <field name="arch" type="xml">
19                 <tree string="Partner Titles">
20                     <field name="name"/>
21                     <field name="shortcut"/>
22                 </tree>
23             </field>
24         </record>
25         <record id="view_partner_title_form" model="ir.ui.view">
26             <field name="name">res.partner.title.form</field>
27             <field name="model">res.partner.title</field>
28             <field name="type">form</field>
29             <field name="arch" type="xml">
30                 <form string="Partner Titles" version="7.0">
31                     <group col="4">
32                         <field name="name"/>
33                         <field name="shortcut"/>
34                     </group>
35                 </form>
36             </field>
37         </record>
38
39         <!--
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>
45         </record>
46         <menuitem action="action_partner_title" id="menu_partner_title" parent="base.menu_base_config"/>
47         -->
48
49         <record id="action_partner_title_partner" model="ir.actions.act_window">
50             <field name="name">Partner 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>
57         </record>
58
59         <menuitem action="action_partner_title_partner" id="menu_partner_title_partner" parent="menu_config_address_book" sequence="2" groups="base.group_no_one"/>
60
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>
69         </record>
70
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"/>
72         <!--
73           =======================
74           Partner
75           =======================
76         -->
77         <record id="view_partner_tree" model="ir.ui.view">
78             <field name="name">res.partner.tree</field>
79             <field name="model">res.partner</field>
80             <field name="type">tree</field>
81             <field eval="8" name="priority"/>
82             <field name="arch" type="xml">
83                 <tree string="Contacts">
84                     <field name="name"/>
85                     <field name="function" invisible="1"/>
86                     <field name="phone"/>
87                     <field name="email"/>
88                     <field name="user_id" invisible="1"/>
89                     <field name="is_company" invisible="1"/>
90                     <field name="country" invisible="1"/>
91                     <field name="country_id" invisible="1"/>
92                 </tree>
93             </field>
94         </record>
95
96         <record id="view_partner_form" model="ir.ui.view">
97             <field name="name">res.partner.form</field>
98             <field name="model">res.partner</field>
99             <field name="type">form</field>
100             <field name="arch" type="xml">
101                 <form string="Partners" version="7.0">
102                 <sheet>
103                     <field name="photo" widget='image' class="oe_avatar oe_left"/>
104                     <div class="oe_title">
105                         <div class="oe_edit_only">
106                             <label for="name" string="Customer Name"/> 
107                             (<field name="is_company" on_change="onchange_type(is_company)" class="oe_inline"/> <label for="is_company" string="Is a Company?"/>)
108                         </div>
109                         <h1>
110                             <field name="name"/>
111                         </h1>
112                         <field name="category_id" widget="many2many_tags" placeholder="Select Tags"/>
113                     </div>
114                     <div class="oe_right oe_button_box" name="buttons"> </div>
115
116                     <group>
117                         <group>
118                             <field name="parent_id"
119                                 domain="[('is_company', '=', True)]" context="{'default_is_company': True}"
120                                 attrs="{'invisible': [('is_company','=', True)]}"
121                                 on_change="onchange_address(use_parent_address, parent_id)"/>, 
122                             <label for="type" attrs="{'invisible': [('parent_id','=', False)]}"/>
123                             <div attrs="{'invisible': [('parent_id','=', False)]}">
124                                 <field class="oe_inline"
125                                     name="type"/>
126                                 <label for="use_parent_address" class="oe_edit_only"/>
127                                 <field name="use_parent_address" class="oe_edit_only oe_inline"
128                                     on_change="onchange_address(use_parent_address, parent_id)"/>
129                             </div>
130
131                             <label for="street" string="Address"/>
132                             <div>
133                                 <field name="street" placeholder="Street..."/>
134                                 <field name="street2"/>
135                                 <div class="address_format">
136                                     <field name="city" placeholder="City" style="width: 40%%"/>
137                                     <field name="state_id" class="oe_no_button" placeholder="State" style="width: 24%%"/>
138                                     <field name="zip" placeholder="ZIP" style="width: 34%%"/>
139                                 </div>
140                                 <field name="country_id" placeholder="Country" class="oe_no_button"/>
141                             </div>
142                             <field name="website" widget="url" placeholder="e.g. www.openerp.com"/>
143                         </group>
144                         <group>
145                             <field name="function" placeholder="e.g. Sales Director"
146                                 attrs="{'invisible': [('is_company','=', True)]}"/>
147                             <field name="phone" placeholder="e.g. +32.81.81.37.00"/>
148                             <field name="mobile"/>
149                             <field name="fax"/>
150                             <field name="email" widget="email"/>
151                             <field name="title" domain="[('domain', '=', 'contact')]"
152                                 class="oe_no_button" attrs="{'invisible': [('is_company','=', True)]}"/>
153                         </group>
154                     </group>
155
156                     <notebook colspan="4">
157                         <page string="Contacts" attrs="{'invisible': [('is_company','=',False)]}">
158                             <field name="child_ids" context="{'default_parent_id': active_id}" mode="kanban">
159                                 <kanban>
160                                     <field name="color"/>
161                                     <field name="name"/>
162                                     <field name="title"/>
163                                     <field name="email"/>
164                                     <field name="parent_id"/>
165                                     <field name="is_company"/>
166                                     <field name="function"/>
167                                     <field name="phone"/>
168                                     <field name="street"/>
169                                     <field name="street2"/>
170                                     <field name="photo"/>
171                                     <field name="zip"/>
172                                     <field name="city"/>
173                                     <field name="country_id"/>
174                                     <field name="mobile"/>
175                                     <field name="state_id"/>
176                                     <templates>
177                                         <t t-name="kanban-box">
178                                             <t t-set="color" t-value="kanban_color(record.color.raw_value)"/>
179                                             <div t-att-class="color + (record.title.raw_value == 1 ? ' oe_kanban_color_alert' : '')" style="position: relative">
180                                                 <a t-if="! read_only_mode" type="delete" style="position: absolute; right: 0; padding: 4px; diplay: inline-block">X</a>
181                                                 <div class="oe_module_vignette">
182                                                 <a type="edit">
183                                                     <img t-att-src="kanban_image('res.partner', 'photo', record.id.value)" class="oe_avatar oe_kanban_avatar_toto"/>
184                                                 </a>
185                                                     <div class="oe_module_desc">
186                                                         <div class="oe_kanban_box_content oe_kanban_color_bglight oe_kanban_box_show_onclick_trigger oe_kanban_color_border">
187                                                             <table class="oe_kanban_table">
188                                                                 <tr>
189                                                                     <td class="oe_kanban_title1" align="left" valign="middle">
190                                                                         <h4><a type="edit"><field name="name"/></a></h4>
191                                                                         <i><div t-if="record.function.raw_value">
192                                                                             <field name="function"/><br/></div></i>
193                                                                     </td>
194                                                                     <td valign="top" align="right">
195                                                                         <a t-if="record.email.raw_value" title="Mail" t-att-href="'mailto:'+record.email.value" style="text-decoration: none;" >
196                                                                             <img src="/web/static/src/img/icons/terp-mail-message-new.png" border="0" width="16" height="16"/>
197                                                                         </a>
198                                                                         
199                                                                     </td>
200                                                                 </tr>
201                                                             </table>
202                                                         </div>
203                                                     </div>
204                                                 </div>
205                                             </div>
206                                         </t>
207                                     </templates>
208                                 </kanban>
209                             </field>
210                         </page>
211                         <page string="Sales &amp; Purchases" attrs="{'invisible': [('customer', '=', False), ('supplier', '=', False)]}">
212                             <group>
213                                 <group>
214                                     <field name="user_id" />
215                                     <field name="company_id" groups="base.group_multi_company" widget="selection"/>
216                                     <field name="ref"/>
217                                     <field name="lang"/>
218                                     <field name="date"/>
219                                 </group>
220                                 <group>
221                                     <field name="customer"/>
222                                     <field name="supplier"/>
223                                     <field name="active"/>
224                                 </group>
225                             </group>
226                         </page>
227                         <page string="History" invisible="True"></page>
228                         <page string="Internal Notes">
229                             <field name="comment" placeholder="Internal notes about this customer..."/>
230                         </page>
231                     </notebook>
232                 </sheet>
233                 </form>
234             </field>
235         </record>
236
237        <record id="view_res_partner_filter" model="ir.ui.view">
238             <field name="name">res.partner.select</field>
239             <field name="model">res.partner</field>
240             <field name="type">search</field>
241             <field name="arch" type="xml">
242                 <search string="Search Partner">
243                    <group col='10' colspan='4'>
244                         <field name="name" 
245                             filter_domain="['|','|',('name','ilike',self),('parent_id','ilike',self),('ref','=',self)]"
246                             string="Partner"/>
247                         <separator orientation="vertical"/>
248                         <filter help="My Partners" icon="terp-personal+" domain="[('user_id','=',uid)]"/>
249                         <filter string="Persons" name="type_person" icon="terp-personal" domain="[('is_company','=',0)]"/>
250                         <filter string="Companies" name="type_company" icon="terp-partner" domain="[('is_company','=',1)]"/>
251                         <filter string="Customers" name="customer" icon="terp-personal" domain="[('customer','=',1)]" help="Customer Partners"/>
252                         <filter string="Suppliers" name="supplier" icon="terp-personal" domain="[('supplier','=',1)]" help="Supplier Partners"/>                        
253                         <separator orientation="vertical"/>
254                         <field name="category_id"/>
255                         <field name="user_id"/>
256                         <field name="parent_id" filter_domain="[('parent_id','child_of',[self])]"/>
257                    </group>
258                    <newline />
259                    <group expand="0" string="Group By...">
260                        <filter string="Salesman" icon="terp-personal" domain="[]" context="{'group_by' : 'user_id'}" />
261                        <filter string="Company" context="{'group_by': 'parent_id'}"/>
262                    </group>
263                </search>
264             </field>
265         </record>
266
267         <!-- Partner Kanban View -->
268         <record model="ir.ui.view" id="res_partner_kanban_view">
269             <field name="name">res.partner.kanban</field>
270             <field name="model">res.partner</field>
271             <field name="type">kanban</field>
272             <field name="arch" type="xml">
273                 <kanban>
274                     <field name="color"/>
275                     <field name="name"/>
276                     <field name="title"/>
277                     <field name="email"/>
278                     <field name="parent_id"/>
279                     <field name="is_company"/>
280                     <field name="function"/>
281                     <field name="phone"/>
282                     <field name="street"/>
283                     <field name="street2"/>
284                     <field name="photo"/>
285                     <field name="zip"/>
286                     <field name="city"/>
287                     <field name="country_id"/>
288                     <field name="mobile"/>
289                     <field name="state_id"/>
290                     <field name="category_id"/>
291                     <templates>
292                         <t t-name="kanban-box">
293                             <div class="oe_kanban_vignette">
294                                 <a type="edit">
295                                     <img t-att-src="kanban_image('res.partner', 'photo', record.id.value)" class="oe_kanban_image"/>
296                                 </a>
297                                 <div class="oe_kanban_details">
298                                     <h4 class="oe_partner_heading"><a type="edit"><field name="name"/></a></h4>
299                                     <div>
300                                         <t t-foreach="record.category_id.raw_value" t-as="category">
301                                             <span class="oe_kanban_partner_category oe_tag"
302                                                 t-att-data-category_id="category"/>
303                                         </t>
304                                     </div>
305                                     <div class="oe_kanban_partner_links"/>
306                                     <ul>
307                                         <li t-if="record.parent_id.raw_value and !record.function.raw_value"><field name="parent_id"/></li>
308                                         <li t-if="!record.parent_id.raw_value and record.function.raw_value"><field name="function"/></li>
309                                         <li t-if="record.parent_id.raw_value and record.function.raw_value"><field name="function"/> at <field name="parent_id"/></li>
310                                         <li t-if="record.city.raw_value and !record.country.raw_value"><field name="city"/></li>
311                                         <li t-if="!record.city.raw_value and record.country.raw_value"><field name="country"/></li>
312                                         <li t-if="record.city.raw_value and record.country.raw_value"><field name="city"/>, <field name="country"/></li>
313                                         <li t-if="record.mobile.raw_value"><field name="mobile"/></li>
314                                         <li t-if="record.phone.raw_value">Tel: <field name="phone"/></li>
315                                         <li t-if="record.mobile.raw_value">Mobile: <field name="mobile"/></li>
316                                         <li t-if="record.email.raw_value"><a t-attf-href="mailto:#{record.email.raw_value}"><field name="email"/></a></li>
317                                     </ul>
318                                 </div>
319                             </div>
320
321                         </t>
322                     </templates>
323                 </kanban>
324             </field>
325         </record>
326
327         <record id="action_partner_form" model="ir.actions.act_window">
328             <field name="name">Customers</field>
329             <field name="type">ir.actions.act_window</field>
330             <field name="res_model">res.partner</field>
331             <field name="view_type">form</field>
332             <field name="view_mode">kanban,tree,form</field>
333             <field name="context">{"search_default_customer":1}</field>
334             <field name="search_view_id" ref="view_res_partner_filter"/>
335             <field name="help">
336                 Click on "Create" to add a new contact in your address book.
337                 &lt;p&gt;
338                 A contact is either a person or a company; a person can be linked to a company as a contact of that company.
339                 &lt;p&gt;
340                 You will be able to follow documents and history of your contacts (invoices, meetings, projects, etc.)
341             </field>
342         </record>
343         <record id="action_partner_form_view1" model="ir.actions.act_window.view">
344             <field eval="0" name="sequence"/>
345             <field name="view_mode">kanban</field>
346             <field name="view_id" ref="res_partner_kanban_view"/>
347             <field name="act_window_id" ref="action_partner_form"/>
348         </record>
349         <record id="action_partner_form_view2" model="ir.actions.act_window.view">
350             <field eval="2" name="sequence"/>
351             <field name="view_mode">form</field>
352             <field name="view_id" ref="view_partner_form"/>
353             <field name="act_window_id" ref="action_partner_form"/>
354         </record>
355         <record id="action_partner_tree_view1" model="ir.actions.act_window.view">
356             <field name="sequence" eval="1"/>
357             <field name="view_mode">tree</field>
358             <field name="view_id" ref="view_partner_tree"/>
359             <field name="act_window_id" ref="action_partner_form"/>
360         </record>
361         <menuitem id="menu_partner_form" parent="base.menu_sales" action="action_partner_form" sequence="1"/>
362
363         <record id="action_partner_customer_form" model="ir.actions.act_window">
364             <field name="name">Customers</field>
365             <field name="type">ir.actions.act_window</field>
366             <field name="res_model">res.partner</field>
367             <field name="view_type">form</field>
368             <field name="view_mode">kanban,tree,form</field>
369             <field name="domain">[('customer','=',1)]</field>
370             <field name="context">{'default_customer':1, 'search_default_customer':1}</field>
371             <field name="filter" eval="True"/>
372             <field name="help">
373                 Click on "Create" to add a new customer in your address book.
374                 &lt;p&gt;
375                 A contact is either a person or a company; a person can be linked to a company as a contact of that company.
376                 &lt;p&gt;
377                 You will be able to follow documents and history of your contacts (invoices, meetings, projects, etc.)
378             </field>
379         </record>
380
381         <record id="action_partner_supplier_form" model="ir.actions.act_window">
382             <field name="name">Suppliers</field>
383             <field name="type">ir.actions.act_window</field>
384             <field name="res_model">res.partner</field>
385             <field name="view_type">form</field>
386             <field name="domain">[]</field>
387             <field name="view_mode">kanban,tree,form</field>
388             <field name="context">{'search_default_supplier': 1,'default_customer': 0,'default_supplier': 1}</field>
389             <field name="filter" eval="True"/>
390             <field name="help">
391                 Click on "Create" to add a new supplier in your address book.
392                 &lt;p&gt;
393                 A supplier is either a person or a company; a person can be linked to a company as a contact of that company.
394                 &lt;p&gt;
395                 You will be able to follow documents and history of your contacts (invoices, meetings, projects, etc.)
396             </field>
397         </record>
398
399         <record id="action_partner_employee_form" model="ir.actions.act_window">
400             <field name="name">Employees</field>
401             <field name="type">ir.actions.act_window</field>
402             <field name="res_model">res.partner</field>
403             <field name="view_type">form</field>
404             <field name="domain">[('employee','=',1)]</field>
405             <field name="context">{'default_customer':0, 'default_supplier':0 , 'default_employee':1}</field>
406             <field name="filter" eval="True"/>
407         </record>
408
409         <record id="action_partner_other_form" model="ir.actions.act_window">
410             <field name="name">Other Partners</field>
411             <field name="type">ir.actions.act_window</field>
412             <field name="res_model">res.partner</field>
413             <field name="view_type">form</field>
414             <field name="domain">[('supplier','&lt;&gt;',1),('customer','&lt;&gt;',1)]</field>
415             <field name="filter" eval="True"/>
416         </record>
417
418         <record id="view_payterm_form" model="ir.ui.view">
419             <field name="name">res.payterm</field>
420             <field name="model">res.payterm</field>
421             <field name="type">form</field>
422             <field name="arch" type="xml">
423                 <form string="Payment Term" version="7.0">
424                     <group>
425                         <field name="name"/>
426                     </group>
427                 </form>
428             </field>
429         </record>
430         <record id="action_payterm_form" model="ir.actions.act_window">
431             <field name="name">Payment term</field>
432             <field name="type">ir.actions.act_window</field>
433             <field name="res_model">res.payterm</field>
434             <field name="view_type">form</field>
435             <field name="view_id" ref="view_payterm_form"/>
436         </record>
437         <!--
438           ======================
439           Categories
440           ======================
441         -->
442         <record id="view_partner_category_form" model="ir.ui.view">
443             <field name="name">Partner Categories</field>
444             <field name="model">res.partner.category</field>
445             <field name="type">form</field>
446             <field name="arch" type="xml">
447                 <form string="Partner Category" version="7.0">
448                     <group col="4">
449                         <field name="name"/>
450                         <field name="active"/>
451                         <field name="parent_id"/>
452                     </group>
453                 </form>
454             </field>
455         </record>
456         <record id="view_partner_category_list" model="ir.ui.view">
457             <field name="name">Partner Categories</field>
458             <field name="model">res.partner.category</field>
459             <field name="type">tree</field>
460             <field eval="6" name="priority"/>
461             <field name="arch" type="xml">
462                 <tree string="Partner Categories">
463                     <field name="complete_name"/>
464                 </tree>
465             </field>
466         </record>
467         <record id="view_partner_category_tree" model="ir.ui.view">
468             <field name="name">res.partner.category.tree</field>
469             <field name="model">res.partner.category</field>
470             <field name="type">tree</field>
471             <field name="field_parent">child_ids</field>
472             <field name="arch" type="xml">
473                 <tree toolbar="1" string="Partner Categories">
474                     <field name="name"/>
475                 </tree>
476             </field>
477         </record>
478         <!--
479         <record id="action_partner_category" model="ir.actions.act_window">
480             <field name="name">Partners by Categories</field>
481             <field name="type">ir.actions.act_window</field>
482             <field name="res_model">res.partner.category</field>
483             <field name="view_type">tree</field>
484             <field name="view_id" ref="view_partner_category_tree"/>
485             <field name="domain">[('parent_id','=',False)]</field>
486         </record>
487         <menuitem action="action_partner_category" id="menu_partner_category_main" parent="base.menu_address_book" sequence="1"
488             groups="base.group_no_one"/>
489         -->
490
491         <record id="action_partner_by_category" model="ir.actions.act_window">
492             <field name="name">Partner Categories</field>
493             <field name="res_model">res.partner</field>
494             <field name="view_type">form</field>
495             <field name="view_mode">tree,form</field>
496             <field name="domain">[('category_id','child_of', [active_id])]</field>
497             <field name="context">{'category_id':active_id}</field>
498             <field name="search_view_id" ref="view_res_partner_filter"/>
499         </record>
500
501         <record id="ir_action_partner_by_category" model="ir.values">
502             <field eval="'tree_but_open'" name="key2"/>
503             <field eval="'res.partner.category'" name="model"/>
504             <field name="name">Open partners</field>
505             <field eval="'ir.actions.act_window,%d'%action_partner_by_category" name="value"/>
506         </record>
507
508         <record id="action_partner_category_form" model="ir.actions.act_window">
509             <field name="name">Partner Categories</field>
510             <field name="type">ir.actions.act_window</field>
511             <field name="res_model">res.partner.category</field>
512             <field name="view_type">form</field>
513             <field name="help">Manage the partner categories in order to better classify them for tracking and analysis purposes. A partner may belong to several categories and categories have a hierarchy structure: a partner belonging to a category also belong to his parent category.</field>
514         </record>
515
516         <menuitem action="action_partner_category_form" id="menu_partner_category_form" name="Partner Categories" sequence="4" parent="menu_config_address_book" groups="base.group_no_one"/>
517
518     </data>
519 </openerp>
520