From 44a5268c00443cfb0664d7679d93772422a74037 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= <tde@openerp.com>
Date: Tue, 1 Jul 2014 10:32:01 +0200
Subject: [PATCH] [IMP] addons: search view cleaning / improvements due to the
 new search view display

---
 .../report/account_invoice_report_view.xml    | 71 ++++++++++++-------
 addons/crm/crm_lead_view.xml                  | 68 ++++++------------
 addons/crm/crm_phonecall_view.xml             | 44 ++++++------
 addons/crm/report/crm_lead_report_view.xml    | 45 +++++-------
 addons/crm_partner_assign/crm_lead_view.xml   | 15 ++--
 addons/hr_recruitment/hr_recruitment_view.xml | 13 +---
 .../report/hr_recruitment_report_view.xml     | 44 +++++++-----
 addons/project/project_view.xml               | 32 ++++-----
 addons/project/report/project_report.py       |  3 +
 addons/project/report/project_report_view.xml | 31 ++++----
 addons/project_issue/project_issue_view.xml   | 15 ++--
 .../report/project_issue_report_view.xml      | 37 +++++-----
 .../project_timesheet_view.xml                |  4 +-
 addons/purchase/purchase_view.xml             | 28 ++++----
 .../purchase/report/purchase_report_view.xml  | 16 -----
 addons/sale/report/sale_report_view.xml       | 47 +++++++-----
 addons/sale/sale_view.xml                     | 24 +++----
 addons/sale_stock/report/sale_report_view.xml |  3 -
 18 files changed, 255 insertions(+), 285 deletions(-)

diff --git a/addons/account/report/account_invoice_report_view.xml b/addons/account/report/account_invoice_report_view.xml
index 35cb43467f27..5ec370ff9a7e 100644
--- a/addons/account/report/account_invoice_report_view.xml
+++ b/addons/account/report/account_invoice_report_view.xml
@@ -15,44 +15,63 @@
          </field>
     </record>
 
+    <!-- Custom reports (aka filters) -->
+    <record id="filter_invoice_salespersons" model="ir.filters">
+        <field name="name">By Salespersons</field>
+        <field name="model_id">account.invoice.report</field>
+        <field name="domain">[]</field>
+        <field name="user_id" eval="False"/>
+        <field name="context">{'group_by': ['date:month', 'user_id']}</field>
+    </record>
+    <record id="filter_invoice_product" model="ir.filters">
+        <field name="name">By Product</field>
+        <field name="model_id">account.invoice.report</field>
+        <field name="domain">[]</field>
+        <field name="user_id" eval="False"/>
+        <field name="context">{'group_by': ['date:month', 'product_id'], 'set_visible':True, 'residual_invisible':True}</field>
+    </record>
+    <record id="filter_invoice_product_category" model="ir.filters">
+        <field name="name">By Product Category</field>
+        <field name="model_id">account.invoice.report</field>
+        <field name="domain">[]</field>
+        <field name="user_id" eval="False"/>
+        <field name="context">{'group_by': ['date:month', 'categ_id'], 'residual_invisible':True}</field>
+    </record>
+    <record id="filter_invoice_refund" model="ir.filters">
+        <field name="name">By Refund</field>
+        <field name="model_id">account.invoice.report</field>
+        <field name="domain">[('type', '=', 'out_refund')]</field>
+        <field name="user_id" eval="False"/>
+        <field name="context">{'group_by': ['date:month', 'user_id']}</field>
+    </record>
+    <record id="filter_invoice_country" model="ir.filters">
+        <field name="name">By Country</field>
+        <field name="model_id">account.invoice.report</field>
+        <field name="domain">[]</field>
+        <field name="user_id" eval="False"/>
+        <field name="context">{'group_by': ['date:month', 'country_id']}</field>
+    </record>
+
     <record id="view_account_invoice_report_search" model="ir.ui.view">
         <field name="name">account.invoice.report.search</field>
         <field name="model">account.invoice.report</field>
         <field name="arch" type="xml">
             <search string="Invoices Analysis">
                 <field name="date"/>
-                <filter icon="terp-go-year" string="Year" name="year" domain="['|',('date', '=', False),'&amp;',('date','&lt;=', time.strftime('%%Y-%%m-%%d')),('date','&gt;=',time.strftime('%%Y-01-01'))]" help="year"/>
+                <filter string="This Year" name="year" domain="['|', ('date', '=', False), '&amp;',('date','&lt;=', time.strftime('%%Y-12-31')),('date','&gt;=',time.strftime('%%Y-01-01'))]"/>
                 <separator/>
-                <filter string="Draft" icon="terp-document-new" domain="[('state','=','draft')]" help = "Draft Invoices"/>
-                <filter string="Pro-forma" icon="terp-gtk-media-pause" domain="['|', ('state','=','proforma'),('state','=','proforma2')]" help = "Pro-forma Invoices"/>
-                <filter string="Invoiced" name="current" icon="terp-check" domain="[('state','not in', ('draft','cancel','proforma','proforma2'))]" help = "Open and Paid Invoices"/>
+                <filter string="To Invoice" domain="[('state','=','draft')]" help = "Draft Invoices"/>
+                <filter string="Pro-forma" domain="['|', ('state','=','proforma'),('state','=','proforma2')]"/>
+                <filter string="Invoiced" name="current" domain="[('state','not in', ('draft','cancel','proforma','proforma2'))]"/>
                 <separator/>
-                <filter icon="terp-personal" string="Customer" name="customer" domain="['|', ('type','=','out_invoice'),('type','=','out_refund')]" help="Customer Invoices And Refunds"/>
-                <filter icon="terp-personal" string="Supplier" domain="['|', ('type','=','in_invoice'),('type','=','in_refund')]" help="Supplier Invoices And Refunds"/>
+                <filter string="Customer" name="customer" domain="['|', ('type','=','out_invoice'),('type','=','out_refund')]"/>
+                <filter string="Supplier" domain="['|', ('type','=','in_invoice'),('type','=','in_refund')]"/>
                 <separator/>
-                <filter icon="terp-dolar" string="Invoice" domain="['|', ('type','=','out_invoice'),('type','=','in_invoice')]" help="Customer And Supplier Invoices"/>
-                <filter icon="terp-dolar_ok!" string="Refund" domain="['|', ('type','=','out_refund'),('type','=','in_refund')]" help="Customer And Supplier Refunds"/>
+                <filter string="Invoice" domain="['|', ('type','=','out_invoice'),('type','=','in_invoice')]"/>
+                <filter string="Refund" domain="['|', ('type','=','out_refund'),('type','=','in_refund')]"/>
                 <field name="partner_id"/>
                 <field name="user_id" />
                 <field name="categ_id" filter_domain="[('categ_id', 'child_of', self)]"/>
-                <group expand="1" string="Group By">
-                    <filter string="Partner" name="partner_id" context="{'group_by':'partner_id','residual_visible':True}"/>
-                    <filter string="Commercial Partner" name="commercial_partner_id" context="{'group_by':'commercial_partner_id','residual_visible':True}"/>
-                    <filter string="Commercial Partner's Country" name="country_id" context="{'group_by':'country_id'}"/>
-                    <filter string="Salesperson" name='user' icon="terp-personal" context="{'group_by':'user_id'}"/>
-                    <filter string="Due Month" icon="terp-go-today" context="{'group_by':'date_due'}"/>
-                    <filter string="Period" icon="terp-go-month" context="{'group_by':'period_id'}"/>
-                    <filter string="Product" icon="terp-accessories-archiver" context="{'group_by':'product_id','set_visible':True,'residual_invisible':True}"/>
-                    <filter string="Category of Product" name="category_product" icon="terp-stock_symbol-selection" context="{'group_by':'categ_id','residual_invisible':True}"/>
-                    <filter string="Status" icon="terp-stock_effects-object-colorize" context="{'group_by':'state'}"/>
-                    <filter string="Type" icon="terp-stock_symbol-selection" context="{'group_by':'type'}"/>
-                    <filter string="Journal" icon="terp-folder-orange" context="{'group_by':'journal_id'}"/>
-                    <filter string="Account" icon="terp-folder-orange" context="{'group_by':'account_line_id'}"/>
-                    <filter string="Company" icon="terp-go-home" context="{'group_by':'company_id'}" groups="base.group_multi_company"/>
-                    <filter string="Invoice Date (day)" name="day" icon="terp-go-today" context="{'group_by':'date:day'}" help="Group by Invoice Date"/>
-                    <filter string="Invoice Date (month)" name="month" icon="terp-go-month" context="{'group_by':'date:month'}" help="Group by month of Invoice Date"/>
-                    <filter string="Invoice Date (year)" name="group_year" icon="terp-go-year" context="{'group_by':'date:year'}" help="Group by year of Invoice Date"/>
-                </group>
             </search>
         </field>
     </record>
