[MERGE] lp881356
[odoo/odoo.git] / addons / project_scrum / project_scrum_view.xml
index e43407b..7dc2cc1 100644 (file)
@@ -33,7 +33,7 @@
             <field name="model">project.scrum.product.backlog</field>
             <field name="type">tree</field>
             <field name="arch" type="xml">
-                <tree colors="grey:state in ('cancel','done');blue:state in ('pending')" string="Product Backlog">
+                <tree colors="grey:state in ('cancel','done');blue:state == 'pending'" string="Product Backlog">
                     <field name="sequence"/>
                     <field name="name"/>
                     <field name="project_id"/>
@@ -46,7 +46,6 @@
                     <button type="object" string="Open" name="button_open" states="draft,pending" icon="terp-camera_test"/>
                     <button type="object" string="Pending" name="button_pending" states="open" icon="gtk-media-pause"/>
                     <button type="action" string="Convert to Task" name="%(action_scrum_backlog_to_task)d" states="pending" icon="terp-stock_effects-object-colorize"/>
-                    <button type="action" string="Merge Backlogs" name="%(action_scrum_backlog_merge)d" states="pending" icon="terp-stock_effects-object-colorize"/>
                     <button type="object" string="Close" name="button_close" states="open,pending" icon="terp-dialog-close"/>
                 </tree>
             </field>
@@ -62,9 +61,9 @@
                         <field name="name" select="1"/>
                         <field name="project_id" select="1"/>
                         <field domain="[('project_id','=',project_id), ('state','in', ['draft','open'])]" name="sprint_id" select="1"/>
-                                       <button name="button_postpone" string="Postpone" type="object"
-                                                       help="Postpone backlog" colspan="2"
-                         icon="gtk-convert"  attrs="{'invisible':[('state','=','done')]}"/>
+                        <button name="%(action_postpone_wizard)d" string="Postpone" type="action"
+                            help="Postpone backlog" colspan="2"
+                         icon="gtk-convert"  attrs="{'invisible':[('state','in',['done', 'cancel'])]}"/>
                         <field name="user_id" select="1"/>
                         <field name="sequence" groups="base.group_extended"/>
                         <field name="create_date"/>
                                             help="Change Type"/>
                                         <field name="progress" widget="progressbar" invisible="context.get('set_visible',False)"/>
                                         <field name="state" invisible="context.get('set_visible',False)"/>
+                                        <button name="do_cancel" states="draft,open,pending" string="Cancel" type="object" icon="gtk-stop" help="For cancelling the task"/>
                                         <button name="do_open" states="pending,draft,done,cancel" string="Start Task" type="object" icon="terp-camera_test" help="For changing to open state" invisible="context.get('set_visible',False)"/>
                                         <button groups="base.group_extended" name="%(project.action_project_task_delegate)d" states="pending,open,draft" string="Delegate" type="action" icon="gtk-sort-descending" help="For changing to delegate state"/>
-                                        <button name="do_close" states="draft,pending,open" string="Done" type="object" icon="gtk-jump-to" help="For changing to done state"/>
-                                        <button name="do_cancel" states="draft,open,pending" string="Cancel" type="object" icon="gtk-stop" help="For cancelling the task"/>
+                                        <button name="do_close" states="draft,pending,open" string="Done" type="object" icon="terp-dialog-close" help="For changing to done state"/>
                                 </tree>
                             </field>
                         </page>
                     </notebook>
                     <group col="8" colspan="4">
                         <field name="state" select="1" readonly="1"/>
+                        <button type="object" string="Cancel" name="button_cancel" states="draft,open,pending" icon="gtk-stop"/>
                         <button type="object" string="Open" name="button_open" states="draft,pending" icon="terp-camera_test"/>
                         <button type="action" string="Convert to Task" name="%(action_scrum_backlog_to_task)d" states="pending" icon="gtk-execute"/>
                         <button type="object" string="Pending" name="button_pending" states="open" icon="gtk-media-pause"/>
                         <button type="object" string="Close" name="button_close" states="open,pending" icon="terp-dialog-close"/>
                         <button type="object" string="Set to Draft" name="button_draft" states="cancel,done" icon="gtk-convert"/>
