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