[MERGE] Forward-port of latest 7.0 bugfixes, up to rev. 10005 revid:dle@openerp.com...
[odoo/odoo.git] / addons / project_issue / project_issue_view.xml
index 494f054..e420241 100644 (file)
             <field name="arch" type="xml">
                 <form string="Issue" version="7.0">
                 <header>
-                    <button name="case_close" string="Done" type="object"
-                            states="open" groups="base.group_user"/>
-                    <button name="case_close" string="Done" type="object"
-                            states="draft,pending" groups="base.group_user"/>
-                    <button name="case_cancel" string="Cancel Issue" type="object"
-                            states="draft,open,pending" groups="base.group_user"/>
-                    <field name="stage_id" widget="statusbar" clickable="True"/>
+                    <field name="stage_id" widget="statusbar" clickable="True"
+                        options="{'fold_field': 'fold'}"/>
                 </header>
                 <sheet string="Issue">
                     <label for="name" class="oe_edit_only"/>
-                    <h1><field name="name"/></h1>
+                    <h1>
+                        <field name="name" class="oe_inline"/>
+                        <field name="kanban_state" invisible='1'/>
+                        <button name="set_kanban_state_done" help="In Progress" attrs="{'invisible': [('kanban_state', 'in', ['done','blocked'])]}" type="object" icon="gtk-normal" class="oe_link oe_right"/>
+                        <button name="set_kanban_state_blocked" help="Ready for Next Stage" attrs="{'invisible': [('kanban_state', 'in', ['normal','blocked'])]}" type="object" icon="gtk-yes" class="oe_link oe_right"/>
+                        <button name="set_kanban_state_normal" help="Blocked" attrs="{'invisible': [('kanban_state', 'in', ['done','normal'])]}" type="object" icon="gtk-no" class="oe_link oe_right"/>
+                    </h1>
                     <label for="categ_ids" class="oe_edit_only"/>
                     <field name="categ_ids" widget="many2many_tags"/>
                     <group>
-                        <group groups="base.group_user">
-                            <field name="user_id"/>
-                            <field name="partner_id"  on_change="onchange_partner_id(partner_id, email_from)"/>
+                        <group>
+                            <field name="user_id" 
+                                context="{'default_groups_ref': ['base.group_user', 'base.group_partner_manager', 'project.group_project_user']}"/>
+                            <field name="partner_id" on_change="onchange_partner_id(partner_id)"/>
                             <field name="email_from"/>
-                            <label for="project_id" groups="base.group_user"/>
-                            <div groups="base.group_user">
+                            <label for="project_id"/>
+                            <div>
                                 <field name="project_id" on_change="on_change_project(project_id)" class="oe_inline" context="{'default_use_issues':1}"/>
-                                <button name="case_escalate" string="⇒ Escalate" type="object" states="draft,open,pending" class="oe_link"/>
+                                <button name="case_escalate" string="⇒ Escalate" type="object" class="oe_link"
+                                        groups="base.group_user"/>
                             </div>
                         </group>
                         <group>
@@ -87,7 +90,7 @@
                         <page string="Description">
                             <field name="description" placeholder="Add an internal note..." groups="base.group_user"/>
                         </page>
-                        <page string="Extra Info" groups="project.group_project_manager">
+                        <page string="Extra Info" groups="project.group_project_manager,project.group_project_user">
                             <group string="Statistics">
                                 <field name="day_open"/>
                                 <field name="day_close"/>
                             </group>
                             <group string="Status" groups="base.group_no_one">
                                 <field name="active"/>
-                                <field name="state" string="Status"/>
                             </group>
                         </page>
                     </notebook>
             <field name="name">Project Issue Tracker Tree</field>
             <field name="model">project.issue</field>
             <field name="arch" type="xml">
-                <tree string="Issue Tracker Tree" fonts="bold:message_unread==True" colors="black:state=='open';blue:state=='pending';grey:state in ('cancel', 'done')">
+                <tree string="Issue Tracker Tree" fonts="bold:message_unread==True">
                     <field name="message_unread" invisible="1"/>
                     <field name="id"/>
                     <field name="name"/>
                     <field name="user_id"/>
                     <field name="progress" widget="progressbar" attrs="{'invisible':[('task_id','=',False)]}"/>
                     <field name="stage_id" widget="selection" readonly="1"/>
-                    <field name="state" invisible="1"/>
                     <field name="categ_ids" invisible="1"/>
                     <field name="task_id" invisible="1"/>
                 </tree>
             <field name="model">project.issue</field>
             <field name="arch" type="xml">
                 <search string="Issue Tracker Search">
