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