re
[odoo/odoo.git] / addons / project / project_view.xml
index 25d1158..53a5673 100644 (file)
             view_mode="kanban,tree,form,calendar,graph"
             view_type="form"/>
 
+        <!-- Project Read/Unread actions -->
+        <record id="actions_server_project_unread" model="ir.actions.server">
+            <field name="name">Mark unread</field>
+            <field name="condition">True</field>
+            <field name="type">ir.actions.server</field>
+            <field name="model_id" ref="model_project_project"/>
+            <field name="state">code</field>
+            <field name="code">self.message_check_and_set_unread(cr, uid, context.get('active_ids'), context=context)</field>
+        </record>
+        <record id="action_project_unread" model="ir.values">
+            <field name="name">action_project_unread</field>
+            <field name="action_id" ref="actions_server_project_unread"/>
+            <field name="value" eval="'ir.actions.server,' + str(ref('actions_server_project_unread'))" />
+            <field name="key">action</field>
+            <field name="model_id" ref="model_project_project" />
+            <field name="model">project.project</field>
+            <field name="key2">client_action_multi</field>
+        </record>
+
+        <record id="actions_server_project_read" model="ir.actions.server">
+            <field name="name">Mark read</field>
+            <field name="condition">True</field>
+            <field name="type">ir.actions.server</field>
+            <field name="model_id" ref="model_project_project"/>
+            <field name="state">code</field>
+            <field name="code">self.message_check_and_set_read(cr, uid, context.get('active_ids'), context=context)</field>
+        </record>
+        <record id="action_project_read" model="ir.values">
+            <field name="name">action_project_read</field>
+            <field name="action_id" ref="actions_server_project_read"/>
+            <field name="value" eval="'ir.actions.server,' + str(ref('actions_server_project_read'))" />
+            <field name="key">action</field>
+            <field name="model_id" ref="model_project_project" />
+            <field name="model">project.project</field>
+            <field name="key2">client_action_multi</field>
+        </record>
+
         <!-- Project -->
         <record id="edit_project" model="ir.ui.view">
             <field name="name">project.project.form</field>
                 <form string="Project" version="7.0">
                 <header>
                     <button name="set_done" string="Done" type="object" states="open,pending"/>
-                    <button name="set_open" string="Re-open project" type="object" states="pending,cancelled,close"/>
+                    <button name="set_open" string="Re-open project" type="object" states="pending" class="oe_highlight"/>
+                    <button name="set_open" string="Re-open project" type="object" states="cancelled,close"/>
                     <button name="set_pending" string="Pending" type="object" states="open"/>
                     <button name="set_template" string="Set as Template" type="object" states="open"/>
-                    <button string="New Project Based on Template" name="duplicate_template"  type="object" states="template" context="{'parent_id':parent_id}"/>
-                    <button name="reset_project" string="Reset as Project" type="object" states="template"/>
+                    <button string="New Project Based on Template" name="duplicate_template"  type="object" states="template" context="{'parent_id':parent_id}" class="oe_highlight"/>
+                    <button name="reset_project" string="Reset as Project" type="object" states="template" class="oe_highlight"/>
                     <button name="set_cancel" string="Cancel" type="object" states="open,pending"/>
                     <field name="state" widget="statusbar" statusbar_visible="open,close" statusbar_colors='{"pending":"blue"}' readonly="1"/>
                 </header>
-                <sheet string="Project" layout="auto">
-                    <group col="4" colspan="4">
-                        <group col="2" colspan="2" class="oe_form_group_label_border">
-                            <field name="name" string="Project Name" select="1"/>
-                            <field name="partner_id" on_change="onchange_partner_id(partner_id)" select="1"/>
-                            <field name="user_id" string="Project Manager" select="1" attrs="{'readonly':[('state','in',['close', 'cancelled'])]}"/>
+                <sheet string="Project">
+                    <field name="analytic_account_id" invisible="1" required="0"/>
+                    <label for="name" class="oe_edit_only" string="Project Name"/>
+                    <h1>
+                        <field name="name" string="Project Name"/>
+                    </h1>
+                    <label for="parent_id" class="oe_edit_only" string="Parent Project"/>
+                    <h2>
+                        <field name="parent_id" domain="[('id','!=',analytic_account_id)]" context="{'current_model': 'project.project'}"/>
+                    </h2>
+                    <group>
+                        <group>
+                            <field name="partner_id" on_change="onchange_partner_id(partner_id)"/>
+                            <field name="user_id" string="Project Manager" attrs="{'readonly':[('state','in',['close', 'cancelled'])]}"/>
                             <field name="analytic_account_id" invisible="1" required="0"/>
                             <field name="parent_id" invisible="1" string="Parent" domain="[('id','!=',analytic_account_id)]" context="{'current_model': 'project.project'}"/>
                             <field name="privacy_visibility"/>