-                    <field name="name" string="Issue" filter_domain="['|', '|',('partner_id','child_of',self),('email_from','ilike',self),('name','ilike',self)]"/>
+                    <field name="name" string="Issue" filter_domain="['|', '|', '|', ('partner_id','child_of',self), ('description','ilike',self),('email_from','ilike',self),('name','ilike',self)]"/>
                     <field name="id"/>
-                    <filter icon="terp-mail-message-new" string="Unread Messages" name="message_unread" domain="[('message_unread','=',True)]"/>
+                    <field name="partner_id" operator="child_of"/>
+                    <filter string="Unassigned" name="unassigned" domain="[('user_id', '=', False)]"/>
+                    <filter string="New" name="draft" domain="[('stage_id.sequence', '=', 1)]"/>
                     <separator/>
-                    <filter string="New" icon="terp-document-new" domain="[('state','=','draft')]" help="New Issues"/>
-                    <filter string="To Do" domain="[('state','=','open')]" help="To Do Issues" icon="terp-check"/>
+                    <filter string="Unread Messages" name="message_unread" domain="[('message_unread','=',True)]"/>
                     <separator/>
-                    <filter string="Unassigned Issues" domain="[('user_id','=',False)]"  help="Unassigned Issues" icon="terp-personal-"/>
                     <field name="user_id"/>
                     <field name="project_id"/>
                     <field name="categ_ids"/>
-                    <field name="partner_id" operator="child_of"/>
+                    <field name="stage_id" domain="[]"/>
                     <group expand="0" string="Group By..." >
-                        <filter string="Responsible" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/>
-                        <filter string="Contact" icon="terp-partner" domain="[]" context="{'group_by':'partner_id'}"/>
-                        <filter string="Project"  icon="terp-folder-violet" domain="[]" context="{'group_by':'project_id'}"/>
-                        <filter string="Version" icon="terp-gtk-jump-to-rtl" domain="[]" context="{'group_by':'version_id'}"/>
-                        <filter string="Priority" icon="terp-rating-rated" domain="[]" context="{'group_by':'priority'}"/>
-                        <filter string="Stage" icon="terp-stage" domain="[]" context="{'group_by':'stage_id'}"/>
-                        <filter string="Month" icon="terp-go-month" domain="[]" context="{'group_by':'create_date'}" help="Creation Month"/>
+                        <filter string="Responsible" name="group_user_id" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/>
+                        <filter string="Contact" name="group_partner_id" icon="terp-partner" domain="[]" context="{'group_by':'partner_id'}"/>
+                        <filter string="Project" name="group_project_id" icon="terp-folder-violet" domain="[]" context="{'group_by':'project_id'}"/>
+                        <filter string="Version" name="group_version" icon="terp-gtk-jump-to-rtl" domain="[]" context="{'group_by':'version_id'}"/>
+                        <filter string="Priority" name="group_priority" icon="terp-rating-rated" domain="[]" context="{'group_by':'priority'}"/>
+                        <filter string="Stage" name="group_stage_id" icon="terp-stage" domain="[]" context="{'group_by':'stage_id'}"/>
+                        <filter string="Creation Month" name="group_create_date" icon="terp-go-month" domain="[]" context="{'group_by':'create_date'}"/>
                     </group>
                 </search>
             </field>
             <field name="name">Project Issue- Feature Tracker Tree</field>
             <field name="model">project.issue</field>
             <field name="arch" type="xml">
-                <tree string="Feature Tracker Tree" fonts="bold:message_unread==True" colors="red:state=='open';black:state in ('draft', 'cancel','done','pending')">
+                <tree string="Feature Tracker Tree" fonts="bold:message_unread==True">
                     <field name="id"/>
                     <field name="message_unread" invisible="1"/>
                     <field name="name" string="Feature description"/>
                     <field name="version_id"/>
                     <field name="user_id"/>
                     <field name="stage_id" widget="selection" readonly="1"/>
-                    <field name="state" groups="base.group_no_one"/>
                 </tree>
             </field>
         </record>
 
-        <record id="view_project_feature_filter" model="ir.ui.view">
-            <field name="name">Project Issue - Feature Tracker Search</field>
-            <field name="model">project.issue</field>
-            <field name="arch" type="xml">
-                <search string="Feature Tracker Search">
-                    <field name="name" string="Feature description"/>
-                    <field name="date"/>
-                    <field name="state" groups="base.group_no_one"/>
-                    <filter icon="terp-check" domain="[('state','in',('open','draft'))]" help="Current Features" name="current_feature"/>
-                    <filter icon="terp-camera_test" domain="[('state','=','open')]" help="Open Features"/>
-                    <field name="user_id"/>
-                    <field name="project_id" string="Project"/>
-                </search>
-            </field>
-        </record>
-
         <record id="act_project_project_2_project_issue_all" model="ir.actions.act_window">
             <field name="res_model">project.issue</field>
             <field name="view_type">form</field>
             <field name="name">Issues</field>
             <field name="view_mode">kanban,tree,form,calendar,graph</field>
