document: fix regressions at storage and node_descriptor
[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             groups="base.group_hr_manager,base.group_hr_user"/>
7         <menuitem id="menu_hr_main" parent="menu_hr_root" name="Human Resources" sequence="0" groups="base.group_hr_manager"/>
8         <menuitem id="menu_hr_configuration" name="Configuration" parent="hr.menu_hr_root" groups="base.group_hr_manager" sequence="50"/>
9         <menuitem id="menu_hr_management" name="Human Resources" parent="hr.menu_hr_configuration" sequence="1"/>
10         <menuitem id="menu_view_employee_category_configuration_form" parent="hr.menu_hr_management" groups="base.group_hr_manager" name="Employees" sequence="1" />
11
12         <!--
13         ==========
14         Employee
15         ==========
16         -->
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="type">form</field>
21             <field name="arch" type="xml">
22                 <form string="Employee">
23                     <group colspan="4" col="8">
24                         <group colspan="6" col="6">
25                         <field colspan="6" name="name" />
26                         <field name="user_id" on_change="onchange_user(user_id)"/>
27                         <field name="company_id" widget="selection" groups="base.group_multi_company,base.group_extended" on_change="onchange_company(company_id)"/>
28                         <field name="active" groups="base.group_extended"/>
29                         <newline/>
30                         <field name="department_id" widget="selection" />
31                         <field name="parent_id" />
32                         </group>
33                         <group colspan="2" col="1">
34                         <field name="photo" widget='image' nolabel="1"/>
35                         </group>
36                     </group>
37                     <notebook colspan="6">
38                         <page string="Personal Information">
39                             <group col="2" colspan="2">
40                                 <separator colspan="2" string="Social IDs"/>
41                                 <field name="ssnid"/>
42                                 <field name="sinid" groups="base.group_extended"/>
43                                 <field name="identification_id" groups="base.group_extended"/>
44                                 <field name="passport_id"/>
45                             </group>
46                             <group col="2" colspan="2">
47                                 <separator string="Status" colspan="2"/>
48                                 <field name="gender"/>
49                                 <field name="marital" widget="selection"/>
50                                 <field name="country_id"/>
51                                 <field name="birthday"/>
52                             </group>
53                             <group col="2" colspan="2">
54                                 <separator string="Contact Information" colspan="2"/>
55                                 <field name="address_home_id" colspan="2"/>
56                                 <field name="partner_id" invisible="1" />
57                                 <field name="address_id" colspan="2" domain="[('partner_id', '=', partner_id)]"/>
58                                 <field name="work_phone"/>
59                                 <field name="work_email" widget="email" />
60                                 <field name="work_location"/>
61                             </group>
62                             <group col="2" colspan="2">
63                                 <separator string="Position" colspan="2"/>
64                                 <field name="job_id" domain="[('state','!=','old')]"/>
65                                 <field name="coach_id" />
66                             </group>
67                         </page>
68                         <page string="Categories">
69                             <field name="category_ids" nolabel="1"/>
70                         </page>
71                         <page string="Notes">
72                             <field colspan="4" nolabel="1" name="notes"/>
73                         </page>
74                     </notebook>
75                 </form>
76             </field>
77         </record>
78
79         <record id="view_employee_tree" model="ir.ui.view">
80             <field name="name">hr.employee.tree</field>
81             <field name="model">hr.employee</field>
82             <field name="type">tree</field>
83             <field name="field_parent">child_ids</field>
84             <field name="arch" type="xml">
85                 <tree string="Employees">
86                     <field name="name"/>
87                     <field name="work_phone"/>
88                     <field name="company_id" groups="base.group_multi_company"/>
89                     <field name="work_email" invisible="1"/>
90                     <field name="department_id"/>
91                     <field name="job_id"/>
92                     <field name="parent_id"/>
93                     <field name="coach_id" invisible="1" />
94                 </tree>
95             </field>
96         </record>
97
98         <record id="view_employee_filter" model="ir.ui.view">
99             <field name="name">Employees</field>
100             <field name="model">hr.employee</field>
101             <field name="type">search</field>
102             <field name="arch" type="xml">
103                 <search string="Employees">
104                     <filter icon="terp-personal+" domain="[('active','=',True)]" name="active" string="Active" groups="base.group_extended"/>
105                     <separator orientation="vertical" />
106                     <field name="name"/>
107                     <field name="department_id" widget="selection">
108                     <filter icon="terp-personal+" domain="[('department_id','=',context.get('department_id',False))]" string="My Departments Employee"/>
109                     </field>
110                     <field name="job_id" widget="selection"/>
111                     <field name="parent_id"/>
112                     <newline />
113                     <group expand="0" string="Group By...">
114                     <filter string="Manager" icon="terp-personal" domain="[]" context="{'group_by':'parent_id'}"/>
115                     <filter string="Coach" icon="terp-personal" domain="[]" context="{'group_by':'coach_id'}" groups="base.group_extended"/>
116                     <separator orientation="vertical" />
117                     <filter string="Department" icon="terp-personal+" domain="[]" context="{'group_by':'department_id'}"/>
118                     <filter string="Job" icon="terp-gtk-select-all" domain="[]" context="{'group_by':'job_id'}"/>
119                     <filter string="Company" icon="terp-go-home" domain="[]" context="{'group_by':'company_id'}" groups="base.group_multi_company"/>
120                     </group>
121                 </search>
122              </field>
123          </record>
124
125         <record id="open_view_employee_tree" model="ir.actions.act_window">
126             <field name="name">Employees Structure</field>
127             <field name="res_model">hr.employee</field>
128             <field name="view_type">tree</field>
129             <field name="view_mode">tree,form</field>
130             <field name="view_id" ref="view_employee_tree"/>
131             <field name="domain">[('parent_id','=',False),('user_id','=',uid)]</field>
132             <field name="search_view_id" ref="view_employee_filter"/>
133         </record>
134
135         <record id="open_view_employee_list" model="ir.actions.act_window">
136             <field name="name">Employees</field>
137             <field name="res_model">hr.employee</field>
138             <field name="view_type">form</field>
139             <field name="view_mode">tree,form</field>
140             <field name="view_id" eval="False"/>
141             <field name="search_view_id" ref="view_employee_filter"/>
142         </record>
143
144         <record id="open_view_employee_list_my" model="ir.actions.act_window">
145             <field name="name">Employees</field>
146             <field name="res_model">hr.employee</field>
147             <field name="view_type">form</field>
148             <field name="view_mode">tree,form</field>
149             <field name="domain">[]</field>
150             <field name="context">{"search_default_department_id": department_id,"search_default_active":eval('True')}</field>
151             <field name="view_id" ref="view_employee_tree"/>
152             <field name="search_view_id" ref="view_employee_filter"/>
153             <field name="help">The employee directory contains all data related to your employees : from their photo up to their hourly estimated costs for the timesheets.Employees are managed by departments and can be linked to users to manage their access rights.</field>
154         </record>
155
156         <menuitem action="open_view_employee_list_my" id="menu_open_view_employee_list_my" sequence="3" parent="menu_hr_main" groups="base.group_hr_manager,base.group_hr_user"/>
157
158         <!--
159         =======================
160         Employee marital status
161         =======================
162         -->
163
164     <record id="hr_hr_employee_marital_status_tree" model="ir.ui.view">
165             <field name="name">hr.hr.employee.marital.status.tree</field>
166             <field name="model">hr.employee.marital.status</field>
167             <field name="type">tree</field>
168             <field name="arch" type="xml">
169                 <tree string="Marital Status">
170                     <field name="name" />
171                 </tree>
172             </field>
173         </record>
174
175         <record id="hr_hr_employee_marital_status_form" model="ir.ui.view">
176             <field name="name">hr.hr.employee.marital.status</field>
177             <field name="model">hr.employee.marital.status</field>
178             <field name="type">form</field>
179             <field name="arch" type="xml">
180                 <form string="Marital Status">
181                     <field name="name"/>
182                     <separator colspan="4" string="Description"/>
183                     <field colspan="4" name="description" nolabel="1"/>
184                 </form>
185             </field>
186         </record>
187
188         <record id="action_hr_marital_status" model="ir.actions.act_window">
189             <field name="name">Marital Status</field>
190             <field name="res_model">hr.employee.marital.status</field>
191             <field name="view_type">form</field>
192             <field name="view_mode">tree,form</field>
193             <field name="view_id" ref="hr_hr_employee_marital_status_tree"/>
194         </record>
195
196         <menuitem action="action_hr_marital_status" id="hr_menu_marital_status"
197             parent="hr.menu_view_employee_category_configuration_form" sequence="3" groups="base.group_extended"/>
198
199         <!--
200         =======================
201         Employee architecture
202         =======================
203         -->
204
205         <record id="view_partner_tree2" model="ir.ui.view">
206             <field name="name">hr.employee.tree</field>
207             <field name="model">hr.employee</field>
208             <field name="type">tree</field>
209             <field name="field_parent">child_ids</field>
210             <field name="arch" type="xml">
211                 <tree string="Employees">
212                     <field name="name"/>
213                     <field name="ssnid"/>
214                     <field name="user_id"/>
215                     <field name="address_id"/>
216                 </tree>
217             </field>
218         </record>
219
220         <record id="action2" model="ir.actions.act_window">
221             <field name="name">Employee Hierarchy</field>
222             <field name="type">ir.actions.act_window</field>
223             <field name="res_model">hr.employee</field>
224             <field name="domain">[('id','in',active_ids)]</field>
225             <field name="view_type">tree</field>
226             <field name="view_id" ref="view_partner_tree2"/>
227         </record>
228
229         <ir_set>
230             <field eval="'action'" name="key"/>
231             <field eval="'client_action_multi'" name="key2"/>
232             <field eval="['hr.employee']" name="models"/>
233             <field name="name">Employees Hierarchy</field>
234             <field eval="'ir.actions.act_window,'+str(action2)" name="value"/>
235             <field eval="True" name="isobject"/>
236             <field eval="True" name="replace"/>
237         </ir_set>
238
239         <!--
240         ============
241         Employee Category
242         ============
243         -->
244
245        <record id="view_employee_category_form" model="ir.ui.view">
246             <field name="name">hr.employee.category.form</field>
247             <field name="model">hr.employee.category</field>
248             <field name="type">form</field>
249             <field name="arch" type="xml">
250                 <form string="Employee Category">
251                     <field name="name" />
252                     <field name="parent_id" />
253                 </form>
254             </field>
255         </record>
256
257         <record id="view_employee_category_list" model="ir.ui.view">
258             <field name="name">hr.employee.category.list</field>
259             <field name="model">hr.employee.category</field>
260             <field name="type">tree</field>
261             <field eval="8" name="priority"/>
262             <field name="arch" type="xml">
263                 <tree string="Employees Categories">
264                     <field name="complete_name"/>
265                 </tree>
266             </field>
267         </record>
268
269         <record id="view_employee_category_tree" model="ir.ui.view">
270             <field name="name">hr.employee.category.tree</field>
271             <field name="model">hr.employee.category</field>
272             <field name="type">tree</field>
273             <field name="field_parent">child_ids</field>
274             <field name="arch" type="xml">
275                 <tree string="Employees Categories">
276                     <field name="name"/>
277                 </tree>
278             </field>
279         </record>
280
281         <record id="open_view_categ_form" model="ir.actions.act_window">
282             <field name="name">Categories of Employee</field>
283             <field name="res_model">hr.employee.category</field>
284             <field name="view_type">form</field>
285             <field name="view_mode">tree,form</field>
286         </record>
287
288         <menuitem action="open_view_categ_form" id="menu_view_employee_category_form"
289             parent="menu_view_employee_category_configuration_form" sequence="1" groups="base.group_extended"/>
290
291         <record id="open_view_categ_tree" model="ir.actions.act_window">
292             <field name="name">Categories structure</field>
293             <field name="res_model">hr.employee.category</field>
294             <field name="view_type">tree</field>
295             <field name="view_id" ref="view_employee_category_tree"/>
296             <field name="domain">[('parent_id','=',False)]</field>
297         </record>
298
299         <record id="hr_employee_normal_action_tree" model="ir.actions.act_window">
300             <field name="name">Employees</field>
301             <field name="type">ir.actions.act_window</field>
302             <field name="res_model">hr.employee</field>
303             <field name="view_type">form</field>
304             <field name="view_mode">tree,form</field>
305         </record>
306
307         <record id="hr_employee_category_open" model="ir.values">
308             <field eval="'tree_but_open'" name="key2"/>
309             <field eval="'hr.employee.category'" name="model"/>
310             <field name="name">Employees by Categories</field>
311             <field eval="'ir.actions.act_window,%d'%hr_employee_normal_action_tree" name="value"/>
312             <field eval="True" name="object"/>
313         </record>
314
315         <menuitem action="open_view_categ_tree" groups="base.group_extended"
316             id="menu_view_employee_category_tree" parent="hr.menu_view_employee_category_form"/>
317
318         <record id="view_hr_job_form" model="ir.ui.view">
319             <field name="name">hr.job.form</field>
320             <field name="model">hr.job</field>
321             <field name="type">form</field>
322             <field name="arch" type="xml">
323                 <form string="Job">
324                     <group col="6" colspan="4">
325                     <field name="name" />
326                     <field name="department_id" />
327                     <field name="company_id" widget="selection" groups="base.group_multi_company"/>
328                     <field name="expected_employees" on_change="on_change_expected_employee(expected_employees,no_of_employee)"/>
329                     <field name="no_of_employee"/>
330                     <field name="no_of_recruitment"/>
331                     </group>
332                     <newline/>
333                     <notebook colspan="4">
334                         <page string="Description">
335                             <separator colspan="4" string="Job Description"/>
336                             <field name="description" colspan="4" nolabel="1"/>
337                             <separator colspan="4" string="Requirements"/>
338                             <field name="requirements" colspan="4" nolabel="1"/>
339                         </page>
340                         <page string="Employee">
341                             <field name="employee_ids" colspan='4' nolabel="1"  mode="tree,form"/>
342                         </page>
343                     </notebook>
344                     <group col="6" colspan="4">
345                         <field name="state"/>
346                         <button name="job_recruitement" string="In Recruitement" states="open" type="object" icon="gtk-go-forward"/>
347                         <button name="job_open" string="In Position" states="old,recruit" type="object" icon="terp-camera_test"/>
348                         <button name="job_old" string="Mark as Old" states="open,recruit" type="object" icon="gtk-cancel"/>
349                     </group>
350                 </form>
351             </field>
352         </record>
353
354         <record id="view_hr_job_tree" model="ir.ui.view">
355             <field name="name">hr.job.tree</field>
356             <field name="model">hr.job</field>
357             <field name="type">tree</field>
358             <field name="arch" type="xml">
359                 <tree string="Job">
360                     <field name="name" />
361                     <field name="department_id" />
362                     <field name="company_id" groups="base.group_multi_company"/>
363                     <field name="expected_employees"/>
364                     <field name="no_of_employee"/>
365                     <field name="no_of_recruitment"/>
366                     <field name="state"/>
367                 </tree>
368             </field>
369         </record>
370
371         <record id="view_job_filter" model="ir.ui.view">
372             <field name="name">Job</field>
373             <field name="model">hr.job</field>
374             <field name="type">search</field>
375             <field name="arch" type="xml">
376                 <search string="Jobs">
377                     <filter icon="terp-check" domain="[('state','in',('open','recruit'))]" string="Current"
378                         name="Current" help="Open and in recruitment positions"/>
379                     <separator orientation="vertical"/>
380                     <filter icon="terp-personal+"  domain="[('state','=','recruit')]" string="In Recruitment"
381                         help="In Recruitment"/>
382                     <separator orientation="vertical"/>
383                     <field name="name"/>
384                     <field name="department_id" widget="selection">
385                       <filter icon="terp-personal+" domain="[('department_id', '=', context.get('department_id', False))]" help="My Departments Jobs"/>
386                     </field>
387                     <newline />
388                     <group expand="0" string="Group By...">
389                     <filter string="Department" icon="terp-personal+" domain="[]" context="{'group_by':'department_id'}"/>
390                     <filter string="State" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
391                     <filter string="Company" icon="terp-go-home" domain="[]" context="{'group_by':'company_id'}"  groups="base.group_multi_company"/>
392                     </group>
393                 </search>
394              </field>
395          </record>
396
397         <record model="ir.actions.act_window" id="action_hr_job">
398             <field name="name">Job Positions</field>
399             <field name="res_model">hr.job</field>
400             <field name="view_type">form</field>
401             <field name="view_mode">tree,form</field>
402             <field name="search_view_id" ref="view_job_filter"/>
403             <field name="context">{"search_default_Current":1,"search_default_department_id": department_id}</field>
404             <field name="help">Job Positions are used to define the jobs, the requirements. You can attach a survey to a job position. This survey will be used in the recruitement process to evaluate the applicants for this job position.</field>
405         </record>
406
407         <menuitem name="Recruitment" id="base.menu_crm_case_job_req_main" parent="menu_hr_root" groups="base.group_hr_user"/>
408         <menuitem parent="base.menu_crm_case_job_req_main" id="menu_hr_job" action="action_hr_job" sequence="2"/>
409
410     </data>
411 </openerp>