[MERGE] merge project improvment
[odoo/odoo.git] / addons / project_long_term / project_long_term_view.xml
1 <?xml version="1.0" encoding="utf-8"?>
2 <openerp>
3     <data>
4
5     <menuitem id="base.menu_project_long_term" name="Long Term Planning" parent="base.menu_main_pm" sequence="1"/>
6
7     # ------------------------------------------------------
8     # Project Resource Allocation
9     # ------------------------------------------------------
10
11         <record id="view_project_resource_allocation_gantt" model="ir.ui.view">
12             <field name="name">project.resource.allocation.gantt</field>
13             <field name="model">project.resource.allocation</field>
14             <field name="type">gantt</field>
15             <field name="arch" type="xml">
16               <gantt color="project_id" date_start="date_start" date_stop="date_end" mode="year">
17                <level object="res.users" link="user_id" domain="[]">
18                     <field name="name"/>
19                 </level>
20               </gantt>
21             </field>
22         </record>
23
24         <record id="view_project_resource_allocation_calendar" model="ir.ui.view">
25             <field name="name">project.resource.allocation.calendar</field>
26             <field name="model">project.resource.allocation</field>
27             <field name="type">calendar</field>
28             <field eval="2" name="priority"/>
29             <field name="arch" type="xml">
30                 <calendar color="resource_id" date_start="date_start" date_stop="date_end" day_length="12" string="Resources">
31                     <field name="phase_id"/>
32                     <field name="project_id"/>
33                 </calendar>
34             </field>
35         </record>
36
37
38         <record id="view_project_resource_allocation_form" model="ir.ui.view">
39             <field name="name">project.resource.allocation.form</field>
40             <field name="model">project.resource.allocation</field>
41             <field name="type">form</field>
42             <field name="arch" type="xml">
43                 <form string="Project Resource Allocation">
44                     <group colspan="4" col="6">
45                         <field name="resource_id"/>
46                         <field name="phase_id"/>
47                         <field name="project_id"/>
48                         <field name="date_start"/>
49                         <field name="date_end"/>
50                         <field name="useability" string="Availability"/>
51                     </group>
52                 </form>
53             </field>
54         </record>
55
56         <record id="view_project_resource_allocation_list" model="ir.ui.view">
57             <field name="name">project.resource.allocation.list</field>
58             <field name="model">project.resource.allocation</field>
59             <field name="type">tree</field>
60             <field name="priority" eval="5"/>
61             <field name="arch" type="xml">
62                 <tree editable="bottom" string="Project Resource Allocation">
63                     <field name="resource_id"/>
64                     <field name="phase_id"/>
65                     <field name="project_id"/>
66                     <field name="useability"/>
67                 </tree>
68             </field>
69         </record>
70
71        <record id="view_project_resource_allocation_search" model="ir.ui.view">
72             <field name="name">project.resource.allocation.search</field>
73             <field name="model">project.resource.allocation</field>
74             <field name="type">search</field>
75             <field name="arch" type="xml">
76                 <search string="Resources Allocation">
77                     <group colspan="4" col="20">
78                         <field name="resource_id"/>
79                         <field name="phase_id"/>
80                         <field name="project_id"/>
81                     </group>
82                     <newline/>
83                     <group expand="0" string="Group By..." colspan="4" col="20">
84                         <filter name="resource" string="Resource" icon="terp-personal" domain="[]" context="{'group_by':'resource_id'}"/>
85                         <separator orientation="vertical"/>
86                         <filter string="Project" icon="terp-folder-violet" domain="[]" context="{'group_by':'project_id'}"/>
87                         <filter string="Phase" icon="terp-project" domain="[]" context="{'group_by':'phase_id'}"/>
88                     </group>
89                 </search>
90             </field>
91         </record>
92        <record id="act_resouce_allocation" model="ir.actions.act_window">
93             <field name="name">Resources Allocation</field>
94             <field name="res_model">project.resource.allocation</field>
95             <field name="view_type">form</field>
96             <field name="view_mode">gantt,tree,form,calendar</field>
97              <field name="context">{}</field>
98             <field name="search_view_id" ref="view_project_resource_allocation_search"/>
99         </record>
100
101
102     # ------------------------------------------------------
103     # Project Phase
104     # ------------------------------------------------------
105
106         <record id="view_project_phase_form" model="ir.ui.view">
107             <field name="name">project.phase.form</field>
108             <field name="model">project.phase</field>
109             <field name="type">form</field>
110             <field name="arch" type="xml">
111                 <form string="Project Phase">
112                     <group colspan="6" col="6">
113                         <group colspan="6" col="6" >
114                             <field name="name" select="1"/>
115                             <field name="project_id" on_change="onchange_project(project_id)"/>
116                             <field name="responsible_id"/>
117                         </group>
118                         <group colspan="6" col="6">
119                             <field name="date_start"/>
120                             <field name="duration"  on_change="onchange_days(project_id)" />
121                             <field name="product_uom" nolabel="1" domain="[('category_id.name', '=', 'Working Time')]"/>
122                             <field name="date_end"/>
123                         </group>
124                     </group>
125                     <notebook colspan="4">
126                         <page string="Resource Allocation">
127                             <field colspan="4" name="resource_ids" nolabel="1">
128                                  <tree editable="bottom" string="Project Resource Allocation">
129                                     <field name="resource_id" context="{'project_id':parent.project_id}"/>
130                                     <field name="date_start"/>
131                                     <field name="date_end"/>
132                                     <field name="useability"/>
133                                   </tree>
134                                   <form string="Project Resource Allocation">
135                                     <field name="resource_id" context="{'project_id':parent.project_id}"/>
136                                     <field name="date_start"/>
137                                     <field name="date_end"/>
138                                     <field name="useability"/>
139                                   </form>
140                              </field>
141                             <separator string="" colspan="4"/>
142                             <group col="12" colspan="4">
143                                 <field name="state" select="1"/>
144                                 <button string="Cancel" name="set_cancel" states="draft,open,pending" icon="gtk-cancel"/>
145                                 <button string="Draft" name="set_draft" states="open" icon="gtk-indent"/>
146                                 <button string="Pending" name="set_pending" states="open" icon="gtk-media-pause"/>
147                                 <button string="Done" name="set_done" states="pending,open" icon="terp-dialog-close"/>
148                                 <button string="Start Phase" name="set_open" states="pending,draft" icon="gtk-execute"/>
149                             </group>
150                         </page>
151                         <page string="Task Detail">
152                             <field colspan="4" name="task_ids" context="{'default_project_id' :project_id}" nolabel="1">
153                                  <tree editable="bottom" string="Project's Tasks">
154                                     <field name="name"/>
155                                     <field name="user_id"/>
156                                     <field name="planned_hours" widget="float_time"/>
157                                     <field name="project_id" invisible="1"/>
158                                     <field name="total_hours" sum='Total Hours'/>
159                                   </tree>
160                                   <form string="Project's Tasks">
161                                       <notebook colspan="4">
162                                           <page string="Task Detail">
163                                               <group colspan="4" col="4">
164                                                 <field name="name"/>
165                                                 <field name="project_id"/>
166                                                 <field name="user_id"/>
167                                             </group>
168                                             <group colspan="2" col="2">
169                                                   <separator string="Dates" colspan="2"/>
170                                                   <field name="date_start"/>
171                                                   <field name="date_deadline"/>
172                                             </group>
173                                             <group colspan="2" col="2">
174                                                   <separator string="Planning" colspan="2"/>
175                                                   <field name="planned_hours" widget="float_time"/>
176                                                 <field name="total_hours" widget="float_time"/>
177                                                 <field name="remaining_hours" widget="float_time" sum="Remaining Hours"/>
178                                                 <field name="effective_hours" invisible="1"/>
179                                             </group>
180                                             <group colspan="6" col="4">
181                                                 <field name="state"/>
182                                             </group>
183                                         </page>
184                                     </notebook>
185                                   </form>
186                              </field>
187                                <button name="%(action_project_schedule_tasks)d" string="Schedule Tasks" type="action" icon="gtk-jump-to"/>
188                         </page>
189                         <page string="Other Info">
190                            <group colspan="2" col="2">
191                                 <separator string="Constraints" colspan="2"/>
192                                 <field name="constraint_date_start"/>
193                                 <field name="constraint_date_end"/>
194                             </group>
195                             <group colspan="2" col="2">
196                                 <separator string="Scheduling" colspan="2"/>
197                                 <field name="sequence"/>
198                             </group>
199                            <separator colspan="4" string="Previous Phases"/>
200                            <field colspan="4" name="previous_phase_ids" nolabel="1"/>
201                            <separator colspan="4" string="Next Phases"/>
202                            <field colspan="4" name="next_phase_ids" nolabel="1"/>
203                         </page>
204                     </notebook>
205                     <newline/>
206                 </form>
207             </field>
208         </record>
209
210         <record id="view_project_phase_list" model="ir.ui.view">
211             <field name="name">project.phase.list</field>
212             <field name="model">project.phase</field>
213             <field name="type">tree</field>
214             <field name="priority" eval="5"/>
215             <field name="arch" type="xml">
216                 <tree colors="grey:state in ('cancelled','done');blue:state in ('pending')" string="Project Phases">
217                     <field name="name"/>
218                     <field name="project_id" on_change="onchange_project(project_id)"/>
219                     <field name="responsible_id"/>
220                     <field name="date_start"/>
221                     <field name="state"/>
222                 </tree>
223             </field>
224         </record>
225
226         <record id="view_project_phase_calendar" model="ir.ui.view">
227             <field name="name">project.phase.calendar</field>
228             <field name="model">project.phase</field>
229             <field name="type">calendar</field>
230             <field eval="2" name="priority"/>
231             <field name="arch" type="xml">
232                 <calendar color="project_id" date_start="date_start" date_stop="date_end" day_length="12">
233                     <field name="name"/>
234                     <field name="responsible_id"/>
235                 </calendar>
236             </field>
237         </record>
238
239         <record id="view_project_phase_gantt" model="ir.ui.view">
240             <field name="name">project.phase.gantt</field>
241             <field name="model">project.phase</field>
242             <field name="type">gantt</field>
243             <field eval="2" name="priority"/>
244             <field name="arch" type="xml">
245                 <gantt color="project_id" date_stop="date_end" date_start="date_start" mode="month">
246                     <level object="project.project" link="project_id" domain="[]">
247                         <field name="name"/>
248                     </level>
249                 </gantt>
250             </field>
251         </record>
252
253         <record id="view_project_phase_search" model="ir.ui.view">
254             <field name="name">project.phase.search</field>
255             <field name="model">project.phase</field>
256             <field name="type">search</field>
257             <field name="arch" type="xml">
258                 <search string="Project Phases">
259                     <group colspan="4" col="20">
260                             <filter string="Current" domain="[('state','in',('open','draft'))]"  name="current" help="Draft and In Progress Phases" icon="terp-check"/>
261                         <filter string="In Progress" name="Progress" domain="[('state','=','open')]" help="In Progress Phases" icon="terp-camera_test"/>
262                         <filter string="Pending" domain="[('state','=','pending')]" help="Pending Phases" icon="terp-gtk-media-pause"/>
263                         <separator orientation="vertical"/>
264                         <field name="name"/>
265                         <field name="project_id">
266                             <filter domain="[('project_id.user_id','=',uid)]" help="My Projects" icon="terp-folder-violet"/>
267                         </field>
268                         <field name="responsible_id"/>
269                         <field name="date_start"/>
270                     </group>
271                     <newline/>
272                     <group expand="0" string="Group By..." colspan="4" col="20" groups="base.group_extended">
273                         <filter string="Responsible" icon="terp-personal" domain="[]" context="{'group_by':'responsible_id'}"/>
274                         <separator orientation="vertical"/>
275                         <filter string="Project" icon="terp-folder-violet" domain="[]" context="{'group_by':'project_id'}" name="project"/>
276                         <separator orientation="vertical"/>
277                         <filter string="State" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
278                         <separator orientation="vertical"/>
279                         <filter string="Month" icon="terp-go-month" domain="[]" context="{'group_by':'date_start'}" help="Start Month"/>
280                     </group>
281                 </search>
282             </field>
283         </record>
284
285         <record id="act_project_phase" model="ir.actions.act_window">
286             <field name="name">Project Phases</field>
287             <field name="res_model">project.phase</field>
288             <field name="view_type">form</field>
289             <field name="view_mode">gantt,tree,form,calendar</field>
290             <field name="context">{"search_default_current": 1}</field>
291             <field name="search_view_id" ref="view_project_phase_search"/>
292             <field name="help">A project can be split into the different phases. For each phase, you can define your resources allocation, describe different tasks and link your phase to previous and next ones, add date constraints for the automated scheduling. Use the long term planning in order to planify your available human resources, convert your phases into a series of tasks when you start working on it.</field>
293         </record>
294
295         <record id="act_project_phase_list" model="ir.actions.act_window">
296             <field name="name">Project Phases</field>
297             <field name="res_model">project.phase</field>
298             <field name="view_type">form</field>
299             <field name="view_mode">tree,form,calendar</field>
300              <field name="context">{"search_default_current": 1}</field>
301             <field name="search_view_id" ref="view_project_phase_search"/>
302         </record>
303
304
305     # ------------------------------------------------------
306     # Project
307     # ------------------------------------------------------
308
309         <record id="project.view_project_resource_form1" model="ir.ui.view">
310             <field name="name">Project Resource Calendar View</field>
311             <field name="model">project.project</field>
312             <field name="type">form</field>
313             <field name="inherit_id" ref="project.edit_project"/>
314             <field name="arch" type="xml">
315                 <field name="priority" position="before">
316                     <field name="resource_calendar_id"/>
317                 </field>
318
319             </field>
320        </record>
321
322     # ------------------------------------------------------
323     # Project Task
324     # ------------------------------------------------------
325
326         <record id="view_phase_task_form2" model="ir.ui.view">
327             <field name="name">phase.task.form2</field>
328             <field name="model">project.task</field>
329             <field name="type">form</field>
330             <field name="inherit_id" ref="project.view_task_form2"/>
331             <field name="arch" type="xml">
332                 <field name="sequence" position="after">
333                     <field name="phase_id"/>
334                 </field>
335             </field>
336         </record>
337         <record id="view_phase_task_search_form" model="ir.ui.view">
338             <field name="name">phase.task.search.form</field>
339             <field name="model">project.task</field>
340             <field name="type">search</field>
341             <field name="inherit_id" ref="project.view_task_search_form"/>
342             <field name="arch" type="xml">
343                 <field name="project_id" position="after">
344                     <field name="phase_id" select="1"/>
345                 </field>
346             </field>
347         </record>
348
349          <record id="view_phase_task_search_form_group" model="ir.ui.view">
350             <field name="name">phase.task.search.form.group</field>
351             <field name="model">project.task</field>
352             <field name="type">search</field>
353             <field name="inherit_id" ref="project.view_task_search_form"/>
354             <field name="arch" type="xml">
355             <filter string="Project" name="group_project_id" icon="terp-folder-violet" domain="[]" context="{'group_by':'project_id'}" position="after">
356             <filter string="Project Phase" name="group_project_id_phase" icon="terp-folder-violet" domain="[]" context="{'group_by':'phase_id'}" groups="base.group_extended"/>
357             </filter>
358             </field>
359         </record>
360
361          <record id="view_phase_task_search_form_tree" model="ir.ui.view">
362             <field name="name">phase.task.search.form.tree</field>
363             <field name="model">project.task</field>
364             <field name="type">tree</field>
365             <field name="inherit_id" ref="project.view_task_tree2"/>
366             <field name="arch" type="xml">
367                 <field name="project_id" position="after">
368                     <field name="phase_id" invisible="1" groups="base.group_extended"/>
369                 </field>
370             </field>
371         </record>
372
373     <act_window
374         id="project_phase_task_list"
375         name="Related Tasks"
376         res_model="project.task"
377         src_model="project.phase"
378         view_mode="tree,form"
379         context="{'search_default_phase_id': [active_id]}"
380         domain="[('phase_id', '=', active_id),('project_id','=',project_id)]"
381         />
382
383     <act_window
384         context="{'search_default_project_id': [active_id]}"
385         id="act_project_phases"
386         name="Phases"
387         res_model="project.phase"
388         src_model="project.project"
389                 domain="[('project_id', '=', active_id)]"
390         view_mode="tree,form"
391         view_type="form" 
392                 />
393
394         <act_window
395                 context="{'search_default_user_id': [user_id]}"
396         id="act_project_resource"
397         name="Resources"
398         res_model="resource.resource"
399         src_model="project.project"
400                 domain="[('user_id', '=',user_id)]"
401         view_mode="tree,form"
402         view_type="form" 
403                 />
404
405     # ------------------------------------------------------
406     # Menu Items
407     # ------------------------------------------------------
408
409         <menuitem action="act_project_phase_list"
410             groups="base.group_extended"
411             id="menu_project_phase_list" parent="project.menu_project_management" sequence="2"/>
412
413         <menuitem action="act_project_phase"
414             icon="STOCK_INDENT"
415             groups="base.group_extended"
416             id="menu_project_phase"   parent="base.menu_project_long_term" sequence="1"/>
417
418         <menuitem id="menu_resouce_allocation" action="act_resouce_allocation"
419             icon="STOCK_INDENT"
420             name="Resource Allocations" parent="base.menu_project_long_term" sequence="2"/>
421
422         <menuitem id="menu_pm_resources_project1"
423             groups="base.group_extended"
424             name="Resources" parent="project.menu_definitions" sequence="3"/>
425
426         <menuitem id="menu_phase_schedule" name="Scheduling" parent="base.menu_main_pm" sequence="4" groups="project.group_project_user,project.group_project_manager"/>
427         <menuitem action="resource.action_resource_resource_tree" id="menu_view_resource" parent="menu_pm_resources_project1" sequence="2"/>
428         <menuitem action="resource.action_resource_calendar_form" id="menu_view_resource_calendar" parent="menu_pm_resources_project1" sequence="1"/>
429         <menuitem action="resource.action_resource_calendar_leave_tree" id="menu_view_resource_calendar_leaves" parent="menu_pm_resources_project1" sequence="1"/>
430
431     </data>
432 </openerp>