[MERGE]:merged employee's view
[odoo/odoo.git] / addons / hr / hr_view.xml
1 <?xml version="1.0" encoding="utf-8"?>
2 <openerp>
3     <data>
4
5         <!-- Top menu item -->
6         <menuitem name="Human Resources"
7             id="menu_hr_root"
8             groups="base.group_hr_manager,base.group_hr_user,base.group_user"
9             sequence="110"/>
10         <menuitem id="menu_hr_main" parent="menu_hr_root" name="Human Resources" sequence="0"/>
11         <menuitem id="menu_hr_configuration" name="Configuration" parent="hr.menu_hr_root" groups="base.group_hr_manager" sequence="50"/>
12         <menuitem id="menu_hr_management" name="Human Resources" parent="hr.menu_hr_configuration" groups="base.group_no_one" sequence="25"/>
13         <menuitem id="menu_hr_reporting_timesheet" name="Reports"
14             parent="menu_hr_reporting" sequence="6"/>
15
16         <!--Employee form view -->
17         <record id="view_employee_form" model="ir.ui.view">
18             <field name="name">hr.employee.form</field>
19             <field name="model">hr.employee</field>
20             <field name="arch" type="xml">
21                 <form string="Employee" version="7.0">
22                     <sheet>
23                         <field name="image_medium" widget='image' class="oe_right oe_avatar"/>
24                         <div class="oe_title">
25                             <label for="name" class="oe_edit_only"/>
26                             <h1>
27                                 <field name="name"/>
28                             </h1>
29                             <label for="category_ids" class="oe_edit_only"/>
30                             <field name="category_ids" widget="many2many_tags" placeholder="e.g. Part Time"/>
31                         </div>
32                         <div class="oe_right oe_button_box" name="button_box">
33                             <!-- Put here related buttons -->
34                         </div>
35                         <notebook>
36                             <page string="Public Information">
37                                 <group>
38                                     <group string="Contact Information">
39                                         <field name="work_email" widget="email"/>
40                                         <field name="work_phone"/>
41                                         <field name="mobile_phone"/>
42                                     </group>
43                                     <group string="Position">
44                                         <field name="job_id" options='{"no_open": true}' domain="[('state','!=','old')]" context="{'form_view_ref': 'hr.view_hr_job_employee_form'}"/>
45                                         <field name="parent_id"/>
46                                         <field name="coach_id"/>
47                                     </group>
48                                     <group>
49                                         <field name="company_id" groups="base.group_multi_company" on_change="onchange_company(company_id)"/>
50                                         <field name="address_id" on_change="onchange_address_id(address_id)" context="{'show_address': 1}" options='{"always_reload": true, "highlight_first_line": true}'/>
51                                         <field name="department_id" on_change="onchange_department_id(department_id)"/>
52                                     </group>
53                                     <group>
54                                         <field name="user_id" on_change="onchange_user(user_id)" string="Related User"/>
55                                     </group>
56                                 </group>
57                                 <field name="notes" placeholder="Other Information ..." colspan="4"/>
58                             </page>
59                             <page string="Personal Information" groups="base.group_hr_user">
60                                 <group>
61                                     <group string="Citizenship &amp; other info">
62                                         <field name="country_id" options='{"no_open": true}'/>
63                                         <field name="identification_id" groups="base.group_hr_user"/>
64                                         <field name="passport_id" groups="base.group_hr_user"/>
65                                         <field name="bank_account_id"/>
66                                         <field name="otherid" groups="base.group_hr_user"/>
67                                     </group>
68                                     <group string="Contact Information">
69                                         <field name="address_home_id" context="{'show_address': 1}" options='{"always_reload": true, "highlight_first_line": true}'/>
70                                     </group>
71                                     <group string="Status">
72                                         <field name="gender"/>
73                                         <field name="marital"/>
74                                     </group>
75                                     <group string="Birth">
76                                         <field name="birthday"/>
77                                     </group>
78                                 </group>
79                             </page>
80                             <page string="HR Settings" groups="base.group_hr_user">
81                                 <group>
82                                     <group string="Active" name="active_group">
83                                         <field name="active"/>
84                                     </group>
85                                 </group>
86                             </page>
87                         </notebook>
88                     </sheet>
89                 </form>
90             </field>
91         </record>
92
93         <record id="view_employee_tree" model="ir.ui.view">
94             <field name="name">hr.employee.tree</field>
95             <field name="model">hr.employee</field>
96             <field name="arch" type="xml">
97                 <tree string="Employees">
98                     <field name="name"/>
99                     <field name="work_phone"/>
100                     <field name="work_email"/>
101                     <field name="company_id" groups="base.group_multi_company"/>
102                     <field name="department_id"/>
103                     <field name="job_id"/>
104                     <field name="parent_id"/>
105                     <field name="coach_id" invisible="1"/>
106                 </tree>
107             </field>
108         </record>
109
110         <record id="view_employee_filter" model="ir.ui.view">
111             <field name="name">Employees</field>
112             <field name="model">hr.employee</field>
113             <field name="arch" type="xml">
114                 <search string="Employees">
115                     <field name="name" string="Employees"/>
116                     <field name="department_id" />
117                     <field name="job_id"/>
118                     <field name="parent_id"/>
119                     <field name="category_ids"/>
120                     <group expand="0" string="Group By...">
121                         <filter string="Manager" icon="terp-personal" domain="[]" context="{'group_by':'parent_id'}"/>
122                         <filter string="Coach" icon="terp-personal" domain="[]" context="{'group_by':'coach_id'}"/>
123                         <filter string="Department" icon="terp-personal+" domain="[]" context="{'group_by':'department_id'}"/>
124                         <filter string="Job" icon="terp-gtk-select-all" domain="[]" context="{'group_by':'job_id'}"/>
125                         <filter string="Company" icon="terp-go-home" domain="[]" context="{'group_by':'company_id'}" groups="base.group_multi_company"/>
126                     </group>
127                 </search>
128              </field>
129          </record>
130         <!-- HR Kanban View  -->
131
132     <record model="ir.ui.view" id="hr_kanban_view_employees">
133         <field name="name">HR - Employess Kanban</field>
134         <field name="model">hr.employee</field>
135         <field name="arch" type="xml">
136             <kanban>
137                 <field name="last_login"/>
138                 <templates>
139                     <t t-name="kanban-box">
140                         <div class="oe_employee_vignette oe_semantic_html_override">
141                             <div class="oe_employee_image">
142                                 <a type="open"><img t-att-src="kanban_image('hr.employee', 'image_medium', record.id.value)" class="oe_employee_picture"/></a>
143                             </div>
144                             <div class="oe_employee_details">
145                                 <h4>
146                                     <a type="open"><field name="name"/><t t-if="record.login.raw_value"> (<field name="login"/>)</t></a>
147                                 </h4>
148                                 <ul>
149                                     <li id="last_login">
150                                         <span t-if="record.last_login.raw_value &amp;&amp; record.last_login.raw_value.is().today()" class="oe_kanban_button" style="font-size: 100%%">
151                                               <t t-esc="record.last_login.raw_value.toString('HH:mm')"/>
152                                         </span>
153                                     </li>
154                                     <li t-if="record.job_id.raw_value"><field name="job_id"/></li>
155                                     <li t-if="record.work_location.raw_value"><field name="work_location"/></li>
156                                     <li t-if="record.work_phone.raw_value">Tel: <field name="work_phone"/></li>
157                                     <li t-if="record.mobile_phone.raw_value">Mobile: <field name="mobile_phone"/></li>
158                                     <li t-if="record.work_email.raw_value"><a t-attf-href="mailto:#{record.work_email.value}"><field name="work_email"/></a></li>
159                                 </ul>
160                             </div>
161                         </div>
162                         <script>
163                             $('.oe_employee_picture').load(function() { if($(this).width() > $(this).height()) { $(this).addClass('oe_employee_picture_wide') } });
164                         </script>
165                     </t>
166                 </templates>
167             </kanban>
168
169         </field>
170     </record>
171         <record id="open_view_employee_tree" model="ir.actions.act_window">
172             <field name="name">Employees Structure</field>
173             <field name="res_model">hr.employee</field>
174             <field name="view_type">tree</field>
175             <field name="view_mode">tree,form</field>
176             <field name="view_id" ref="view_employee_tree"/>
177             <field name="domain">[('parent_id','=',False)]</field>
178             <field name="search_view_id" ref="view_employee_filter"/>
179         </record>
180
181         <record id="open_view_employee_list" model="ir.actions.act_window">
182             <field name="name">Employees</field>
183             <field name="res_model">hr.employee</field>
184             <field name="view_type">form</field>
185             <field name="view_mode">tree,form</field>
186             <field name="view_id" eval="False"/>
187             <field name="search_view_id" ref="view_employee_filter"/>
188         </record>
189
190         <record id="open_view_employee_list_my" model="ir.actions.act_window">
191             <field name="name">Employees</field>
192             <field name="res_model">hr.employee</field>
193             <field name="view_type">form</field>
194             <field name="view_mode">kanban,tree,form</field>
195             <field name="domain">[]</field>
196             <field name="context">{}</field>
197             <field name="view_id" eval="False"/>
198             <field name="search_view_id" ref="view_employee_filter"/>
199             <field name="help" type="html">
200               <p class="oe_view_nocontent_create">
201                 Click to add a new employee.
202               </p><p>
203                 With just a quick glance on the OpenERP employee screen, you
204                 can easily find all the information you need for each person;
205                 contact data, job position, availability, etc.
206               </p>
207             </field>
208         </record>
209
210         <record id="open_view_employee_list_my_kanban" model="ir.actions.act_window.view">
211             <field name="sequence" eval="0"/>
212             <field name="view_mode">kanban</field>
213             <field name="act_window_id" ref="open_view_employee_list_my"/>
214         </record>
215         <record id="open_view_employee_list_my_tree2" model="ir.actions.act_window.view">
216             <field name="sequence" eval="1"/>
217             <field name="view_mode">tree</field>
218             <field name="view_id" ref="view_employee_tree"/>
219             <field name="act_window_id" ref="open_view_employee_list_my"/>
220         </record>
221
222         <record id="open_view_employee_list_my_form2" model="ir.actions.act_window.view">
223             <field name="sequence" eval="2"/>
224             <field name="view_mode">form</field>
225             <field name="view_id" ref="view_employee_form"/>
226             <field name="act_window_id" ref="open_view_employee_list_my"/>
227         </record>
228
229         <menuitem action="open_view_employee_list_my" id="menu_open_view_employee_list_my" sequence="3" parent="menu_hr_main"/>
230
231         <record id="ir_ui_view_sc_employee" model="ir.ui.view_sc">
232             <field name="name">Employees</field>
233             <field name="resource">ir.ui.menu</field>
234             <field name="user_id" ref="base.user_root"/>
235             <field name="res_id" ref="hr.menu_open_view_employee_list_my"/>
236         </record>
237
238         <!-- Employee architecture -->
239         <record id="view_partner_tree2" model="ir.ui.view">
240             <field name="name">hr.employee.tree</field>
241             <field name="model">hr.employee</field>
242             <field name="field_parent">child_ids</field>
243             <field eval="20" name="priority"/>
244             <field name="arch" type="xml">
245                 <tree string="Employees">
246                     <field name="name"/>
247                     <field name="work_phone"/>
248                     <field name="work_email"/>
249                     <field name="company_id" groups="base.group_multi_company"/>
250                     <field name="department_id"/>
251                     <field name="job_id"/>
252                     <field name="coach_id" invisible="1"/>
253                 </tree>
254             </field>
255         </record>
256
257         <record id="action2" model="ir.actions.act_window">
258             <field name="name">Subordinate Hierarchy</field>
259             <field name="type">ir.actions.act_window</field>
260             <field name="res_model">hr.employee</field>
261             <field name="domain">[('id','in',active_ids)]</field>
262             <field name="view_type">tree</field>
263             <field name="view_id" ref="view_partner_tree2"/>
264         </record>
265
266         <ir_set>
267             <field eval="'action'" name="key"/>
268             <field eval="'client_action_multi'" name="key2"/>
269             <field eval="['hr.employee']" name="models"/>
270             <field name="name">Subordinate Hierarchy</field>
271             <field eval="'ir.actions.act_window,'+str(action2)" name="value"/>
272             <field eval="True" name="isobject"/>
273             <field eval="True" name="replace"/>
274         </ir_set>
275
276         <!-- Employee Category -->
277        <record id="view_employee_category_form" model="ir.ui.view">
278             <field name="name">hr.employee.category.form</field>
279             <field name="model">hr.employee.category</field>
280             <field name="arch" type="xml">
281                 <form string="Employee Category" version="7.0">
282                     <group>
283                         <field name="name"/>
284                         <field name="parent_id"/>
285                     </group>
286                 </form>
287             </field>
288         </record>
289
290         <record id="view_employee_category_list" model="ir.ui.view">
291             <field name="name">hr.employee.category.list</field>
292             <field name="model">hr.employee.category</field>
293             <field eval="8" name="priority"/>
294             <field name="arch" type="xml">
295                 <tree string="Employees Categories">
296                     <field name="complete_name"/>
297                 </tree>
298             </field>
299         </record>
300
301         <record id="view_employee_category_tree" model="ir.ui.view">
302             <field name="name">hr.employee.category.tree</field>
303             <field name="model">hr.employee.category</field>
304             <field name="field_parent">child_ids</field>
305             <field name="arch" type="xml">
306                 <tree string="Employees Categories">
307                     <field name="name"/>
308                 </tree>
309             </field>
310         </record>
311
312         <record id="open_view_categ_form" model="ir.actions.act_window">
313             <field name="name">Categories of Employee</field>
314             <field name="res_model">hr.employee.category</field>
315             <field name="view_type">form</field>
316             <field name="view_mode">tree,form</field>
317         </record>
318
319         <menuitem action="open_view_categ_form" id="menu_view_employee_category_form"
320             parent="hr.menu_hr_configuration" sequence="1" groups="base.group_no_one"/>
321
322         <record id="open_view_categ_tree" model="ir.actions.act_window">
323             <field name="name">Categories Structure</field>
324             <field name="res_model">hr.employee.category</field>
325             <field name="view_type">tree</field>
326             <field name="view_id" ref="view_employee_category_tree"/>
327             <field name="domain">[('parent_id','=',False)]</field>
328         </record>
329
330         <record id="hr_employee_normal_action_tree" model="ir.actions.act_window">
331             <field name="name">Employees</field>
332             <field name="type">ir.actions.act_window</field>
333             <field name="res_model">hr.employee</field>
334             <field name="view_type">form</field>
335             <field name="view_mode">tree,form</field>
336             <field name="domain">[('category_ids','=', active_ids)]</field>
337         </record>
338
339         <record id="hr_employee_category_open" model="ir.values">
340             <field eval="'tree_but_open'" name="key2"/>
341             <field eval="'hr.employee.category'" name="model"/>
342             <field name="name">Employees by Categories</field>
343             <field eval="'ir.actions.act_window,%d'%hr_employee_normal_action_tree" name="value"/>
344         </record>
345
346         <menuitem action="open_view_categ_tree"
347             id="menu_view_employee_category_tree" parent="menu_hr_management" groups="base.group_no_one" sequence="2"/>
348
349         <record id="view_hr_job_form" model="ir.ui.view">
350             <field name="name">hr.job.form</field>
351             <field name="model">hr.job</field>
352             <field name="arch" type="xml">
353                 <form string="Job" version="7.0">
354                     <header>
355                         <span groups="base.group_user">
356                             <button name="job_recruitement" string="In Recruitement" states="open" type="object" class="oe_highlight"/>
357                             <button name="job_open" string="Recruitment Done" states="recruit" type="object" class="oe_highlight"/>
358                         </span>
359                         <field name="state" widget="statusbar" statusbar_visible="recruit,open"/>
360                     </header>
361                     <sheet>
362                         <label for="name" class="oe_edit_only"/>
363                         <h1>
364                             <field name="name" class="oe_inline"/>
365                             <label class="oe_inline" string="(" attrs="{'invisible': [('department_id', '=', False)]}"/>
366                             <field name="department_id" class="oe_inline"/>
367                             <label class="oe_inline" string=")" attrs="{'invisible': [('department_id', '=', False)]}"/>
368                         </h1>
369                         <group>
370                             <group>
371                                 <field name="no_of_employee" groups="base.group_user"/>
372                                 <field name="expected_employees" groups="base.group_user"/>
373                                 <field name="no_of_recruitment" on_change="on_change_expected_employee(no_of_recruitment,no_of_employee)"/>
374                             </group>
375                             <group>
376                                 <field name="company_id" widget="selection" groups="base.group_multi_company"/>
377                             </group>
378                         </group>
379                         <notebook>
380                             <page string="Description">
381                                 <label for="description"/>
382                                 <field name="description"/>
383                                 <label for="requirements"/>
384                                 <field name="requirements"/>
385                             </page>
386                         </notebook>
387                     </sheet>
388                 </form>
389             </field>
390         </record>
391
392         <record id="view_hr_job_tree" model="ir.ui.view">
393             <field name="name">hr.job.tree</field>
394             <field name="model">hr.job</field>
395             <field name="arch" type="xml">
396                 <tree string="Job">
397                     <field name="name"/>
398                     <field name="department_id"/>
399                     <field name="company_id" groups="base.group_multi_company"/>
400                     <field name="expected_employees"/>
401                     <field name="no_of_employee"/>
402                     <field name="no_of_recruitment"/>
403                     <field name="state"/>
404                 </tree>
405             </field>
406         </record>
407
408         <record id="view_job_filter" model="ir.ui.view">
409             <field name="name">Job</field>
410             <field name="model">hr.job</field>
411             <field name="arch" type="xml">
412                 <search string="Jobs">
413                     <field name="name" string="Job"/>
414                     <filter icon="terp-camera_test" domain="[('state','=','open')]" string="In Position" help="In Position"/>
415                     <filter icon="terp-personal+"  domain="[('state','=','recruit')]" string="In Recruitment" help="In Recruitment"/>
416                     <field name="department_id"/>
417                     <group expand="0" string="Group By...">
418                         <filter string="Department" icon="terp-personal+" domain="[]" context="{'group_by':'department_id'}"/>
419                         <filter string="Status" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
420                         <filter string="Company" icon="terp-go-home" domain="[]" context="{'group_by':'company_id'}"  groups="base.group_multi_company"/>
421                     </group>
422                 </search>
423             </field>
424         </record>
425
426         <record id="view_hr_job_employee_form" model="ir.ui.view">
427             <field name="name">hr.job.employee.form</field>
428             <field name="model">hr.job</field>
429             <field name="priority">20</field>
430             <field name="arch" type="xml">
431                 <form string="Job" version="7.0">
432                     <group col="4">
433                         <field name="name"/>
434                         <field name="department_id"/>
435                     </group>
436                     <label for="description"/>
437                     <field name="description"/>
438                 </form>
439             </field>
440         </record>
441
442         <record model="ir.actions.act_window" id="action_hr_job">
443             <field name="name">Job Positions</field>
444             <field name="res_model">hr.job</field>
445             <field name="view_type">form</field>
446             <field name="view_mode">tree,form</field>
447             <field name="search_view_id" ref="view_job_filter"/>
448             <field name="context">{"search_default_Current":1}</field>
449             <field name="help" type="html">
450               <p class="oe_view_nocontent_create">
451                 Click to define a new job position.
452               </p><p>
453                 Job Positions are used to define jobs and their requirements.
454                 You can keep track of the number of employees you have per job
455                 position and follow the evolution according to what you planned
456                 for the future.
457               </p><p>
458                 You can attach a survey to a job position. It will be used in
459                 the recruitment process to evaluate the applicants for this job
460                 position.
461               </p>
462             </field>
463         </record>
464
465         <menuitem name="Recruitment" id="base.menu_crm_case_job_req_main" parent="menu_hr_root" groups="base.group_hr_user"/>
466         <menuitem parent="hr.menu_hr_configuration" id="menu_hr_job" action="action_hr_job" sequence="6"/>
467
468     </data>
469 </openerp>