-                        <button type="object" string="Cancel" name="button_cancel" states="open,pending" icon="gtk-stop"/>
                     </group>
                 </form>
             </field>
             <field name="type">search</field>
             <field name="arch" type="xml">
                 <search string="Product Backlogs">
-                    <group col="10" colspan="4">
-                        <filter default="1"
+                    <group>
+                        <filter
                             icon="terp-check"
-                            string="Current"
+                            string="Draft"
                             name="current"
-                            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','pending'])]"
-                            help="Draft, Open and Pending Backlogs"/>
-                        <separator orientation="vertical"/>
-                        <filter icon="terp-camera_test" string="Open" domain="[('state','=','open')]" help="Open Backlogs"/>
+                            domain="['|','&amp;',('sprint_id.date_start','&lt;=',time.strftime('%%Y-%%m-%%d')), ('sprint_id.date_stop','&gt;=',time.strftime('%%Y-%%m-%%d')), ('state','=','draft')]"
+                            help="Draft Backlogs"/>
+                        <filter icon="terp-camera_test" string="In Progress" domain="[('state','=','open')]" help="In Progress Backlogs"/>
                         <filter icon="terp-gtk-media-pause" string="Pending" domain="[('state','=','pending')]" help="Pending Backlogs"/>
                         <separator orientation="vertical"/>
-                        <filter string="Editable" icon="terp-folder-blue" domain="[]" context="{'set_editable':'1'}"/>
+                        <filter string="Edit" icon="gtk-execute" domain="[]" context="{'set_editable':'1'}"/>
                         <separator orientation="vertical"/>
                         <field name="name"/>
                         <field name="project_id"/>
                         </field>
                     </group>
                     <newline/>
-                    <group expand="0" string="Group By..." colspan="4" col="20" groups="base.group_extended">
+                    <group expand="0" string="Group By..." groups="base.group_extended">
                         <filter string="Author" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/>
                         <separator orientation="vertical"/>
-                        <filter string="Project" icon="terp-folder-blue" domain="[]" context="{'group_by':'project_id'}"/>
+                        <filter string="Project" icon="terp-folder-violet" domain="[]" context="{'group_by':'project_id'}"/>
                         <filter string="Sprint" icon="terp-gtk-jump-to-ltr" domain="[]" context="{'group_by':'sprint_id'}"/>
                         <separator orientation="vertical"/>
                         <filter string="State" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
             <field name="name">Product Backlogs</field>
             <field name="res_model">project.scrum.product.backlog</field>
             <field name="view_type">form</field>
-            <field name="context">{'search_default_current': 1,'search_default_user_id':uid,'search_default_project_id':project_id}</field>
+            <field name="context">{'search_default_current':1, 'search_default_user_id':uid,'search_default_project_id':project_id}</field>
             <field name="search_view_id" ref="view_scrum_product_backlog_search"/>
+            <field name="help">The scrum agile methodology is used in software development projects. The Product Backlog is the list of features to be implemented. A product backlog can be planified in a development sprint and may be split into several tasks. The product backlog is managed by the product owner of the project.</field>
         </record>
         <menuitem
             action="action_product_backlog_form"
         <!--
               Scrum Sprint
        -->
-        
+
         <record id="view_scrum_sprint_calendar" model="ir.ui.view">
             <field name="name">project.scrum.sprint.calendar</field>
             <field name="model">project.scrum.sprint</field>
                 </calendar>
             </field>
         </record>
-        
+
         <record id="view_scrum_sprint_tree" model="ir.ui.view">
             <field name="name">project.scrum.sprint.tree</field>
             <field name="model">project.scrum.sprint</field>
                     <button type="object" string="Pending" name="button_pending" states="open" icon="gtk-media-pause"/>
                     <button type="object" string="Close" name="button_close" states="open,pending" icon="terp-dialog-close"/>
                     <button type="object" string="Set to Draft" name="button_draft" states="cancel,done" icon="gtk-convert"/>
