[FIX] I have improve the error message in procurement
[odoo/odoo.git] / addons / hr / hr_view.xml
1 <?xml version="1.0" encoding="utf-8"?>
2 <openerp>
3     <data>
4
5         <menuitem id="menu_hr_root" icon="terp-hr" name="Human Resources" sequence="15"
6             web_icon="images/hr.png"
7             web_icon_hover="images/hr-hover.png"
8             groups="base.group_hr_manager,base.group_hr_user,base.group_user"/>
9         <menuitem id="menu_hr_main" parent="menu_hr_root" name="Human Resources" sequence="0"/>
10         <menuitem id="menu_hr_configuration" name="Configuration" parent="hr.menu_hr_root" groups="base.group_hr_manager" sequence="50"/>
11         <menuitem id="menu_hr_management" name="Human Resources" parent="hr.menu_hr_configuration" sequence="25" groups="base.group_no_one"/>
12         <menuitem id="menu_view_employee_category_configuration_form" parent="hr.menu_hr_management" name="Employees" sequence="1" />
13         <menuitem id="base.menu_hr_reports" parent="hr.menu_hr_root" sequence="40" name="Reporting"/>
14
15         <!--
16         ==========
17         Employee
18         ==========
19         -->
20         <record id="view_employee_form" model="ir.ui.view">
21             <field name="name">hr.employee.form</field>
22             <field name="model">hr.employee</field>
23             <field name="type">form</field>
24             <field name="arch" type="xml">
25                 <form string="Employee">
26                     <group colspan="4" col="8">
27                         <group colspan="6" col="6">
28                         <field colspan="6" name="name" />
29                         <field name="user_id" on_change="onchange_user(user_id)"/>
30                         <field name="company_id" widget="selection" groups="base.group_multi_company" on_change="onchange_company(company_id)"/>
31                         <field name="active"/>
32                         <newline/>
33                         <field name="department_id" on_change="onchange_department_id(department_id)" />
34                         <field name="parent_id" />
35                         </group>
36                         <group colspan="2" col="1">
37                           <field name="photo" widget='image' nolabel="1" on_change="onchange_photo(photo)"/>
38                         </group>
39                     </group>
40                     <notebook colspan="6">
41                         <page string="Personal Information">
42                             <group col="2" colspan="2" groups="base.group_hr_user">
43                                 <separator colspan="2" string="Social IDs"/>
44                                 <field name="ssnid"/>
45                                 <field name="sinid"/>
46                                 <field name="identification_id"/>
47                                 <field name="passport_id"/>
48                                 <field name="otherid"/>
49                             </group>
50                             <group col="2" colspan="2" groups="base.group_hr_user">
51                                 <separator string="Status" colspan="2"/>
52                                 <field name="gender"/>
53                                 <field name="marital"/>
54                                 <field name="country_id"/>
55                                 <field name="birthday"/>
56                             </group>
57                             <group col="2" colspan="2">
58                                 <separator string="Contact Information" colspan="2"/>
59                                 <field name="address_home_id" colspan="2"/>
60                                 <field name="address_id" colspan="2" on_change="onchange_address_id(address_id)" />
61                                 <field name="work_phone"/>
62                                 <field name="mobile_phone"/>
63                                 <field name="work_email" widget="email" />
64                                 <field name="work_location"/>
65                             </group>
66                             <group col="2" colspan="2">
67                                 <separator string="Job Information" colspan="2"/>
68                                 <field name="job_id" domain="[('state','!=','old')]"/>
69                                 <field name="coach_id" />
70                             </group>
71                         </page>
72                         <page string="Categories" groups="base.group_hr_user">
73                             <field name="category_ids" nolabel="1"/>
74                         </page>
75                         <page string="Notes" groups="base.group_hr_user">
76                             <field colspan="4" nolabel="1" name="notes"/>
77                         </page>
78                     </notebook>
79                 </form>
80             </field>
81         </record>
82
83         <record id="view_employee_tree" model="ir.ui.view">
84             <field name="name">hr.employee.tree</field>
85             <field name="model">hr.employee</field>
86             <field name="type">tree</field>
87             <field name="arch" type="xml">
88                 <tree string="Employees">
89                     <field name="name"/>
90                     <field name="work_phone"/>
91                     <field name="work_email"/>
92                     <field name="company_id" groups="base.group_multi_company"/>
93                     <field name="department_id"/>
94                     <field name="job_id"/>
95                     <field name="parent_id"/>
96                     <field name="coach_id" invisible="1" />
97                 </tree>
98             </field>
99         </record>
100
101         <record id="view_employee_filter" model="ir.ui.view">
102             <field name="name">Employees</field>
103             <field name="model">hr.employee</field>
104             <field name="type">search</field>
105             <field name="arch" type="xml">
106                 <search string="Employees">
107                     <field name="name"/>
108                     <field name="department_id" widget="selection">
109                     </field>
110                     <field name="job_id" widget="selection"/>
111                     <field name="category_ids" select="1"/>
112                     <field name="parent_id"/>
113                     <newline />
114                     <group expand="0" string="Group By...">
115                     <filter string="Manager" icon="terp-personal" domain="[]" context="{'group_by':'parent_id'}"/>
116                     <filter string="Coach" icon="terp-personal" domain="[]" context="{'group_by':'coach_id'}"/>
117                     <separator orientation="vertical" />
118                     <filter string="Department" icon="terp-personal+" domain="[]" context="{'group_by':'department_id'}"/>
119                     <filter string="Job" icon="terp-gtk-select-all" domain="[]" context="{'group_by':'job_id'}"/>
120                     <filter string="Company" icon="terp-go-home" domain="[]" context="{'group_by':'company_id'}" groups="base.group_multi_company"/>
121                     </group>
122                 </search>
123              </field>
124          </record>
125         <!-- HR Kanban View  -->
126
127     <record model="ir.ui.view" id="hr_kanban_view_employees">
128         <field name="name">HR - Employess Kanban</field>
129         <field name="model">hr.employee</field>
130         <field name="type">kanban</field>
131         <field name="arch" type="xml">
132             <kanban>
133                 <templates>
134                     <t t-name="kanban-box">
135                         <div class="oe_employee_vignette">
136                             <div class="oe_employee_image">
137                                 <a type="edit"><img t-att-src="kanban_image('hr.employee', 'photo', record.id.value)" class="oe_employee_picture"/></a>
138                             </div>
139                             <div class="oe_employee_details">
140                                 <h4><a type="edit"><field name="name"/> (<field name="login"/>)</a></h4>
141                                 <ul>
142                                     <li t-if="record.job_id.raw_value"><field name="job_id"/></li>
143                                     <li t-if="record.work_location.raw_value"><field name="work_location"/></li>
144                                     <li t-if="record.work_phone.raw_value">Tel: <field name="work_phone"/></li>
145                                     <li t-if="record.mobile_phone.raw_value">Mobile: <field name="mobile_phone"/></li>
146                                     <li t-if="record.work_email.raw_value"><a t-attf-href="mailto:#{record.work_email.value}"><field name="work_email"/></a></li>
147                                 </ul>
148                             </div>
149                         </div>
150                         <script>
151                             $('.oe_employee_picture').load(function() { if($(this).width() > $(this).height()) { $(this).addClass('oe_employee_picture_wide') } });
152                         </script>
153                     </t>
154                 </templates>
155             </kanban>
156
157         </field>
158     </record>
159         <record id="open_view_employee_tree" model="ir.actions.act_window">
160             <field name="name">Employees Structure</field>
161             <field name="res_model">hr.employee</field>
162             <field name="view_type">tree</field>
163             <field name="view_mode">tree,form</field>
164             <field name="view_id" ref="view_employee_tree"/>
165             <field name="domain">[('parent_id','=',False)]</field>
166             <field name="search_view_id" ref="view_employee_filter"/>
167         </record>
168
169         <record id="open_view_employee_list" model="ir.actions.act_window">
170             <field name="name">Employees</field>
171             <field name="res_model">hr.employee</field>
172             <field name="view_type">form</field>
173             <field name="view_mode">tree,form</field>
174             <field name="view_id" eval="False"/>
175             <field name="search_view_id" ref="view_employee_filter"/>
176         </record>
177
178         <record id="open_view_employee_list_my" model="ir.actions.act_window">
179             <field name="name">Employees</field>
180             <field name="res_model">hr.employee</field>
181             <field name="view_type">form</field>
182             <field name="view_mode">kanban,tree,form</field>
183             <field name="domain">[]</field>
184             <field name="context">{}</field>
185             <field name="view_id" eval="False"/>
186             <field name="search_view_id" ref="view_employee_filter"/>
187             <field name="help">Here you can manage your work force by creating employees and assigning them specific properties in the system. Maintain all employee related information and keep track of anything that needs to be recorded for them. The personal information tab will help you maintain their identity data. The Categories tab gives you the opportunity to assign them related employee categories depending on their position and activities within the company. A category can be a seniority level within the company or a department. The Timesheets tab allows to assign them a specific timesheet and analytic journal where they will be able to enter time through the system. In the note tab, you can enter text data that should be recorded for a specific employee.</field>
188         </record>
189
190         <record id="open_view_employee_list_my_kanban" model="ir.actions.act_window.view">
191             <field name="sequence" eval="0"/>
192             <field name="view_mode">kanban</field>
193             <field name="act_window_id" ref="open_view_employee_list_my"/>
194         </record>
195         <record id="open_view_employee_list_my_tree2" model="ir.actions.act_window.view">
196             <field name="sequence" eval="1"/>
197             <field name="view_mode">tree</field>
198             <field name="view_id" ref="view_employee_tree"/>
199             <field name="act_window_id" ref="open_view_employee_list_my"/>
200         </record>
201
202         <record id="open_view_employee_list_my_form2" model="ir.actions.act_window.view">
203             <field name="sequence" eval="2"/>
204             <field name="view_mode">form</field>
205             <field name="view_id" ref="view_employee_form"/>
206             <field name="act_window_id" ref="open_view_employee_list_my"/>
207         </record> 
208
209         <menuitem action="open_view_employee_list_my" id="menu_open_view_employee_list_my" sequence="3" parent="menu_hr_main"/>
210
211         <record id="ir_ui_view_sc_employee" model="ir.ui.view_sc">
212             <field name="name">Employees</field>
213             <field name="resource">ir.ui.menu</field>
214             <field name="user_id" ref="base.user_root"/>
215             <field name="res_id" ref="hr.menu_open_view_employee_list_my"/>
216         </record>
217
218         <!--
219         =======================
220         Employee architecture
221         =======================
222         -->
223
224         <record id="view_partner_tree2" model="ir.ui.view">
225             <field name="name">hr.employee.tree</field>
226             <field name="model">hr.employee</field>
227             <field name="type">tree</field>
228             <field name="field_parent">child_ids</field>
229             <field eval="20" name="priority"/>
230             <field name="arch" type="xml">
231                 <tree string="Employees">
232                     <field name="name"/>
233                     <field name="work_phone"/>
234                     <field name="work_email"/>
235                     <field name="company_id" groups="base.group_multi_company"/>
236                     <field name="department_id"/>
237                     <field name="job_id"/>
238                     <field name="coach_id" invisible="1" />
239                 </tree>
240             </field>
241         </record>
242
243         <record id="action2" model="ir.actions.act_window">
244             <field name="name">Subordinate Hierarchy</field>
245             <field name="type">ir.actions.act_window</field>
246             <field name="res_model">hr.employee</field>
247             <field name="domain">[('id','in',active_ids)]</field>
248             <field name="view_type">tree</field>
249             <field name="view_id" ref="view_partner_tree2"/>
250         </record>
251
252         <ir_set>
253             <field eval="'action'" name="key"/>
254             <field eval="'client_action_multi'" name="key2"/>
255             <field eval="['hr.employee']" name="models"/>
256             <field name="name">Subordinate Hierarchy</field>
257             <field eval="'ir.actions.act_window,'+str(action2)" name="value"/>
258             <field eval="True" name="isobject"/>
259             <field eval="True" name="replace"/>
260         </ir_set>
261
262         <!--
263         ============
264         Employee Category
265         ============
266         -->
267
268        <record id="view_employee_category_form" model="ir.ui.view">
269             <field name="name">hr.employee.category.form</field>
270             <field name="model">hr.employee.category</field>
271             <field name="type">form</field>
272             <field name="arch" type="xml">
273                 <form string="Employee Category">
274                     <field name="name" />
275                     <field name="parent_id" />
276                     <separator string="Employees" colspan="4" />
277                     <field name="employee_ids" colspan="4" nolabel="1" />
278                 </form>
279             </field>
280         </record>
281
282         <record id="view_employee_category_list" model="ir.ui.view">
283             <field name="name">hr.employee.category.list</field>
284             <field name="model">hr.employee.category</field>
285             <field name="type">tree</field>
286             <field eval="8" name="priority"/>
287             <field name="arch" type="xml">
288                 <tree string="Employees Categories">
289                     <field name="complete_name"/>
290                 </tree>
291             </field>
292         </record>
293
294         <record id="view_employee_category_tree" model="ir.ui.view">
295             <field name="name">hr.employee.category.tree</field>
296             <field name="model">hr.employee.category</field>
297             <field name="type">tree</field>
298             <field name="field_parent">child_ids</field>
299             <field name="arch" type="xml">
300                 <tree string="Employees Categories">
301                     <field name="name"/>
302                 </tree>
303             </field>
304         </record>
305
306         <record id="open_view_categ_form" model="ir.actions.act_window">
307             <field name="name">Categories of Employee</field>
308             <field name="res_model">hr.employee.category</field>
309             <field name="view_type">form</field>
310             <field name="view_mode">tree,form</field>
311         </record>
312
313         <menuitem action="open_view_categ_form" id="menu_view_employee_category_form"
314             parent="hr.menu_hr_configuration" sequence="1"/>
315
316         <record id="open_view_categ_tree" model="ir.actions.act_window">
317             <field name="name">Categories Structure</field>
318             <field name="res_model">hr.employee.category</field>
319             <field name="view_type">tree</field>
320             <field name="view_id" ref="view_employee_category_tree"/>
321             <field name="domain">[('parent_id','=',False)]</field>
322         </record>
323
324         <record id="hr_employee_normal_action_tree" model="ir.actions.act_window">
325             <field name="name">Employees</field>
326             <field name="type">ir.actions.act_window</field>
327             <field name="res_model">hr.employee</field>
328             <field name="view_type">form</field>
329             <field name="view_mode">tree,form</field>
330             <field name="domain">[('category_ids','=', active_ids)]</field>
331         </record>
332
333         <record id="hr_employee_category_open" model="ir.values">
334             <field eval="'tree_but_open'" name="key2"/>
335             <field eval="'hr.employee.category'" name="model"/>
336             <field name="name">Employees by Categories</field>
337             <field eval="'ir.actions.act_window,%d'%hr_employee_normal_action_tree" name="value"/>
338         </record>
339
340         <menuitem action="open_view_categ_tree"
341             id="menu_view_employee_category_tree" parent="menu_hr_management" sequence="2"/>
342
343         <record id="view_hr_job_form" model="ir.ui.view">
344             <field name="name">hr.job.form</field>
345             <field name="model">hr.job</field>
346             <field name="type">form</field>
347             <field name="arch" type="xml">
348                 <form layout="manual">
349                 <div class="oe_form_topbar">
350                     <button name="job_recruitement" string="In Recruitement" states="open" type="object"/>
351                     <button name="job_open" string="In Position" states="old,recruit" type="object"/>
352                     <button name="job_old" string="Mark as Old" states="open,recruit" type="object"/>
353                     <div class="oe_right">
354                         <field name="state" widget="statusbar" nolabel="1" statusbar_visible="recruit,open"/>
355                     </div>
356                     <div class="oe_clear"/>
357                 </div>
358                 <sheet string="Job" layout="auto">
359                     <group col="6" colspan="4">
360                     <field name="name" />
361                     <field name="department_id" />
362                     <field name="company_id" widget="selection" groups="base.group_multi_company"/>
363                     <newline/>
364                     <field name="no_of_recruitment" on_change="on_change_expected_employee(no_of_recruitment,no_of_employee)"/>
365                     <field name="no_of_employee"/>
366                     <field name="expected_employees"/>
367                     </group>
368                     <newline/>
369                     <notebook colspan="4">
370                         <page string="Description">
371                             <separator colspan="4" string="Job Description"/>
372                             <field name="description" colspan="4" nolabel="1"/>
373                             <separator colspan="4" string="Requirements"/>
374                             <field name="requirements" colspan="4" nolabel="1"/>
375                         </page>
376                         <page string="Employees">
377                             <field name="employee_ids" colspan="4" nolabel="1" widget="many2many" mode="tree,form"/>
378                         </page>
379                     </notebook>
380                 </sheet>
381                 </form>
382             </field>
383         </record>
384
385         <record id="view_hr_job_tree" model="ir.ui.view">
386             <field name="name">hr.job.tree</field>
387             <field name="model">hr.job</field>
388             <field name="type">tree</field>
389             <field name="arch" type="xml">
390                 <tree string="Job">
391                     <field name="name" />
392                     <field name="department_id" />
393                     <field name="company_id" groups="base.group_multi_company"/>
394                     <field name="expected_employees"/>
395                     <field name="no_of_employee"/>
396                     <field name="no_of_recruitment"/>
397                     <field name="state"/>
398                 </tree>
399             </field>
400         </record>
401
402         <record id="view_job_filter" model="ir.ui.view">
403             <field name="name">Job</field>
404             <field name="model">hr.job</field>
405             <field name="type">search</field>
406             <field name="arch" type="xml">
407                 <search string="Jobs">
408                     <filter icon="terp-camera_test"  
409                             domain="[('state','=','open')]" 
410                             string="In Position"
411                             help="In Position"/>
412                     <filter icon="terp-personal+"  domain="[('state','=','recruit')]" string="In Recruitment"
413                         help="In Recruitment"/>
414                     <separator orientation="vertical"/>
415                     <field name="name"/>
416                     <field name="department_id" widget="selection">
417                     </field>
418                     <newline />
419                     <group expand="0" string="Group By...">
420                     <filter string="Department" icon="terp-personal+" domain="[]" context="{'group_by':'department_id'}"/>
421                     <filter string="Status" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
422                     <filter string="Company" icon="terp-go-home" domain="[]" context="{'group_by':'company_id'}"  groups="base.group_multi_company"/>
423                     </group>
424                 </search>
425              </field>
426          </record>
427
428         <record model="ir.actions.act_window" id="action_hr_job">
429             <field name="name">Job Positions</field>
430             <field name="res_model">hr.job</field>
431             <field name="view_type">form</field>
432             <field name="view_mode">tree,form</field>
433             <field name="search_view_id" ref="view_job_filter"/>
434             <field name="context">{"search_default_Current":1}</field>
435             <field name="help">Job Positions are used to define jobs and their requirements. You can keep track of the number of employees you have per job position and how many you expect in the future. You can also attach a survey to a job position that will be used in the recruitment process to evaluate the applicants for this job position.</field>
436         </record>
437
438         <menuitem name="Recruitment" id="base.menu_crm_case_job_req_main" parent="menu_hr_root" groups="base.group_hr_user"/>
439         <menuitem parent="hr.menu_hr_management" id="menu_hr_job" action="action_hr_job" sequence="6"/>
440
441     </data>
442 </openerp>