-                            <!--<field name="date_start" string="Start Date" attrs="{'readonly':[('state','in',['close', 'cancelled'])]}"/>-->
-                            <!--<field name="date" string="End Date" attrs="{'readonly':[('state','in',['close', 'cancelled'])]}"/>-->
-                            <!--<field name="progress_rate" widget="progressbar"/>-->
                         </group>
-                        <group col="2" colspan="2" class="oe_form_group_label_border">
-                            <table border="0">
+                        <group>
+                            <table>
                                 <tr name="use_tasks_row">
-                                    <th style="border-right:1px solid #DDD;" width="140px">Tasks Management</th>
-                                    <td><field name="use_tasks" nolabel="1"/></td>
-                                    <td style="text-align:right;" width="110px"><button icon="terp-stock_align_left_24" class="oe_btn_width" name="%(act_project_project_2_project_task_all)d" string="Tasks" type="action" attrs="{'invisible':[('use_tasks','=', 0)]}"/></td>
+                                    <td><group><field name="use_tasks"/></group></td>
+                                    <td><button icon="terp-gtk-go-back-rtl" name="%(act_project_project_2_project_task_all)d" string="Tasks" type="action" attrs="{'invisible':[('use_tasks','=', 0)]}"/></td>
                                 </tr>
                                 <tr name="use_attachment_row">
-                                    <th/>
                                     <td/>
-                                    <td style="text-align:right;" width="110px"><button icon="gtk-dnd-multiple" class="oe_btn_width" name="%(base.action_attachment)d" string="Documents" type="action" /></td>
+                                    <td><button icon="terp-gtk-go-back-rtl" class="oe_btn_width" name="%(base.action_attachment)d" string="Documents" type="action" /></td>
                                 </tr>
                             </table>
                         </group>
                     </group>
-                    <notebook colspan="4">
-                        <page string="Members">
-                            <field colspan="4" name="members" nolabel="1" widget="many2many_kanban">
+                    <notebook>
+                        <page string="Team" name="team">
+                            <field colspan="4" name="members" widget="many2many_kanban">
                                 <kanban quick_create="true" create="false">
                                     <field name="name"/>
                                     <templates>
                                 </kanban>
                             </field>
                         </page>
-                        <page string="Administration">
-                            <group col="2" colspan="2">
-                                <separator colspan="4" string="Performance"/>
-                                <field name="planned_hours" widget="float_time"/>
-                                <field name="effective_hours" widget="float_time" />
-                                <field name="resource_calendar_id"/>
-                            </group>
-                            <newline/>
-                            <group col="2" colspan="2" name="misc">
-                                <separator colspan="4" string="Miscellaneous"/>
-                                <field name="company_id" select="1" groups="base.group_multi_company" widget="selection" required="1"/>
-                                <field name="warn_manager"/>
-                                <field name="priority"/>
-                                <field name="active" attrs="{'invisible':[('state','in',['open', 'pending', 'template'])]}"/>
-                            </group>
-                        </page>
-                        <page name="team" string="Team" attrs="{'invisible':[('use_tasks','=', 0)]}">
-                            <field colspan="4" name="members" nolabel="1" help="Project's members are users who can have an access to the tasks related to this project.">
-                                <tree string="Members">
-                                    <field name="name"/>
-                                    <field name="user_email"/>
-                                </tree>
-                            </field>
-                        </page>
-                        <page string="Billing" groups="account.group_account_invoice">
-                            <!--<field colspan="4" name="partner_id" on_change="onchange_partner_id(partner_id)" select="1" string="Customer"/>-->
-                            <field name="warn_customer"/>
-                            <field name="currency_id" select="1" groups="base.group_multi_company" required="1"/>
-                            <newline/>
-                            <group colspan="4" col="4">
-                                <separator colspan="2" string="Mail Header"/>
-                                <separator colspan="2" string="Mail Footer"/>
-                                <field name="warn_header" nolabel="1" colspan="2"/>
-                                <field name="warn_footer" nolabel="1" colspan="2"/>
-                            </group>
-                            <group col="3">
-                                <b>
-                                    <label string="Variables you can use for headers and footer." colspan="3"/>
-                                </b>
-                                <label string="Task: %%(name)s"/>
-                                <label string="User: %%(user_id)s"/>
-                                <label string="ID: %%(task_id)s"/>
-                                <label string="Status: %%(state)s"/>
-                                <label string="Date Start: %%(date_start)s"/>
-                                <label string="Date Stop: %%(date)s"/>
+                        <page string="Other Info">
+                            <group>
+                                <group string="Administration">
+                                    <field name="planned_hours" widget="float_time"/>
+                                    <field name="effective_hours" widget="float_time"/>
+                                    <field name="resource_calendar_id"/>
+                                </group>
+                                <group string="Miscellaneous" name="misc">
+                                    <field name="company_id" groups="base.group_multi_company" widget="selection" required="1"/>
+                                    <field name="priority"/>
+                                    <field name="active" attrs="{'invisible':[('state','in',['open', 'pending', 'template'])]}"/>
+                                    <field name="currency_id" groups="base.group_multi_company" required="1"/>
+                                </group>
                             </group>
                         </page>
                         <page string="Tasks Stages">
                     </notebook>
                 </sheet>
                 <footer>
