Improved search view by removing default values and shift it on actions
[odoo/odoo.git] / addons / scrum / scrum_view.xml
1 <?xml version="1.0" encoding="utf-8"?>
2 <openerp>
3     <data>
4
5         <menuitem id="menu_scrum"
6             name="Scrum"
7             parent="base.menu_main_pm"/>
8
9         <!-- Scrum Project -->
10
11         <record id="view_project_project_form" model="ir.ui.view">
12             <field name="name">project.project.form</field>
13             <field name="model">project.project</field>
14             <field name="type">form</field>
15             <field name="inherit_id" ref="project.edit_project"/>
16             <field name="arch" type="xml">
17                 <group name="misc" position="after">
18                     <group col="2" colspan="2">
19                         <separator string="Scrum Data" colspan="4"/>
20                         <field name="product_owner_id" required="1" select="1"/>
21                         <field name="sprint_size"/>
22                     </group>
23                 </group>
24             </field>
25         </record>
26
27         <!--
28        Product backlog
29        -->
30
31         <record id="view_scrum_product_backlog_tree" model="ir.ui.view">
32             <field name="name">scrum.product.backlog.tree</field>
33             <field name="model">scrum.product.backlog</field>
34             <field name="type">tree</field>
35             <field name="arch" type="xml">
36                 <tree string="Product Backlog">
37                     <field name="sequence" invisible="1"/>
38                     <field name="name"/>
39                     <field name="project_id"/>
40                     <field name="sprint_id"/>
41                     <field name="user_id"/>
42                     <field name="progress" widget="progressbar"/>
43                     <field name="effective_hours" sum="Effective hours" widget="float_time"/>
44                     <field name="planned_hours" sum="Planned hours" widget="float_time"/>
45                     <field name="expected_hours" sum="Expected hours" widget="float_time"/>
46                     <field name="state"/>
47                     <button type="object" string="Open" name="button_open" states="draft,pending" icon="gtk-jump-to"/>
48                     <button type="action" string="Convert to Task" name="%(wizard_scrum_backlog_task)d" states="draft,pending" icon="gtk-execute"/>
49                     <button type="object" string="Pending" name="button_pending" states="open" icon="gtk-media-pause"/>
50                     <button type="object" string="Close" name="button_close" states="open,pending" icon="gtk-jump-to"/>
51                     <button type="object" string="Set to Draft" name="button_draft" states="cancel,done" icon="gtk-convert"/>
52                 </tree>
53             </field>
54         </record>
55
56         <record id="view_scrum_product_backlog_form" model="ir.ui.view">
57             <field name="name">scrum.product.backlog.form</field>
58             <field name="model">scrum.product.backlog</field>
59             <field name="type">form</field>
60             <field name="arch" type="xml">
61                 <form string="Product backlog">
62                     <group colspan="4" col="6">
63                         <field name="name" select="1"/>
64                         <field name="project_id" select="1"/>
65                         <field domain="[('project_id','=',project_id)]" name="sprint_id" select="1"/>
66                         <field name="user_id" select="1"/>
67                         <field name="sequence"/>
68                         <field name="active" select="1"/>
69                         <group colspan="6" col="8">
70                             <field name="effective_hours" widget="float_time"/>
71                             <field name="planned_hours" widget="float_time"/>
72                             <field name="expected_hours" widget="float_time"/>
73                             <field name="progress" widget="progressbar"/>
74                         </group>
75                     </group>
76                     <notebook colspan="4">
77                         <page string="Feature Description">
78                             <field colspan="4" name="note" nolabel="1"/>
79                         </page>
80                         <page string="Tasks">
81                             <field colspan="4" name="tasks_id" nolabel="1" widget="one2many_list" context="{'default_project_id':project_id, 'default_sprint_id':sprint_id, 'default_product_backlog_id':active_id}"/>
82                         </page>
83                     </notebook>
84                     <group col="7" colspan="4">
85                         <field name="state" select="1" readonly="1"/>
86                         <button type="object" string="Open" name="button_open" states="draft,pending" icon="gtk-jump-to"/>
87                         <button type="action" string="Convert to Task" name="%(wizard_scrum_backlog_task)d" states="draft,pending" icon="gtk-execute"/>
88                         <button type="object" string="Pending" name="button_pending" states="open" icon="gtk-media-pause"/>
89                         <button type="object" string="Close" name="button_close" states="open,pending" icon="gtk-jump-to"/>
90                         <button type="object" string="Set to Draft" name="button_draft" states="cancel,done" icon="gtk-convert"/>
91                     </group>
92                 </form>
93             </field>
94         </record>
95
96         <record model="ir.ui.view" id="view_scrum_product_backlog_search">
97             <field name="name">scrum.product.backlog.search</field>
98             <field name="model">scrum.product.backlog</field>
99             <field name="type">search</field>
100             <field name="arch" type="xml">
101                 <search string="Product Backlogs">
102                     <group col="10" colspan="4">
103                         <filter name="current"
104                             icon="terp-project"
105                             string="Current"
106                             domain="['|','&amp;',('sprint_id.date_start','&lt;=',time.strftime('%%Y-%%m-%%d')), ('sprint_id.date_stop','&gt;=',time.strftime('%%Y-%%m-%%d')), ('state','in',['draft','open'])]"
107                             help="Current Backlogs"/>
108                         <separator orientation="vertical"/>
109                         <filter icon="terp-project" string="Draft" domain="[('state','=','draft')]" help="Draft Backlogs"/>
110                         <filter icon="terp-project" string="Open" domain="[('state','=','open')]" help="Open Backlogs"/>
111                         <separator orientation="vertical"/>
112                         <field name="name"/>
113                         <field name="project_id"
114                             widget="selection"
115                             />
116                         <field name="sprint_id"/>
117                         <field name="user_id" widget="selection">
118                             <filter name="my_features"
119                                 icon="terp-project"
120                                 string="My Features"
121                                 domain="[('user_id','=',uid)]"
122                                 help="My Backlogs"/>
123                         </field>
124                     </group>
125                     <newline/>
126                     <group expand="1" string="Group By..." colspan="4" col="20">
127                         <filter string="Project" icon="terp-project" domain="[]" context="{'group_by':'project_id'}"/>
128                         <filter string="Sprint" icon="terp-project" domain="[]" context="{'group_by':'sprint_id'}"/>
129                         <filter string="Responsible" icon="terp-project" domain="[]" context="{'group_by':'user_id'}"/>
130                         <filter string="State" icon="terp-project" domain="[]" context="{'group_by':'state'}"/>
131                     </group>
132
133                 </search>
134             </field>
135         </record>
136
137         <record id="action_product_backlog_form" model="ir.actions.act_window">
138             <field name="name">Product Backlogs</field>
139             <field name="res_model">scrum.product.backlog</field>
140             <field name="view_type">form</field>
141             <field name="context">{"search_default_current":1,"search_default_my_features":1,"search_default_project_id":project_id}</field>
142             <field name="search_view_id" ref="view_scrum_product_backlog_search"/>
143         </record>
144         <menuitem
145             action="action_product_backlog_form"
146             id="menu_action_product_backlog_form"
147             sequence="20"
148             parent="menu_scrum"/>
149
150         <!--
151               Scrum Sprint
152        -->
153
154         <record id="view_scrum_sprint_tree" model="ir.ui.view">
155             <field name="name">scrum.sprint.tree</field>
156             <field name="model">scrum.sprint</field>
157             <field name="type">tree</field>
158             <field name="arch" type="xml">
159                 <tree string="Scrum Sprint">
160                     <field name="name"/>
161                     <field name="project_id"/>
162                     <field name="scrum_master_id"/>
163                     <field name="product_owner_id" invisible="1"/>
164                     <field name="date_start"/>
165                     <field name="progress" widget="progressbar"/>
166                     <field name="effective_hours" sum="Effective hours" widget="float_time"/>
167                     <field name="planned_hours" sum="Planned hours" widget="float_time"/>
168                     <field name="expected_hours" sum="Expected hours" widget="float_time"/>
169                     <field name="state"/>
170                     <button type="object" string="Open" name="button_open" states="draft,pending" icon="gtk-jump-to"/>
171                     <button type="object" string="Pending" name="button_pending" states="open" icon="gtk-media-pause"/>
172                     <button type="object" string="Close" name="button_close" states="open,pending" icon="gtk-jump-to"/>
173                     <button type="object" string="Set to Draft" name="button_draft" states="cancel,done" icon="gtk-convert"/>
174                 </tree>
175             </field>
176         </record>
177         <record id="view_scrum_sprint_form" model="ir.ui.view">
178             <field name="name">scrum.sprint.form</field>
179             <field name="model">scrum.sprint</field>
180             <field name="type">form</field>
181             <field name="arch" type="xml">
182                 <form string="Scrum Sprint">
183                     <field name="name" select="1"/>
184                     <field name="project_id" on_change="onchange_project_id(project_id)"/>
185                     <notebook colspan="4">
186                         <page string="Sprint Info">
187                             <group colspan="2" col="2">
188                                 <separator string="Owners" colspan="2"/>
189                                 <field name="product_owner_id"/>
190                                 <field name="scrum_master_id"/>
191                             </group>
192                             <group colspan="2" col="2">
193                                 <separator string="Dates" colspan="2"/>
194                                 <field name="date_start" select="1"/>
195                                 <field name="date_stop"/>
196                             </group>
197                             <group colspan="2" col="2">
198                                 <separator string="Planning" colspan="2"/>
199                                 <field name="planned_hours" widget="float_time"/>
200                                 <field name="expected_hours" widget="float_time"/>
201                                 <field name="effective_hours" widget="float_time"/>
202                                 <field name="progress" widget="progressbar"/>
203                             </group>
204                         </page>
205                         <page string="Daily Meetings">
206                             <field colspan="4" name="meeting_ids" nolabel="1" widget="one2many_list"/>
207                         </page>
208                         <page string="Review">
209                             <field colspan="4" name="review" nolabel="1"/>
210                         </page>
211                         <page string="Retrospective">
212                             <field colspan="4" name="retrospective" nolabel="1"/>
213                         </page>
214                     </notebook>
215                     <group col="6" colspan="4">
216                         <field name="state" readonly="1"/>
217                         <button type="object" string="Open" name="button_open" states="draft,pending" icon="gtk-jump-to"/>
218                         <button type="object" string="Pending" name="button_pending" states="open" icon="gtk-media-pause"/>
219                         <button type="object" string="Close" name="button_close" states="open,pending" icon="gtk-jump-to"/>
220                         <button type="object" string="Set to Draft" name="button_draft" states="cancel,done" icon="gtk-convert"/>
221                     </group>
222                 </form>
223             </field>
224         </record>
225
226         <record model="ir.ui.view" id="view_scrum_sprint_search">
227             <field name="name">scrum.sprint.search</field>
228             <field name="model">scrum.sprint</field>
229             <field name="type">search</field>
230             <field name="arch" type="xml">
231                 <search string="Sprints">
232                     <group col="10" colspan="4">
233                         <filter name="current" icon="terp-project" string="Current" domain="[('state','in',('draft','open'))]" help="Draft and open Sprints"/>
234                         <filter icon="terp-project" string="Draft" domain="[('state','=','draft')]" help="Draft Sprints"/>
235                         <filter icon="terp-project" string="Open" domain="[('state','=','open')]" help="Open Sprints"/>
236                         <separator orientation="vertical"/>
237                         <field name="name"/>
238                         <field name="project_id" widget="selection"/>
239                         <field name="scrum_master_id" widget="selection">
240                             <filter icon="gtk-execute" name="my_sprints" domain="[('scrum_master_id','=',uid)]"
241                                 help="My Sprints"/>
242                         </field>
243                         <field name="date_start"/>
244                     </group>
245                     <newline/>
246                     <group expand="1" string="Group By..." colspan="4" col="20">
247                         <filter string="Project" icon="terp-project" domain="[]" context="{'group_by':'project_id'}"/>
248                         <filter string="Masters" icon="terp-project" domain="[]"  context="{'group_by':'scrum_master_id'}"/>
249                         <filter string="Product owner" icon="terp-project" domain="[]" context="{'group_by':'product_owner_id'}"/>
250                         <filter string="State" icon="terp-project" domain="[]" context="{'group_by':'state'}"/>
251                         <separator orientation="vertical"/>
252                         <filter string="Start Date" icon="terp-project" domain="[]" context="{'group_by':'date_start'}"/>
253                     </group>
254                 </search>
255             </field>
256         </record>
257
258         <record id="action_sprint_all_tree" model="ir.actions.act_window">
259             <field name="name">Sprints</field>
260             <field name="res_model">scrum.sprint</field>
261             <field name="view_type">form</field>
262             <field name="view_mode">tree,form</field>
263             <field name="view_id" ref="view_scrum_sprint_tree"/>
264             <field name="context">{"search_default_current":1,"search_default_my_sprints":1}</field>
265             <field name="search_view_id" ref="view_scrum_sprint_search"/>
266         </record>
267         <menuitem
268             sequence="10"
269             action="action_sprint_all_tree" id="menu_action_sprint_all_tree" parent="menu_scrum"/>
270
271         <!--
272               Daily Meeting
273        -->
274
275         <record id="view_scrum_meeting_tree" model="ir.ui.view">
276             <field name="name">scrum.meeting.tree</field>
277             <field name="model">scrum.meeting</field>
278             <field name="type">tree</field>
279             <field name="arch" type="xml">
280                 <tree string="Scrum Sprint">
281                     <field name="date"/>
282                     <field name="name"/>
283                     <field name="sprint_id"/>
284                 </tree>
285             </field>
286         </record>
287         <record id="view_scrum_meeting_form" model="ir.ui.view">
288             <field name="name">Scrum Meeting</field>
289             <field name="model">scrum.meeting</field>
290             <field name="type">form</field>
291             <field name="arch" type="xml">
292                 <form string="Scrum Sprint">
293                     <group colspan="4" col="6">
294                         <field name="name" select="1"/>
295                         <field name="date"/>
296                         <field name="sprint_id"/>
297                     </group>
298                     <notebook colspan="4">
299                         <page string="Scrum Meeting">
300                             <separator colspan="4" string="What have you accomplished since yesterday ?"/>
301                             <field colspan="4" name="question_yesterday" nolabel="1"/>
302                             <separator colspan="4" string="What are you working on today ?"/>
303                             <field colspan="4" name="question_today" nolabel="1"/>
304                             <separator colspan="4" string="Is there anything blocking you ?"/>
305                             <field colspan="4" name="question_blocks" nolabel="1"/>
306                         </page>
307                         <page string="Optionnal Info">
308                             <separator colspan="4" string="Are your Sprint Backlog estimate accurate ?"/>
309                             <field colspan="4" name="question_backlog" nolabel="1"/>
310                         </page>
311                     </notebook>
312                 </form>
313             </field>
314         </record>
315
316         <record id="view_scrum_meeting_search" model="ir.ui.view">
317             <field name="name">scrum.meeting.search</field>
318             <field name="model">scrum.meeting</field>
319             <field name="type">search</field>
320             <field name="arch" type="xml">
321                 <search string="Scrum Sprint">
322                     <group col="10" colspan="4">
323                         <filter icon="terp-project" string="Daily" domain="[('date','=',time.strftime(%%Y-%%m-%%d))]" help="Daily Meetings"/>
324                         <separator orientation="vertical"/>
325                         <field name="name"/>
326                         <field name="sprint_id">
327                             <filter icon="terp-project" name="current" string="Current" domain="[('sprint_id.state','in',('draft','open'))]" help="Current Sprints"/>
328                         </field>
329                         <field name="date"/>
330                     </group>
331                     <newline/>
332                     <group expand="1" string="Group By..." colspan="4" col="20">
333                         <filter string="Sprint" icon="terp-project" domain="[]" context="{'group_by':'sprint_id'}"/>
334                         <filter string="Date" icon="terp-project" domain="[]" context="{'group_by':'date'}"/>
335                     </group>
336                 </search>
337             </field>
338         </record>
339
340         <record id="action_meeting_form" model="ir.actions.act_window">
341             <field name="name">Scrum Meetings</field>
342             <field name="res_model">scrum.meeting</field>
343             <field name="view_type">form</field>
344             <field name="view_mode">tree,form</field>
345             <field name="context">{"search_default_current":1}</field>
346             <field name="search_view_id" ref="view_scrum_meeting_search"/>
347         </record>
348         <menuitem sequence="30"
349             action="action_meeting_form" id="menu_action_meeting_form" parent="menu_scrum"/>
350
351         <!--
352        Clicks on a sprint:
353        -->
354
355         <record id="action_sprint_task_open" model="ir.actions.act_window">
356             <field name="res_model">project.task</field>
357             <field name="name">View sprint Tasks</field>
358             <field name="view_type">form</field>
359             <field name="view_mode">tree,form</field>
360             <field name="domain">[('product_backlog_id', '=', active_id)]</field>
361         </record>
362         <record id="ir_scrum_sprint_open_task" model="ir.values">
363             <field eval=" 'tree_but_open'" name="key2"/>
364             <field eval="'scrum.sprint'" name="model"/>
365             <field name="name">View sprint tasks</field>
366             <field eval="'ir.actions.act_window,'+str(action_sprint_task_open)" name="value"/>
367             <field eval="True" name="object"/>
368         </record>
369
370         <record id="action_sprint_backlog_open" model="ir.actions.act_window">
371             <field name="res_model">scrum.product.backlog</field>
372             <field name="name">View sprint backlog</field>
373             <field name="view_type">form</field>
374             <field name="view_mode">tree,form</field>
375             <field name="domain">[('sprint_id', '=', active_id)]</field>
376         </record>
377         <record id="ir_scrum_sprint_open_sprint" model="ir.values">
378             <field eval=" 'tree_but_open'" name="key2"/>
379             <field eval="'scrum.sprint'" name="model"/>
380             <field name="name">View sprint backlog</field>
381             <field eval="'ir.actions.act_window,'+str(action_sprint_backlog_open)" name="value"/>
382             <field eval="True" name="object"/>
383         </record>
384
385         <!--
386        Clicks on a project
387        -->
388
389         <record id="dblc_proj" model="ir.actions.act_window">
390             <field name="res_model">scrum.product.backlog</field>
391             <field name="name">View project's backlog</field>
392             <field name="view_type">form</field>
393             <field name="view_mode">tree,form</field>
394             <field name="domain">[('project_id', 'child_of', [active_id])]</field>
395         </record>
396         <record id="ir_scrum_project_backlog" model="ir.values">
397             <field eval=" 'tree_but_open'" name="key2"/>
398             <field eval="'scrum.project'" name="model"/>
399             <field name="name">View project's backlog</field>
400             <field eval="'ir.actions.act_window,'+str(dblc_proj)" name="value"/>
401             <field eval="True" name="object"/>
402         </record>
403         <record id="dblc_proj2" model="ir.actions.act_window">
404             <field name="res_model">project.task</field>
405             <field name="name">View project's tasks</field>
406             <field name="view_type">form</field>
407             <field name="view_mode">tree,form</field>
408             <field name="domain">[('project_id', 'child_of', [active_id])]</field>
409         </record>
410         <record id="ir_scrum_project_task" model="ir.values">
411             <field eval=" 'tree_but_open'" name="key2"/>
412             <field eval="'scrum.project'" name="model"/>
413             <field name="name">View project's tasks</field>
414             <field eval="'ir.actions.act_window,'+str(dblc_proj2)" name="value"/>
415             <field eval="True" name="object"/>
416         </record>
417
418         <!--
419         Tasks
420         -->
421
422         <record id="view_task_tree2" model="ir.ui.view">
423             <field name="name">project.task.tree.scrum</field>
424             <field name="model">project.task</field>
425             <field name="type">tree</field>
426             <field name="inherit_id" ref="project.view_task_tree2"/>
427             <field name="arch" type="xml">
428                 <field name="user_id" position="after">
429                     <field name="sprint_id" invisible="context.get('sprint_invisible',True)"/>
430                     <field name="product_backlog_id" invisible="1"/>
431                 </field>
432             </field>
433         </record>
434
435         <record id="view_task_form2" model="ir.ui.view">
436             <field name="name">project.task.scrum.form</field>
437             <field name="model">project.task</field>
438             <field name="type">form</field>
439             <field name="inherit_id" ref="project.view_task_form2"/>
440             <field name="arch" type="xml">
441                 <xpath expr="/form/group/field[@name='progress']" position="after">
442                     <field domain="[('project_id','=',project_id),]" name="product_backlog_id" select="1"/>
443                 </xpath>
444             </field>
445         </record>
446
447         <record id="view_task_form3" model="ir.ui.view">
448             <field name="name">project.task.scrum.form2</field>
449             <field name="model">project.task</field>
450             <field name="type">form</field>
451             <field name="inherit_id" ref="project.view_task_form2"/>
452             <field name="arch" type="xml">
453                 <xpath expr="/form/notebook/page[@string='Extra Info']/group/field[@name='sequence']" position="after">
454                     <field name="sprint_id" />
455                 </xpath>
456             </field>
457         </record>
458
459         <record id="view_task_search_form2" model="ir.ui.view">
460             <field name="name">project.task.scrum.search</field>
461             <field name="model">project.task</field>
462             <field name="type">search</field>
463             <field name="inherit_id" ref="project.view_task_search_form"/>
464             <field name="arch" type="xml">
465                 <field name="project_id" position="after">
466                     <field name="sprint_id" widget="selection" context="{'sprint_invisible':False}">
467                         <filter icon="terp-project" string="Current" context="{'sprint_invisible':False}" domain="[('sprint_id.state','in',('draft','open'))]" help="Current Sprints"/>
468                     </field>
469                 </field>
470             </field>
471         </record>
472
473         <record id="view_task_search_form3" model="ir.ui.view">
474             <field name="name">project.task.scrum.search</field>
475             <field name="model">project.task</field>
476             <field name="type">search</field>
477             <field name="inherit_id" ref="project.view_task_search_form"/>
478             <field name="arch" type="xml">
479                 <xpath expr="/search/group[@string='Group By...']/filter[@string='End Date']" position="after">
480                     <filter string="Sprint" icon="terp-project" domain="[]" context="{'group_by':'sprint_id'}"/>
481                     <filter string="Backlog" icon="terp-project" domain="[]" context="{'group_by':'product_backlog_id'}"/>
482                     <separator orientation="vertical"/>
483                 </xpath>
484             </field>
485         </record>
486
487         <act_window
488             domain="[('sprint_id', '=', active_id)]"
489             id="act_scrum_sprint_2_product_backlog"
490             name="Backlogs"
491             res_model="scrum.product.backlog"
492             src_model="scrum.sprint"
493             view_mode="tree,form"
494             view_type="form"/>
495
496         <act_window
497             domain="[('sprint_id', '=', active_id)]"
498             id="act_scrum_sprint_2_project_task"
499             name="Tasks"
500             res_model="project.task"
501             src_model="scrum.sprint"
502             view_mode="tree,form"
503             view_type="form"/>
504
505
506     </data>
507 </openerp>