2e90659126b4f910acc3e9fe5188097d62004c5f
[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="3"/>
6
7     # ------------------------------------------------------
8     # Project User Allocation
9     # ------------------------------------------------------
10
11         <record id="view_project_user_allocation_gantt" model="ir.ui.view">
12             <field name="name">project.user.allocation.gantt</field>
13             <field name="model">project.user.allocation</field>
14             <field name="type">gantt</field>
15             <field name="arch" type="xml">
16               <gantt date_start="date_start" date_stop="date_end" default_group_by="user_id">
17               </gantt>
18             </field>
19         </record>
20
21         <record id="view_project_user_allocation_calendar" model="ir.ui.view">
22             <field name="name">project.user.allocation.calendar</field>
23             <field name="model">project.user.allocation</field>
24             <field name="type">calendar</field>
25             <field eval="2" name="priority"/>
26             <field name="arch" type="xml">
27                 <calendar color="user_id" date_start="date_start" date_stop="date_end" day_length="12" string="Users">
28                     <field name="phase_id"/>
29                     <field name="project_id"/>
30                 </calendar>
31             </field>
32         </record>
33
34
35         <record id="view_project_user_allocation_form" model="ir.ui.view">
36             <field name="name">project.user.allocation.form</field>
37             <field name="model">project.user.allocation</field>
38             <field name="type">form</field>
39             <field name="arch" type="xml">
40                 <form string="Project User Allocation">
41                     <group colspan="4" col="6">
42                         <field name="user_id"/>
43                         <field name="phase_id"/>
44                         <field name="project_id"/>
45                         <field name="date_start"/>
46                         <field name="date_end"/>
47                     </group>
48                 </form>
49             </field>
50         </record>
51
52         <record id="view_project_user_allocation_list" model="ir.ui.view">
53             <field name="name">project.user.allocation.list</field>
54             <field name="model">project.user.allocation</field>
55             <field name="type">tree</field>
56             <field name="priority" eval="5"/>
57             <field name="arch" type="xml">
58                 <tree editable="bottom" string="Project User Allocation">
59                     <field name="user_id"/>
60                     <field name="phase_id"/>
61                     <field name="project_id"/>
62                 </tree>
63             </field>
64         </record>
65
66        <record id="view_project_user_allocation_search" model="ir.ui.view">
67             <field name="name">project.user.allocation.search</field>
68             <field name="model">project.user.allocation</field>
69             <field name="type">search</field>
70             <field name="arch" type="xml">
71                 <search string="Planning of Users">
72                     <group>
73                         <field name="user_id"/>
74                         <field name="phase_id"/>
75                         <field name="project_id"/>
76                     </group>
77                     <newline/>
78                     <group expand="0" string="Group By...">
79                         <filter name="user" string="User" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/>
80                         <separator orientation="vertical"/>
81                         <filter string="Project" icon="terp-folder-violet" domain="[]" context="{'group_by':'project_id'}"/>
82                         <filter string="Phase" icon="terp-project" domain="[]" context="{'group_by':'phase_id'}"/>
83                     </group>
84                 </search>
85             </field>
86         </record>
87        <record id="act_resouce_allocation" model="ir.actions.act_window">
88             <field name="name">Planning of Users</field>
89             <field name="res_model">project.user.allocation</field>
90             <field name="view_type">form</field>
91             <field name="view_mode">gantt,tree,form,calendar</field>
92              <field name="context">{}</field>
93             <field name="search_view_id" ref="view_project_user_allocation_search"/>
94         </record>
95
96
97     # ------------------------------------------------------
98     # Project Phase
99     # ------------------------------------------------------
100
101         <record id="project_phase_form" model="ir.ui.view">
102             <field name="name">Inherit project form : Phase</field>
103             <field name="model">project.project</field>
104             <field name="type">form</field>
105             <field name="inherit_id" ref="project.edit_project"/>
106             <field name="arch" type="xml">
107                 <xpath expr="//field[@name='task']" position="after">
108                     <field name="phases"/>
109                 </xpath>
110             </field>
111         </record>
112         
113         <record id="view_project_kanban_phase" model="ir.ui.view">
114             <field name="name">project.project.kanban.inherited</field>
115             <field name="model">project.project</field>
116             <field name="type">kanban</field>
117             <field name="inherit_id" ref="project.view_project_kanban"/>
118             <field name="arch" type="xml">
119                 <field name="task" position="after">
120                     <field name="phases"/>
121                     <field name="open_phases"/>
122                 </field>
123                 <xpath expr="//div[@id='list']" position="inside">
124                     <t t-if="record.phases.raw_value">
125                         <a id="4" name="open_phase" class="oe_project_buttons" type="object"><t t-if="record.open_phases.value &lt;= 1">Phase</t><t t-if="record.open_phases.value > 1">Phases</t>(<t t-esc="record.open_phases.value"/>)</a>
126                     </t>
127                 </xpath>
128             </field>
129         </record>
130         
131         <record id="view_project_phase_form" model="ir.ui.view">
132             <field name="name">project.phase.form</field>
133             <field name="model">project.phase</field>
134             <field name="type">form</field>
135             <field name="arch" type="xml">
136                 <form string="Project Phase">
137                     <group colspan="6" col="6">
138                         <group colspan="6" col="7" >
139                             <field name="name" colspan="4"/>
140                             <field name="project_id" on_change="onchange_project(project_id)" colspan="3"/>
141                             <field name="date_start"/>
142                             <field name="date_end"/>
143                             <field name="duration"/>
144                             <field name="product_uom" nolabel="1"/>
145                         </group>
146                     </group>
147                     <notebook colspan="4">
148                         <page string="Planning of Users">
149                             <field colspan="4" name="user_ids" nolabel="1">
150                                  <tree editable="bottom" string="Project Users">
151                                     <field name="user_id"/>
152                                     <field name="date_start"/>
153                                     <field name="date_end"/>
154                                   </tree>
155                                   <form string="Project Users">
156                                     <field name="user_id"/>
157                                     <field name="date_start" />
158                                     <field name="date_end"/>
159                                   </form>
160                              </field>
161                             <separator string="" colspan="4"/>
162                             <group col="12" colspan="4">
163                                 <field name="state" widget="statusbar" statusbar_visible="draft,open,done" statusbar_colors='{"pending":"blue"}' select="1"/>
164                                 <button string="Cancel" name="set_cancel" states="draft,open,pending" icon="gtk-cancel"/>
165                                 <button string="Draft" name="set_draft" states="open" icon="gtk-indent"/>
166                                 <button string="Pending" name="set_pending" states="open" icon="gtk-media-pause"/>
167                                 <button string="Done" name="set_done" states="pending,open" icon="terp-dialog-close"/>
168                                 <button string="Start Phase" name="set_open" states="pending,draft" icon="gtk-execute"/>
169                             </group>
170                         </page>
171                         <page string="Tasks Details">
172                             <field colspan="4" name="task_ids" readonly="1" context="{'default_project_id' :project_id}" nolabel="1">
173                                  <tree string="Project's Tasks">
174                                     <field name="sequence"/>
175                                     <field name="name"/>
176                                     <field name="user_id"/>
177                                     <field name="date_start"/>
178                                     <field name="date_end" />
179                                     <field name="planned_hours" widget="float_time"/>
180                                     <field name="project_id" invisible="1"/>
181                                     <field name="total_hours" sum='Total Hours'/>
182                                     <field name="remaining_hours" widget="float_time" sum="Remaining Hours"/>
183                                     <field name="state"/>
184                                   </tree>
185                              </field>
186                         </page>
187                         <page string="Constraints">
188                            <group colspan="2" col="2">
189                                 <separator string="Constraints" colspan="2"/>
190                                 <field name="constraint_date_start"/>
191                                 <field name="constraint_date_end"/>
192                             </group>
193                             <group colspan="2" col="2">
194                                 <separator string="Displaying settings" colspan="2"/>
195                                 <field name="sequence"/>
196                             </group>
197                            <separator colspan="4" string="Force Assigned Users"/>
198                            <field colspan="4" name="user_force_ids" nolabel="1"/>
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 == 'pending'" string="Project Phases">
217                     <field name="name"/>
218                     <field name="project_id" on_change="onchange_project(project_id)"/>
219                     <field name="date_start"/>
220                     <field name="date_end"/>
221                     <field name="duration"/>
222                     <field name="state"/>
223                 </tree>
224             </field>
225         </record>
226
227         <record id="view_project_phase_calendar" model="ir.ui.view">
228             <field name="name">project.phase.calendar</field>
229             <field name="model">project.phase</field>
230             <field name="type">calendar</field>
231             <field eval="2" name="priority"/>
232             <field name="arch" type="xml">
233                 <calendar color="project_id" date_start="date_start" date_stop="date_end" day_length="12">
234                     <field name="name"/>
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 date_stop="date_end" date_start="date_start" default_group_by="project_id">
246                 </gantt>
247             </field>
248         </record>
249
250         <record id="view_project_phase_search" model="ir.ui.view">
251             <field name="name">project.phase.search</field>
252             <field name="model">project.phase</field>
253             <field name="type">search</field>
254             <field name="arch" type="xml">
255                 <search string="Project Phases">
256                     <group>
257                         <filter string="New" domain="[('state','=','draft')]"  name="current" help="New Phases" icon="terp-check"/>
258                         <filter string="In Progress" name="Progress" domain="[('state','=','open')]" help="In Progress Phases" icon="terp-camera_test"/>
259                         <filter string="Pending" domain="[('state','=','pending')]" help="Pending Phases" icon="terp-gtk-media-pause"/>
260                         <separator orientation="vertical"/>
261                         <field name="name"/>
262                         <field name="project_id">
263                             <filter domain="[('project_id.user_id','=',uid)]" help="My Projects" icon="terp-folder-violet"/>
264                         </field>
265                         <field name="date_start"/>
266                         <field name="date_end"/>
267                     </group>
268                     <newline/>
269                     <group expand="0" string="Group By...">
270                         <filter string="Project" icon="terp-folder-violet" domain="[]" context="{'group_by':'project_id'}" name="project"/>
271                         <separator orientation="vertical"/>
272                         <filter string="State" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
273                         <separator orientation="vertical"/>
274                         <filter string="Month" icon="terp-go-month" domain="[]" context="{'group_by':'date_start'}" help="Start Month"/>
275                     </group>
276                 </search>
277             </field>
278         </record>
279
280         <record id="act_project_phase" model="ir.actions.act_window">
281             <field name="name">Project Phases</field>
282             <field name="res_model">project.phase</field>
283             <field name="view_type">form</field>
284             <field name="view_mode">gantt,tree,form,calendar</field>
285             <field name="context">{}</field>
286             <field name="search_view_id" ref="view_project_phase_search"/>
287             <field name="help">A project can be split into the different phases. For each phase, you can define your users allocation, describe different tasks and link your phase to previous and next phases, add date constraints for the automated scheduling. Use the long term planning in order to planify your available users, convert your phases into a series of tasks when you start working on the project.</field>
288         </record>
289
290         <record id="act_project_phase_list" model="ir.actions.act_window">
291             <field name="name">Project Phases</field>
292             <field name="res_model">project.phase</field>
293             <field name="view_type">form</field>
294             <field name="view_mode">tree,form,calendar</field>
295              <field name="context">{}</field>
296             <field name="search_view_id" ref="view_project_phase_search"/>
297         </record>
298
299
300     # ------------------------------------------------------
301     # Project Task
302     # ------------------------------------------------------
303
304         <record id="view_phase_task_form2" model="ir.ui.view">
305             <field name="name">phase.task.form2</field>
306             <field name="model">project.task</field>
307             <field name="type">form</field>
308             <field name="inherit_id" ref="project.view_task_form2"/>
309             <field name="arch" type="xml">
310                 <xpath expr="//field[@name='effective_hours']" position="after">
311                     <field name="phase_id"/>
312                 </xpath>
313             </field>
314         </record>
315         <record id="view_phase_task_search_form" model="ir.ui.view">
316             <field name="name">phase.task.search.form</field>
317             <field name="model">project.task</field>
318             <field name="type">search</field>
319             <field name="inherit_id" ref="project.view_task_search_form"/>
320             <field name="arch" type="xml">
321                 <field name="project_id" position="after">
322                     <field name="phase_id" select="1"/>
323                 </field>
324             </field>
325         </record>
326
327          <record id="view_phase_task_search_form_group" model="ir.ui.view">
328             <field name="name">phase.task.search.form.group</field>
329             <field name="model">project.task</field>
330             <field name="type">search</field>
331             <field name="inherit_id" ref="project.view_task_search_form"/>
332             <field name="arch" type="xml">
333             <filter string="Project" name="group_project_id" icon="terp-folder-violet" domain="[]" context="{'group_by':'project_id'}" position="after">
334                 <filter string="Project Phase" name="group_project_id_phase" icon="terp-folder-violet" domain="[]" context="{'group_by':'phase_id'}"/>
335             </filter>
336             </field>
337         </record>
338
339          <record id="view_phase_task_search_form_tree" model="ir.ui.view">
340             <field name="name">phase.task.search.form.tree</field>
341             <field name="model">project.task</field>
342             <field name="type">tree</field>
343             <field name="inherit_id" ref="project.view_task_tree2"/>
344             <field name="arch" type="xml">
345                 <field name="project_id" position="after">
346                     <field name="phase_id" invisible="1"/>
347                 </field>
348             </field>
349         </record>
350
351     <act_window
352         context="{'search_default_phase_id': [active_id], 'default_phase_id' : active_id}"
353         id="project_phase_task_list"
354         name="Related Tasks"
355         res_model="project.task"
356         src_model="project.phase"
357         view_mode="tree,form"
358         />
359
360     <act_window
361         context="{'search_default_project_id': active_id, 'default_project_id': active_id}"
362         id="act_project_phases"
363         name="Phases"
364         res_model="project.phase"
365         src_model="project.project"
366         view_mode="tree,form"
367         view_type="form"
368         />
369
370     # ------------------------------------------------------
371     # Menu Items
372     # ------------------------------------------------------
373
374         <menuitem action="act_project_phase_list"
375             id="menu_project_phase_list" parent="project.menu_project_management" sequence="2"/>
376
377         <menuitem action="act_project_phase"
378             icon="STOCK_INDENT"
379             id="menu_project_phase"   parent="base.menu_project_long_term" sequence="1"/>
380
381         <menuitem id="menu_resouce_allocation" action="act_resouce_allocation"
382             icon="STOCK_INDENT"
383             parent="base.menu_project_long_term" sequence="2"/>
384
385         <menuitem id="menu_pm_users_project1"
386             name="Resources" parent="project.menu_definitions" sequence="3"/>
387
388         <menuitem id="menu_phase_schedule" name="Scheduling" parent="base.menu_main_pm" sequence="4" groups="project.group_project_user,project.group_project_manager"/>
389         <menuitem action="resource.action_resource_resource_tree" id="menu_view_resource" parent="menu_pm_users_project1" sequence="2"/>
390         <menuitem action="resource.action_resource_calendar_form" id="menu_view_resource_calendar" parent="menu_pm_users_project1" sequence="5"/>
391         <menuitem action="resource.action_resource_calendar_leave_tree" id="menu_view_resource_calendar_leaves" parent="menu_pm_users_project1" sequence="3"/>
392
393     </data>
394 </openerp>