-                    <field name="message_ids" widget="ThreadView"/>
+                    <field name="message_ids" widget="mail_thread"/>
                 </footer>
                 </form>
             </field>
             <field name="arch" type="xml">
                 <search string="Search Project">
                    <group>
+                       <field name="complete_name" string="Project Name"/> 
+                       <separator orientation="vertical"/>
+                       <filter icon="terp-mail-message-new"
+                           string="Inbox" help="Unread messages"
+                           name="needaction_pending"
+                           domain="[('needaction_pending','=',True)]"/>
+                       <separator orientation="vertical"/>
                        <filter icon="terp-check" string="Open" name="Current" domain="[('state', '=','open')]" help="Open Projects"/>
                        <filter icon="gtk-media-pause" string="Pending" name="Pending" domain="[('state', '=','pending')]" help="Pending Projects"/>
-                       <filter icon="gtk-media-pause" string="Template"
-                            name="Template" domain="[('state', '=','template')]" help="Templates of Projects"/>
-                       <separator orientation="vertical"/>
+                       <filter icon="gtk-media-pause" string="Template" name="Template" domain="[('state', '=','template')]" help="Templates of Projects"/>
                        <filter icon="terp-personal+" string="Member" domain="['|',('user_id', '=', uid),('members', '=', uid)]" help="Projects in which I am a member."/>
+                       <filter string="Project(s) Manager" domain="[('user_id','=',uid)]" help="Projects in which I am a manager" icon="terp-personal"/>
                        <separator orientation="vertical"/>
-                       <field name="name" string="Project Name"/>
-                       <field name="user_id" string="Project Manager">
-                            <filter domain="[('user_id','=',uid)]" help="Projects in which I am a manager" icon="terp-personal"/>
-                       </field>
+                       <field name="user_id" string="Project Manager"/>
                        <field name="partner_id" string="Partner"/>
                    </group>
                    <newline />
-                    <group expand="0" string="Group By...">
-                        <filter string="Manager" name="Manager"  icon="terp-personal" domain = "[]" context="{'group_by':'user_id'}"/>
-                        <filter string="Partner" name="Partner" icon="terp-partner" domain = "[]" context="{'group_by':'partner_id'}"/>
-                         <separator orientation="vertical"/>
-                        <filter string="Parent" name="Parent"  help="Parent" icon="terp-folder-blue" domain = "[]" context="{'group_by':'parent_id'}"/>
-                    </group>
+                   <group expand="0" string="Group By...">
+                       <filter string="Manager" name="Manager" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/>
+                       <filter string="Partner" name="Partner" icon="terp-partner" domain="[]" context="{'group_by':'partner_id'}"/>
+                       <separator orientation="vertical"/>
+                       <filter string="Parent" name="Parent" help="Parent" icon="terp-folder-blue" domain = "[]" context="{'group_by':'parent_id'}"/>
+                   </group>
                </search>
             </field>
         </record>
                     <templates>
                         <t t-name="kanban-box">
                             <div t-attf-class="oe_kanban_color_#{kanban_getcolor(record.color.raw_value)} oe_kanban_card oe_kanban_project oe_kanban_auto_height oe_kanban_global_click">
