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