diff --git a/addons/crm/crm_lead_view.xml b/addons/crm/crm_lead_view.xml
index e02f43473ac5..62c5e14deedc 100644
--- a/addons/crm/crm_lead_view.xml
+++ b/addons/crm/crm_lead_view.xml
@@ -222,13 +222,13 @@
                     <field name="create_date"/>
                     <field name="name"/>
                     <field name="contact_name"/>
-                    <field name="country_id" invisible="context.get('invisible_country', True)"/>
+                    <field name="country_id"/>
                     <field name="email_from"/>
                     <field name="phone"/>
                     <field name="stage_id"/>
                     <field name="user_id" invisible="1"/>
                     <field name="partner_id" invisible="1"/>
-                    <field name="section_id" invisible="context.get('invisible_section', True)" groups="base.group_multi_salesteams"/>
+                    <field name="section_id" groups="base.group_multi_salesteams"/>
                     <field name="probability" invisible="1"/>
                     <field name="type_id" invisible="1"/>
                     <field name="referred" invisible="1"/>
@@ -326,44 +326,31 @@
                 <search string="Search Leads">
                     <field name="name" string="Lead / Customer" filter_domain="['|','|','|',('partner_name','ilike',self),('email_from','ilike',self),('contact_name','ilike',self),('name','ilike',self)]"/>
                     <field name="categ_ids" string="Tag" filter_domain="[('categ_ids', 'ilike', self)]"/>
-                    <field name="section_id" context="{'invisible_section': False}" groups="base.group_multi_salesteams"/>
+                    <field name="section_id" groups="base.group_multi_salesteams"/>
                     <field name="user_id"/>
                     <field name="partner_id" operator="child_of"/>
                     <field name="create_date"/>
-                    <field name="country_id" context="{'invisible_country': False}"/>
+                    <field name="country_id"/>
                     <separator/>
+                    <filter string="My Leads"
+                            domain="[('user_id','=',uid)]"
+                            help="Leads that are assigned to me"/>
                     <filter string="Unassigned" name="unassigned"
                             domain="[('user_id','=', False)]"
                             help="No salesperson"/>
-                    <filter string="My Leads"
-                            domain="[('user_id','=',uid)]" context="{'invisible_section': False}"
-                            help="Leads that are assigned to me"/>
-                    <filter string="My Team(s)" groups="base.group_multi_salesteams"
-                            domain="[('section_id.member_ids', 'in', [uid])]" context="{'invisible_section': False}"
-                            help="Leads that are assigned to any sales teams I am member of"/>
-                    <filter string="Dead" name="dead"
-                            domain="[('probability', '=', '0'), ('stage_id.fold', '=', True)]"/>
-                    <filter string="Unread Messages" name="message_unread" domain="[('message_unread','=',True)]"/>
+                    <separator />
+                    <filter string="New Mail" name="message_unread" domain="[('message_unread','=',True)]"/>
                     <separator />
                     <filter string="Available for mass mailing"
                             name='not_opt_out' domain="[('opt_out', '=', False)]"
                             help="Leads that did not ask not to be included in mass mailing campaigns"/>
-                    <separator />
                     <group expand="0" string="Group By">
                         <filter string="Salesperson" domain="[]" context="{'group_by':'user_id'}"/>
-                        <filter string="Team" domain="[]" context="{'group_by':'section_id'}" groups="base.group_multi_salesteams"/>
+                        <filter string="Sales Team" domain="[]" context="{'group_by':'section_id'}" groups="base.group_multi_salesteams"/>
                         <filter string="Stage" domain="[]" context="{'group_by':'stage_id'}"/>
                         <filter string="Customer" help="Partner" domain="[]" context="{'group_by':'partner_id'}"/>
-                        <filter string="Country" domain="[]" context="{'group_by':'country_id'}"/>
-                        <filter string="Referrer" domain="[]" context="{'group_by':'referred'}"/>
-                        <filter string="Campaign" domain="[]" context="{'group_by':'type_id'}"/>
-                        <filter string="Channel" domain="[]" context="{'group_by':'channel_id'}"/>
-                        <filter string="Creation" domain="[]" context="{'group_by':'create_date'}"/>
-                        <filter string="Last Post (weekly)" name="group_message_last_post" domain="[]" context="{'group_by':'message_last_post:week'}"/>
-                    </group>
-                    <group string="Display">
-                        <filter string="Countries" context="{'invisible_country': False}" help="Countries"/>
-                        <filter string="Sales Team" context="{'invisible_section': False}" domain="[]" help="Sales Team" groups="base.group_multi_salesteams"/>
+                        <filter string="Expected Closing" domain="[]" context="{'group_by':'date_deadline:week'}"/>
+                        <filter string="Last Message" name="group_message_last_post" domain="[]" context="{'group_by':'message_last_post:week'}"/>
                     </group>
                 </search>
             </field>
@@ -523,7 +510,7 @@
                     <field name="create_date"/>
                     <field name="name" string="Opportunity"/>
                     <field name="partner_id" string="Customer"/>
-                    <field name="country_id" invisible="context.get('invisible_country', True)"/>
+                    <field name="country_id"/>
                     <field name="date_action"/>
                     <field name="title_action"/>
                     <field name="channel_id" invisible="1"/>
@@ -531,7 +518,7 @@
                     <field name="stage_id"/>
                     <field name="planned_revenue" sum="Expected Revenues"/>
                     <field name="probability" avg="Avg. of Probability"/>
-                    <field name="section_id" invisible="context.get('invisible_section', True)" groups="base.group_multi_salesteams"/>
+                    <field name="section_id" groups="base.group_multi_salesteams"/>
                     <field name="user_id"/>
                     <field name="referred" invisible="1"/>
                     <field name="priority" invisible="1"/>
@@ -551,7 +538,7 @@
                 <search string="Search Opportunities">
                     <field name="name" string="Opportunity" filter_domain="['|','|','|',('partner_id','ilike',self),('partner_name','ilike',self),('email_from','ilike',self),('name', 'ilike', self)]"/>
                     <field name="categ_ids" string="Tag" filter_domain="[('categ_ids', 'ilike', self)]"/>
-                    <field name="section_id" context="{'invisible_section': False}" groups="base.group_multi_salesteams"/>
+                    <field name="section_id" groups="base.group_multi_salesteams"/>
                     <field name="user_id"/>
                     <field name="partner_id" operator="child_of"/>
                     <field name="stage_id" domain="[]"/>
@@ -561,34 +548,21 @@
                             domain="[('probability', '=', 100), ('stage_id.fold', '=', True)]"/>
                     <filter string="Lost" name="lost"
                             domain="[('probability', '=', 0), ('stage_id.fold', '=', True)]"/>
-                    <filter string="Unassigned" name="unassigned"
-                            domain="[('user_id','=', False)]" help="No salesperson"/>
+                    <separator/>
                     <filter string="My Opportunities" name="assigned_to_me"
-                            domain="[('user_id', '=', uid)]" context="{'invisible_section': False}"
+                            domain="[('user_id', '=', uid)]"
                             help="Opportunities that are assigned to me"/>
-                    <filter string="My Team(s)"
-                            domain="[('section_id.member_ids', 'in', [uid])]" context="{'invisible_section': False}"
-                            help="Opportunities that are assigned to any sales teams I am member of" groups="base.group_multi_salesteams"/>
-                    <filter string="Unread Messages" name="message_unread" domain="[('message_unread','=',True)]"/>
+                    <filter string="Unassigned" name="unassigned"
+                            domain="[('user_id','=', False)]" help="No salesperson"/>
                     <separator/>