+                    <button name="%(project_scrum.report_scrum_sprint_burndown_chart)d" states="open,draft,close,cancel"
+                                    string="Burndown Chart" type="action" icon="gtk-print"/>
                 </tree>
             </field>
         </record>
                                     <group colspan="4" col="6">
                                             <field name="date"/>
                                             <field name="user_id"/>
+                                            <button name="%(mail.action_email_compose_message_wizard)d"
+                                                string="Send Email" type="action" icon="terp-mail-message-new"/>
                                     </group>
                                     <notebook colspan="4">
                                         <page string="Scrum Meeting">
                                             <separator colspan="4" string="Are there anything blocking you?"/>
                                             <field colspan="4" name="question_blocks" nolabel="1"/>
                                             <separator colspan="4" string=""/>
-                                                                       <button name="button_send_to_master" type="object" string="Send to Scrum Master" icon="gtk-ok"/>
-                                            <button name="button_send_product_owner" type="object" string="Send to Product Owner" icon="gtk-ok"/>
                                         </page>
                                         <page string="Optional Info">
                                             <separator colspan="4" string="Are your Sprint Backlog estimate accurate ?"/>
                             <field colspan="4" name="retrospective" nolabel="1"/>
                         </page>
                     </notebook>
-                    <group col="6" colspan="4">
+                    <group col="8" colspan="4">
                         <field name="state" readonly="1"/>
+                        <button name="%(project_scrum.report_scrum_sprint_burndown_chart)d"
+                                    string="Burndown Chart" type="action" icon="gtk-print"/>
                         <button type="object" string="Open" name="button_open" states="draft,pending" icon="terp-camera_test"/>
                         <button type="object" string="Pending" name="button_pending" states="open" icon="gtk-media-pause"/>
                         <button type="object" string="Close" name="button_close" states="open,pending" icon="terp-dialog-close"/>
             <field name="type">search</field>
             <field name="arch" type="xml">
                 <search string="Sprints">
-                    <group col="10" colspan="4">
-                        <filter name="terp-check" icon="terp-check" string="Current" domain="[('state','in',('draft','open'))]" help="Draft and open Sprints"/>
-                        <separator orientation="vertical"/>
-                        <filter icon="terp-camera_test" string="Open" domain="[('state','=','open')]" help="Open Sprints"/>
+                    <group>
+                        <filter icon="terp-check" string="New" name="current" domain="[('state','=','draft')]" help="New Sprints"/>
+                        <filter icon="terp-camera_test" string="In Progress" domain="[('state','=','open')]" help="In Progress Sprints"/>
                         <filter icon="gtk-media-pause" string="Pending" domain="[('state','=','pending')]" help="Pending Sprints"/>
                         <separator orientation="vertical"/>
                         <field name="name"/>
                         <field name="date_start"/>
                     </group>
                     <newline/>
-                    <group expand="0" string="Group By..." colspan="4" col="20">
+                    <group expand="0" string="Group By...">
                         <filter string="Product owner" icon="terp-personal" domain="[]" context="{'group_by':'product_owner_id'}"/>
                         <filter string="Scrum Master" icon="terp-personal" domain="[]"  context="{'group_by':'scrum_master_id'}"/>
                         <separator orientation="vertical"/>
-                        <filter string="Project" icon="terp-folder-blue" domain="[]" context="{'group_by':'project_id'}"/>
+                        <filter string="Project" icon="terp-folder-violet" domain="[]" context="{'group_by':'project_id'}"/>
                         <separator orientation="vertical"/>
                         <filter string="State" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
                         <separator orientation="vertical"/>
             <field name="view_type">form</field>
             <field name="view_mode">tree,form,calendar</field>
             <field name="view_id" ref="view_scrum_sprint_tree"/>
-            <field name="context">{"search_default_filter_current": 1, "search_default_scrum_master_id":uid}</field>
+            <field name="context">{"search_default_current": 1}</field>
             <field name="search_view_id" ref="view_scrum_sprint_search"/>