-                                <a class="oe_kanban_menuaction oe_i">B</a>
-                                <ul class="oe_kanban_menu">
-                                    <li><a type="edit">Edit...</a></li>
-                                    <li><a type="delete">Delete</a></li>
-                                    <li><ul class="oe_kanban_colorpicker" data-field="color"/></li>
-                                </ul>
+                                <div class="oe_dropdown_toggle oe_dropdown_kanban">
+                                    <span class="oe_e">í</span>
+                                    <ul class="oe_dropdown_menu">
+                                        <li><a type="edit">Edit...</a></li>
+                                        <li><a type="delete">Delete</a></li>
+                                        <li><ul class="oe_kanban_colorpicker" data-field="color"/></li>
+                                    </ul>
+                                </div>
                                 <div class="oe_kanban_content">
                                     <h3 class="oe_kanban_ellipsis"><field name="name"/></h3>
 
         </record>
 
         <!-- Task -->
+
+        <!-- Task Read/Unread actions -->
+        <record id="actions_server_project_task_unread" model="ir.actions.server">
+            <field name="name">Mark unread</field>
+            <field name="condition">True</field>
+            <field name="type">ir.actions.server</field>
+            <field name="model_id" ref="model_project_task"/>
+            <field name="state">code</field>
+            <field name="code">self.message_check_and_set_unread(cr, uid, context.get('active_ids'), context=context)</field>
+        </record>
+        <record id="action_project_task_unread" model="ir.values">
+            <field name="name">action_project_task_unread</field>
+            <field name="action_id" ref="actions_server_project_task_unread"/>
+            <field name="value" eval="'ir.actions.server,' + str(ref('actions_server_project_task_unread'))" />
+            <field name="key">action</field>
+            <field name="model_id" ref="model_project_task" />
+            <field name="model">project.task</field>
+            <field name="key2">client_action_multi</field>
+        </record>
+
+        <record id="actions_server_project_task_read" model="ir.actions.server">
+            <field name="name">Mark read</field>
+            <field name="condition">True</field>
+            <field name="type">ir.actions.server</field>
+            <field name="model_id" ref="model_project_task"/>
+            <field name="state">code</field>
+            <field name="code">self.message_check_and_set_read(cr, uid, context.get('active_ids'), context=context)</field>
+        </record>
+        <record id="action_project_task_read" model="ir.values">
+            <field name="name">action_project_task_read</field>
+            <field name="action_id" ref="actions_server_project_task_read"/>
+            <field name="value" eval="'ir.actions.server,' + str(ref('actions_server_project_task_read'))" />
+            <field name="key">action</field>
+            <field name="model_id" ref="model_project_task" />
+            <field name="model">project.task</field>
+            <field name="key2">client_action_multi</field>
+        </record>
+
         <record id="view_task_form2" model="ir.ui.view">
             <field name="name">project.task.form</field>
             <field name="model">project.task</field>
             <field name="arch" type="xml">
                 <form string="Project" version="7.0">
                     <header>
-                        <button name="do_open" string="Start Task" type="object"
-                                states="draft,pending"/>
-                        <button name="%(action_project_task_reevaluate)d" string="Reactivate" type="action"
-                                states="done,cancelled" context="{'button_reactivate':True}"/>
-                        <button name="do_pending" string="Pending" type="object"
-                                states="open"/>
-                        <button name="action_close" string="Done" type="object"
-                                states="draft,open,pending"/>
-                        <button name="do_draft" string="Draft" type="object"
-                                states="cancel,done"/>
-                        <button name="%(action_project_task_delegate)d" string="Delegate" type="action"
-                                states="pending,open,draft"/>
-                        <button name="do_cancel" string="Cancel" type="object"
-                                states="draft,open,pending" />
-                        <button name="stage_previous" string="Previous Stage" type="object"
-                                states="open,pending" icon="gtk-go-back" attrs="{'invisible': [('stage_id','=', False)]}"/>
-                        <button name="stage_next" string="Next Stage" type="object"
-                                states="open,pending" icon="gtk-go-forward" attrs="{'invisible': [('stage_id','=', False)]}"/>
+                        <span groups="base.group_user">
+                            <!--
+                            <button name="do_open" string="Start Task" type="object"
+                                    states="draft,pending" class="oe_highlight"/>
+                            <button name="do_draft" string="Draft" type="object"
+                                    states="cancel,done"/>
+                            -->
+                            <button name="%(action_project_task_reevaluate)d" string="Reactivate" type="action"
+                                    states="done" context="{'button_reactivate':True}" class="oe_highlight"/>
+                             <button name="%(action_project_task_reevaluate)d" string="Reactivate" type="action"
+                                    states="cancelled" context="{'button_reactivate':True}"/>
+                            <button name="action_close" string="Done" type="object"
+                                    states="draft,open,pending"/>
+                            <button name="do_pending" string="Pending" type="object"
+                                    states="open"/>
+                            <button name="%(action_project_task_delegate)d" string="Delegate" type="action"
+                                    states="pending,open,draft" groups="project.group_delegate_task"/>
+                            <button name="do_cancel" string="Cancel" type="object"
+                                    states="draft,open,pending"/>
+                            <button name="stage_previous" string="Previous Stage" type="object"
+                                    states="open,pending" icon="gtk-go-back" attrs="{'invisible': [('stage_id','=', False)]}"/>
+                            <button name="stage_next" string="Next Stage" type="object"
+                                    states="open,pending" icon="gtk-go-forward" attrs="{'invisible': [('stage_id','=', False)]}"/>
+                        </span>
                         <field name="stage_id" widget="statusbar"/>
                     </header>
                     <sheet string="Task">