+                    <filter string="New Mail" name="message_unread" domain="[('message_unread','=',True)]"/>
                     <group expand="0" string="Group By" colspan="16">
                         <filter string="Salesperson" domain="[]" context="{'group_by':'user_id'}"/>
                         <filter string="Team" domain="[]" context="{'group_by':'section_id'}" groups="base.group_multi_salesteams"/>
                         <filter string="Stage" domain="[]" context="{'group_by':'stage_id'}"/>
                         <filter string="Customer" help="Partner" domain="[]" context="{'group_by':'partner_id'}"/>
-                        <filter string="Country" domain="[]" context="{'group_by':'country_id'}"/>
-                        <filter string="Priority" domain="[]" context="{'group_by':'priority'}"/>
                         <filter string="Expected Closing" domain="[]" context="{'group_by':'date_deadline'}"/>
-                        <filter string="Referrer" domain="[]" context="{'group_by':'referred'}"/>
-                        <filter string="Campaign" domain="[]" context="{'group_by':'type_id'}"/>
-                        <filter string="Channel" domain="[]" context="{'group_by':'channel_id'}"/>
-                        <filter string="Creation" domain="[]" context="{'group_by':'create_date'}"/>
-                        <filter string="Last Update Month" domain="[]" context="{'group_by':'write_date'}"/>
-                        <filter string="Last Post (weekly)" name="group_message_last_post" domain="[]" context="{'group_by':'message_last_post:week'}"/>
-                    </group>
-                    <group string="Display">
-                        <filter string="Sales Team" context="{'invisible_section': False}" domain="[]" help="Sales Team" groups="base.group_multi_salesteams"/>
-                        <filter string="Countries" context="{'invisible_country': False}" help="Countries"/>
+                        <filter string="Last Message" name="group_message_last_post" domain="[]" context="{'group_by':'message_last_post:week'}"/>
                     </group>
                 </search>
             </field>
diff --git a/addons/crm/crm_phonecall_view.xml b/addons/crm/crm_phonecall_view.xml
index 87e4d1d293a6..47825a5d30c1 100644
--- a/addons/crm/crm_phonecall_view.xml
+++ b/addons/crm/crm_phonecall_view.xml
@@ -170,29 +170,29 @@
         <field name="model">crm.phonecall</field>
         <field name="arch" type="xml">
             <search string="Search Phonecalls">
-               <field name="name" string="Phonecalls"/>
-               <field name="date"/>
-               <field name="state"/>
-               <separator/>
-               <filter icon="terp-gtk-go-back-rtl" string="To Do" name="current" domain="[('state','=','open')]"/>
-               <separator/>
-               <filter string="Unassigned Phonecalls" icon="terp-personal-" domain="[('user_id','=',False)]" help="Unassigned Phonecalls"/>
-               <filter string="Unread Messages" name="message_unread" domain="[('message_unread','=',True)]"/>
-               <separator/>
-               <filter string="Phone Calls Assigned to Me or My Team(s)" icon="terp-personal+" domain="['|', ('section_id.user_id','=',uid), ('user_id', '=', uid)]"
-                       help="Phone Calls Assigned to the current user or with a team having the current user as team leader"/>
-               <field name="partner_id" operator="child_of"/>
-               <field name="user_id"/>
-               <field name="opportunity_id"/>
-               <field name="section_id" string="Sales Team"
+                <field name="name" string="Phonecalls"/>
+                <field name="date"/>
+                <field name="state"/>
+                <filter string="My Phonecalls" domain="[('user_id', '=', uid)]"/>
+                <filter string="My Team" domain="[('section_id.user_id', '=', uid)]"/>
+                <filter string="Unassigned" domain="[('user_id','=',False)]"/>
+                <separator/>
+                <filter string="To Do" name="current" domain="[('state','=','open')]"/>
+                <separator/>
+                <filter string="New Mail" name="message_unread" domain="[('message_unread','=',True)]"/>
+                <separator/>
+                <field name="partner_id" operator="child_of"/>
+                <field name="user_id"/>
+                <field name="opportunity_id"/>
+                <field name="section_id" string="Sales Team"
                         groups="base.group_multi_salesteams"/>
-               <group expand="0" string="Group By">
-                   <filter string="Partner" icon="terp-partner" domain="[]" context="{'group_by':'partner_id'}"/>
-                   <filter string="Responsible" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/>
-                   <filter string="Creation" icon="terp-go-month" help="Creation Date" domain="[]" context="{'group_by':'create_date'}"/>
-                   <filter string="Calls Month" icon="terp-go-month" domain="[]" context="{'group_by':'date'}" help="Calls Date by Month"/>
-               </group>
-           </search>
+                <group expand="0" string="Group By">
+                    <filter string="Partner" domain="[]" context="{'group_by':'partner_id'}"/>
+                    <filter string="Responsible" domain="[]" context="{'group_by':'user_id'}"/>
+                    <filter string="Creation" help="Creation Date" domain="[]" context="{'group_by':'create_date'}"/>
+                    <filter string="Month" domain="[]" context="{'group_by':'date'}" help="Calls Date by Month"/>
+                </group>
+            </search>
         </field>
     </record>
 
diff --git a/addons/crm/report/crm_lead_report_view.xml b/addons/crm/report/crm_lead_report_view.xml
index bbe375fb2a1d..7aa75021d32a 100644
--- a/addons/crm/report/crm_lead_report_view.xml
+++ b/addons/crm/report/crm_lead_report_view.xml
@@ -2,8 +2,7 @@
 <openerp>
     <data>
 
-<!-- Leads by user and section Graph View -->
-
+        <!-- Leads by user and section Graph View -->
         <record id="view_report_crm_lead_graph" model="ir.ui.view">
             <field name="name">crm.lead.report.graph</field>
             <field name="model">crm.lead.report</field>
@@ -38,8 +37,23 @@
             </field>
         </record>
 
