[MERGE]:lp:~openerp-dev/openobject-addons/trunk-project_long_term-topbar-kjo and...
[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="view_project_phase_form" model="ir.ui.view">
102             <field name="name">project.phase.form</field>
103             <field name="model">project.phase</field>
104             <field name="type">form</field>
105             <field name="arch" type="xml">
106                 <form layout="manual">
107                 <div class="oe_form_topbar">
108                     <button string="Start Phase" name="set_open" states="pending,draft" icon="gtk-execute"/>
109                     <button string="Done" name="set_done" states="pending,open" icon="terp-dialog-close"/>
110                     <button string="Pending" name="set_pending" states="open" icon="gtk-media-pause"/>
111                     <button string="Draft" name="set_draft" states="open" icon="gtk-indent"/>
112                     <button string="Cancel" name="set_cancel" states="draft,open,pending" icon="gtk-cancel"/>
113                     <div class="oe_right">
114                         <field name="state" nolabel="1" widget="statusbar" statusbar_visible="draft,open,done" statusbar_colors='{"pending":"blue"}' select="1"/>
115                     </div>
116                 </div>
117                 <sheet string="Project Phase" layout="auto">
118                     <group colspan="6" col="6">
119                         <group colspan="6" col="7" >
120                             <field name="name" colspan="4"/>
121                             <field name="project_id" on_change="onchange_project(project_id)" colspan="3"/>
122                             <field name="date_start"/>
123                             <field name="date_end"/>
124                             <field name="duration"/>
125                             <field name="product_uom" nolabel="1"/>
126                         </group>
127                     </group>
128                     <notebook colspan="4">
129                         <page string="Planning of Users">
130                             <field colspan="4" name="user_ids" nolabel="1">
131                                  <tree editable="bottom" string="Project Users">
132                                     <field name="user_id"/>
133                                     <field name="date_start"/>
134                                     <field name="date_end"/>
135                                   </tree>
136                                   <form string="Project Users">
137                                     <field name="user_id"/>
138                                     <field name="date_start" />
139                                     <field name="date_end"/>
140                                   </form>
141                              </field>
142                         </page>
143                         <page string="Tasks Details">
144                             <field colspan="4" name="task_ids" readonly="1" context="{'default_project_id' :project_id}" nolabel="1">
145                                  <tree string="Project's Tasks">
146                                     <field name="sequence"/>
147                                     <field name="name"/>
148                                     <field name="user_id"/>
149                                     <field name="date_start"/>
150                                     <field name="date_end" />
151                                     <field name="planned_hours" widget="float_time"/>
152                                     <field name="project_id" invisible="1"/>
153                                     <field name="total_hours" sum='Total Hours'/>
154                                     <field name="remaining_hours" widget="float_time" sum="Remaining Hours"/>
155                                     <field name="state"/>
156                                   </tree>
157                              </field>
158                         </page>
159                         <page string="Constraints">
160                            <group colspan="2" col="2">
161                                 <separator string="Constraints" colspan="2"/>
162                                 <field name="constraint_date_start"/>
163                                 <field name="constraint_date_end"/>
164                             </group>
165                             <group colspan="2" col="2">
166                                 <separator string="Displaying settings" colspan="2"/>
167                                 <field name="sequence"/>
168                             </group>
169                            <separator colspan="4" string="Force Assigned Users"/>
170                            <field colspan="4" name="user_force_ids" nolabel="1"/>
171                            <separator colspan="4" string="Previous Phases"/>
172                            <field colspan="4" name="previous_phase_ids" nolabel="1"/>
173                            <separator colspan="4" string="Next Phases"/>
174                            <field colspan="4" name="next_phase_ids" nolabel="1"/>
175                         </page>
176                     </notebook>
177                     <newline/>
178                 </sheet>
179                 </form>
180             </field>
181         </record>
182
183         <record id="view_project_phase_list" model="ir.ui.view">
184             <field name="name">project.phase.list</field>
185             <field name="model">project.phase</field>
186             <field name="type">tree</field>
187             <field name="priority" eval="5"/>
188             <field name="arch" type="xml">
189                 <tree colors="grey:state in ('cancelled','done');blue:state == 'pending'" string="Project Phases">
190                     <field name="name"/>
191                     <field name="project_id" on_change="onchange_project(project_id)"/>
192                     <field name="date_start"/>
193                     <field name="date_end"/>
194                     <field name="duration"/>
195                     <field name="state"/>
196                 </tree>
197             </field>
198         </record>
199
200         <record id="view_project_phase_calendar" model="ir.ui.view">
201             <field name="name">project.phase.calendar</field>
202             <field name="model">project.phase</field>
203             <field name="type">calendar</field>
204             <field eval="2" name="priority"/>
205             <field name="arch" type="xml">
206                 <calendar color="project_id" date_start="date_start" date_stop="date_end" day_length="12">
207                     <field name="name"/>
208                 </calendar>
209             </field>
210         </record>
211
212         <record id="view_project_phase_gantt" model="ir.ui.view">
213             <field name="name">project.phase.gantt</field>
214             <field name="model">project.phase</field>
215             <field name="type">gantt</field>
216             <field eval="2" name="priority"/>
217             <field name="arch" type="xml">
218                 <gantt date_stop="date_end" date_start="date_start" default_group_by="project_id">
219                 </gantt>
220             </field>
221         </record>
222
223         <record id="view_project_phase_search" model="ir.ui.view">
224             <field name="name">project.phase.search</field>
225             <field name="model">project.phase</field>
226             <field name="type">search</field>
227             <field name="arch" type="xml">
228                 <search string="Project Phases">
229                     <group>
230                         <filter string="New" domain="[('state','=','draft')]"  name="current" help="New Phases" icon="terp-check"/>
231                         <filter string="In Progress" name="Progress" domain="[('state','=','open')]" help="In Progress Phases" icon="terp-camera_test"/>
232                         <filter string="Pending" domain="[('state','=','pending')]" help="Pending Phases" icon="terp-gtk-media-pause"/>
233                         <separator orientation="vertical"/>
234                         <field name="name"/>
235                         <field name="project_id">
236                             <filter domain="[('project_id.user_id','=',uid)]" help="My Projects" icon="terp-folder-violet"/>
237                         </field>
238                         <field name="date_start"/>
239                         <field name="date_end"/>
240                     </group>
241                     <newline/>
242                     <group expand="0" string="Group By...">
243                         <filter string="Project" icon="terp-folder-violet" domain="[]" context="{'group_by':'project_id'}" name="project"/>
244                         <separator orientation="vertical"/>
245                         <filter string="State" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
246                         <separator orientation="vertical"/>
247                         <filter string="Month" icon="terp-go-month" domain="[]" context="{'group_by':'date_start'}" help="Start Month"/>
248                     </group>
249                 </search>
250             </field>
251         </record>
252
253         <record id="act_project_phase" model="ir.actions.act_window">
254             <field name="name">Project Phases</field>
255             <field name="res_model">project.phase</field>
256             <field name="view_type">form</field>
257             <field name="view_mode">gantt,tree,form,calendar</field>
258             <field name="context">{}</field>
259             <field name="search_view_id" ref="view_project_phase_search"/>
260             <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>
261         </record>
262
263         <record id="act_project_phase_list" model="ir.actions.act_window">
264             <field name="name">Project Phases</field>
265             <field name="res_model">project.phase</field>
266             <field name="view_type">form</field>
267             <field name="view_mode">tree,form,calendar</field>
268              <field name="context">{}</field>
269             <field name="search_view_id" ref="view_project_phase_search"/>
270         </record>
271
272
273     # ------------------------------------------------------
274     # Project Task
275     # ------------------------------------------------------
276
277         <record id="view_phase_task_form2" model="ir.ui.view">
278             <field name="name">phase.task.form2</field>
279             <field name="model">project.task</field>
280             <field name="type">form</field>
281             <field name="inherit_id" ref="project.view_task_form2"/>
282             <field name="arch" type="xml">
283                 <xpath expr="//field[@name='effective_hours']" position="after">
284                     <field name="phase_id"/>
285                 </xpath>
286             </field>
287         </record>
288         <record id="view_phase_task_search_form" model="ir.ui.view">
289             <field name="name">phase.task.search.form</field>
290             <field name="model">project.task</field>
291             <field name="type">search</field>
292             <field name="inherit_id" ref="project.view_task_search_form"/>
293             <field name="arch" type="xml">
294                 <field name="project_id" position="after">
295                     <field name="phase_id" select="1"/>
296                 </field>
297             </field>
298         </record>
299
300          <record id="view_phase_task_search_form_group" model="ir.ui.view">
301             <field name="name">phase.task.search.form.group</field>
302             <field name="model">project.task</field>
303             <field name="type">search</field>
304             <field name="inherit_id" ref="project.view_task_search_form"/>
305             <field name="arch" type="xml">
306             <filter string="Project" name="group_project_id" icon="terp-folder-violet" domain="[]" context="{'group_by':'project_id'}" position="after">
307                 <filter string="Project Phase" name="group_project_id_phase" icon="terp-folder-violet" domain="[]" context="{'group_by':'phase_id'}"/>
308             </filter>
309             </field>
310         </record>
311
312          <record id="view_phase_task_search_form_tree" model="ir.ui.view">
313             <field name="name">phase.task.search.form.tree</field>
314             <field name="model">project.task</field>
315             <field name="type">tree</field>
316             <field name="inherit_id" ref="project.view_task_tree2"/>
317             <field name="arch" type="xml">
318                 <field name="project_id" position="after">
319                     <field name="phase_id" invisible="1"/>
320                 </field>
321             </field>
322         </record>
323
324     <act_window
325         context="{'search_default_phase_id': [active_id], 'default_phase_id' : active_id}"
326         id="project_phase_task_list"
327         name="Related Tasks"
328         res_model="project.task"
329         src_model="project.phase"
330         view_mode="tree,form"
331         />
332
333     <act_window
334         context="{'search_default_project_id': active_id, 'default_project_id': active_id}"
335         id="act_project_phases"
336         name="Phases"
337         res_model="project.phase"
338         src_model="project.project"
339         view_mode="tree,form"
340         view_type="form"
341         />
342
343     # ------------------------------------------------------
344     # Menu Items
345     # ------------------------------------------------------
346
347         <menuitem action="act_project_phase_list"
348             id="menu_project_phase_list" parent="project.menu_project_management" sequence="2"/>
349
350         <menuitem action="act_project_phase"
351             icon="STOCK_INDENT"
352             id="menu_project_phase"   parent="base.menu_project_long_term" sequence="1"/>
353
354         <menuitem id="menu_resouce_allocation" action="act_resouce_allocation"
355             icon="STOCK_INDENT"
356             parent="base.menu_project_long_term" sequence="2"/>
357
358         <menuitem id="menu_pm_users_project1"
359             name="Resources" parent="project.menu_definitions" sequence="3"/>
360
361         <menuitem id="menu_phase_schedule" name="Scheduling" parent="base.menu_main_pm" sequence="4" groups="project.group_project_user,project.group_project_manager"/>
362         <menuitem action="resource.action_resource_resource_tree" id="menu_view_resource" parent="menu_pm_users_project1" sequence="2"/>
363         <menuitem action="resource.action_resource_calendar_form" id="menu_view_resource_calendar" parent="menu_pm_users_project1" sequence="5"/>
364         <menuitem action="resource.action_resource_calendar_leave_tree" id="menu_view_resource_calendar_leaves" parent="menu_pm_users_project1" sequence="3"/>
365
366     </data>
367 </openerp>