-                    <label for="name" class="oe_form_readonly_hidden"/>
+                    <label for="name" class="oe_edit_only"/>
                     <h1>
                         <field name="name"/>
                     </h1>
-                    <label for="project_id" class="oe_form_readonly_hidden"/>
+                    <label for="project_id" class="oe_edit_only"/>
                     <h2>
                         <field name="project_id"  on_change="onchange_project(project_id)"/>
                     </h2>
                     <group>
                         <group>
                             <field name="user_id" attrs="{'readonly':[('state','in',['done', 'cancelled'])]}"/>
-                            <field name="partner_id" />
-                            <field name="date_deadline" attrs="{'readonly':[('state','in',['done', 'cancelled'])]}"/>
                             <field name="company_id" groups="base.group_multi_company" widget="selection"/>
                         </group>
                         <group>
+                            <field name="date_deadline" attrs="{'readonly':[('state','in',['done', 'cancelled'])]}"/>
                             <field name="planned_hours" widget="float_time" attrs="{'readonly':[('state','!=','draft')]}"
                                 groups="project.group_time_work_estimation_tasks"
                                 on_change="onchange_planned(planned_hours, effective_hours)"/>
-
-                            <field name="effective_hours"
-                                widget="float_time" invisible="1" groups="project.group_tasks_work_on_tasks"/>
-                            <label for="remaining_hours" string="+ Remaining"/>
-                            <div>
-                                <field name="remaining_hours" widget="float_time" attrs="{'readonly':[('state','!=','draft')]}" groups="project.group_time_work_estimation_tasks"/>
-                                <button name="%(action_project_task_reevaluate)d" string="Reevaluate" type="action" target="new" states="open,pending" icon="gtk-edit"/>
-                            </div>
-                            <field name="total_hours" widget="float_time" groups="project.group_tasks_work_on_tasks"
-                                string="= Total"/>
-
-                            <field name="progress" widget="progressbar" groups="project.group_tasks_work_on_tasks"/>
+                            <field name="progress" widget="progressbar"
+                                groups="project.group_time_work_estimation_tasks"
+                                invisible="1"/>
                         </group>
                     </group>
                     <notebook>
-                        <page string="Information">
-                            <field name="description" attrs="{'readonly':[('state','=','done')]}"/>
-                            <field name="work_ids" attrs="{'readonly':[('state','in',['done','draft'])]}" groups="project.group_tasks_work_on_tasks">
+                        <page string="Description">
+                            <field name="description" attrs="{'readonly':[('state','=','done')]}" placeholder="Add a Description..."/>
+                            <field name="work_ids" groups="project.group_tasks_work_on_tasks">
                                 <tree string="Task Work" editable="top">
-                                    <field name="name" />
+                                    <field name="date"/>
+                                    <field name="name"/>
+                                    <field name="user_id"/>
                                     <field name="hours" widget="float_time" sum="Spent Hours"/>
-                                    <field name="user_id" />
-                                    <field name="date" />
                                 </tree>
                             </field>
+                            <group class="oe_subtotal_footer oe_right" name="project_hours" groups="project.group_time_work_estimation_tasks">
+                                <field name="effective_hours" widget="float_time"/>
+                                <label for="remaining_hours" string="Remaining" groups="project.group_time_work_estimation_tasks"/>
+                                <div>
+                                    <button name="%(action_project_task_reevaluate)d" string="Reevaluate" type="action" target="new" states="open,pending" icon="gtk-edit"/>
+                                    <field name="remaining_hours" widget="float_time" attrs="{'readonly':[('state','!=','draft')]}" groups="project.group_time_work_estimation_tasks"/>
+                                </div>
+                                <field name="total_hours" widget="float_time" class="oe_subtotal_footer_separator"/>
+                            </group>
+                            <div class="oe_clear"/>
                         </page>
