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