+            <field name="help">The scrum agile methodology is used in software development projects. In this methodology, a sprint is a short period of time (e.g. one month) during which the team implements a list of product backlogs. The sprint review is organized when the team presents its work to the customer and product owner.</field>
         </record>
         <menuitem
             sequence="20"
         <!--
               Daily Meeting
        -->
-        
+
         <record id="view_scrum_meeting_calendar" model="ir.ui.view">
             <field name="name">project.scrum.meeting.calendar</field>
             <field name="model">project.scrum.meeting</field>
             <field name="arch" type="xml">
                 <calendar string="Scrum Meeting" date_start="date" color="user_id">
                     <field name="sprint_id"/>
-                    <field name="project_id"/>
                 </calendar>
             </field>
         </record>
-        
+
         <record id="view_scrum_meeting_tree" model="ir.ui.view">
             <field name="name">project.scrum.meeting.tree</field>
             <field name="model">project.scrum.meeting</field>
                 <tree string="Scrum Meeting">
                     <field name="date"/>
                     <field name="sprint_id"/>
-                    <field name="project_id"/>
                     <field name="user_id"/>
                 </tree>
             </field>
             <field name="type">form</field>
             <field name="arch" type="xml">
                 <form string="Scrum Meeting">
-                    <group colspan="4" col="6">
+                    <group colspan="4" col="8">
                         <field name="date"/>
                         <field name="sprint_id" domain="[('state', '=', 'open')]"/>
                         <field name="user_id"/>
+                        <button name="%(mail.action_email_compose_message_wizard)d"
+                                string="Send Email" type="action" icon="terp-mail-message-new"
+                        />
                     </group>
                     <notebook colspan="4">
                         <page string="Scrum Meeting">
                             <separator colspan="4" string="Are there anything blocking you?"/>
                             <field colspan="4" name="question_blocks" nolabel="1"/>
                             <separator colspan="4" string=""/>
-                                                       <button name="button_send_to_master" type="object" string="Send to Scrum Master" icon="gtk-ok"/>
-                            <button name="button_send_product_owner" type="object" string="Send to Product Owner" icon="gtk-ok"/>
                         </page>
                         <page string="Optional Info">
                             <separator colspan="4" string="Are your Sprint Backlog estimate accurate ?"/>
             <field name="type">search</field>
             <field name="arch" type="xml">
                 <search string="Scrum Sprint">
-                    <group col="10" colspan="4">
+                    <group>
                         <filter name="scrum_daily" icon="terp-go-today" string="Daily" domain="[('date','=',time.strftime('%%Y-%%m-%%d'))]" help="Daily Meetings"/>
                         <separator orientation="vertical"/>
                         <field name="sprint_id">
-                            <filter icon="terp-check" string="Current" domain="[('sprint_id.state','in',('draft','open'))]" help="Current Sprints" default="1"/>
+                            <filter icon="terp-check" domain="[('sprint_id.state','in',('draft','open'))]" help="Current Sprints"/>
                         </field>
-                        <field name="project_id"/>
                         <field name="date"/>
                     </group>
                     <newline/>
-                    <group expand="0" string="Group By..." colspan="4" col="20">
+                    <group expand="0" string="Group By...">
                         <filter string="Sprint" icon="terp-gtk-jump-to-ltr" domain="[]" context="{'group_by':'sprint_id'}"/>
                         <separator orientation="vertical"/>
                         <filter string="Month" icon="terp-go-month" domain="[]" context="{'group_by':'date'}" help="Meeting Date"/>
             <field name="view_mode">tree,form,calendar</field>
             <field name="context">{'search_default_scrum_daily':1,'search_default_project_id':project_id}</field>
             <field name="search_view_id" ref="view_scrum_meeting_search"/>
+            <field name="help">The scrum agile methodology is used in software development projects. In this methodology, a daily meeting is organized by the scrum master with his team in order to detect the difficulties the team faced/will face.</field>
         </record>
         <menuitem sequence="30"
             action="action_meeting_form" id="menu_action_meeting_form" parent="menu_scrum"/>
             <field name="view_type">form</field>
             <field name="view_mode">tree,form</field>
             <field name="domain">[('product_backlog_id', '=', active_id)]</field>