-                        <page string="Delegations History">
+                        <page string="Delegations History" groups="project.group_delegate_task">
                             <separator string="Parent Tasks"/>
                             <field name="parent_ids"/>
                             <separator string="Delegated tasks"/>
                         </page>
                         <page string="Extra Info" attrs="{'readonly':[('state','=','done')]}">
                             <group col="4">
-                                <field name="priority"/>
+                                <field name="priority" groups="base.group_user"/>
                                 <field name="sequence"/>
+                                <field name="partner_id"/>
                                 <field name="state" groups="base.group_no_one"/>
                             </group>
-                            <separator string="Notes"/>
-                            <field name="notes"/>
                         </page>
                     </notebook>
                     </sheet>
                     <footer>
-                        <field name="message_ids" widget="ThreadView"/>
+                        <field name="message_ids" widget="mail_thread"/>
                     </footer>
                 </form>
             </field>
             <field name="arch" type="xml">
                 <kanban default_group_by="stage_id" >
                     <field name="color"/>
-                    <field name="priority"/>
+                    <field name="priority" groups="base.group_user"/>
                     <field name="stage_id"/>
                     <field name="user_id"/>
                     <field name="user_email"/>
                     <field name="kanban_state"/>
                     <field name="remaining_hours" sum="Remaining Time" groups="project.group_time_work_estimation_tasks"/>
                     <field name="date_deadline"/>
+                    <field name="message_summary"/>
+                    <field name="needaction_pending"/>
                     <templates>
-                        <t t-name="task_details">
-                            <ul class="oe_kanban_tooltip" t-if="record.project_id.raw_value">
-                                <li><b>Project:</b> <field name="project_id"/></li>
-                            </ul>
-                        </t>
-                        <t t-name="kanban-box">
-                            <t t-set="pad_url">http://pad.openerp.com/<t t-raw="_.str.underscored(_.str.trim(record.name.raw_value))"/></t>
-                            <t t-if="record.kanban_state.raw_value === 'blocked'" t-set="border">oe_kanban_color_red</t>
-                            <t t-if="record.kanban_state.raw_value === 'done'" t-set="border">oe_kanban_color_green</t>
-                            <div t-attf-class="#{kanban_color(record.color.raw_value)} #{border || ''}">
-                                <div class="oe_kanban_box oe_kanban_color_border">
-                                    <table class="oe_kanban_table oe_kanban_box_header oe_kanban_color_bgdark oe_kanban_color_border oe_kanban_draghandle">
-                                    <tr>
-                                        <td align="left" valign="middle" width="16">
-                                            <a t-if="record.priority.raw_value == 1" icon="star-on" type="object" name="set_normal_priority"/>
-                                            <a t-if="record.priority.raw_value != 1" icon="star-off" type="object" name="set_high_priority" style="opacity:0.6; filter:alpha(opacity=60);"/>
-                                        </td>
-                                        <td align="left" valign="middle" class="oe_kanban_title" tooltip="task_details">
-                                            <field name="name"/>
-                                        </td>
-                                        <td valign="top" width="22">
-                                            <img t-att-src="kanban_image('res.users', 'avatar', record.user_id.raw_value[0])"  t-att-title="record.user_id.value"
-                                            width="22" height="22" class="oe_kanban_gravatar"/>
-                                        </td>
-                                    </tr>
-                                    </table>
-                                    <div class="oe_kanban_box_content oe_kanban_color_bglight oe_kanban_box_show_onclick_trigger">
-                                        <div class="oe_kanban_description">
-                                            <t t-esc="kanban_text_ellipsis(record.description.value, 160)"/>
-                                            <i t-if="record.date_deadline.raw_value">
-                                                <t t-if="record.description.raw_value">, </t>
-                                                <field name="date_deadline"/>
-                                            </i>
-                                            <span class="oe_kanban_project_times" style="white-space: nowrap; padding-left: 5px;">
+                    <t t-name="kanban-box">
+                        <div t-attf-class="oe_kanban_color_#{kanban_getcolor(record.color.raw_value)} oe_kanban_card oe_kanban_global_click">
+                            <div class="oe_dropdown_toggle oe_dropdown_kanban">
+                                <span class="oe_e">i</span>
+                                <ul class="oe_dropdown_menu">
+                                    <li><a type="edit" >Edit...</a></li>
+                                    <li><a type="delete">Delete</a></li>
+                                    <li><ul class="oe_kanban_colorpicker" data-field="color"/></li>
+                                </ul>
+                            </div>
+                            <div class="oe_kanban_content">
+                                <div>
+                                    <a t-if="record.priority.raw_value == 1" icon="star-on" type="object" name="set_normal_priority"/>
+                                    <a t-if="record.priority.raw_value != 1" icon="star-off" type="object" name="set_high_priority" style="opacity:0.6; filter:alpha(opacity=60);"/>
+                                    <b><field name="name"/></b>
+                                </div>
+                                <div>
+                                    <field name="partner_id"/>
+                                </div>
+                                <div>
+                                    <field name="project_id"/>
+                                    <t t-esc="kanban_text_ellipsis(record.description.value, 160)"/><br/>
+                                    <i><field name="date_deadline"/></i>
+                                    <span class="oe_kanban_project_times" style="white-space: nowrap; padding-left: 5px;">
                                                 <t t-set="hours" t-value="record.remaining_hours.raw_value"/>
                                                 <t t-set="times" t-value="[
                                                      [1, (hours gte 1 and hours lt 2)]
                                                     ,[5, (hours gte 5 and hours lt 10)]
                                                     ,[10, (hours gte 10)]
                                                 ]"/>
