[IMP] hr_recruitment: cleanup of views
[odoo/odoo.git] / addons / hr_recruitment / hr_recruitment_view.xml
1 <?xml version="1.0"?>
2 <openerp>
3     <data>
4         <menuitem
5             id="menu_hr_recruitment_recruitment"
6             name="Recruitment"
7             parent="hr.menu_hr_configuration"
8             sequence="40" />
9
10         <act_window
11             domain="[('applicant_id', '=', active_id)]"
12             id="act_hr_applicant_to_meeting"
13             name="Meetings"
14             res_model="crm.meeting"
15             src_model="hr.applicant"
16             view_mode="tree,form,calendar,graph"
17             view_type="form"/>
18
19     # ------------------------------------------------------
20     # Job Categories
21     # ------------------------------------------------------
22
23     <record id="hr_job_categ_action" model="ir.actions.act_window">
24         <field name="name">Applicant Categories</field>
25         <field name="res_model">crm.case.categ</field>
26         <field name="view_type">form</field>
27         <field name="view_id" ref="crm.crm_case_categ_tree-view"/>
28         <field name="domain">[('object_id.model', '=', 'hr.applicant')]</field>
29         <field name="context" eval="{'object_id': ref('model_hr_applicant')}"/>
30     </record>
31     # ------------------------------------------------------
32     # Stage
33     # ------------------------------------------------------
34     <record id="hr_job_stage_act" model="ir.actions.act_window">
35         <field name="name">Recruitment / Applicants Stages</field>
36         <field name="res_model">hr.recruitment.stage</field>
37         <field name="view_type">form</field>
38         <field name="domain">[]</field>
39         <field name="context">{}</field>
40         <field name="help">Define here your stages of the recruitment process, for example: qualification call, first interview, second interview, refused, hired.</field>
41     </record>
42
43
44     # ------------------------------------------------------
45     # Jobs
46     # ------------------------------------------------------
47
48     <record model="ir.ui.view" id="crm_case_tree_view_job">
49         <field name="name">Applicants</field>
50         <field name="model">hr.applicant</field>
51         <field name="type">tree</field>
52         <field name="arch" type="xml">
53             <tree string="Applicants" fonts="bold:needaction_pending==True" colors="grey:state in ('cancel','done');blue:state=='pending'">
54                 <field name="needaction_pending" invisible="1"/>
55                 <field name="create_date" groups="base.group_no_one"/>
56                 <field name="name" string="Subject"/>
57                 <field name="partner_name"/>
58                 <field name="email_from"/>
59                 <field name="partner_phone"/>
60                 <field name="job_id"/>
61                 <field name="stage_id"/>
62                 <field name="title_action" invisible="context.get('invisible_next_action', True)"/>
63                 <field name="date_action" invisible="context.get('invisible_next_date', True)"/>
64                 <field name="source_id" invisible="1"/>
65                 <field name="survey" invisible="1"/>
66                 <field name="response" invisible="1"/>
67                 <field name="priority"/>
68                 <field name="type_id" invisible="1"/>
69                 <field name="availability" invisible="1"/>
70                 <field name="department_id" invisible="context.get('invisible_department', True)"/>
71                 <field name="user_id"/>
72                 <field name="state" groups="base.group_no_one"/>
73             </tree>
74         </field>
75     </record>
76
77     <record model="ir.ui.view" id="crm_case_form_view_job">
78         <field name="name">Jobs - Recruitment Form</field>
79         <field name="model">hr.applicant</field>
80         <field name="type">form</field>
81         <field name="arch" type="xml">
82           <form string="Jobs - Recruitment Form" version="7.0">
83             <header>
84                 <button name="%(action_hr_recruitment_hired_employee)d" string="Hire" type="action"
85                         states="open,pending"/>
86                 <button name="case_open" string="Open" type="object"
87                         states="draft,pending"/>
88                 <button name="case_pending" string="Pending" type="object"
89                         states="open"/>
90                 <button name="case_reset" string="Reset to New" type="object"
91                         states="done,cancel"/>
92                 <button name="case_cancel" string="Refuse" type="object"
93                         states="draft,open,pending"/>
94                 <button name="stage_previous" string="Previous" type="object"
95                         states="open" icon="gtk-go-back"/>
96                 <button name="stage_next" string="Next" type="object"
97                         states="open" icon="gtk-go-forward"/>
98                 <field name="stage_id" widget="statusbar"/>
99             </header>
100             <sheet>
101                 <div class="oe_right oe_form_button_box">
102                                         <button name="action_makeMeeting" type="object" string="Schedule Interview" icon="gtk-index" help="Schedule interview with this applicant"/>
103                                         <button name="%(survey.action_view_survey_question_message)d" string="Start Interview" type="action" icon="gtk-execute" context="{'survey_id': survey, 'response_id': [response], 'response_no':0 ,'active' : response, 'object' : 'hr.applicant'}" attrs="{'invisible':[('survey','=',False)]}" help="Answer related job question"/>
104                                         <button name="action_print_survey" string="Print Interview" type="object" icon="gtk-print" attrs="{'invisible':[('survey','=',False)]}" help="Print interview report"/>
105                 </div>
106                 <div class="oe_form_title">
107                     <label for="name" class="oe_form_readonly_hidden"/>
108                     <h1><field name="name"/></h1>
109                     <field name="type_id" placeholder="Degree"/>
110                 </div>
111
112                                 <group>
113                     <group>
114                         <field name="partner_name"/>
115                         <field name="user_id"/>
116                         <field name="title_action"/>
117                         <field name="date_action"/>
118                     </group>
119                     <group>
120                         <field name="job_id" on_change="onchange_job(job_id)"/>
121                         <field name="priority" string="Appreciation"/>
122                         <field name="survey" invisible="1"/>
123                         <field name="response" invisible="1"/>
124                         <field name="department_id" widget="selection" on_change="onchange_department_id(department_id)"/>
125                         <field name="state" groups="base.group_no_one"/>
126                     </group>
127                 </group>
128                 <notebook>
129                     <page string="Application">
130                         <group>
131                             <group string="Contact">
132                                 <label for="partner_id"/>
133                                 <div>
134                                     <field name="partner_id" class="oe_form_inline" on_change="onchange_partner_id(partner_id, email_from)"/>
135                                     <button class="oe_form_inline"
136                                         string="Create" help="Create a new contact for this applicant" icon="gtk-index"
137                                         name="%(action_hr_recruitment_partner_create)d" type="action"
138                                         attrs="{'invisible':[('partner_id','!=',False)]}"/>
139                                 </div>
140                                 <field name="email_from" widget="email"/>
141                                 <field name="partner_phone"/>
142                                 <field name="partner_mobile"/>
143                             </group>
144                             <group string="Reference">
145                                 <field name="source_id"/>
146                                 <field name="reference"/>
147                             </group>
148                             <group string="Contract">
149                                 <field name="salary_expected"/>
150                                 <field name="salary_expected_extra"/>
151                                 <field name="salary_proposed"/>
152                                 <field name="salary_proposed_extra"/>
153                                 <field name="availability"/>
154                             </group>
155                         </group>
156                         <separator string="Details"/>
157                         <field name="description"/>
158                    </page>
159                 </notebook>
160             </sheet>
161             <footer>
162                 <field name="message_ids" widget="ThreadView"/>
163             </footer>
164           </form>
165         </field>
166     </record>
167
168     <record model="ir.ui.view" id="crm_case_graph_view_job">
169         <field name="name">Jobs - Recruitment Graph</field>
170         <field name="model">hr.applicant</field>
171         <field name="type">graph</field>
172         <field name="arch" type="xml">
173               <graph string="Cases By Stage and Estimates" type="bar" orientation="vertical">
174                 <field name="job_id"/>
175                 <field name="salary_expected" operator="+"/>
176                 <field name="state" group="True"/>
177             </graph>
178         </field>
179     </record>
180
181     <record id="view_crm_case_jobs_filter" model="ir.ui.view">
182         <field name="name">Jobs - Recruitment Search</field>
183         <field name="model">hr.applicant</field>
184         <field name="type">search</field>
185         <field name="arch" type="xml">
186             <search string="Search Jobs">
187                <filter icon="terp-document-new" string="New" name="filter_new" 
188                    domain="[('state','=','draft')]"
189                    help="All Initial Jobs"
190                />
191                <filter icon="terp-camera_test" string="In Progress" name="filter_inprogress"
192                    domain="[('state','=','open')]"
193                    help="Open Jobs"
194                />
195                <filter icon="terp-gtk-media-pause" string="Pending"
196                    domain="[('state','=','pending')]"
197                    help="Pending Jobs"
198                />
199                <separator orientation="vertical"/>
200                <filter icon="terp-gtk-jump-to-ltr" string="Next Actions"
201                     context="{'invisible_next_action':False, 'invisible_next_date':False}"
202                     domain="[('date_action','&lt;&gt;',False)]"
203                     help="Filter and view on next actions and date"/>
204                <separator orientation="vertical"/>
205                <field name="partner_name" filter_domain="['|','|',('name','ilike',self),('partner_name','ilike',self),('email_from','ilike',self)]" string="Subject / Applicant"/>
206                <field name="job_id" widget="selection"/>
207                <field name="user_id">
208                     <filter domain="[('user_id','=',False)]" help="Unassigned Recruitments" icon="terp-personal-" />
209                </field>
210                <newline/>
211                 <group expand="0" string="Group By...">
212                     <filter string="Responsible" icon="terp-personal" domain="[]"  context="{'group_by':'user_id'}"/>
213                     <filter string="Department" icon="terp-personal+" domain="[]" context="{'group_by':'department_id'}"/>
214                     <separator orientation="vertical"/>
215                     <filter string="Job" icon="terp-gtk-select-all" domain="[]" context="{'group_by':'job_id'}"/>
216                     <filter string="Degree" icon="terp-gtk-select-all" domain="[]" context="{'group_by':'type_id'}"/>
217                     <filter string="Availability" icon="terp-camera_test" domain="[]" context="{'group_by':'availability'}"/>
218                     <separator orientation="vertical"/>
219                     <filter string="Appreciation" icon="terp-face-plain" domain="[]" context="{'group_by':'priority'}"/>
220                     <filter string="Stage" icon="terp-stage" domain="[]" context="{'group_by':'stage_id'}"/>
221                     <filter string="Status" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
222                     <filter string="Source" icon="terp-face-plain" domain="[]" context="{'group_by':'source_id'}"/>
223                     <separator orientation="vertical" groups="base.group_no_one"/>
224                     <filter string="Creation Date" icon="terp-go-month" domain="[]" context="{'group_by':'create_date'}" groups="base.group_no_one"/>
225                 </group>
226            </search>
227         </field>
228     </record>
229
230     <!-- CRM Lead Calendar View -->
231
232     <record model="ir.ui.view" id="hr_applicant_calendar_view">
233         <field name="name">Hr Applicants Calendar</field>
234         <field name="model">hr.applicant</field>
235         <field name="type">calendar</field>
236         <field name="priority" eval="2"/>
237         <field name="arch" type="xml">
238             <calendar string="Applicants"
239                 date_start="date_action" color="user_id">
240                 <field name="name" />
241                 <field name="partner_name" />
242                 <field name="title_action"/>
243             </calendar>
244         </field>
245     </record>
246
247     <!-- hr Applicant Kanban View -->
248
249     <record model="ir.ui.view" id="hr_kanban_view_applicant">
250         <field name="name">Hr Applicants kanban</field>
251         <field name="model">hr.applicant</field>
252         <field name="type">kanban</field>
253         <field name="arch" type="xml">
254             <kanban default_group_by="stage_id">
255                 <field name="color"/>
256                 <field name="state" groups="base.group_no_one"/>
257                 <field name="priority"/>
258                 <field name="survey"/>
259                 <field name="user_id"/>
260                 <field name="user_email"/>
261                 <field name="partner_name"/>
262                 <field name="type_id"/>
263                 <field name="job_id"/>
264                  <field name="title_action"/>
265                     <templates>
266                         <t t-name="kanban-box">
267                             <t t-if="record.priority.raw_value == '1'" t-set="border">oe_kanban_color_green</t>
268                             <div t-attf-class="oe_kanban_color_#{kanban_getcolor(record.color.raw_value)} oe_kanban_card oe_kanban_project oe_kanban_auto_height">
269                                 <a class="oe_kanban_menuaction oe_i">B</a>
270                                 <ul class="oe_kanban_menu">
271                                     <li><a type="edit">Edit...</a></li>
272                                     <li><a type="delete">Delete</a></li>
273                                     <li><ul class="oe_kanban_colorpicker" data-field="color"/></li>
274                                 </ul>
275                                 <div class="oe_kanban_content" >
276                                         <h3 class="oe_kanban_ellipsis"><field name="name"/>
277                                     </h3> 
278                                     <div style="margin-bottom:2;padding-top:5px;white-space: nowrap;" >                               
279                                             <field name="partner_name"/>
280                                         <div class="oe_kanban_right">
281                                           <span class="oe_kanban_highlight">
282                                                 <t t-set="priority" t-value="record.priority.raw_value || 5"/>
283                                             <a type="object" name="set_priority" args="['3']" t-if="priority gt 3">
284                                                <img src="/web/static/src/img/icons/star-off.png" width="16" height="16"/>
285                                             </a>
286                                             <a type="object" name="set_priority" args="['5']" t-if="priority lte 3">
287                                                <img t-attf-src="/web/static/src/img/icons/star-#{priority lte 3 ? 'on' : 'off'}.png" width="16" height="16"/>
288                                             </a>
289                                             <a type="object" name="set_priority" args="['2']">
290                                                <img t-attf-src="/web/static/src/img/icons/star-#{priority lte 2 ? 'on' : 'off'}.png" width="16" height="16"/>
291                                             </a>
292                                             <a type="object" name="set_priority" args="['1']">
293                                                <img t-attf-src="/web/static/src/img/icons/star-#{priority == 1 ? 'on' : 'off'}.png" width="16" height="16"/>
294                                             </a>
295                                          </span>
296                                      </div>
297                                   </div>
298                                   <div style="white-space: nowrap;" >
299                                                 <div t-if="record.type_id.raw_value">
300                                           (<field name="type_id"/>)
301                                         </div>
302                                   </div>
303                                    <div style="padding-top:5px;white-space: nowrap;" >
304                                           <t t-if="record.job_id.raw_value">Applied for <field name="job_id" /></t> 
305                                    </div>
306                                    <div style="padding-top:5px;white-space: nowrap;" >
307                                           <t t-if="record.title_action.raw_value">
308                                           <field name="title_action" /> on 
309                                            <field name="date_action" />
310                                        </t>
311                                     </div>
312                                     <div align="left" width="22" style="padding-top:5px;white-space: nowrap;" >
313                                       <div align="right">
314                                            <img t-att-src="kanban_image('res.users', 'avatar', record.user_id.raw_value[0])" t-att-title="record.user_id.value" width="24" height="24" class="oe_kanban_avatar"/>
315                                       </div>
316                                     </div>
317                                 </div>
318                             </div>
319                         </t>
320                     </templates>
321                 </kanban>
322             </field>
323         </record>
324
325     # ------------------------------------------------------
326     # HR Job
327     # ------------------------------------------------------
328
329     <record id="hr_job_survey" model="ir.ui.view">
330         <field name="name">hr.job.form1</field>
331         <field name="model">hr.job</field>
332         <field name="type">form</field>
333         <field name="inherit_id" ref="hr.view_hr_job_form"/>
334         <field name="arch" type="xml">
335             <field name="expected_employees" position="after">
336                 <!--
337                 <label for="survey_id" />
338                 <div>
339                     <field name="survey_id" class="oe_form_inline"/>
340                     <button class="oe_form_inline"
341                         string="Interview" icon="gtk-print"
342                         name="action_print_survey" type="object"
343                         attrs="{'invisible':[('survey_id','=',False)]}"/>
344                 </div>
345                 -->
346                 <field name="survey_id"/>
347                 <button string="Interview" icon="gtk-print"
348                     name="action_print_survey" type="object"
349                     attrs="{'invisible':[('survey_id','=',False)]}"/>
350             </field>
351         </field>
352     </record>
353
354 <!-- Stage Tree View -->
355
356     <record model="ir.ui.view" id="hr_recruitment_stage_tree">
357         <field name="name">hr.recruitment.stage.tree</field>
358         <field name="model">hr.recruitment.stage</field>
359         <field name="type">tree</field>
360         <field name="arch" type="xml">
361             <tree string="Stages">
362                 <field name="sequence" invisible="1"/>
363                 <field name="name"/>
364                 <field name="department_id"/>
365                 <field name="state"/>
366             </tree>
367         </field>
368     </record>
369
370 <!-- Stage Form View -->
371
372     <record model="ir.ui.view" id="hr_recruitment_stage_form">
373         <field name="name">hr.recruitment.stage.form</field>
374         <field name="model">hr.recruitment.stage</field>
375         <field name="type">form</field>
376         <field name="arch" type="xml">
377             <form string="Stage" version="7.0">
378                 <group string="Stage Definition">
379                     <field name="name"/>
380                     <field name="department_id"/>
381                     <field name="sequence"/>
382                     <field name="state"/>
383                 </group>
384                 <separator string="Requirements"/>
385                 <field name="requirements"/>
386             </form>
387         </field>
388     </record>
389
390 <!-- Stage Action -->
391
392     <record id="hr_recruitment_stage_act" model="ir.actions.act_window">
393         <field name="name">Stages</field>
394         <field name="res_model">hr.recruitment.stage</field>
395         <field name="view_type">form</field>
396         <field name="view_id" ref="hr_recruitment_stage_tree"/>
397         <field name="help"> Check if the following stages are matching your recruitment process. Don't forget to specify the department if your recruitment process is different according to the job position.</field>
398     </record>
399
400     <menuitem
401         id="menu_hr_recruitment_stage"
402         name="Stages"
403         parent="menu_hr_recruitment_recruitment"
404         action="hr_recruitment_stage_act"
405         sequence="1" groups="base.group_no_one"/>
406
407 <!-- Degree Tree View -->
408
409     <record model="ir.ui.view" id="hr_recruitment_degree_tree">
410         <field name="name">hr.recruitment.degree.tree</field>
411         <field name="model">hr.recruitment.degree</field>
412         <field name="type">tree</field>
413         <field name="arch" type="xml">
414             <tree string="Degree">
415                 <field name="sequence" invisible="1"/>
416                 <field name="name"/>
417             </tree>
418         </field>
419     </record>
420
421 <!-- Degree Form View -->
422
423     <record model="ir.ui.view" id="hr_recruitment_degree_form">
424         <field name="name">hr.recruitment.degree.form</field>
425         <field name="model">hr.recruitment.degree</field>
426         <field name="type">form</field>
427         <field name="arch" type="xml">
428             <form string="Degree" version="7.0">
429                 <group>
430                     <field name="name"/>
431                     <field name="sequence"/>
432                 </group>
433             </form>
434         </field>
435     </record>
436
437 <!-- Degree Action -->
438
439     <record id="hr_recruitment_degree_action" model="ir.actions.act_window">
440         <field name="name">Degree</field>
441         <field name="res_model">hr.recruitment.degree</field>
442         <field name="view_type">form</field>
443         <field name="view_id" ref="hr_recruitment_degree_tree"/>
444     </record>
445
446      <menuitem
447             id="menu_hr_recruitment_degree"
448             name="Degrees"
449             parent="menu_hr_recruitment_recruitment"
450             action="hr_recruitment_degree_action"
451             sequence="5" groups="base.group_no_one"/>
452
453 <!-- Source Tree View -->
454
455     <record model="ir.ui.view" id="hr_recruitment_source_tree">
456         <field name="name">hr.recruitment.source.tree</field>
457         <field name="model">hr.recruitment.source</field>
458         <field name="type">tree</field>
459         <field name="arch" type="xml">
460             <tree string="Sources of Applicants">
461                 <field name="name"/>
462             </tree>
463         </field>
464     </record>
465     <record model="ir.ui.view" id="hr_recruitment_source_form">
466         <field name="name">hr.recruitment.source.form</field>
467         <field name="model">hr.recruitment.source</field>
468         <field name="type">form</field>
469         <field name="arch" type="xml">
470             <form string="Sources of Applicants">
471                 <field name="name"/>
472             </form>
473         </field>
474     </record>
475     <record id="hr_recruitment_source_action" model="ir.actions.act_window">
476         <field name="name">Sources of Applicants</field>
477         <field name="res_model">hr.recruitment.source</field>
478         <field name="view_type">form</field>
479     </record>
480
481      <menuitem
482             id="menu_hr_recruitment_source"
483             parent="menu_hr_recruitment_recruitment"
484             action="hr_recruitment_source_action"
485             sequence="10" groups="base.group_no_one"/>
486
487     <record model="ir.ui.view" id="crm_meeting_form_view">
488         <field name="name">CRM - Meetings Form</field>
489         <field name="model">crm.meeting</field>
490         <field name="type">form</field>
491         <field name="inherit_id" ref="crm.crm_case_form_view_meet"/>
492         <field name="arch" type="xml">
493             <field name="email_from" position="after">
494                 <field name="applicant_id"/>
495             </field>
496         </field>
497     </record>
498
499     </data>
500 </openerp>