-            <field name="context">{'search_default_project_id': [active_id], 'default_project_id': active_id}</field>
+            <field name="context">{
+                    'search_default_project_id': [active_id], 
+                    'default_project_id': active_id,
+                }
+            </field>
+            <field name="help" type="html">
+                <p>
+                    The OpenERP issues tacker allows you to efficiantly manage things
+                    like internal requests, software development bugs, customer
+                    complaints, project troubles, material breakdowns, etc.
+                </p>
+            </field>
         </record>
 
         <!-- Project -->
             <field name="inherit_id" ref="project.edit_project"/>
             <field name="arch" type="xml">
                 <xpath expr='//div[@name="options_active"]' position='inside'>
-                    <field name="use_issues" class="oe_inline"/>
+                    <field name="use_issues" class="oe_inline"
+                            on_change="on_change_use_tasks_or_issues(use_tasks, use_issues)"/>
                     <label for="use_issues"/>
                 </xpath>
                 <xpath expr='//div[@name="buttons"]' position='inside'>
                 <xpath expr='//page[@name="project_stages"]' position="attributes">
                     <attribute name="attrs">{'invisible': [('use_tasks', '=', False),('use_issues','=',False)]}</attribute>
                 </xpath>
-                <field name="priority" position="before">
+                <xpath expr='//field[@name="use_tasks"]' position="attributes">
+                    <attribute name="attrs">{'on_change': 'on_change_use_tasks_or_issues(use_tasks, use_issues)'}</attribute>
+                </xpath>
+                <field name="sequence" position="before">
                     <field name="project_escalation_id"/>
                 </field>
-                <field name="alias_domain" position="after">
-                    <label for="alias_model" class="oe_edit_only" string="creates"/><field name="alias_model" class="oe_edit_only oe_inline"/>
-                </field>
             </field>
        </record>
 
             <field name="arch" type="xml">
                 <field name="use_tasks" position="after">
                     <field name="use_issues"/>
-                    <field name="issue_count" invisible="1"/>
+                    <field name="issue_ids" invisible="1"/>
                 </field>
                 <xpath expr="//div[contains(@class, 'oe_kanban_project_list')]" position="inside">
                     <a t-if="record.use_issues.raw_value" style="margin-right: 10px"
                         name="%(act_project_project_2_project_issue_all)d" type="action">
-                        <span t-if="record.issue_count.raw_value gt 1"><field name="issue_count"/> Issues</span>
-                        <span t-if="record.issue_count.raw_value lt 2"><field name="issue_count"/> Issue</span>
+                        <t t-raw="record.issue_ids.raw_value.length"/>
+                        <span t-if="record.issue_ids.raw_value.length == 1">Issue</span>
+                        <span t-if="record.issue_ids.raw_value.length > 1">Issues</span>
                     </a>
                 </xpath>
             </field>
             </field>
         </record>
 
+        <record id="action_view_issues" model="ir.actions.act_window">
+            <field name="res_model">project.issue</field>
+            <field name="view_type">form</field>
+            <field name="name">Issues</field>
+            <field name="view_mode">kanban,tree,form,calendar,graph</field>
+            <field name="help" type="html">
+                <p>
+                    The OpenERP issues tacker allows you to efficiantly manage things
+                    like internal requests, software development bugs, customer
+                    complaints, project troubles, material breakdowns, etc.
+                </p>
+            </field>
+        </record>
+
+        <!-- res.partner -->
+        <record model="ir.ui.view" id="res_partner_issues_button_view">
+            <field name="name">res.partner.issues.button.view</field>
+            <field name="model">res.partner</field>
+            <field name="inherit_id" ref="base.view_partner_form" />
+            <field name="priority" eval="50"/>
+            <field name="arch" type="xml">
+                <xpath expr="//div[@name='buttons']" position="inside">
+                    <button class="oe_inline" type="action" string="Issues"
+                        attrs="{'invisible': [('customer', '=', False)]}"
+                        name="%(action_view_issues)d"
+                        context="{'search_default_partner_id': active_id, 'default_partner_id': active_id}"
+                        groups="project.group_project_user"/>
+                </xpath>
+            </field>
+        </record>
+
     </data>
 </openerp>