-                                                <t t-foreach="times" t-as="time"
-                                                    ><a t-if="!time[1]" t-attf-data-name="set_remaining_time_#{time[0]}"
-                                                        type="object" class="oe_kanban_button"><t t-esc="time[0]"/></a
-                                                    ><b t-if="time[1]" class="oe_kanban_button oe_kanban_button_active"><t t-esc="Math.round(hours)"/></b
-                                                ></t>
-                                                <a name="do_open" states="draft" string="Validate planned time and open task" type="object" class="oe_kanban_button oe_kanban_button_active">!</a>
-                                            </span>
-                                        </div>
-                                        <div class="oe_kanban_clear"/>
-                                    </div>
-                                    <div class="oe_kanban_buttons_set oe_kanban_color_border oe_kanban_color_bglight oe_kanban_box_show_onclick">
-                                        <div class="oe_kanban_left">
-                                            <a string="Edit" icon="gtk-edit" type="edit"/>
-                                            <a string="Change Color" icon="color-picker" type="color" name="color"/>
-                                            <a name="%(action_project_task_delegate)d" states="pending,open,draft" string="Delegate" type="action" icon="terp-personal"/>
-                                            <a name="action_close" states="draft,pending,open" string="Done" type="object" icon="terp-dialog-close"/>
-                                        </div>
-                                        <div class="oe_kanban_right">
-                                            <a name="set_kanban_state_blocked" string="Mark as Blocked" attrs="{'invisible' : [('kanban_state', 'not in', ('normal', 'done'))]}" type="object" icon="kanban-stop"/>
-                                            <a name="set_kanban_state_normal" string="Normal" attrs="{'invisible' : [('kanban_state', 'not in', ('blocked', 'done'))]}" type="object" icon="gtk-media-play"/>
-                                            <a name="set_kanban_state_done" string="Done" attrs="{'invisible' : [('kanban_state', 'not in', ('blocked', 'normal'))]}" type="object" icon="kanban-apply"/>
-                                        </div>
-                                        <div class="oe_kanban_clear"/>
+                                                <t t-foreach="times" t-as="time"><a 
+                                                    t-if="!time[1]" t-attf-data-name="set_remaining_time_#{time[0]}" type="object" class="oe_kanban_button"><t t-esc="time[0]"/></a><b
+                                                    t-if="time[1]" class="oe_kanban_button oe_kanban_button_active"><t t-esc="Math.round(hours)"/></b></t>
+                                                <a name="do_open" states="draft" string="Validate planned time" type="object" class="oe_kanban_button oe_kanban_button_active">!</a>
+                                    </span>
+                                </div>
+                                <div class="oe_kanban_footer_left" style="margin-top:5px;">
+                                    <div class="oe_right">
+                                        <a t-if="record.kanban_state.raw_value === 'normal'" type="object" string="" name="set_kanban_state_done" class="oe_kanban_status"> </a>
+                                        <a t-if="record.kanban_state.raw_value === 'done'" type="object" string="Ready" name="set_kanban_state_blocked" class="oe_kanban_status oe_kanban_status_green"> </a>
+                                        <a t-if="record.kanban_state.raw_value === 'blocked'" type="object" string="Blocked" name="set_kanban_state_normal" class="oe_kanban_status oe_kanban_status_red"> </a>
+                                        <img t-att-src="kanban_image('res.users', 'avatar', record.user_id.raw_value[0])" t-att-title="record.user_id.value" width="24" height="24" class="oe_kanban_avatar"/>
                                     </div>
                                 </div>
                             </div>