+            <field name="context">{'default_product_backlog_id': active_id}</field>
         </record>
         <record id="ir_scrum_sprint_open_task" model="ir.values">
             <field eval=" 'tree_but_open'" name="key2"/>
             <field eval="'project.scrum.sprint'" name="model"/>
             <field name="name">View sprint tasks</field>
             <field eval="'ir.actions.act_window,'+str(action_sprint_task_open)" name="value"/>
-            <field eval="True" name="object"/>
         </record>
 
         <record id="action_sprint_backlog_open" model="ir.actions.act_window">
             <field name="view_type">form</field>
             <field name="view_mode">tree,form</field>
             <field name="domain">[('sprint_id', '=', active_id)]</field>
+            <field name="context">{'default_sprint_id': active_id}</field>
         </record>
         <record id="ir_scrum_sprint_open_sprint" model="ir.values">
             <field eval=" 'tree_but_open'" name="key2"/>
             <field eval="'project.scrum.sprint'" name="model"/>
             <field name="name">View sprint backlog</field>
             <field eval="'ir.actions.act_window,'+str(action_sprint_backlog_open)" name="value"/>
-            <field eval="True" name="object"/>
         </record>
 
         <!--
             <field eval="'project.scrum.project'" name="model"/>
             <field name="name">View project's backlog</field>
             <field eval="'ir.actions.act_window,'+str(dblc_proj)" name="value"/>
-            <field eval="True" name="object"/>
         </record>
         <record id="dblc_proj2" model="ir.actions.act_window">
             <field name="res_model">project.task</field>
             <field eval="'project.scrum.project'" name="model"/>
             <field name="name">View project's tasks</field>
             <field eval="'ir.actions.act_window,'+str(dblc_proj2)" name="value"/>
-            <field eval="True" name="object"/>
         </record>
 
         <!--
             <field name="arch" type="xml">
                 <field name="project_id" position="after">
                     <field name="sprint_id" context="{'sprint_invisible':False}">
-                        <filter icon="terp-check" string="Current" context="{'sprint_invisible':False}" domain="[('sprint_id.state','in',('draft','open'))]" help="Current Sprints"/>
-                        <filter icon="gtk-find" string="Current" context="{'sprint_invisible':False}" domain="[]" help="View Sprints"/>
+                        <filter icon="terp-check" context="{'sprint_invisible':False}" domain="[('sprint_id.state','in',('draft','open'))]" help="Current Sprints"/>
+                        <filter icon="gtk-find" context="{'sprint_invisible':False}" domain="[]" help="View Sprints"/>
                     </field>
                 </field>
             </field>
             <field name="inherit_id" ref="project.view_task_search_form"/>
             <field name="arch" type="xml">
                 <xpath expr="/search/group[@string='Group By...']/filter[@string='Project']" position="after">
-                       <separator orientation="vertical"/>
+                    <separator orientation="vertical"/>
                     <filter string="Sprint" icon="terp-gtk-jump-to-ltr" domain="[]" context="{'group_by':'sprint_id'}"/>
                     <filter string="Backlog" icon="terp-gtk-jump-to-rtl" domain="[]" context="{'group_by':'product_backlog_id'}"/>
                 </xpath>
         </record>
 
         <act_window
-               context="{'search_default_sprint_id': [active_id]}"
+            context="{'search_default_sprint_id': [active_id], 'default_sprint_id': active_id}"
             id="act_scrum_sprint_2_product_backlog"
             name="Backlogs"
             res_model="project.scrum.product.backlog"
             view_type="form"/>
 
         <act_window
-               context="{'search_default_sprint_id': active_id, 'search_default_user_id': uid, 'search_default_current':1}"
+            context="{'search_default_sprint_id': active_id, 'search_default_user_id': uid, 'search_default_current':1, 'default_sprint_id': active_id}"
             id="act_scrum_sprint_2_project_task"
             name="Tasks"
             res_model="project.task"