-<!-- Leads by user and section Search View -->
+        <!-- Custom reports (aka filters) -->
+        <record id="filter_leads_salesperson" model="ir.filters">
+            <field name="name">By Salespersons</field>
+            <field name="model_id">crm.lead.report</field>
+            <field name="domain">[]</field>
+            <field name="user_id" eval="False"/>
+            <field name="context">{'group_by': ['create_date:month', user_id']}</field>
+        </record>
+        <record id="filter_leads_country" model="ir.filters">
+            <field name="name">By Country</field>
+            <field name="model_id">crm.lead.report</field>
+            <field name="domain">[]</field>
+            <field name="user_id" eval="False"/>
+            <field name="context">{'group_by': ['create_date:month', 'country_id']}</field>
+        </record>
 
+        <!-- Leads by user and section Search View -->
         <record id="view_report_crm_lead_filter" model="ir.ui.view">
             <field name="name">crm.lead.report.select</field>
             <field name="model">crm.lead.report</field>
@@ -54,11 +68,6 @@
                             domain="[('probability', '=', 100), ('stage_id.on_change', '=', 1)]"/>
                     <filter string="Lost" name="lost"
                             domain="[('probability', '=', 0), ('stage_id.sequence', '!=', 1)]"/>
-                    <separator/>
-                    <filter string="My Sales Team(s)" icon="terp-personal+" context="{'invisible_section': False}" domain="[('section_id.user_id','=',uid)]"
-                            help="Leads/Opportunities that are assigned to one of the sale teams I manage" groups="base.group_multi_salesteams"/>
-                    <separator/>
-                    <filter icon="terp-personal" string="My Case(s)" help="Leads/Opportunities that are assigned to me" domain="[('user_id','=',uid)]"/>
                     <field name="section_id" context="{'invisible_section': False}"
                             groups="base.group_multi_salesteams"/>
                     <field name="user_id" string="Salesperson"/>
@@ -79,26 +88,6 @@
                         <field name="opening_date"/>
                         <field name="date_closed"/>
                     </group>
-                    <group expand="1" string="Group By">
-                        <filter string="Salesperson" domain="[]" context="{'group_by':'user_id'}" />
-                        <filter string="Sales Team" domain="[]" context="{'group_by':'section_id'}" groups="base.group_multi_salesteams"/>
-                        <filter string="Partner" context="{'group_by':'partner_id'}" />
-                        <filter string="Country" context="{'group_by':'country_id'}" />
-                        <filter string="Company" domain="[]" context="{'group_by':'company_id'}" groups="base.group_multi_company"/>
-                        <filter string="Type" domain="[]" context="{'group_by':'type'}"/>
-                        <filter string="Stage" domain="[]" context="{'group_by':'stage_id'}"/>
-                        <filter string="Priority" domain="[]" context="{'group_by':'priority'}" />
-                        <filter string="Campaign" domain="[]" context="{'group_by':'type_id'}" />
-                        <filter string="Channel" domain="[]" context="{'group_by':'channel_id'}" />
-                        <separator orientation="vertical" />
-                        <filter string="Creation date (day)" domain="[]" context="{'group_by':'create_date:day'}"/>
-                        <filter string="Creation date (week)" domain="[]" context="{'group_by':'create_date:week'}"/>
-                        <filter string="Creation date (month)" domain="[]" context="{'group_by':'create_date:month'}" name="month"/>
-                        <filter string="Creation date (year)" domain="[]" context="{'group_by':'create_date:year'}"/>
-                        <separator orientation="vertical" />
-                        <filter string="Exp. Closing" domain="[]" context="{'group_by':'date_deadline'}"/>
-                        <filter string="Last Stage Update" context="{'group_by':'date_last_stage_update'}" />
-                    </group>
                 </search>
             </field>
         </record>
diff --git a/addons/crm_partner_assign/crm_lead_view.xml b/addons/crm_partner_assign/crm_lead_view.xml
index d47e9ac5cbc7..aefc5aef0007 100644
--- a/addons/crm_partner_assign/crm_lead_view.xml
+++ b/addons/crm_partner_assign/crm_lead_view.xml
@@ -59,13 +59,10 @@
             <field name="model">crm.lead</field>
             <field name="inherit_id" ref="crm.view_crm_case_opportunities_filter"/>
             <field name="arch" type="xml">
-                <filter string="Team" position="after">
-                    <filter string="Assigned Partner" icon="terp-personal" domain="[]" context="{'group_by':'partner_assigned_id'}"/>
-                    <filter string="Assigned Month"  icon="terp-go-month"
-                            domain="[]" context="{'group_by':'date_assign'}"/>
-
+                <filter string="Customer" position="after">
+                    <filter string="Assigned Partner" domain="[]" context="{'group_by':'partner_assigned_id'}"/>
                 </filter>
-                <filter string="My Team(s)" position="after">
+                <filter name="unassigned" position="after">
                     <filter string="My Assigned Partners" domain="[('partner_assigned_id.user_id', '=', uid)]"/>
                 </filter>
                 <field name="partner_id" position="after">
@@ -131,10 +128,10 @@
             <field name="model">crm.lead</field>
             <field name="inherit_id" ref="crm.view_crm_case_leads_filter"/>
             <field name="arch" type="xml">
-                <filter string="Team" position="after">
-                    <filter string="Assigned Partner" icon="terp-personal" domain="[]" context="{'group_by':'partner_assigned_id'}"/>
+                <filter string="Customer" position="after">
+                    <filter string="Assigned Partner" domain="[]" context="{'group_by':'partner_assigned_id'}"/>
                 </filter>
-                <filter string="My Team(s)" position="after">
+                <filter name="unassigned" position="after">
                     <filter string="My Assigned Partners" domain="[('partner_assigned_id.user_id', '=', uid)]"/>
                 </filter>
                 <field name="partner_id" position="after">
diff --git a/addons/hr_recruitment/hr_recruitment_view.xml b/addons/hr_recruitment/hr_recruitment_view.xml
index 1e81d1555d43..2b33d4916a29 100644
--- a/addons/hr_recruitment/hr_recruitment_view.xml
+++ b/addons/hr_recruitment/hr_recruitment_view.xml
@@ -193,14 +193,13 @@
         <field name="arch" type="xml">
             <search string="Search Applicants">
                 <field name="partner_name" filter_domain="['|','|',('name','ilike',self),('partner_name','ilike',self),('email_from','ilike',self)]" string="Subject / Applicant"/>
-                <filter string="Unassigned" domain="[('user_id', '=', False)]"/>
                 <filter string="My" domain="[('user_id', '=', uid)]"/>
-                <separator/>
-                <filter string="Unread Messages" name="message_unread" domain="[('message_unread','=',True)]"/>
+                <filter string="Unassigned" domain="[('user_id', '=', False)]"/>
                 <separator/>
                 <filter string="Next Actions" context="{'invisible_next_action':False, 'invisible_next_date':False}"
                     domain="[('date_action','&lt;&gt;',False)]" help="Filter and view on next actions and date"/>
-
+                <separator/>
+                <filter string="New Mail" name="message_unread" domain="[('message_unread','=',True)]"/>
                 <field name="job_id"/>
                 <field name="department_id"/>
                 <field name="user_id"/>
@@ -210,15 +209,9 @@
                 <separator/>
                 <group expand="0" string="Group By">
                     <filter string="Responsible" domain="[]"  context="{'group_by':'user_id'}"/>
-                    <filter string="Department" domain="[]" context="{'group_by':'department_id'}"/>
                     <filter string="Job" domain="[]" context="{'group_by':'job_id'}"/>
                     <filter string="Degree" domain="[]" context="{'group_by':'type_id'}"/>
-                    <filter string="Availability" domain="[]" context="{'group_by':'availability'}"/>
-                    <filter string="Appreciation" domain="[]" context="{'group_by':'priority'}"/>
-                    <filter string="Last Stage" help="Match this group by with a specific stage filter in order to analyse the recruitment process" context="{'group_by':'last_stage_id'}"/>
                     <filter string="Stage" domain="[]" context="{'group_by':'stage_id'}"/>
-                    <filter string="Source" domain="[]" context="{'group_by':'source_id'}"/>
-                    <filter string="Creation Month" domain="[]" context="{'group_by':'create_date'}"/>
                     <filter string="Last Stage Update" context="{'group_by':'date_last_stage_update'}"/>
                 </group>
            </search>
diff --git a/addons/hr_recruitment/report/hr_recruitment_report_view.xml b/addons/hr_recruitment/report/hr_recruitment_report_view.xml
index 4d15481070fe..45276d7631ce 100644
--- a/addons/hr_recruitment/report/hr_recruitment_report_view.xml
+++ b/addons/hr_recruitment/report/hr_recruitment_report_view.xml
@@ -12,6 +12,29 @@
          </field>
     </record>
 
+    <!-- Custom reports (aka filters) -->
+    <record id="filter_recruitment_report_recruiter" model="ir.filters">
+        <field name="name">By Recruiter</field>
+        <field name="model_id">hr.recruitment.report</field>
+        <field name="domain">[]</field>
+        <field name="user_id" eval="False"/>
+        <field name="context">{'group_by': ['date_create:month', 'user_id']}</field>
+    </record>
+    <record id="filter_recruitment_report_job" model="ir.filters">
+        <field name="name">By Job</field>
+        <field name="model_id">hr.recruitment.report</field>
+        <field name="domain">[]</field>
+        <field name="user_id" eval="False"/>
+        <field name="context">{'group_by': ['date_create:month', 'job_id']}</field>
+    </record>
+    <record id="filter_recruitment_report_departmnet" model="ir.filters">
+        <field name="name">By Department</field>
+        <field name="model_id">hr.recruitment.report</field>
+        <field name="domain">[]</field>
+        <field name="user_id" eval="False"/>
+        <field name="context">{'group_by': ['date_create:month', 'department_id']}</field>
+    </record>
+
     <record id="view_hr_recruitment_report_search" model="ir.ui.view">
         <field name="name">hr.recruitment.report.search</field>
         <field name="model">hr.recruitment.report</field>
@@ -20,11 +43,13 @@
                 <field name="job_id"/>
                 <field name="department_id"/>
                 <field name="user_id"/>
-                <filter string="New" domain="[('sequence', '=', 1)]"/>
+                <filter string="This Year" name="year" domain="[('date_create','&lt;=', time.strftime('%%Y-12-31')),('date_create','&gt;=',time.strftime('%%Y-01-01'))]"/>
                 <separator/>
                 <filter string="Unassigned" domain="[('user_id', '=', False)]"/>
                 <filter string="My" domain="[('user_id', '=', uid)]"/>
                 <separator/>
+                <filter string="New" domain="[('sequence', '=', 1)]"/>
+                <separator/>
                 <group expand="0" string="Extended Filters...">
                     <field name="priority"/>
                     <field name="stage_id"/>
@@ -32,21 +57,6 @@
                     <field name="date_create"/>
                     <field name="date_closed"/>
                 </group>
-                <group expand="1" string="Group By ...">
-                   <filter string="Responsible" name='User' context="{'group_by':'user_id'}"/>
-                   <filter string="Company" context="{'group_by':'company_id'}" groups="base.group_multi_company"/>
-                   <filter string="Partner" context="{'group_by':'partner_id'}" />
-                   <filter string="Jobs" name="job" context="{'group_by':'job_id'}"/>
-                   <filter string="Department" name="department" context="{'group_by':'department_id'}"/>
-                   <filter string="Degree" name="degree" context="{'group_by':'type_id'}"/>
-                   <filter string="Last Stage" help="Match this group by with a specific stage filter in order to analyse the recruitment process" context="{'group_by':'last_stage_id'}"/>
-                   <filter string="Stage" context="{'group_by':'stage_id'}" />
-                   <filter string="Last Stage Update" context="{'group_by':'date_last_stage_update'}" />
-                   <filter string="Creation Date (day)" context="{'group_by':'date_create:day'}" help="Creation Date"/>
-                   <filter string="Creation Date (week)" context="{'group_by':'date_create:week'}" help="Creation Date"/>
-                   <filter string="Creation Date (month)" context="{'group_by':'date_create:month'}" help="Creation Date"/>
-                   <filter string="Creation Date (year)" context="{'group_by':'date_create:year'}" help="Creation Date"/>
-                </group>
             </search>
         </field>
     </record>
@@ -56,7 +66,7 @@
         <field name="res_model">hr.recruitment.report</field>
         <field name="view_type">form</field>
         <field name="view_mode">graph</field>
-        <field name="context">{'group_by_no_leaf':1,'group_by':[]}</field>
+        <field name="context">{'search_default_year': 1, 'group_by_no_leaf':1,'group_by':[]}</field>
         <field name="search_view_id" ref="view_hr_recruitment_report_search"/>
     </record>
     <menuitem action="action_hr_recruitment_report_all" id="menu_hr_recruitment_report_all" parent="hr.menu_hr_reporting" sequence="0"/>
diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml
index 6a13ca00ffff..38decfdd429f 100644
--- a/addons/project/project_view.xml
+++ b/addons/project/project_view.xml
@@ -18,29 +18,24 @@
                <search string="Tasks">
                     <field name="name" string="Tasks"/>
                     <field name="categ_ids"/>
-                    <filter string="Unassigned" name="unassigned" domain="[('user_id', '=', False)]"/>
-                    <filter string="New" name="draft" domain="[('stage_id.sequence', '&lt;=', 1)]"/>
-                    <separator/>
-                    <filter string="My Tasks" domain="[('user_id','=',uid)]"/>
-                    <separator/>
-                    <filter string="Unread Messages" name="message_unread" domain="[('message_unread','=',True)]"/>
-                    <separator/>
-                    <filter string="Deadlines" context="{'deadline_visible': False}" domain="[('date_deadline','&lt;&gt;',False)]"
-                        help="Show only tasks having a deadline"/>
                     <field name="partner_id"/>
                     <field name="project_id"/>
                     <field name="reviewer_id"/>
                     <field name="user_id"/>
                     <field name="stage_id" domain="[]"/>
+                    <filter string="My Tasks" domain="[('user_id','=',uid)]"/>
+                    <filter string="Unassigned" name="unassigned" domain="[('user_id', '=', False)]"/>
+                    <separator/>
+                    <filter string="New" name="draft" domain="[('stage_id.sequence', '&lt;=', 1)]"/>
+                    <separator/>
+                    <filter string="New Mail" name="message_unread" domain="[('message_unread','=',True)]"/>
                     <group expand="0" string="Group By">
                         <filter string="Reviewers" name="group_reviewer_id" domain="[]"  context="{'group_by':'reviewer_id'}"/>
                         <filter string="Users" name="group_user_id" icon="terp-personal" domain="[]"  context="{'group_by':'user_id'}"/>
                         <filter string="Project" name="group_project_id" icon="terp-folder-violet" domain="[]" context="{'group_by':'project_id'}"/>
                         <filter string="Stage" name="group_stage_id" icon="terp-stage" domain="[]" context="{'group_by':'stage_id'}"/>
                         <filter string="Last Stage Update" icon="terp-go-month" domain="[]" context="{'group_by':'date_last_stage_update'}"/>
-                        <filter string="Deadline" icon="terp-gnome-cpu-frequency-applet+" domain="[]" context="{'group_by':'date_deadline'}"/>
-                        <filter string="Start Month" icon="terp-go-month" domain="[]" context="{'group_by':'date_start'}"/>
-                        <filter string="End Month" icon="terp-go-month" domain="[]" context="{'group_by':'date_end'}" groups="base.group_no_one"/>
+                        <filter string="Last Message" name="group_message_last_post" domain="[]" context="{'group_by':'message_last_post:week'}"/>
                     </group>
                 </search>
             </field>
@@ -190,15 +185,14 @@
             <field name="arch" type="xml">
                 <search string="Search Project">
                     <field name="name" string="Project Name"/>
-                    <filter icon="terp-mail-message-new" string="Unread Messages" name="message_unread" domain="[('message_unread','=',True)]"/>
-                    <separator/>
-                    <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"/>
+                    <filter string="Open" name="Current" domain="[('state', '=','open')]"/>
+                    <filter string="Pending" name="Pending" domain="[('state', '=','pending')]"/>
+                    <filter string="Template" name="Template" domain="[('state', '=','template')]"/>
                     <separator/>
-                    <filter icon="terp-personal+" string="Member" domain="['|',('user_id', '=', uid),('members', '=', uid)]" help="Projects in which I am a member."/>
+                    <filter string="Member" domain="['|',('user_id', '=', uid),('members', '=', uid)]"/>
+                    <filter string="Manager" domain="[('user_id','=',uid)]"/>
                     <separator/>
-                    <filter string="Project(s) Manager" domain="[('user_id','=',uid)]" help="Projects in which I am a manager" icon="terp-personal"/>
+                    <filter string="New Mail" name="message_unread" domain="[('message_unread','=',True)]"/>
                     <field name="user_id" string="Project Manager"/>
                     <field name="partner_id" string="Contact" filter_domain="[('partner_id', 'child_of', self)]"/>
                     <group expand="0" string="Group By">
diff --git a/addons/project/report/project_report.py b/addons/project/report/project_report.py
index 97e52766e5a2..4a38e57ad9a5 100644
--- a/addons/project/report/project_report.py
+++ b/addons/project/report/project_report.py
@@ -30,6 +30,7 @@ class report_project_task_user(osv.osv):
     _columns = {
         'name': fields.char('Task Summary', readonly=True),
         'user_id': fields.many2one('res.users', 'Assigned To', readonly=True),
+        'reviewer_id': fields.many2one('res.users', 'Reviewer', readonly=True),
         'date_start': fields.date('Assignation Date', readonly=True),
         'no_of_days': fields.integer('# of Days', size=128, readonly=True),
         'date_end': fields.date('Ending Date', readonly=True),
@@ -71,6 +72,7 @@ class report_project_task_user(osv.osv):
 --                    sum(cast(to_char(date_trunc('day',t.date_end) - date_trunc('day',t.date_start),'DD') as int)) as no_of_days,
                     abs((extract('epoch' from (t.write_date-t.date_start)))/(3600*24))  as no_of_days,
                     t.user_id,
+                    t.reviewer_id,
                     progress as progress,
                     t.project_id,
                     t.effective_hours as hours_effective,
@@ -103,6 +105,7 @@ class report_project_task_user(osv.osv):
                     date_deadline,
                     date_last_stage_update,
                     t.user_id,
+                    t.reviewer_id,
                     t.project_id,
                     t.priority,
                     name,
diff --git a/addons/project/report/project_report_view.xml b/addons/project/report/project_report_view.xml
index e2e68b671160..7df229a79e4d 100644
--- a/addons/project/report/project_report_view.xml
+++ b/addons/project/report/project_report_view.xml
@@ -21,6 +21,22 @@
              </field>
         </record>
 
+        <!-- Custom reports (aka filters) -->
+        <record id="filter_task_report_responsible" model="ir.filters">
+            <field name="name">By Responsible</field>
+            <field name="model_id">report.project.task.user</field>
+            <field name="domain">[]</field>
+            <field name="user_id" eval="False"/>
+            <field name="context">{'group_by': ['project_id', 'user_id']}</field>
+        </record>
+        <record id="filter_task_report_reviewer" model="ir.filters">
+            <field name="name">By Reviewer</field>
+            <field name="model_id">report.project.task.user</field>
+            <field name="domain">[]</field>
+            <field name="user_id" eval="False"/>
+            <field name="context">{'group_by': ['project_id', 'reviewer_id']}</field>
+        </record>
+
         <record id="view_task_project_user_search" model="ir.ui.view">
             <field name="name">report.project.task.user.search</field>
             <field name="model">report.project.task.user</field>
@@ -34,25 +50,14 @@
                     <field name="user_id"/>
                     <field name="partner_id" filter_domain="[('partner_id', 'child_of', self)]"/>
                     <field name="stage_id"/>
+                    <filter string="My Task" domain="[('user_id','=',uid)]" />
                     <filter string="Unassigned" name="unassigned" domain="[('user_id','=',False)]"/>
-                    <filter string="New" name="new" domain="[('stage_id.sequence', '=', 1)]"/>
                     <separator/>
-                    <filter string="My Task" domain="[('user_id','=',uid)]" />
+                    <filter string="New" name="new" domain="[('stage_id.sequence', '&lt;=', 1)]"/>
                     <group expand="0" string="Extended Filters...">
                         <field name="priority"/>
                         <field name="company_id" groups="base.group_multi_company"/>
                     </group>
-                    <group expand="1" string="Group By">
-                        <filter string="Project" name="project" context="{'group_by':'project_id'}"/>
-                        <filter string="Task" context="{'group_by':'name'}" />
-                        <filter string="Contact" context="{'group_by':'partner_id'}" />
-                        <filter string="Assigned to" name="User" context="{'group_by':'user_id'}" />
-                        <filter string="Company" context="{'group_by':'company_id'}" groups="base.group_multi_company"/>
-                        <filter string="Assignation date (day)" context="{'group_by':'date_start:day'}" help="Creation Date"/>
-                        <filter string="Assignation date (month)" context="{'group_by':'date_start:month'}" help="Creation Date"/>
-                        <filter string="Assignation date (year)" context="{'group_by':'date_start:year'}" help="Creation Date"/>
-                        <filter string="Last Stage Update" context="{'group_by':'date_last_stage_update'}" help="Last Stage Update"/>
-                    </group>
                 </search>
             </field>
         </record>
diff --git a/addons/project_issue/project_issue_view.xml b/addons/project_issue/project_issue_view.xml
index 86fbd4ac9120..14ff935d8262 100644
--- a/addons/project_issue/project_issue_view.xml
+++ b/addons/project_issue/project_issue_view.xml
@@ -142,24 +142,23 @@
                     <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"/>
                     <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="Unread Messages" name="message_unread" domain="[('message_unread','=',True)]"/>
-                    <separator/>
                     <field name="user_id"/>
                     <field name="project_id"/>
                     <field name="categ_ids"/>
                     <field name="stage_id" domain="[]"/>
+                    <filter string="My Issues" domain="[('user_id','=',uid)]"/>
+                    <filter string="Unassigned" name="unassigned" domain="[('user_id', '=', False)]"/>
+                    <separator/>
+                    <filter string="New" name="draft" domain="[('stage_id.sequence', '=', 1)]"/>
+                    <separator/>
+                    <filter string="New Mail" name="message_unread" domain="[('message_unread','=',True)]"/>
                     <group expand="0" string="Group By" >
                         <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'}"/>
-                        <filter string="Last Post (weekly)" name="group_message_last_post" domain="[]" context="{'group_by':'message_last_post:week'}"/>
+                        <filter string="Last Message" name="group_message_last_post" domain="[]" context="{'group_by':'message_last_post:week'}"/>
                     </group>
                 </search>
             </field>
diff --git a/addons/project_issue/report/project_issue_report_view.xml b/addons/project_issue/report/project_issue_report_view.xml
index 0a9c0448c850..5585915f2652 100644
--- a/addons/project_issue/report/project_issue_report_view.xml
+++ b/addons/project_issue/report/project_issue_report_view.xml
@@ -13,6 +13,22 @@
             </field>
         </record>
 
+        <!-- Custom reports (aka filters) -->
+        <record id="filter_issue_report_responsible" model="ir.filters">
+            <field name="name">By Responsible</field>
+            <field name="model_id">project.issue.report</field>
+            <field name="domain">[]</field>
+            <field name="user_id" eval="False"/>
+            <field name="context">{'group_by': ['project_id', 'user_id']}</field>
+        </record>
+        <record id="filter_issue_report_reviewer" model="ir.filters">
+            <field name="name">By Reviewer</field>
+            <field name="model_id">project.issue.report</field>
+            <field name="domain">[]</field>
+            <field name="user_id" eval="False"/>
+            <field name="context">{'group_by': ['project_id', 'reviewer_id']}</field>
+        </record>
+
         <record id="view_project_issue_report_filter" model="ir.ui.view">
             <field name="name">project.issue.report.select</field>
             <field name="model">project.issue.report</field>
@@ -24,25 +40,10 @@
                     <field name="partner_id" filter_domain="[('partner_id', 'child_of', self)]"/>
                     <field name="version_id"/>
                     <field name="stage_id"/>
+                    <filter string="My Task" domain="[('user_id','=',uid)]" />
                     <filter string="Unassigned" name="unassigned" domain="[('user_id','=',False)]"/>
-                    <filter string="New" name="new" domain="[('stage_id.sequence', '=', 1)]"/>
-                    <filter string="Done" name="done" domain="[('stage_id.fold', '=', True)]"
-                            help="Tasks beloging to a folded stage"/>
-                    <group  expand="1" string="Group By">
-                        <filter string="Assigned to" name="Responsible" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}" />
-                        <filter string="Contact" icon="terp-partner" context="{'group_by':'partner_id'}" />
-                        <filter string="Sale Team" icon="terp-personal+" domain="[]" context="{'group_by':'section_id'}" groups="base.group_multi_salesteams"/>
-                        <filter string="Project"  name="project" icon="terp-folder-violet" context="{'group_by':'project_id'}" />
-                        <filter string="Task"  icon="terp-stock_align_left_24" domain="[]" context="{'group_by':'task_id'}"/>
-                        <filter string="Version"  icon="terp-stock_symbol-selection" 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="Company" icon="terp-go-home" domain="[]" context="{'group_by':'company_id'}" groups="base.group_multi_company"/>
-                        <filter string="Day" icon="terp-go-today" domain="[]" context="{'group_by':'day'}" help="Creation Date"/>
-                        <filter string="Month" icon="terp-go-month" domain="[]" context="{'group_by':'month'}" help="Creation Date"/>
-                        <filter string="Year" icon="terp-go-year" domain="[]" context="{'group_by':'name'}" help="Creation Date"/>
-                        <filter string="Last Stage Update" context="{'group_by':'date_last_stage_update'}"/>
-                   </group>
+                    <separator/>
+                    <filter string="New" name="new" domain="[('stage_id.sequence', '&lt;=', 1)]"/>
                </search>
             </field>
         </record>
diff --git a/addons/project_timesheet/project_timesheet_view.xml b/addons/project_timesheet/project_timesheet_view.xml
index 086986e74622..368d7728d121 100644
--- a/addons/project_timesheet/project_timesheet_view.xml
+++ b/addons/project_timesheet/project_timesheet_view.xml
@@ -41,8 +41,8 @@
             <field name="model">project.project</field>
             <field name="inherit_id" ref="project.view_project_project_filter"/>
             <field name="arch" type="xml">
-                <xpath expr='//filter[@string="Project(s) Manager"]' position='after'>
-                    <filter icon="terp-camera_test" string="Billable" domain="[('to_invoice','!=', False)]" help="Billable Project"/>
+                <xpath expr='//filter[@string="Template"]' position='after'>
+                    <filter string="Billable" domain="[('to_invoice','!=', False)]"/>
                 </xpath>
             </field>
         </record>
diff --git a/addons/purchase/purchase_view.xml b/addons/purchase/purchase_view.xml
index 5062ecc3503a..2f27bfae1f2c 100644
--- a/addons/purchase/purchase_view.xml
+++ b/addons/purchase/purchase_view.xml
@@ -305,18 +305,16 @@
             <field name="arch" type="xml">
                 <search string="Search Purchase Order">
                     <field name="name" string="Reference"/>
-                    <filter icon="terp-document-new" name="draft" string="Quotations" domain="[('state','=','draft')]" help="Purchase order which are in draft state"/>
-                    <filter icon="terp-check" name="approved" string="Approved" domain="[('state','in',('approved','done'))]" help="Approved purchase order"/>
-                    <filter icon="terp-emblem-important" name="exception" string="Exception" domain="[('state','in',('except_invoice','except_picking'))]" help="Purchase order which are in the exception state"/>
-                    <separator/>
-                    <filter icon="terp-gtk-go-back-rtl" name="not_invoiced" string="Not Invoiced" domain="[('invoice_ids','=', False)]" help="Purchase orders that include lines not invoiced."/>
                     <field name="partner_id" operator="child_of"/>
                     <field name="product_id"/>
                     <field name="create_uid"/>
+                    <filter name="draft" string="Quotations" domain="[('state','=','draft')]"/>
+                    <filter name="approved" string="Approved" domain="[('state','in',('approved','done'))]"/>
+                    <filter name="exception" string="Exception" domain="[('state','in',('except_invoice','except_picking'))]"/>
+                    <separator/>
+                    <filter name="not_invoiced" string="Not Invoiced" domain="[('invoice_ids','=', False)]" help="Purchase orders that include lines not invoiced."/>
                     <group expand="0" string="Group By">
                         <filter string="Supplier" icon="terp-partner" domain="[]" context="{'group_by':'partner_id'}"/>
-                        <filter string="Source" icon="terp-gtk-jump-to-rtl" domain="[]" context="{'group_by':'origin'}"/>
-                        <filter string="Status" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
                         <filter string="Order Date" icon="terp-go-month" domain="[]" context="{'group_by':'date_order'}"/>
                         <filter string="Expected Date" icon="terp-go-month" domain="[]" context="{'group_by':'minimum_planned_date'}"/>
                     </group>
@@ -330,20 +328,18 @@
             <field name="arch" type="xml">
                 <search string="Search Purchase Order">
                     <field name="name" string="Reference"/>
-                    <filter icon="terp-mail-message-new" string="Unread Messages" name="message_unread" domain="[('message_unread','=',True)]"/>
-                    <separator/>
-                    <filter icon="terp-document-new" name="draft" string="Quotations" domain="[('state','in',('draft','sent'))]" help="Purchase orders that haven't yet been confirmed"/>
-                    <filter icon="terp-check" name="approved" string="Purchase Orders" domain="[('state','not in',('draft','cancel'))]" help="Approved purchase orders"/>
-                    <filter icon="terp-emblem-important" name="exception" string="Exception" domain="[('state','in',('except_invoice','except_picking'))]" help="Purchase orders which are in exception state"/>
-                    <separator/>
-                    <filter icon="terp-gtk-go-back-rtl" name="not_invoiced" string="Not Invoiced" domain="[('invoice_ids','=', False)]" help="Purchase orders that include lines not invoiced."/>
                     <field name="partner_id" operator="child_of"/>
                     <field name="product_id"/>
                     <field name="create_uid"/>
+                    <filter name="draft" string="Quotations" domain="[('state','in',('draft','sent'))]"/>
+                    <filter name="approved" string="Purchase Orders" domain="[('state','not in',('draft','cancel'))]"/>
+                    <filter name="exception" string="Exception" domain="[('state','in',('except_invoice','except_picking'))]"/>
+                    <separator/>
+                    <filter name="not_invoiced" string="Not Invoiced" domain="[('invoice_ids','=', False)]"/>
+                    <separator/>
+                    <filter string="New Mail" name="message_unread" domain="[('message_unread','=',True)]"/>
                     <group expand="0" string="Group By">
                         <filter string="Supplier" icon="terp-partner" domain="[]" context="{'group_by':'partner_id'}"/>
-                        <filter string="Source" icon="terp-gtk-jump-to-rtl" domain="[]" context="{'group_by':'origin'}"/>
-                        <filter string="Status" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
                         <filter string="Order Month" icon="terp-go-month" domain="[]" context="{'group_by':'date_order'}"/>
                         <filter string="Expected Month" icon="terp-go-month" domain="[]" context="{'group_by':'minimum_planned_date'}"/>
                     </group>
diff --git a/addons/purchase/report/purchase_report_view.xml b/addons/purchase/report/purchase_report_view.xml
index 37778328bcbf..34ba24f7bf63 100644
--- a/addons/purchase/report/purchase_report_view.xml
+++ b/addons/purchase/report/purchase_report_view.xml
@@ -36,22 +36,6 @@
                     <field name="date_approve"/>
                     <field name="expected_date"/>
                 </group>
-                <newline/>
-                <group expand="1" string="Group By">
-                    <filter string="Supplier" name="group_partner_id" icon="terp-personal" context="{'group_by':'partner_id'}"/>
-                    <filter string="Responsible" name="Responsible" icon="terp-personal" context="{'group_by':'user_id'}"/>
-                    <filter string="Validated by" icon="terp-personal" context="{'group_by':'validator'}"/>
-                    <filter string="Product" name="group_product_id" icon="terp-accessories-archiver" context="{'group_by':'product_id'}"/>
-                    <filter string="Category" name="group_category_id" icon="terp-stock_symbol-selection" context="{'group_by':'category_id'}"/>
-                    <filter string="Warehouse" icon="terp-go-home" context="{'group_by':'picking_type_id'}"/>
-                    <filter string="Reference UOM" name="group_product_uom" icon="terp-mrp" context="{'group_by':'product_uom'}"/>
-                    <filter string="Destination" icon="terp-gtk-jump-to-ltr" context="{'group_by':'location_id'}"/>
-                    <filter string="Status" icon="terp-stock_effects-object-colorize" context="{'group_by':'state'}"/>
-                    <filter string="Company" icon="terp-go-home" context="{'group_by':'company_id'}" groups="base.group_multi_company"/>
-                    <filter string="Order Date (day)" icon="terp-go-today" context="{'group_by':'date:day'}" help="Order of Day"/>
-                    <filter string="Order Date (month)" icon="terp-go-month" context="{'group_by':'date:month'}" help="Order of Day"/>
-                    <filter string="Order Date (year)" icon="terp-go-year" context="{'group_by':'date:year'}" help="Order of Day"/>
-                </group>
             </search>
         </field>
     </record>
diff --git a/addons/sale/report/sale_report_view.xml b/addons/sale/report/sale_report_view.xml
index 65695350dd15..46e5be6fec2f 100644
--- a/addons/sale/report/sale_report_view.xml
+++ b/addons/sale/report/sale_report_view.xml
@@ -14,6 +14,29 @@
          </field>
     </record>
 
+    <!-- Custom reports (aka filters) -->
+    <record id="filter_sale_report_salespersons" model="ir.filters">
+        <field name="name">By Salespersons</field>
+        <field name="model_id">sale.report</field>
+        <field name="domain">[]</field>
+        <field name="user_id" eval="False"/>
+        <field name="context">{'group_by': ['date:month', 'user_id']}</field>
+    </record>
+    <record id="filter_sale_report_salesteam" model="ir.filters">
+        <field name="name">By Salesteam</field>
+        <field name="model_id">sale.report</field>
+        <field name="domain">[]</field>
+        <field name="user_id" eval="False"/>
+        <field name="context">{'group_by': ['date:month', 'section_id']}</field>
+    </record>
+    <record id="filter_isale_report_product" model="ir.filters">
+        <field name="name">By Product</field>
+        <field name="model_id">sale.report</field>
+        <field name="domain">[]</field>
+        <field name="user_id" eval="False"/>
+        <field name="context">{'group_by': ['date:month', 'product_id']}</field>
+    </record>
+
     <record id="view_order_product_search" model="ir.ui.view">
         <field name="name">sale.report.search</field>
         <field name="model">sale.report</field>
@@ -21,10 +44,12 @@
             <search string="Sales Analysis">
                 <field name="date"/>
                 <field name="date_confirm"/>
-                <filter icon="terp-document-new" name="Quotations" domain="[('state','in',('draft','sent'))]"/>
-                <filter icon="terp-check" name="Sales" string="Sales" domain="[('state','not in',('draft','sent','cancel'))]"/>
+                <filter string="This Year" name="year" domain="[('date','&lt;=', time.strftime('%%Y-12-31')),('date','&gt;=',time.strftime('%%Y-01-01'))]"/>
+                <separator/>
+                <filter name="Quotations" domain="[('state','in',('draft','sent'))]"/>
+                <filter name="Sales" string="Sales" domain="[('state','not in',('draft','sent','cancel'))]"/>
                 <separator/>
-                <filter icon="terp-personal" string="My Sales" help="My Sales" domain="[('user_id','=',uid)]"/>
+                <filter string="My Sales" help="My Sales" domain="[('user_id','=',uid)]"/>
                 <field name="partner_id"/>
                 <field name="product_id"/>
                 <field name="user_id"/>
@@ -32,20 +57,6 @@
                     <field name="categ_id"/>
                     <field name="company_id" groups="base.group_multi_company"/>
                 </group>
-                <group expand="1" string="Group By">
-                    <filter string="Salesperson" icon="terp-personal" name="User" context="{'group_by':'user_id'}"/>
-                    <filter string="Sales Team" context="{'group_by':'section_id'}" groups="base.group_multi_salesteams"/>
-                    <filter string="Partner" icon="terp-partner"  name="Customer" context="{'group_by':'partner_id'}"/>
-                    <filter string="Product" icon="terp-accessories-archiver" context="{'group_by':'product_id','set_visible':True}"/>
-                    <filter string="Reference Unit of Measure" icon="terp-mrp" context="{'group_by':'product_uom'}"/>
-                    <filter string="Category of Product" icon="terp-stock_symbol-selection" name="Category" context="{'group_by':'categ_id'}"/>
-                    <filter string="Analytic Account" icon="terp-folder-green" context="{'group_by':'analytic_account_id'}" groups="analytic.group_analytic_accounting"/>
-                    <filter string="Status" icon="terp-stock_effects-object-colorize" context="{'group_by':'state'}"/>
-                    <filter string="Company" icon="terp-go-home" groups="base.group_multi_company" context="{'group_by':'company_id'}"/>
-                    <filter string="Order Date (day)" icon="terp-go-today" context="{'group_by':'date:day'}" help="Ordered date of the sales order"/>
-                    <filter string="Order Date (month)" icon="terp-go-today" context="{'group_by':'date:month'}" help="Ordered date of the sales order"/>
-                    <filter string="Order Date (year)" icon="terp-go-today" context="{'group_by':'date:year'}" help="Ordered date of the sales order"/>
-                </group>
             </search>
         </field>
     </record>
@@ -57,7 +68,7 @@
         <field name="view_mode">graph</field>
         <field name="search_view_id" ref="view_order_product_search"/>
         <field name="view_id" ref="view_order_product_graph"/>
-        <field name="context">{'search_default_Sales':1, 'group_by_no_leaf':1,'group_by':[]}</field>
+        <field name="context">{'search_default_Sales':1, 'search_default_year': 1, 'group_by_no_leaf':1,'group_by':[]}</field>
         <field name="help">This report performs analysis on your quotations and sales orders. Analysis check your sales revenues and sort it by different group criteria (salesman, partner, product, etc.) Use this report to perform analysis on sales not having invoiced yet. If you want to analyse your turnover, you should use the Invoice Analysis report in the Accounting application.</field>
     </record>
 
diff --git a/addons/sale/sale_view.xml b/addons/sale/sale_view.xml
index f61c518918ee..13e5d9520067 100644
--- a/addons/sale/sale_view.xml
+++ b/addons/sale/sale_view.xml
@@ -246,24 +246,22 @@
             <field name="arch" type="xml">
                 <search string="Search Sales Order">
                     <field name="name" string="Sales Order" filter_domain="['|',('name','ilike',self),('client_order_ref','ilike',self)]"/>
-                    <filter icon="terp-mail-message-new" string="Unread Messages" name="message_unread" domain="[('message_unread','=',True)]"/>
-                    <separator/>
-                    <filter icon="terp-document-new" string="Quotations" name="draft" domain="[('state','in',('draft','sent'))]" help="Sales Order that haven't yet been confirmed"/>
-                    <filter icon="terp-check" string="Sales" name="sales" domain="[('state','in',('manual','progress'))]"/>
-                    <filter icon="terp-dolar_ok!" string="To Invoice" domain="[('state','=','manual')]" help="Sales Order ready to be invoiced"/>
-                    <filter icon="terp-dolar_ok!" string="Done" domain="[('state','=','done')]" help="Sales Order done"/>
-                    <separator/>
-                    <filter string="My" domain="[('user_id','=',uid)]" help="My Sales Orders" icon="terp-personal" name="my_sale_orders_filter"/>
                     <field name="partner_id" operator="child_of"/>
                     <field name="user_id"/>
                     <field name="section_id" string="Sales Team" groups="base.group_multi_salesteams"/>
                     <field name="project_id"/>
+                    <filter string="My" domain="[('user_id','=',uid)]" name="my_sale_orders_filter"/>
+                    <separator/>
+                    <filter string="Quotations" name="draft" domain="[('state','in',('draft','sent'))]" help="Sales Order that haven't yet been confirmed"/>
+                    <filter string="Sales" name="sales" domain="[('state','in',('manual','progress'))]"/>
+                    <filter string="To Invoice" domain="[('state','=','manual')]" help="Sales Order ready to be invoiced"/>
+                    <filter string="Done" domain="[('state','=','done')]" help="Sales Order done"/>
+                    <separator/>
+                    <filter string="New Mail" name="message_unread" domain="[('message_unread','=',True)]"/>
                     <group expand="0" string="Group By">
-                        <filter string="Customer" icon="terp-personal" domain="[]" context="{'group_by':'partner_id'}"/>
-                        <filter string="Salesperson" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/>
-                        <filter string="Status" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
-                        <filter string="Order Month" icon="terp-go-month" domain="[]" context="{'group_by':'date_order'}"/>
-                        <filter string="My Sales Team(s)" icon="terp-personal+" domain="[('section_id.user_id','=',uid)]" help="My Sales Team(s)"  groups="base.group_multi_salesteams"/>
+                        <filter string="Salesperson" domain="[]" context="{'group_by':'user_id'}"/>
+                        <filter string="Customer" domain="[]" context="{'group_by':'partner_id'}"/>
+                        <filter string="Order Month" domain="[]" context="{'group_by':'date_order'}"/>
                     </group>
                </search>
             </field>
diff --git a/addons/sale_stock/report/sale_report_view.xml b/addons/sale_stock/report/sale_report_view.xml
index 5e5ab042e9a7..ca433dff087a 100644
--- a/addons/sale_stock/report/sale_report_view.xml
+++ b/addons/sale_stock/report/sale_report_view.xml
@@ -10,9 +10,6 @@
                     <separator/>
                     <filter icon="terp-accessories-archiver" string="Picked" domain="[('shipped','=',True)]"/>
                 </filter>
-                <xpath expr="//group/filter[@string='Status']" position="after">
-                    <filter string="Warehouse" context="{'group_by':'warehouse_id'}"/>
-                </xpath>
             </field>
         </record>
      </data>
-- 
GitLab