-                        </t>
+                            <div class="oe_clear"></div>
+                        </div>
+                    </t>
                     </templates>
                 </kanban>
             </field>
             <field name="arch" type="xml">
                <search string="Tasks">
                     <group>
+                        <field name="name" string="Tasks"/>
+                        <separator orientation="vertical"/>
+                        <filter icon="terp-mail-message-new"
+                            string="Inbox" help="Unread messages"
+                            name="needaction_pending"
+                            domain="[('needaction_pending','=',True)]"/>
+                        <separator orientation="vertical"/>
                         <filter name="draft" string="New" domain="[('state','=','draft')]" help="New Tasks" icon="terp-check"/>
                         <filter name="open" string="In Progress" domain="[('state','=','open')]" help="In Progress Tasks" icon="terp-camera_test"/>
                         <filter string="Pending" domain="[('state','=','pending')]" context="{'show_delegated':False}" help="Pending Tasks" icon="terp-gtk-media-pause"/>
-                        <separator orientation="vertical"/>
-                        <filter string="Deadlines" context="{'deadline_visible': False}" domain="[('date_deadline','&lt;&gt;',False)]" help="Show only tasks having a deadline" icon="terp-gnome-cpu-frequency-applet+"/>
-                        <separator orientation="vertical"/>
-                        <field name="name"/>
-                        <field name="project_id" invisible="1"/>
                         <filter name="project" string="Project" domain="[('project_id.user_id','=',uid)]" help="My Projects" icon="terp-check"/>
+                        <filter string="My Tasks" domain="[('user_id','=',uid)]"  help="My Tasks" icon="terp-personal" />
+                        <filter string="Unassigned Tasks" domain="[('user_id','=',False)]"  help="Unassigned Tasks" icon="terp-personal-" />
+                        <filter string="Deadlines" context="{'deadline_visible': False}" domain="[('date_deadline','&lt;&gt;',False)]" 
+                            help="Show only tasks having a deadline" icon="terp-gnome-cpu-frequency-applet+"/>
+                        <separator orientation="vertical"/>
                         <field name="project_id"/>
-                        <field name="user_id">
-                            <filter string="My Tasks" domain="[('user_id','=',uid)]"  help="My Tasks" icon="terp-personal" />
-                            <filter string="Unassigned Tasks" domain="[('user_id','=',False)]"  help="Unassigned Tasks" icon="terp-personal-" />
-                        </field>
+                        <field name="user_id"/>
                     </group>
                     <newline/>
                     <group expand="0" string="Group By...">
             <field eval="18" name="priority"/>
             <field name="arch" type="xml">
                 <xpath expr='//separator[@name="project_sep"]' position='replace'>
-                    <separator colspan="2" string="Project" name="project_sep"/>
+                    <separator colspan="4" string="Project Management" name="project_sep"/> <!-- removal of invisible attribute -->
                 </xpath>
-               <xpath expr='//group[@name="project"]' position='inside'>
+                <xpath expr='//separator[@name="project_sep"]' position='after'>
                     <field name="use_tasks" />
                 </xpath>
             </field>
             <field name="type">search</field>
             <field name="arch" type="xml">
                 <search string="Tasks Stages">
-                   <group>
-                       <filter icon="terp-check" string="Common" name="common" domain="[('case_default', '=', 1)]" help="Stages common to all projects"/>
+                    <group>
+                       <field name="name" string="Tasks Stages"/>
                        <separator orientation="vertical"/>
-                       <field name="name"/>
-                   </group>
+                       <filter icon="terp-check" string="Common" name="common" domain="[('case_default', '=', 1)]" help="Stages common to all projects"/>
+                    </group>
                 </search>
             </field>
         </record>
                     <group>
                         <group>
                             <field name="name"/>
-                            <field name="state"/>
+                            <field name="case_default"/>
                         </group>
                         <group>
-                            <field name="case_default"/>
+                            <field name="state" string="Related State"/>
                             <field name="sequence"/>
                             <field name="fold"/>
                         </group>
                     </group>
-                    <separator string="Description"/>
-                    <field name="description"/>
+                    <field name="description" placeholder="Add a description..."/>
                 </form>
             </field>
         </record>
             <field name="inherit_id" ref="base.view_company_form"/>
             <field name="arch" type="xml">
                 <page string="Configuration" position="inside">
-                    <separator string="Project Management" colspan="4"/>
-                    <field name="project_time_mode_id" domain="[('category_id','=','Working Time')]"/>
-                    <newline/>
+                    <group string="Project Management">
+                        <field name="project_time_mode_id" domain="[('category_id','=','Working Time')]"/>
+                    </group>
                 </page>
             </field>
         </record>