fix
[odoo/odoo.git] / addons / hr_evaluation / hr_evaluation_view.xml
1 <?xml version="1.0" ?>
2 <openerp>
3     <data>
4
5       <record id="view_hr_evaluation_plan_search" model="ir.ui.view">
6             <field name="name">hr_evaluation.plan.search</field>
7             <field name="model">hr_evaluation.plan</field>
8             <field name="type">search</field>
9             <field name="arch" type="xml">
10                 <search string="Appraisal Plan">
11                    <field name="name" string="Appraisal Plans"/>
12                    <field name="company_id" groups="base.group_multi_company"/>
13                    <group expand="0" string="Group By..." groups="base.group_multi_company">
14                         <filter string="Company" icon="terp-go-home" domain="[]" context="{'group_by':'company_id'}"/>
15                     </group>
16                </search>
17             </field>
18         </record>
19
20         <record model="ir.ui.view" id="view_hr_evaluation_plan_form">
21             <field name="name">hr_evaluation.plan.form</field>
22             <field name="model">hr_evaluation.plan</field>
23             <field name="type">form</field>
24             <field name="arch" type="xml">
25                 <form string="Appraisal Plan" version="7.0">
26                     <group col="4">
27                         <group>
28                             <field name="name"/>
29                             <field name="company_id" widget="selection" groups="base.group_multi_company"/>
30                             <field name="active"/>
31                         </group>
32                         <group>
33                             <field name="month_first"/>
34                             <field name="month_next"/>
35                         </group>
36                     </group>
37                      <notebook>
38                          <page string="Appraisal Phases">
39                             <field name="phase_ids"/>
40                          </page>
41                      </notebook>
42                 </form>
43             </field>
44         </record>
45         <record model="ir.ui.view" id="view_hr_evaluation_plan_tree">
46             <field name="name">hr_evaluation.plan.form</field>
47             <field name="model">hr_evaluation.plan</field>
48             <field name="type">tree</field>
49             <field name="arch" type="xml">
50                 <tree string="Appraisal Plan">
51                     <field name="name"/>
52                     <field name="month_first"/>
53                     <field name="month_next"/>
54                     <field name="company_id" groups="base.group_multi_company"/>
55                 </tree>
56             </field>
57         </record>
58         <record model="ir.actions.act_window" id="open_view_hr_evaluation_plan_tree">
59             <field name="name">Appraisal Plans</field>
60             <field name="res_model">hr_evaluation.plan</field>
61             <field name="view_type">form</field>
62             <field name="view_mode">tree,form</field>
63         </record>
64
65         <menuitem name="Appraisal" parent="hr.menu_hr_root" id="menu_eval_hr" sequence="25"/>
66         <menuitem name="Periodic Appraisal" parent="hr.menu_hr_configuration" id="menu_eval_hr_config" sequence="4"/>
67         <menuitem parent="hr.menu_hr_configuration" id="menu_open_view_hr_evaluation_plan_tree"
68             action="open_view_hr_evaluation_plan_tree" sequence="15"/>
69
70         <record model="ir.ui.view" id="view_hr_evaluation_plan_phase_form">
71             <field name="name">hr_evaluation.plan.phase.form</field>
72             <field name="model">hr_evaluation.plan.phase</field>
73             <field name="type">form</field>
74             <field name="arch" type="xml">
75                 <form string="Appraisal Plan Phases" version="7.0">
76                  <notebook>
77                    <page string="General">
78                     <group>
79                     <field name="plan_id" invisible="1"/>
80                         <group>
81                         <group>
82                             <field name="name"/>
83                             <field name="wait"/>
84                             <field name="sequence"/>
85                         </group>
86                         <group>
87                             <separator string="Action to Perform" colspan="4"/>
88                             <field name="action"/>
89                             <field name="survey_id" domain="[('state','=','open')]"/>
90                         </group>
91                         <group string="Send to Managers">
92                             <field name="send_answer_manager"/>
93                             <field name="send_anonymous_manager"/>
94                         </group><group string="Send to Employees">
95                             <field name="send_answer_employee"/>
96                             <field name="send_anonymous_employee"/>
97                         </group>
98                         </group>
99                     </group>
100                     </page>
101                     <page string="Mail Settings">
102                         <field name="mail_feature"/>
103                         <separator string="Mail Body"/>
104                         <field name="mail_body"/>
105                         <group string="Legend">
106                             <label string=" (employee_name)s: Partner name"/>
107                             <label string="(user_signature)s: User name"/>
108                             <label string="(date)s: Current Date"/>
109                             <label string="(eval_name)s:Appraisal Name"/>
110                         </group>
111                     </page>
112                   </notebook>
113                 </form>
114             </field>
115         </record>
116         <record model="ir.ui.view" id="view_hr_evaluation_plan_phase_tree">
117             <field name="name">hr_evaluation.plan.phase.form</field>
118             <field name="model">hr_evaluation.plan.phase</field>
119             <field name="type">tree</field>
120             <field name="arch" type="xml">
121                 <tree string="Appraisal Plan Phases" editable="bottom" >
122                     <field name="sequence"/>
123                     <field name="name"/>
124                     <field name="action"/>
125                     <field name="survey_id"/>
126                     <field name="wait"/>
127                 </tree>
128             </field>
129         </record>
130
131         <record id="hr_hr_employee_view_form" model="ir.ui.view">
132             <field name="name">hr.hr.employee.view.form</field>
133             <field name="model">hr.employee</field>
134             <field name="inherit_id" ref="hr.view_employee_form"/>
135             <field name="arch" type="xml">
136                 <page string="Personal Information" position="after">
137                     <page string="Appraisal" groups="base.group_hr_user">
138                         <group col="4">
139                             <field name="evaluation_plan_id" on_change="onchange_evaluation_plan_id(evaluation_plan_id, evaluation_date)"/>
140                             <field name="evaluation_date"/>
141                         </group>
142                     </page>
143                 </page>
144             </field>
145         </record>
146
147         <record model="ir.ui.view" id="view_hr_evaluation_form">
148             <field name="name">hr_evaluation.evaluation.form</field>
149             <field name="model">hr_evaluation.evaluation</field>
150             <field name="type">form</field>
151             <field name="arch" type="xml">
152                 <form string="Appraisal" version="7.0">
153                 <header>
154                     <button name="button_plan_in_progress" string="Start Appraisal" states="draft" type="object" class="oe_highlight"/>
155                     <button name="button_final_validation" string="Validate Appraisal" states="wait" type="object" class="oe_highlight"/>
156                     <button name="button_done" string="Done" states="progress" type="object" class="oe_highlight"/>
157                     <button name="button_draft" string="Reset to Draft" states="cancel" type="object" />
158                     <button name="button_cancel" string="Cancel" states="draft,wait,progress" type="object"/>
159                     <field name="state" widget="statusbar" statusbar_visible="draft,progress,wait,done" statusbar_colors='{"progress":"blue"}'/>
160                 </header>
161                 <sheet>
162                     <label for="employee_id" class="oe_edit_only"/>
163                     <h1><field name="employee_id" on_change="onchange_employee_id(employee_id)" class="oe_inline"/>, <field name="date" class="oe_inline"/></h1>
164                     <label for="plan_id" class="oe_edit_only"/>
165                     <h2><field name="plan_id"/></h2>
166                     <group>
167                         <group colspan="4" attrs="{'invisible':['|', ('state','=','draft'), ('state', '=', 'wait')]}">
168                             <field name="rating" attrs="{'readonly':[('state','&lt;&gt;','progress')]}"/>
169                             <field name="date_close" readonly="1"/>
170                         </group>
171                     </group>
172                     <group string="Appraisal Forms" attrs="{'invisible':[('state','=','draft')]}">
173                         <field nolabel="1" name="survey_request_ids">
174                             <form string="Interview Appraisal" version="7.0">
175                                 <div class="oe_right oe_button_box">
176                                     <button name="%(survey.action_view_survey_question_message)d" string="Answer Survey" type="action" states="waiting_answer,done,cancel" icon="gtk-execute" context="{'survey_id': survey_id, 'response_id': [response], 'response_no':0, 'active' : response,'request' : True, 'object' : 'hr.evaluation.interview', 'cur_id' : active_id}" attrs="{'readonly':[('survey_id','=',False)]}"/>
177                                     <button name="%(survey.survey_browse_response)d" string="Print Interview" type="action" states="done" icon="gtk-print" context="{'survey_id': survey_id, 'response_id' : [response], 'response_no':0,}" attrs="{'readonly':[('response','=',False)]}" />
178                                 </div>
179                                 <group>
180                                     <group>
181                                         <field name="survey_id"/>
182                                         <field name="user_to_review_id"/>
183                                         <field name="user_id" string="Interviewer"/>
184                                     </group>
185                                     <group>              
186                                         <field name="date_deadline"/>
187                                         <field name="response" readonly="1"/>
188                                     </group>
189                                 </group>
190                                 <group col="4" string="Status" invisible="1">
191                                      <field name="state"/>
192                                      <div>
193                                          <button string="Done" name="survey_req_done" states="waiting_answer" type="object" icon="gtk-jump-to" />
194                                      </div>
195                                 </group>
196                             </form>
197                         </field>
198                     </group>
199                     <group string="Internal Notes" attrs="{'invisible':[('state','=','draft')]}">
200                         <field nolabel="1" name="note_action"
201                             groups="base.group_hr_manager" placeholder="Appraisal Summary..."/>
202                     </group>
203                     <group string="Public Notes" attrs="{'invisible':[('state','=','draft')]}">
204                         <field nolabel="1" name="note_summary" placeholder="Action Plan..."/>
205                     </group>
206               </sheet>
207               </form>
208             </field>
209         </record>
210
211         <record model="ir.ui.view" id="view_hr_evaluation_tree">
212             <field name="name">hr_evaluation.evaluation.tree</field>
213             <field name="model">hr_evaluation.evaluation</field>
214             <field name="type">tree</field>
215             <field name="arch" type="xml">
216                 <tree colors="blue:state == 'draft';black:state in ('wait','progress');gray:state in('done','cancel')" string="Appraisal">
217                     <field name="employee_id"/>
218                     <field name="plan_id"/>
219                     <field name="date"/>
220                     <!--field name="progress" widget="progressbar"/-->
221                     <field name="rating"/>
222                     <field name="state"/>
223                 </tree>
224             </field>
225         </record>
226
227        <record id="hr_evaluation.evaluation_search" model="ir.ui.view">
228             <field name="name">hr_evaluation.evaluation_search</field>
229             <field name="model">hr_evaluation.evaluation</field>
230             <field name="type">search</field>
231             <field name="arch" type="xml">
232                 <search string="Search Appraisal">
233                     <field name="date"/>
234                     <filter icon="terp-check" string="Pending" domain="[('state','=','wait')]" help="Appraisal that are in Plan In Progress state"/>
235                     <filter icon="terp-camera_test" string="In progress" domain="[('state','=','progress')]" help="Appraisal that are in waiting appreciation state"/>
236                     <field name="employee_id" />
237                     <field name="plan_id"/>
238                     <group expand='0' string='Group by...'>
239                         <filter string='Employee' icon="terp-personal" domain="[]" context="{'group_by' : 'employee_id'}" />
240                         <filter string='Plan' icon="terp-stock_align_left_24" domain="[]" context="{'group_by' : 'plan_id'}" />
241                         <filter string='Status' icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by' : 'state'}" />
242                         <filter string='Date' icon="terp-go-month" domain="[]" context="{'group_by' : 'date'}" />
243                    </group>
244                </search>
245             </field>
246         </record>
247
248         <record model="ir.actions.act_window" id="open_view_hr_evaluation_tree">
249             <field name="name">Appraisal</field>
250             <field name="res_model">hr_evaluation.evaluation</field>
251             <field name="view_type">form</field>
252             <field name="view_mode">tree,form,graph</field>
253             <field name="search_view_id" ref="hr_evaluation.evaluation_search"/>
254              <field name="context">{"search_default_next_month":1}</field>
255             <field name="help" type="xml">
256               <p class="oe_view_nocontent_create">
257                 Click to create a new appraisal.
258               </p><p>
259                 Each employee may be assigned an Appraisal Plan. Such a plan
260                 defines the frequency and the way you manage your periodic
261                 personnel evaluation. You will be able to define steps and
262                 attach interviews to each step. OpenERP manages all kind of
263                 evaluations: bottom-up, top-down, self-evaluation and final
264                 evaluation by the manager.
265               </p>
266             </field>
267         </record>
268
269         <menuitem name="Appraisals" parent="menu_eval_hr" id="menu_open_view_hr_evaluation_tree"
270             action="open_view_hr_evaluation_tree" groups="base.group_hr_user"/>
271
272         <record model="ir.ui.view" id="view_hr_evaluation_interview_form">
273             <field name="name">hr_evaluation.interview.form</field>
274             <field name="model">hr.evaluation.interview</field>
275             <field name="type">form</field>
276             <field name="arch" type="xml">
277                 <form string="Interview Appraisal" version="7.0">
278                     <header>
279                         <button string="Send Request" name="survey_req_waiting_answer" states="draft" type="object" icon="gtk-yes" class="oe_highlight"/>
280                         <button string="Done" name="survey_req_done" states="waiting_answer" type="object" icon="gtk-jump-to" class="oe_highlight"/>
281                         <button string="Cancel" name="survey_req_cancel" states="draft,waiting_answer" type="object" icon="gtk-cancel"/>
282                         <button name="%(survey.action_view_survey_question_message)d" string="Answer Survey" type="action" states="waiting_answer,done,cancel" icon="gtk-execute" context="{'survey_id': survey_id, 'response_id': [response], 'response_no':0, 'active' : response,'request' : True, 'object' : 'hr.evaluation.interview', 'cur_id' : active_id}" attrs="{'readonly':[('survey_id','=',False)]}" class="oe_highlight"/>
283                         <button name="action_print_survey" string="Print Survey" type="object" states="draft" icon="gtk-print" context="{'survey_id': survey_id, 'response_id': [response], 'response_no':0}" attrs="{'readonly':[('survey_id','=',False)]}" class="oe_highlight"/>
284                         <button string="Send Reminder Email" name="%(mail.action_email_compose_message_wizard)d" icon="terp-mail-message-new" type="action" states="waiting_answer" class="oe_highlight"/>
285                         <field name="state" widget="statusbar" statusbar_visible="waiting_answer,done"/>
286                     </header>
287                     <sheet>
288                         <group>
289                             <group>
290                                 <field name="survey_id"/>
291                                 <field name="user_to_review_id"/>
292                                 <field name="user_id" string="Interviewer"/>
293                             </group>
294                             <group>
295                                 <field name="date_deadline"/>
296                                 <field name="response" readonly="1"/>
297                                 <field name="evaluation_id" string="Appraisal Plan"/>
298                             </group>
299                         </group>
300                     </sheet>
301                 </form>
302             </field>
303         </record>
304
305         <record model="ir.ui.view" id="view_hr_evaluation_interview_tree">
306             <field name="name">hr_evaluation.interview.tree</field>
307             <field name="model">hr.evaluation.interview</field>
308             <field name="type">tree</field>
309             <field name="arch" type="xml">
310                 <tree string="Interview Appraisal">
311                     <field name="date_deadline" string="Deadline Date"/>
312                     <field name="survey_id"/>
313                     <field name="user_id" string="Interviewer"/>
314                     <field name="user_to_review_id"/>
315                     <field name="response" readonly="1" invisible="True"/>
316                     <button name="%(survey.action_view_survey_question_message)d" string="Answer Survey" type="action" states="waiting_answer,done,cancel" icon="gtk-execute" context="{'survey_id': survey_id, 'response_id': [response], 'response_no':0, 'active' : response, 'request' : True, 'object' : 'hr.evaluation.interview', 'cur_id' : active_id}" attrs="{'readonly':[('survey_id','=',False)]}"/>
317                     <button name="action_print_survey" string="Print Survey" type="object" icon="gtk-print" context="{'survey_id': survey_id, 'response_id': [response], 'response_no':0}" attrs="{'readonly':[('survey_id','=',False)]}"/>
318                     <button name="%(mail.action_email_compose_message_wizard)d" string="Send Reminder Email" icon="terp-mail-message-new" type="action" states="waiting_answer"/>
319                     <field name="state"/>
320                     <button string="Send Request" name="survey_req_waiting_answer" states="draft" type="object" icon="gtk-yes" />
321                     <button string="Done" name="survey_req_done" states="waiting_answer" type="object" icon="gtk-jump-to" />
322                 </tree>
323             </field>
324         </record>
325
326        <record id="view_hr_evaluation_interview_search" model="ir.ui.view">
327             <field name="name">view_hr_evaluation_interview_search</field>
328             <field name="model">hr.evaluation.interview</field>
329             <field name="type">search</field>
330             <field name="arch" type="xml">
331                 <search string="Search Appraisal">
332                     <field name="date_deadline"/>
333                     <filter icon="terp-gtk-go-back-rtl" string="To Do" name="todo" domain="[('state','=','waiting_answer')]"/>
334                     <field name="user_to_review_id"/>
335                     <field name="user_id" string="Interviewer"/>
336                     <group expand="0" string="Group By...">
337                         <filter string="Interviewer" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/>
338                         <filter string="Survey" icon="terp-stock_align_left_24" domain="[]" context="{'group_by':'survey_id'}"/>
339                         <filter string="Status" name="group_state" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
340                     </group>
341                </search>
342             </field>
343         </record>
344
345         <record id="view_evaluation_calendar" model="ir.ui.view">
346             <field name="name">Interview Requests</field>
347             <field name="model">hr.evaluation.interview</field>
348             <field name="type">calendar</field>
349             <field name="arch" type="xml">
350                 <calendar string="Interview Request" color="user_to_review_id" date_start="date_deadline">
351                     <field name="request_id"/>
352                 </calendar>
353             </field>
354         </record>
355
356         <record model="ir.actions.act_window" id="action_hr_evaluation_interview_tree">
357             <field name="name">Interview Requests</field>
358             <field name="res_model">hr.evaluation.interview</field>
359             <field name="view_type">form</field>
360             <field name="view_id" eval="False"/>
361             <field name="domain">[('is_evaluation' ,'=', True)]</field>
362             <field name="context">{'default_is_evaluation': True, "search_default_todo":1,"search_default_user_id":uid}</field>
363             <field name="search_view_id" ref="view_hr_evaluation_interview_search"/>
364             <field name="help" type="xml">
365               <p class="oe_view_nocontent_create">
366                 Click to create a new interview request related to a personnal evaluation. 
367               </p><p>
368                 Interview requests are usually generated automatically by
369                 OpenERP according to an employee's appraisal plan. Each user
370                 receives automatic emails and requests to evaluate their
371                 colleagues periodically.
372               </p>
373             </field>
374         </record>
375
376         <record model="ir.actions.act_window.view" id="hr_evaluation_interview_tree">
377             <field name="sequence" eval="1"/>
378             <field name="view_mode">tree</field>
379             <field name="view_id" ref="view_hr_evaluation_interview_tree"/>
380             <field name="act_window_id" ref="action_hr_evaluation_interview_tree"/>
381         </record>
382         <record model="ir.actions.act_window.view" id="hr_evaluation_interview_form">
383             <field name="sequence" eval="2"/>
384             <field name="view_mode">form</field>
385             <field name="view_id" ref="view_hr_evaluation_interview_form"/>
386             <field name="act_window_id" ref="action_hr_evaluation_interview_tree"/>
387         </record>
388         <record model="ir.actions.act_window.view" id="action_view_evaluation_calendar">
389             <field name="sequence" eval="3"/>
390             <field name="view_mode">calendar</field>
391             <field name="view_id" ref="view_evaluation_calendar"/>
392             <field name="act_window_id" ref="action_hr_evaluation_interview_tree"/>
393         </record>
394
395         <menuitem name="Interview Requests" parent="menu_eval_hr" id="menu_open_hr_evaluation_interview_requests"
396             action="action_hr_evaluation_interview_tree"/>
397
398       <!-- Email Compose message Action-->
399       <act_window
400       id="evaluation_reminders" name="Appraisal Reminders"
401       res_model="mail.compose.message"
402       src_model="hr.evaluation.interview"
403       view_type="form" view_mode="form"
404       target="new" multi="True"
405       key2="client_action_multi"
406       context="{'mail.compose.message.mode':'mass_mail'}"/>
407
408       <!-- Appraisal Interviews Button on Employee Form -->
409       <act_window
410       context="{'search_default_user_to_review_id': [active_id], 'default_user_to_review_id': active_id}"
411       id="act_hr_employee_2_hr__evaluation_interview"
412       name="Appraisal Interviews"
413       res_model="hr.evaluation.interview"
414       src_model="hr.employee"/>
415
416     </data>
417 </openerp>