summaryrefslogtreecommitdiff
path: root/addons
diff options
context:
space:
mode:
authorged-odoo <ged@odoo.com>2014-06-12 16:27:11 +0200
committerged-odoo <ged@odoo.com>2014-06-12 16:27:11 +0200
commit74168c4e9d1527cfdd62aae5e37ca3bfd4f584c3 (patch)
tree6f11de511ecebc37aa539be6eb99ee8e7085e7ab /addons
parent64b78b34d6427a4756dd652b21ab24c291a0110e (diff)
parentc73736694e7f99cbd5052de278c88c9efd160add (diff)
Merge pull request #272 from odoo-dev/master-inline-searchview-ged
[MERGP] Inline Searchview This task split the searchview in two parts: SearchView and SearchViewDrawer. The drawer is displayed inside the main view and the searchview stays in place. It also changes the scrolling behavior of the web client: the main view area can scroll without affecting the UI (so the various menus stays in place) Because of this, other large changes have been made: the drawer has been redesigned, the Custom Filter widget has been split in two (Custom Report and SaveCurrentFilter), the main view is now scrollable, so the UI stays in place and only the view can change The text 'Group By...' has been changed into 'Group By' (most addons had to be modified) bootstrap classes are used when it makes sense (for example, badge) the left menu is also scrollable (separately from the main view) It is likely that some stupid bugs have been introduced. Please don't hurt me.
Diffstat (limited to 'addons')
-rw-r--r--addons/account/account_invoice_view.xml2
-rw-r--r--addons/account/account_view.xml28
-rw-r--r--addons/account/project/project_view.xml6
-rw-r--r--addons/account/report/account_analytic_entries_report_view.xml2
-rw-r--r--addons/account/report/account_entries_report_view.xml2
-rw-r--r--addons/account/report/account_invoice_report_view.xml2
-rw-r--r--addons/account_analytic_analysis/account_analytic_analysis_view.xml2
-rw-r--r--addons/account_analytic_default/account_analytic_default_view.xml2
-rw-r--r--addons/account_asset/report/account_asset_report_view.xml2
-rw-r--r--addons/account_bank_statement_extensions/account_bank_statement_view.xml2
-rw-r--r--addons/account_followup/account_followup_customers.xml2
-rw-r--r--addons/account_followup/report/account_followup_report.xml2
-rw-r--r--addons/account_payment/account_payment_view.xml4
-rw-r--r--addons/account_voucher/account_voucher_view.xml2
-rw-r--r--addons/account_voucher/report/account_voucher_sales_receipt_view.xml2
-rw-r--r--addons/account_voucher/voucher_payment_receipt_view.xml4
-rw-r--r--addons/account_voucher/voucher_sales_purchase_view.xml4
-rw-r--r--addons/board/static/src/js/dashboard.js18
-rw-r--r--addons/calendar/base_calendar_view.xml2
-rw-r--r--addons/calendar/calendar_view.xml2
-rw-r--r--addons/crm/crm_lead_view.xml4
-rw-r--r--addons/crm/crm_phonecall_view.xml2
-rw-r--r--addons/crm/report/crm_lead_report_view.xml2
-rw-r--r--addons/crm/report/crm_phonecall_report_view.xml2
-rw-r--r--addons/crm_claim/crm_claim_view.xml2
-rw-r--r--addons/crm_claim/report/crm_claim_report_view.xml2
-rw-r--r--addons/crm_helpdesk/crm_helpdesk_view.xml2
-rw-r--r--addons/crm_helpdesk/report/crm_helpdesk_report_view.xml2
-rw-r--r--addons/crm_partner_assign/report/crm_lead_report_view.xml2
-rw-r--r--addons/crm_partner_assign/report/crm_partner_report_view.xml2
-rw-r--r--addons/document/document_view.xml2
-rw-r--r--addons/event/event_view.xml4
-rw-r--r--addons/event/report/report_event_registration_view.xml2
-rw-r--r--addons/fleet/fleet_view.xml10
-rw-r--r--addons/gamification/views/challenge.xml2
-rw-r--r--addons/gamification/views/goal.xml4
-rw-r--r--addons/google_spreadsheet/static/src/js/search.js2
-rw-r--r--addons/hr/hr_view.xml4
-rw-r--r--addons/hr_attendance/hr_attendance_view.xml2
-rw-r--r--addons/hr_contract/hr_contract_view.xml2
-rw-r--r--addons/hr_evaluation/hr_evaluation_view.xml4
-rw-r--r--addons/hr_evaluation/report/hr_evaluation_report_view.xml2
-rw-r--r--addons/hr_expense/hr_expense_view.xml2
-rw-r--r--addons/hr_expense/report/hr_expense_report_view.xml2
-rw-r--r--addons/hr_holidays/hr_holidays_view.xml2
-rw-r--r--addons/hr_payroll/hr_payroll_view.xml6
-rw-r--r--addons/hr_recruitment/hr_recruitment_view.xml2
-rw-r--r--addons/hr_timesheet/hr_timesheet_view.xml2
-rw-r--r--addons/hr_timesheet_invoice/report/hr_timesheet_invoice_report_view.xml2
-rw-r--r--addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml2
-rw-r--r--addons/hr_timesheet_sheet/report/hr_timesheet_report_view.xml2
-rw-r--r--addons/hr_timesheet_sheet/report/timesheet_report_view.xml2
-rw-r--r--addons/im_livechat/im_livechat_view.xml2
-rw-r--r--addons/l10n_be_coda/l10n_be_coda_view.xml2
-rw-r--r--addons/l10n_in_hr_payroll/l10n_in_hr_payroll_view.xml2
-rw-r--r--addons/l10n_in_hr_payroll/report/payment_advice_report_view.xml2
-rw-r--r--addons/l10n_in_hr_payroll/report/payslip_report_view.xml2
-rw-r--r--addons/lunch/lunch_view.xml4
-rw-r--r--addons/mail/mail_alias_view.xml2
-rw-r--r--addons/mail/mail_mail_view.xml2
-rw-r--r--addons/mail/mail_message_view.xml2
-rw-r--r--addons/mail/static/src/js/mail.js6
-rw-r--r--addons/mail/static/src/xml/mail.xml11
-rw-r--r--addons/marketing_campaign/marketing_campaign_view.xml6
-rw-r--r--addons/marketing_campaign/report/campaign_analysis_view.xml2
-rw-r--r--addons/mass_mailing/views/mass_mailing.xml6
-rw-r--r--addons/membership/membership_view.xml2
-rw-r--r--addons/membership/report/report_membership_view.xml2
-rw-r--r--addons/mrp/mrp_view.xml2
-rw-r--r--addons/mrp_operations/mrp_operations_view.xml2
-rw-r--r--addons/mrp_operations/report/mrp_workorder_analysis_view.xml2
-rw-r--r--addons/mrp_repair/mrp_repair_view.xml2
-rw-r--r--addons/note/note_view.xml2
-rw-r--r--addons/payment/views/payment_acquirer.xml2
-rw-r--r--addons/point_of_sale/account_statement_view.xml4
-rw-r--r--addons/point_of_sale/point_of_sale_view.xml6
-rw-r--r--addons/point_of_sale/report/pos_order_report_view.xml2
-rw-r--r--addons/project/project_view.xml4
-rw-r--r--addons/project/report/project_report_view.xml2
-rw-r--r--addons/project_issue/project_issue_view.xml2
-rw-r--r--addons/project_issue/report/project_issue_report_view.xml2
-rw-r--r--addons/project_timesheet/report/task_report_view.xml2
-rw-r--r--addons/purchase/purchase_view.xml6
-rw-r--r--addons/purchase/report/purchase_report_view.xml2
-rw-r--r--addons/purchase_requisition/purchase_requisition_view.xml2
-rw-r--r--addons/resource/resource_view.xml4
-rw-r--r--addons/sale/report/sale_report_view.xml2
-rw-r--r--addons/sale/sale_view.xml6
-rw-r--r--addons/stock/stock_view.xml10
-rw-r--r--addons/stock_account/wizard/stock_valuation_history_view.xml2
-rw-r--r--addons/stock_landed_costs/stock_landed_costs_view.xml2
-rw-r--r--addons/stock_picking_wave/stock_picking_wave_view.xml2
-rw-r--r--addons/subscription/subscription_view.xml2
-rw-r--r--addons/survey/views/survey_views.xml8
-rw-r--r--addons/web/static/src/css/base.css257
-rw-r--r--addons/web/static/src/css/base.sass441
-rw-r--r--addons/web/static/src/js/search.js434
-rw-r--r--addons/web/static/src/js/view_form.js6
-rw-r--r--addons/web/static/src/js/views.js10
-rw-r--r--addons/web/static/src/xml/base.xml80
-rw-r--r--addons/web/static/test/search.js51
-rw-r--r--addons/web_graph/static/src/js/graph_widget.js6
-rw-r--r--addons/website_blog/views/website_blog_views.xml2
-rw-r--r--addons/website_certification/views/website_certification_views.xml2
-rw-r--r--addons/website_event_track/views/event_backend.xml2
-rw-r--r--addons/website_forum/views/forum.xml2
106 files changed, 888 insertions, 722 deletions
diff --git a/addons/account/account_invoice_view.xml b/addons/account/account_invoice_view.xml
index 273f5354308..ffd7b874510 100644
--- a/addons/account/account_invoice_view.xml
+++ b/addons/account/account_invoice_view.xml
@@ -462,7 +462,7 @@
<field name="period_id" string="Period"/>
<separator/>
<filter domain="[('user_id','=',uid)]" help="My Invoices"/>
- <group expand="0" string="Group By...">
+ <group expand="0" string="Group By">
<filter name="group_by_partner_id" string="Partner" domain="[]" context="{'group_by':'partner_id'}"/>
<filter name="commercial_partner_id" string="Commercial Partner" domain="[]" context="{'group_by':'commercial_partner_id'}"/>
<filter string="Responsible" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/>
diff --git a/addons/account/account_view.xml b/addons/account/account_view.xml
index 89396eda8c1..8afa19a63b0 100644
--- a/addons/account/account_view.xml
+++ b/addons/account/account_view.xml
@@ -61,7 +61,7 @@
<filter string="Open" domain="[('state','=','draft')]" icon="terp-camera_test"/>
<filter string="Closed" domain="[('state','=','done')]" icon="terp-dialog-close"/>
<field name="state"/>
- <group expand="0" string="Group By...">
+ <group expand="0" string="Group By">
<filter string="Status" context="{'group_by': 'state'}" icon="terp-stock_effects-object-colorize"/>
</group>
</search>
@@ -232,7 +232,7 @@
<filter icon="terp-sale" string="Receivable Accounts" domain="[('type','=','receivable')]"/>
<filter icon="terp-purchase" string="Payable Accounts" domain="[('type','=','payable')]"/>
<field name="user_type"/>
- <group expand="0" string="Group By...">
+ <group expand="0" string="Group By">
<filter string="Parent Account" icon="terp-folder-orange" domain="" context="{'group_by':'parent_id'}"/>
<filter string="Account Type" icon="terp-stock_symbol-selection" domain="" context="{'group_by':'user_type'}"/>
<filter string="Internal Type" icon="terp-stock_symbol-selection" domain="" context="{'group_by':'type'}"/>
@@ -381,7 +381,7 @@
<filter domain="['|', ('type', '=', 'cash'), ('type', '=', 'bank')]" string="Liquidity" icon="terp-dolar"/>
<filter domain="['|', ('type', '=', 'general'), ('type', '=', 'situation')]" string="Others" icon="terp-stock"/>
<field name="user_id"/>
- <group expand="0" string="Group By...">
+ <group expand="0" string="Group By">
<filter string="User" context="{'group_by':'user_id'}" icon="terp-personal"/>
<filter string="Type" context="{'group_by':'type'}" icon="terp-stock_symbol-selection"/>
<filter string="Company" context="{'group_by':'company_id'}" icon="terp-go-home" groups="base.group_multi_company"/>
@@ -507,7 +507,7 @@
<filter string="Open" name="state_open" domain="[('state','=','open')]" icon="terp-check"/>
<filter string="Confirmed" name="state_confirmed" domain="[('state','=','confirm')]" icon="terp-camera_test"/>
<field name="journal_id" domain="[('type', '=', 'cash')]" />
- <group expand="0" string="Group By...">
+ <group expand="0" string="Group By">
<filter string="Journal" context="{'group_by': 'journal_id'}" icon="terp-folder-orange"/>
<filter string="Status" context="{'group_by': 'state'}" icon="terp-stock_effects-object-colorize"/>
<filter string="Period" context="{'group_by': 'period_id'}" icon="terp-go-month"/>
@@ -544,7 +544,7 @@
<filter string="Confirmed" domain="[('state','=','confirm')]" icon="terp-camera_test"/>
<field name="period_id"/>
<field name="journal_id" domain="[('type', '=', 'bank')]" />
- <group expand="0" string="Group By...">
+ <group expand="0" string="Group By">
<filter string="Journal" context="{'group_by': 'journal_id'}" icon="terp-folder-orange"/>
<filter string="Status" context="{'group_by': 'state'}" icon="terp-stock_effects-object-colorize"/>
<filter string="Period" context="{'group_by': 'period_id'}" icon="terp-go-month"/>
@@ -979,7 +979,7 @@
<field name="company_id" groups="base.group_multi_company"/>
<filter string="Sale" domain="[('type_tax_use','=','sale')]" />
<filter string="Purchase" domain="[('type_tax_use','=','purchase')]" />
- <group string="Group By...">
+ <group string="Group By">
<filter string="Company" domain="[]" context="{'group_by':'company_id'}"/>
<filter string="Tax Application" domain="[]" context="{'group_by':'type_tax_use'}"/>
</group>
@@ -1258,7 +1258,7 @@
<field name="partner_id"/>
<field name="journal_id" context="{'journal_id':self}" widget="selection"/> <!-- it's important to keep widget='selection' in this filter viewbecause without that the value passed in the context is not the ID but the textual value (name) of the selected journal -->
<field name="period_id" context="{'period_id':self}" widget="selection"/> <!-- it's important to keep the widget='selection' in this field, for the same reason as explained above -->
- <group expand="0" string="Group By...">
+ <group expand="0" string="Group By">
<filter string="Partner" icon="terp-partner" domain="[]" context="{'group_by':'partner_id'}"/>
<filter string="Journal" icon="terp-folder-orange" domain="[]" context="{'group_by':'journal_id'}"/>
<filter string="Account" icon="terp-folder-green" context="{'group_by':'account_id'}"/>
@@ -1491,7 +1491,7 @@
<field name="partner_id"/>
<field name="journal_id"/>
<field name="period_id"/>
- <group expand="0" string="Group By...">
+ <group expand="0" string="Group By">
<filter string="Partner" icon="terp-partner" domain="[]" context="{'group_by':'partner_id'}"/>
<filter string="Journal" icon="terp-folder-orange" domain="[]" context="{'group_by':'journal_id'}"/>
<filter string="States" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
@@ -1648,7 +1648,7 @@
<filter string="Purchase" icon="terp-purchase" domain="[('journal_id.type', '=', 'purchase')]"/>
<field name="journal_id"/>
<field name="company_id" groups="base.group_multi_company"/>
- <group expand="0" string="Group By...">
+ <group expand="0" string="Group By">
<filter string="Journal" icon="terp-folder-orange" domain="[]" context="{'group_by':'journal_id'}"/>
</group>
</search>
@@ -1782,7 +1782,7 @@
<filter icon="terp-document-new" string="Draft" domain="[('state','=','draft')]" help="Draft Subscription"/>
<filter icon="terp-camera_test" string="Running" domain="[('state','=','running')]" help="Running Subscription"/>
<field name="model_id"/>
- <group expand="0" string="Group By...">
+ <group expand="0" string="Group By">
<filter string="Model" icon="terp-folder-orange" domain="[]" context="{'group_by':'model_id'}"/>
<filter string="Status" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
</group>
@@ -1939,7 +1939,7 @@
<field name="parent_id"/>
<field name="user_type"/>
<field name="type"/>
- <group expand="0" string="Group By...">
+ <group expand="0" string="Group By">
<filter string="Internal Type" icon="terp-stock_symbol-selection" domain="[]" context="{'group_by':'type'}"/>
<filter string="Account Type" icon="terp-stock_symbol-selection" domain="[]" context="{'group_by':'user_type'}"/>
</group>
@@ -2018,7 +2018,7 @@
<field name="name" string="Account Template"/>
<field name="account_root_id"/>
<field name="bank_account_view_id"/>
- <group expand="0" string="Group By...">
+ <group expand="0" string="Group By">
<filter string="Root Account" icon="terp-folder-orange" domain="[]" context="{'group_by':'account_root_id'}"/>
<filter string="Bank Account" icon="terp-folder-orange" domain="[]" context="{'group_by':'bank_account_view_id'}"/>
<filter string="Receivable Account" icon="terp-sale" domain="[]" context="{'group_by':'property_account_receivable'}"/>
@@ -2161,7 +2161,7 @@
<search string="Search tax template">
<field name="name" filter_domain="['|', ('name','ilike',self), ('code','ilike',self)]" string="Tax Template"/>
<field name="parent_id"/>
- <group expand="0" string="Group By...">
+ <group expand="0" string="Group By">
<filter string="Parent Code" icon="terp-folder-orange" domain="[]" context="{'group_by':'parent_id'}"/>
</group>
</search>
@@ -2568,7 +2568,7 @@
<field name="name" string="Account Report"/>
<field name="type"/>
<field name="account_report_id"/>
- <group expand="0" string="Group By...">
+ <group expand="0" string="Group By">
<filter string="Parent Report" icon="terp-folder-orange" domain="" context="{'group_by':'parent_id'}"/>
<filter string="Report Type" icon="terp-stock_symbol-selection" domain="[]" context="{'group_by':'type'}"/>
</group>
diff --git a/addons/account/project/project_view.xml b/addons/account/project/project_view.xml
index b4d6fb58ea1..068f3721371 100644
--- a/addons/account/project/project_view.xml
+++ b/addons/account/project/project_view.xml
@@ -37,7 +37,7 @@
<field name="user_id"/>
<filter string="Open" domain="[('state','=','open')]" help="Current Accounts"/>
<filter string="Pending" domain="[('state','=','pending')]" help="Pending Accounts"/>
- <group expand="0" string="Group By...">
+ <group expand="0" string="Group By">
<filter string="Associated Partner" domain="[]" context="{'group_by':'partner_id'}"/>
<filter string="Type" domain="[]" context="{'group_by':'type'}"/>
<filter string="Template" domain="[]" context="{'group_by':'template_id'}"/>
@@ -198,7 +198,7 @@
<filter string="My Entries" domain="[('user_id','=',uid)]"/>
<field name="account_id"/>
<field name="user_id"/>
- <group string="Group By..." expand="0">
+ <group string="Group By" expand="0">
<filter string="Analytic Account" context="{'group_by':'account_id'}"/>
<filter string="Fin. Account" context="{'group_by':'general_account_id'}"/>
<filter string="Journal" context="{'group_by':'journal_id'}" name="group_journal"/>
@@ -306,7 +306,7 @@
<search string="Analytic Journals">
<field name="name" filter_domain="['|', ('name','ilike',self), ('code','ilike',self)]" string="Analytic Journal"/>
<field name="type"/>
- <group expand="0" string="Group By...">
+ <group expand="0" string="Group By">
<filter string="Type" icon="terp-stock_symbol-selection" domain="[]" context="{'group_by':'type'}"/>
</group>
</search>
diff --git a/addons/account/report/account_analytic_entries_report_view.xml b/addons/account/report/account_analytic_entries_report_view.xml
index 1d2e87be339..ee7bc934ce3 100644
--- a/addons/account/report/account_analytic_entries_report_view.xml
+++ b/addons/account/report/account_analytic_entries_report_view.xml
@@ -11,7 +11,7 @@
<field name="account_id" groups="analytic.group_analytic_accounting"/>
<field name="product_id" />
<field name="user_id"/>
- <group expand="0" string="Group By...">
+ <group expand="0" string="Group By">
<filter string="User" name="User" icon="terp-personal" context="{'group_by':'user_id'}"/>
<filter string="Partner" icon="terp-partner" context="{'group_by':'partner_id'}"/>
<filter string="Account" name="Account" icon="terp-folder-green" context="{'group_by':'account_id'}" groups="analytic.group_analytic_accounting"/>
diff --git a/addons/account/report/account_entries_report_view.xml b/addons/account/report/account_entries_report_view.xml
index 2d1af681062..dbff131388d 100644
--- a/addons/account/report/account_entries_report_view.xml
+++ b/addons/account/report/account_entries_report_view.xml
@@ -83,7 +83,7 @@
<field name="partner_id"/>
<field name="company_id" groups="base.group_multi_company"/>
</group>
- <group expand="1" string="Group By...">
+ <group expand="1" string="Group By">
<filter string="Partner" icon="terp-partner" context="{'group_by':'partner_id'}"/>
<filter string="Product" icon="terp-accessories-archiver" context="{'group_by':['product_id','product_uom_id'], 'quantity_visible':1}"/>
<filter string="Currency" name="group_currency" icon="terp-dolar" context="{'group_by':'currency_id', 'currency_id_visible':1, 'amount_currency_visible':1}"/>
diff --git a/addons/account/report/account_invoice_report_view.xml b/addons/account/report/account_invoice_report_view.xml
index eebc95ae0e2..01e3dc72d68 100644
--- a/addons/account/report/account_invoice_report_view.xml
+++ b/addons/account/report/account_invoice_report_view.xml
@@ -35,7 +35,7 @@
<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...">
+ <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'}"/>
diff --git a/addons/account_analytic_analysis/account_analytic_analysis_view.xml b/addons/account_analytic_analysis/account_analytic_analysis_view.xml
index 88b89e68d9b..e4d9a928d28 100644
--- a/addons/account_analytic_analysis/account_analytic_analysis_view.xml
+++ b/addons/account_analytic_analysis/account_analytic_analysis_view.xml
@@ -236,7 +236,7 @@
<filter string="Customer Contracts" help="Contracts assigned to a customer." name="has_partner" domain="[('partner_id', '!=', False)]"/>
<filter string="Contracts not assigned" help="Contracts that are not assigned to an account manager." domain="[('manager_id', '=', False)]"/>
<separator/>
- <group expand="0" string="Group By...">
+ <group expand="0" string="Group By">
<filter string="Status" domain="[]" context="{'group_by':'state'}"/>
<filter string="Account Manager" domain="[]" context="{'group_by':'manager_id'}"/>
<filter string="Partner" domain="[]" context="{'group_by':'partner_id'}"/>
diff --git a/addons/account_analytic_default/account_analytic_default_view.xml b/addons/account_analytic_default/account_analytic_default_view.xml
index d37df72c987..b4f8c646f90 100644
--- a/addons/account_analytic_default/account_analytic_default_view.xml
+++ b/addons/account_analytic_default/account_analytic_default_view.xml
@@ -49,7 +49,7 @@
<field name="partner_id"/>
<field name="user_id"/>
<field name="company_id" groups="base.group_multi_company"/>
- <group expand="0" string="Group By...">
+ <group expand="0" string="Group By">
<filter string="User" icon="terp-personal" context="{'group_by':'user_id'}" help="User"/>
<filter string="Partner" icon="terp-partner" context="{'group_by':'partner_id'}" help="Partner"/>
<filter string="Product" icon="terp-accessories-archiver" context="{'group_by':'product_id'}" help="Product" />
diff --git a/addons/account_asset/report/account_asset_report_view.xml b/addons/account_asset/report/account_asset_report_view.xml
index 19299eee501..ff6f0b0d52d 100644
--- a/addons/account_asset/report/account_asset_report_view.xml
+++ b/addons/account_asset/report/account_asset_report_view.xml
@@ -33,7 +33,7 @@
<field name="partner_id" filter_domain="[('partner_id','child_of',self)]"/>
<field name="company_id" groups="base.group_multi_company"/>
</group>
- <group expand="1" string="Group By...">
+ <group expand="1" string="Group By">
<filter string="Asset" name="asset" context="{'group_by':'asset_id'}"/>
<filter string="Asset Category" name="asset_category" icon="terp-stock_symbol-selection" context="{'group_by':'asset_category_id'}"/>
<filter string="Company" icon="terp-go-home" context="{'group_by':'company_id'}" groups="base.group_multi_company"/>
diff --git a/addons/account_bank_statement_extensions/account_bank_statement_view.xml b/addons/account_bank_statement_extensions/account_bank_statement_view.xml
index 51375dc5924..edb9e2fce7f 100644
--- a/addons/account_bank_statement_extensions/account_bank_statement_view.xml
+++ b/addons/account_bank_statement_extensions/account_bank_statement_view.xml
@@ -119,7 +119,7 @@
<field name="globalisation_amount" string="Glob. Amount"/>
<field name="note"/>
</group>
- <group string="Group By..." expand="1">
+ <group string="Group By" expand="1">
<filter string="Journal" context="{'group_by':'journal_id'}" icon="terp-folder-green"/>
<filter string="Statement" context="{'group_by':'statement_id'}" icon="terp-folder-orange"/>
</group>
diff --git a/addons/account_followup/account_followup_customers.xml b/addons/account_followup/account_followup_customers.xml
index 8cd71989c8b..c91ce5533d5 100644
--- a/addons/account_followup/account_followup_customers.xml
+++ b/addons/account_followup/account_followup_customers.xml
@@ -51,7 +51,7 @@
<filter string="My Follow-ups" domain="[('payment_responsible_id','=', uid)]" name="my"/>
</group>
</search>
- <group string="Group By..." position="inside">
+ <group string="Group By" position="inside">
<filter string="Follow-up Responsible" context="{'group_by':'payment_responsible_id'}"/>
<filter string="Followup Level" context="{'group_by':'latest_followup_level_id'}"/>
</group>
diff --git a/addons/account_followup/report/account_followup_report.xml b/addons/account_followup/report/account_followup_report.xml
index e435e58da7b..e3f4ec6f8e9 100644
--- a/addons/account_followup/report/account_followup_report.xml
+++ b/addons/account_followup/report/account_followup_report.xml
@@ -26,7 +26,7 @@
help = "Including journal entries marked as a litigation"/>
<field name="partner_id"/>
<field name="balance"/>
- <group expand="1" string="Group By...">
+ <group expand="1" string="Group By">
<filter string="Partner" icon="terp-partner" context="{'group_by':'partner_id'}" />
<filter string="Litigation" icon="terp-camera_test" context="{'group_by':'blocked'}" />
<filter string="Follow-up Level" icon="terp-stock_effects-object-colorize" name="followup_level" context="{'group_by':'followup_id'}" />
diff --git a/addons/account_payment/account_payment_view.xml b/addons/account_payment/account_payment_view.xml
index c363a4d5e40..40f1382130a 100644
--- a/addons/account_payment/account_payment_view.xml
+++ b/addons/account_payment/account_payment_view.xml
@@ -12,7 +12,7 @@
<field name="name" string="Payment Mode"/>
<field name="journal"/>
<field name="company_id" groups="base.group_multi_company"/>
- <group expand="0" string="Group By...">
+ <group expand="0" string="Group By">
<filter string="Journal" icon="terp-folder-orange" domain="[]" context="{'group_by':'journal'}"/>
</group>
</search>
@@ -177,7 +177,7 @@
<filter string="Done" domain="[('state','=','done')]" icon="terp-dialog-close"/>
<field name="mode"/>
<field name="state"/>
- <group expand="0" string="Group By...">
+ <group expand="0" string="Group By">
<filter string="Payment Mode" context="{'group_by': 'mode'}" icon="terp-dolar"/>
<filter string="Status" context="{'group_by': 'state'}" icon="terp-stock_effects-object-colorize"/>
</group>
diff --git a/addons/account_voucher/account_voucher_view.xml b/addons/account_voucher/account_voucher_view.xml
index 5b22f9cf74f..2b93231f741 100644
--- a/addons/account_voucher/account_voucher_view.xml
+++ b/addons/account_voucher/account_voucher_view.xml
@@ -132,7 +132,7 @@
<field name="partner_id" filter_domain="[('partner_id', 'child_of', self)]"/>
<field name="journal_id" widget="selection" context="{'journal_id': self, 'set_visible':False}" /> <!-- Keep widget=selection on this field to pass numeric `self` value, which is not the case for regular m2o widgets! -->
<field name="period_id"/>
- <group expand="0" string="Group By...">
+ <group expand="0" string="Group By">
<filter string="Partner" icon="terp-partner" domain="[]" context="{'group_by':'partner_id'}"/>
<filter string="Journal" icon="terp-folder-orange" domain="[]" context="{'group_by':'journal_id'}"/>
<filter string="Period" icon="terp-go-month" domain="[]" context="{'group_by':'period_id','visible':True}"/>
diff --git a/addons/account_voucher/report/account_voucher_sales_receipt_view.xml b/addons/account_voucher/report/account_voucher_sales_receipt_view.xml
index 38b5423a7d6..a6e153573e7 100644
--- a/addons/account_voucher/report/account_voucher_sales_receipt_view.xml
+++ b/addons/account_voucher/report/account_voucher_sales_receipt_view.xml
@@ -57,7 +57,7 @@
<field name="pay_now"/>
<field name="company_id" groups="base.group_multi_company"/>
</group>
- <group expand="1" string="Group By...">
+ <group expand="1" string="Group By">
<filter string="Partner" name="partner" icon="terp-partner" context="{'group_by':'partner_id'}"/>
<filter string="Salesperson" name='user' icon="terp-personal" context="{'group_by':'user_id'}"/>
<filter string="Status" icon="terp-stock_effects-object-colorize" context="{'group_by':'state'}"/>
diff --git a/addons/account_voucher/voucher_payment_receipt_view.xml b/addons/account_voucher/voucher_payment_receipt_view.xml
index b9b58fdfc5e..83a9852e486 100644
--- a/addons/account_voucher/voucher_payment_receipt_view.xml
+++ b/addons/account_voucher/voucher_payment_receipt_view.xml
@@ -14,7 +14,7 @@
<field name="partner_id" string="Customer" filter_domain="[('partner_id','child_of',self)]"/>
<field name="journal_id" widget="selection" context="{'journal_id': self, 'set_visible':False}" domain="[('type','in',('bank','cash'))]"/> <!-- Keep widget=selection on this field to pass numeric `self` value, which is not the case for regular m2o widgets! -->
<field name="period_id"/>
- <group expand="0" string="Group By...">
+ <group expand="0" string="Group By">
<filter string="Customer" icon="terp-personal" domain="[]" context="{'group_by':'partner_id'}"/>
<filter string="Journal" icon="terp-folder-orange" domain="[]" context="{'group_by':'journal_id'}"/>
<filter string="Period" icon="terp-go-month" domain="[]" context="{'group_by':'period_id','visible':True}"/>
@@ -37,7 +37,7 @@
<field name="partner_id" string="Supplier" filter_domain="[('partner_id','child_of',self)]"/>
<field name="journal_id" widget="selection" context="{'journal_id': self, 'set_visible':False}" domain="[('type','in',('bank','cash'))]"/> <!-- Keep widget=selection on this field to pass numeric `self` value, which is not the case for regular m2o widgets! -->
<field name="period_id"/>
- <group expand="0" string="Group By...">
+ <group expand="0" string="Group By">
<filter string="Supplier" icon="terp-personal" domain="[]" context="{'group_by':'partner_id'}"/>
<filter string="Journal" icon="terp-folder-orange" domain="[]" context="{'group_by':'journal_id'}"/>
<filter string="Period" icon="terp-go-month" domain="[]" context="{'group_by':'period_id','visible':True}"/>
diff --git a/addons/account_voucher/voucher_sales_purchase_view.xml b/addons/account_voucher/voucher_sales_purchase_view.xml
index e8766d49fbb..d0064d6336c 100644
--- a/addons/account_voucher/voucher_sales_purchase_view.xml
+++ b/addons/account_voucher/voucher_sales_purchase_view.xml
@@ -13,7 +13,7 @@
<field name="partner_id" string="Supplier" filter_domain="[('partner_id','child_of',self)]"/>
<field name="journal_id" widget="selection" context="{'journal_id': self, 'set_visible':False}" domain="[('type','in',('purchase','purchase_refund'))]"/> <!-- Keep widget=selection on this field to pass numeric `self` value, which is not the case for regular m2o widgets! -->
<field name="period_id"/>
- <group expand="0" string="Group By...">
+ <group expand="0" string="Group By">
<filter string="Supplier" icon="terp-personal" domain="[]" context="{'group_by':'partner_id'}"/>
<filter string="Journal" icon="terp-folder-orange" domain="[]" context="{'group_by':'journal_id'}"/>
<filter string="Period" icon="terp-go-month" domain="[]" context="{'group_by':'period_id','visible':True}"/>
@@ -35,7 +35,7 @@
<field name="partner_id" string="Customer" filter_domain="[('partner_id','child_of',self)]"/>
<field name="journal_id" widget="selection" context="{'journal_id': self, 'set_visible':False}" domain="[('type','in',('sale','sale_refund'))]"/> <!-- Keep widget=selection on this field to pass numeric `self` value, which is not the case for regular m2o widgets! -->
<field name="period_id"/>
- <group expand="0" string="Group By...">
+ <group expand="0" string="Group By">
<filter string="Customer" icon="terp-personal" domain="[]" context="{'group_by':'partner_id'}"/>
<filter string="Journal" icon="terp-folder-orange" domain="[]" context="{'group_by':'journal_id'}"/>
<filter string="Period" icon="terp-go-month" domain="[]" context="{'group_by':'period_id','visible':True}"/>
diff --git a/addons/board/static/src/js/dashboard.js b/addons/board/static/src/js/dashboard.js
index 8273a96bcef..7d58bda0e1b 100644
--- a/addons/board/static/src/js/dashboard.js
+++ b/addons/board/static/src/js/dashboard.js
@@ -366,15 +366,13 @@ instance.board.AddToDashboard = instance.web.search.Input.extend({
},
add_dashboard: function(){
var self = this;
- var getParent = this.getParent();
- var view_parent = this.getParent().getParent();
- if (! view_parent.action || ! this.$el.find("select").val()) {
+ if (! this.view.view_manager.action || ! this.$el.find("select").val()) {
this.do_warn("Can't find dashboard action");
return;
}
- var data = getParent.build_search_data();
- var context = new instance.web.CompoundContext(getParent.dataset.get_context() || []);
- var domain = new instance.web.CompoundDomain(getParent.dataset.get_domain() || []);
+ var data = this.view.build_search_data();
+ var context = new instance.web.CompoundContext(this.view.dataset.get_context() || []);
+ var domain = new instance.web.CompoundDomain(this.view.dataset.get_domain() || []);
_.each(data.contexts, context.add, context);
_.each(data.domains, domain.add, domain);
@@ -394,10 +392,10 @@ instance.board.AddToDashboard = instance.web.search.Input.extend({
this.rpc('/board/add_to_dashboard', {
menu_id: this.$el.find("select").val(),
- action_id: view_parent.action.id,
+ action_id: this.view.view_manager.action.id,
context_to_save: c,
domain: d,
- view_mode: view_parent.active_view,
+ view_mode: this.view.view_manager.active_view,
name: this.$el.find("input").val()
}).done(function(r) {
if (r === false) {
@@ -412,12 +410,12 @@ instance.board.AddToDashboard = instance.web.search.Input.extend({
this.$el.toggleClass('oe_opened');
if (! this.$el.hasClass('oe_opened'))
return;
- this.$("input").val(this.getParent().fields_view.name || "" );
+ this.$("input").val(this.view.fields_view.name || "" );
}
});
-instance.web.SearchView.include({
+instance.web.SearchViewDrawer.include({
add_common_inputs: function() {
this._super();
var vm = this.getParent().getParent();
diff --git a/addons/calendar/base_calendar_view.xml b/addons/calendar/base_calendar_view.xml
index 52f5a364522..7fa20a848fd 100644
--- a/addons/calendar/base_calendar_view.xml
+++ b/addons/calendar/base_calendar_view.xml
@@ -260,7 +260,7 @@
<separator/>
<filter icon="terp-check" string="Confirmed" domain="[('state','=','confirmed')]" help="Confirmed Events"/>
<field name="user_id"/>
- <group expand="0" string="Group By...">
+ <group expand="0" string="Group By">
<filter string="Responsible" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/>
<filter string="Availability" icon="terp-camera_test" domain="[]" context="{'group_by':'show_as'}"/>
<filter string="Privacy" icon="terp-locked" domain="[]" context="{'group_by':'class'}"/>
diff --git a/addons/calendar/calendar_view.xml b/addons/calendar/calendar_view.xml
index 22bf5460c8d..0c5f67ab2f9 100644
--- a/addons/calendar/calendar_view.xml
+++ b/addons/calendar/calendar_view.xml
@@ -260,7 +260,7 @@
<filter string="My Meetings" help="My Meetings" name="mymeetings" context='{"mymeetings": 1}'/>
<filter string="Unread Messages" name="message_unread" domain="[('message_unread','=',True)]"/>
<separator/>
- <group expand="0" string="Group By...">
+ <group expand="0" string="Group By">
<filter string="Responsible" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/>
<filter string="Availability" icon="terp-camera_test" domain="[]" context="{'group_by':'show_as'}"/>
<filter string="Privacy" icon="terp-locked" domain="[]" context="{'group_by':'class'}"/>
diff --git a/addons/crm/crm_lead_view.xml b/addons/crm/crm_lead_view.xml
index bf9cd57a127..e02f43473ac 100644
--- a/addons/crm/crm_lead_view.xml
+++ b/addons/crm/crm_lead_view.xml
@@ -349,7 +349,7 @@
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...">
+ <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="Stage" domain="[]" context="{'group_by':'stage_id'}"/>
@@ -571,7 +571,7 @@
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)]"/>
<separator/>
- <group expand="0" string="Group By..." colspan="16">
+ <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'}"/>
diff --git a/addons/crm/crm_phonecall_view.xml b/addons/crm/crm_phonecall_view.xml
index acac67666cc..87e4d1d293a 100644
--- a/addons/crm/crm_phonecall_view.xml
+++ b/addons/crm/crm_phonecall_view.xml
@@ -186,7 +186,7 @@
<field name="opportunity_id"/>
<field name="section_id" string="Sales Team"
groups="base.group_multi_salesteams"/>
- <group expand="0" string="Group By...">
+ <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'}"/>
diff --git a/addons/crm/report/crm_lead_report_view.xml b/addons/crm/report/crm_lead_report_view.xml
index 239579a70c2..bbe375fb2a1 100644
--- a/addons/crm/report/crm_lead_report_view.xml
+++ b/addons/crm/report/crm_lead_report_view.xml
@@ -79,7 +79,7 @@
<field name="opening_date"/>
<field name="date_closed"/>
</group>
- <group expand="1" string="Group By...">
+ <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'}" />
diff --git a/addons/crm/report/crm_phonecall_report_view.xml b/addons/crm/report/crm_phonecall_report_view.xml
index 98f4a58d7c4..41af35df6b3 100644
--- a/addons/crm/report/crm_phonecall_report_view.xml
+++ b/addons/crm/report/crm_phonecall_report_view.xml
@@ -45,7 +45,7 @@
<field name="opening_date"/>
<field name="date_closed"/>
</group>
- <group expand="1" string="Group By...">
+ <group expand="1" string="Group By">
<filter string="Salesperson" name="Salesperson" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}" />
<filter string="Sales Team" icon="terp-personal+" domain="[]" context="{'group_by':'section_id'}" groups="base.group_multi_salesteams"/>
<filter string="Partner" icon="terp-partner" context="{'group_by':'partner_id'}" />
diff --git a/addons/crm_claim/crm_claim_view.xml b/addons/crm_claim/crm_claim_view.xml
index 429d7e3a670..7f6309ee4f4 100644
--- a/addons/crm_claim/crm_claim_view.xml
+++ b/addons/crm_claim/crm_claim_view.xml
@@ -193,7 +193,7 @@
<filter string="Unassigned Claims" icon="terp-personal-" domain="[('user_id','=', False)]" help="Unassigned Claims" />
<field name="partner_id" filter_domain="[('partner_id','child_of',self)]"/>
<field name="user_id"/>
- <group expand="0" string="Group By...">
+ <group expand="0" string="Group By">
<filter string="Partner" icon="terp-partner" domain="[]" help="Partner" context="{'group_by':'partner_id'}"/>
<filter string="Responsible" icon="terp-personal" domain="[]" help="Responsible User" context="{'group_by':'user_id'}"/>
<filter string="Stage" icon="terp-stage" domain="[]" context="{'group_by':'stage_id'}"/>
diff --git a/addons/crm_claim/report/crm_claim_report_view.xml b/addons/crm_claim/report/crm_claim_report_view.xml
index 2068ed8ea27..bc9293e7f91 100644
--- a/addons/crm_claim/report/crm_claim_report_view.xml
+++ b/addons/crm_claim/report/crm_claim_report_view.xml
@@ -44,7 +44,7 @@
<field name="date_closed" />
<field name="date_deadline" />
</group>
- <group expand="1" string="Group By...">
+ <group expand="1" string="Group By">
<filter string="Salesperson" name="Salesperson" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}" />
<filter string="Sales Team" icon="terp-personal+" domain="[]" context="{'group_by':'section_id'}" groups="base.group_multi_salesteams"/>
<filter string="Partner" name="partner" icon="terp-partner" domain="[]" context="{'group_by':'partner_id'}" />
diff --git a/addons/crm_helpdesk/crm_helpdesk_view.xml b/addons/crm_helpdesk/crm_helpdesk_view.xml
index 8ca5a1acc74..9264f8707bf 100644
--- a/addons/crm_helpdesk/crm_helpdesk_view.xml
+++ b/addons/crm_helpdesk/crm_helpdesk_view.xml
@@ -143,7 +143,7 @@
<field name="partner_id" filter_domain="[('partner_id','child_of',self)]"/>
<field name="user_id"/>
<field name="section_id" string="Sales Team" groups="base.group_multi_salesteams"/>
- <group expand="0" string="Group By...">
+ <group expand="0" string="Group By">
<filter string="Partner" icon="terp-partner" domain="[]" help="Partner" context="{'group_by':'partner_id'}" />
<filter string="Responsible" icon="terp-personal" domain="[]" help="Responsible User" context="{'group_by':'user_id'}" />
<filter string="Sales Team" icon="terp-personal+" domain="[]" help="Sales Team" context="{'group_by':'section_id'}" groups="base.group_multi_salesteams"/>
diff --git a/addons/crm_helpdesk/report/crm_helpdesk_report_view.xml b/addons/crm_helpdesk/report/crm_helpdesk_report_view.xml
index 4a3ee4e92e3..adc788ad505 100644
--- a/addons/crm_helpdesk/report/crm_helpdesk_report_view.xml
+++ b/addons/crm_helpdesk/report/crm_helpdesk_report_view.xml
@@ -42,7 +42,7 @@
<field name="create_date"/>
<field name="date_closed" string="Close Date"/>
</group>
- <group expand="1" string="Group By...">
+ <group expand="1" string="Group By">
<filter string="Salesperson" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/>
<filter string="Sales Team" icon="terp-personal+" domain="[]" context="{'group_by':'section_id'}" groups="base.group_multi_salesteams"/>
<filter string="Partner" icon="terp-partner" domain="[]" context="{'group_by':'partner_id'}" />
diff --git a/addons/crm_partner_assign/report/crm_lead_report_view.xml b/addons/crm_partner_assign/report/crm_lead_report_view.xml
index 43997ac5609..0cbfac50f87 100644
--- a/addons/crm_partner_assign/report/crm_lead_report_view.xml
+++ b/addons/crm_partner_assign/report/crm_lead_report_view.xml
@@ -22,7 +22,7 @@
<field name="opening_date"/>
<field name="date_closed"/>
</group>
- <group expand="1" string="Group By...">
+ <group expand="1" string="Group By">
<filter string="Salesperson" name="user" icon="terp-personal"
domain="[]" context="{'group_by':'user_id'}" />
<filter string="Partner" icon="terp-partner" context="{'group_by':'partner_assigned_id'}" />
diff --git a/addons/crm_partner_assign/report/crm_partner_report_view.xml b/addons/crm_partner_assign/report/crm_partner_report_view.xml
index 62e54260285..a054d4d7605 100644
--- a/addons/crm_partner_assign/report/crm_partner_report_view.xml
+++ b/addons/crm_partner_assign/report/crm_partner_report_view.xml
@@ -12,7 +12,7 @@
<field name="user_id"/>
<field name="grade_id"/>
<field name="activation"/>
- <group expand="1" string="Group By...">
+ <group expand="1" string="Group By">
<filter string="Salesperson" name="user" icon="terp-personal"
domain="[]" context="{'group_by':'user_id'}" />
<filter string="Country" icon="terp-go-home" name="group_country" context="{'group_by':'country_id'}" />
diff --git a/addons/document/document_view.xml b/addons/document/document_view.xml
index 4f3d892a766..87da74c5658 100644
--- a/addons/document/document_view.xml
+++ b/addons/document/document_view.xml
@@ -110,7 +110,7 @@
<filter string="Resources" icon="terp-personal" domain="[('type','=','ressource')]"/>
<field name="company_id" groups="base.group_multi_company"/>
<field name="user_id" />
- <group expand="0" string="Group By...">
+ <group expand="0" string="Group By">
<filter string="Owner" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/>
<filter string="Type" icon="terp-stock_symbol-selection" domain="[]" context="{'group_by':'type'}"/>
<filter string="Company" domain="[]" icon="terp-go-home" context="{'group_by':'company_id'}" groups="base.group_multi_company"/>
diff --git a/addons/event/event_view.xml b/addons/event/event_view.xml
index f611154bffd..1ae4d9c449e 100644
--- a/addons/event/event_view.xml
+++ b/addons/event/event_view.xml
@@ -280,7 +280,7 @@
<filter string="Upcoming" name="upcoming" domain="[('date_begin','&gt;=', time.strftime('%%Y-%%m-%%d 00:00:00'))]" help="Upcoming events from today" />
<field name="type"/>
<field name="user_id"/>
- <group expand="0" string="Group By...">
+ <group expand="0" string="Group By">
<filter string="Responsible" context="{'group_by': 'user_id'}"/>
<filter string="Event Type" context="{'group_by':'type'}"/>
<filter string="Status" context="{'group_by':'state'}"/>
@@ -436,7 +436,7 @@
<field name="event_id"/>
<field name="user_id"/>
<field name="partner_id"/>
- <group expand="0" string="Group By...">
+ <group expand="0" string="Group By">
<filter string="Responsible" domain="[]" context="{'group_by':'user_id'}"/>
<filter string="Partner" domain="[]" context="{'group_by':'partner_id'}"/>
<filter string="Event" name="group_event" domain="[]" context="{'group_by':'event_id'}"/>
diff --git a/addons/event/report/report_event_registration_view.xml b/addons/event/report/report_event_registration_view.xml
index ed0124b5459..faa484d5667 100644
--- a/addons/event/report/report_event_registration_view.xml
+++ b/addons/event/report/report_event_registration_view.xml
@@ -32,7 +32,7 @@
<field name="event_date"/>
</group>
<newline/>
- <group expand="1" string="Group By...">
+ <group expand="1" string="Group By">
<filter string="Participant / Contact" icon="terp-personal" context="{'group_by':'name_registration'}" help="Registration contact"/>
<filter string="Register" icon="terp-personal" context="{'group_by':'user_id_registration'}" help="Registration contact" groups="base.group_no_one"/>
<filter string="Event Responsible" name="user_id" icon="terp-personal" context="{'group_by': 'user_id'}"/>
diff --git a/addons/fleet/fleet_view.xml b/addons/fleet/fleet_view.xml
index 0486f491d46..8cda28d56a5 100644
--- a/addons/fleet/fleet_view.xml
+++ b/addons/fleet/fleet_view.xml
@@ -61,7 +61,7 @@
<field name="arch" type="xml">
<search string="Vehicles costs" >
<field name="brand_id" />
- <group expand="1" string="Group By...">
+ <group expand="1" string="Group By">
<filter name="groupby_brand" context="{'group_by' : 'brand_id'}" string="Brand"/>
</group>
</search>
@@ -329,7 +329,7 @@
<field name="location"/>
<field name="state_id" />
<filter name="alert_true" domain="['|',('contract_renewal_due_soon','=',True),('contract_renewal_overdue','=',True)]" string="Has Alert(s)"/>
- <group expand="1" string="Group By...">
+ <group expand="1" string="Group By">
<filter name="groupby_status" context="{'group_by' : 'state_id'}" string="Status"/>
<filter name="groupby_model" context="{'group_by' : 'model_id'}" string="Model"/>
</group>
@@ -610,7 +610,7 @@
<field name="value"/>
<field name="unit"/>
<field name="date"/>
- <group expand="0" string="Group By...">
+ <group expand="0" string="Group By">
<filter name="groupby_vehicle" context="{'group_by' : 'vehicle_id'}" string="Vehicle"/>
</group>
</search>
@@ -716,7 +716,7 @@
<field name="purchaser_id" />
<field name="liter" />
<field name="amount" sum="Price"/>
- <group expand="0" string="Group By...">
+ <group expand="0" string="Group By">
<filter name="groupby_vehicle" context="{'group_by' : 'vehicle_id'}" string="Vehicle"/>
</group>
</search>
@@ -924,7 +924,7 @@
<field name="parent_id"/>
<filter name="parent_false" domain="[('parent_id','=',False)]" string="Effective Costs"/>
<filter name="parent_true" domain="[('parent_id','!=',False)]" string="Indicative Costs"/>
- <group expand="1" string="Group By...">
+ <group expand="1" string="Group By">
<filter name="groupby_year" context="{'group_by' : 'year'}" string="Year"/>
<filter name="groupby_date" context="{'group_by' : 'date'}" string="Vehicle Costs Month" help="Vehicle Costs by Month"/>
<filter name="groupby_cost_type" context="{'group_by' : 'cost_type'}" string="Cost Type"/>
diff --git a/addons/gamification/views/challenge.xml b/addons/gamification/views/challenge.xml
index d76fdc29a52..8a962c15d54 100644
--- a/addons/gamification/views/challenge.xml
+++ b/addons/gamification/views/challenge.xml
@@ -223,7 +223,7 @@
<filter name="hr_challenges" string="HR Challenges"
domain="[('category', '=', 'hr')]"/>
<field name="name"/>
- <group expand="0" string="Group By...">
+ <group expand="0" string="Group By">
<filter string="State" domain="[]" context="{'group_by':'state'}"/>
<filter string="Period" domain="[]" context="{'group_by':'period'}"/>
</group>
diff --git a/addons/gamification/views/goal.xml b/addons/gamification/views/goal.xml
index 4e1bf598f78..32382f179b7 100644
--- a/addons/gamification/views/goal.xml
+++ b/addons/gamification/views/goal.xml
@@ -110,7 +110,7 @@
<field name="user_id"/>
<field name="definition_id"/>
<field name="challenge_id"/>
- <group expand="0" string="Group By...">
+ <group expand="0" string="Group By">
<filter name="group_by_user" string="User" domain="[]" context="{'group_by':'user_id'}"/>
<filter name="group_by_definition" string="Goal Definition" domain="[]" context="{'group_by':'definition_id'}"/>
<filter string="State" domain="[]" context="{'group_by':'state'}"/>
@@ -274,7 +274,7 @@
<field name="name"/>
<field name="model_id"/>
<field name="field_id"/>
- <group expand="0" string="Group By...">
+ <group expand="0" string="Group By">
<filter string="Model" domain="[]" context="{'group_by':'model_id'}"/>
<filter string="Computation Mode" domain="[]" context="{'group_by':'computation_mode'}"/>
</group>
diff --git a/addons/google_spreadsheet/static/src/js/search.js b/addons/google_spreadsheet/static/src/js/search.js
index c46ec615792..098f8635fbc 100644
--- a/addons/google_spreadsheet/static/src/js/search.js
+++ b/addons/google_spreadsheet/static/src/js/search.js
@@ -42,7 +42,7 @@ openerp.google_spreadsheet = function(instance) {
});
},
});
- instance.web.SearchView.include({
+ instance.web.SearchViewDrawer.include({
add_common_inputs: function() {
this._super();
var vm = this.getParent().getParent();
diff --git a/addons/hr/hr_view.xml b/addons/hr/hr_view.xml
index 778199a8768..09e7373384e 100644
--- a/addons/hr/hr_view.xml
+++ b/addons/hr/hr_view.xml
@@ -121,7 +121,7 @@
<field name="name" string="Employees" filter_domain="['|',('work_email','ilike',self),('name','ilike',self)]"/>
<field name="department_id" />
<field name="category_ids" groups="base.group_hr_user"/>
- <group expand="0" string="Group By...">
+ <group expand="0" string="Group By">
<filter string="Manager" icon="terp-personal" domain="[]" context="{'group_by':'parent_id'}"/>
<filter string="Coach" icon="terp-personal" domain="[]" context="{'group_by':'coach_id'}"/>
<filter string="Department" icon="terp-personal+" domain="[]" context="{'group_by':'department_id'}"/>
@@ -394,7 +394,7 @@
<filter domain="[('state','=','open')]" string="In Position"/>
<filter domain="[('state','=','recruit')]" string="In Recruitment" name="in_recruitment"/>
<field name="department_id"/>
- <group expand="0" string="Group By...">
+ <group expand="0" string="Group By">
<filter string="Department" domain="[]" context="{'group_by':'department_id'}"/>
<filter string="Status" domain="[]" context="{'group_by':'state'}"/>
<filter string="Company" domain="[]" context="{'group_by':'company_id'}" groups="base.group_multi_company"/>
diff --git a/addons/hr_attendance/hr_attendance_view.xml b/addons/hr_attendance/hr_attendance_view.xml
index b6ff9bfc828..bd8fa81636b 100644
--- a/addons/hr_attendance/hr_attendance_view.xml
+++ b/addons/hr_attendance/hr_attendance_view.xml
@@ -56,7 +56,7 @@
<separator/>
<filter icon="terp-stock_align_left_24" string="My Attendance" domain="[('employee_id.user_id.id', '=', uid)]" />
<field name="employee_id"/>
- <group expand="0" string="Group By...">
+ <group expand="0" string="Group By">
<filter name="employee" string="Employee" icon="terp-personal" domain="[]" context="{'group_by':'employee_id'}"/>
<filter name="name" string="Date" icon="terp-personal" domain="[]" context="{'group_by':'name'}"/>
</group>
diff --git a/addons/hr_contract/hr_contract_view.xml b/addons/hr_contract/hr_contract_view.xml
index 01b2842f30b..3c06c472f1f 100644
--- a/addons/hr_contract/hr_contract_view.xml
+++ b/addons/hr_contract/hr_contract_view.xml
@@ -62,7 +62,7 @@
<field name="date_end"/>
<field name="working_hours"/>
<field name="employee_id"/>
- <group expand="0" string="Group By...">
+ <group expand="0" string="Group By">
<filter string="Employee" icon="terp-personal" domain="[]" context="{'group_by':'employee_id'}"/>
<filter string="Working Schedule" icon="terp-go-week" domain="[]" context="{'group_by':'working_hours'}"/>
<filter string="Job" icon="terp-gtk-select-all" domain="[]" context="{'group_by':'job_id'}"/>
diff --git a/addons/hr_evaluation/hr_evaluation_view.xml b/addons/hr_evaluation/hr_evaluation_view.xml
index 70e96c9f589..cf6e24c694b 100644
--- a/addons/hr_evaluation/hr_evaluation_view.xml
+++ b/addons/hr_evaluation/hr_evaluation_view.xml
@@ -9,7 +9,7 @@
<search string="Appraisal Plan">
<field name="name" string="Appraisal Plans"/>
<field name="company_id" groups="base.group_multi_company"/>
- <group expand="0" string="Group By..." groups="base.group_multi_company">
+ <group expand="0" string="Group By" groups="base.group_multi_company">
<filter string="Company" icon="terp-go-home" domain="[]" context="{'group_by':'company_id'}"/>
</group>
</search>
@@ -333,7 +333,7 @@
<filter icon="terp-gtk-go-back-rtl" string="To Do" name="todo" domain="[('state','=','waiting_answer')]"/>
<field name="user_to_review_id"/>
<field name="user_id" string="Interviewer"/>
- <group expand="0" string="Group By...">
+ <group expand="0" string="Group By">
<filter string="Interviewer" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/>
<filter string="Survey" icon="terp-stock_align_left_24" domain="[]" context="{'group_by':'survey_id'}"/>
<filter string="Status" name="group_state" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
diff --git a/addons/hr_evaluation/report/hr_evaluation_report_view.xml b/addons/hr_evaluation/report/hr_evaluation_report_view.xml
index 456b5ab72f9..073e648fe98 100644
--- a/addons/hr_evaluation/report/hr_evaluation_report_view.xml
+++ b/addons/hr_evaluation/report/hr_evaluation_report_view.xml
@@ -30,7 +30,7 @@
<field name="state"/>
<field name="create_date"/>
</group>
- <group expand="1" string="Group By...">
+ <group expand="1" string="Group By">
<filter string="Employee" name="employee" icon="terp-personal" context="{'group_by':'employee_id'}"/>
<filter string="Plan" icon="terp-stock_align_left_24" context="{'group_by':'plan_id'}"/>
<filter string="Appreciation" icon="terp-face-plain" context="{'group_by':'rating'}"/>
diff --git a/addons/hr_expense/hr_expense_view.xml b/addons/hr_expense/hr_expense_view.xml
index 2075f56da46..3877a8edd42 100644
--- a/addons/hr_expense/hr_expense_view.xml
+++ b/addons/hr_expense/hr_expense_view.xml
@@ -162,7 +162,7 @@
<filter domain="[('user_id', '=', uid)]" string="My Expenses"/>
<field name="employee_id"/>
<field name="department_id" string="Department" context="{'invisible_department': False}"/>
- <group expand="0" string="Group By...">
+ <group expand="0" string="Group By">
<filter string="Employee" icon="terp-personal" domain="[]" context="{'group_by':'employee_id'}"/>
<filter string="Department" icon="terp-personal+" domain="[]" context="{'group_by':'department_id'}"/>
<filter string="Expenses Month" icon="terp-go-month" domain="[]" context="{'group_by':'date'}" help="Expenses by Month"/>
diff --git a/addons/hr_expense/report/hr_expense_report_view.xml b/addons/hr_expense/report/hr_expense_report_view.xml
index f2ba5290c96..5655b965f7c 100644
--- a/addons/hr_expense/report/hr_expense_report_view.xml
+++ b/addons/hr_expense/report/hr_expense_report_view.xml
@@ -35,7 +35,7 @@
<field name="date_confirm"/>
<field name="date_valid"/>
</group>
- <group expand="1" string="Group By...">
+ <group expand="1" string="Group By">
<filter string="Employee" name="employee" icon="terp-personal" context="{'group_by':'employee_id'}"/>
<filter string="Validation User" name="User" icon="terp-personal" context="{'group_by':'user_id'}"/>
<filter string="Department" icon="terp-personal+" context="{'group_by':'department_id'}"/>
diff --git a/addons/hr_holidays/hr_holidays_view.xml b/addons/hr_holidays/hr_holidays_view.xml
index b1a9fd366c9..bb3b7a5a93f 100644
--- a/addons/hr_holidays/hr_holidays_view.xml
+++ b/addons/hr_holidays/hr_holidays_view.xml
@@ -20,7 +20,7 @@
<field name="employee_id"/>
<field name="department_id"/>
<field name="holiday_status_id"/>
- <group expand="0" string="Group By...">
+ <group expand="0" string="Group By">
<filter name="group_name" string="Description" domain="[]" context="{'group_by':'name'}"/>
<filter name="group_date_from" string="Start Month" icon="terp-personal" domain="[]" context="{'group_by':'date_from'}"/>
<filter name="group_employee" string="Employee" icon="terp-personal" domain="[]" context="{'group_by':'employee_id'}"/>
diff --git a/addons/hr_payroll/hr_payroll_view.xml b/addons/hr_payroll/hr_payroll_view.xml
index 80cfd7f34e0..7bb9d28f65a 100644
--- a/addons/hr_payroll/hr_payroll_view.xml
+++ b/addons/hr_payroll/hr_payroll_view.xml
@@ -171,7 +171,7 @@
<field name="name" string="Payslip Lines" filter_domain="['|',('name','ilike',self),('code','ilike',self)]"/>
<field name="amount_select"/>
<field name="slip_id"/>
- <group col="8" colspan="4" expand="0" string="Group By...">
+ <group col="8" colspan="4" expand="0" string="Group By">
<filter string="Salary Rule Category" icon="terp-camera_test" name="category_id" context="{'group_by':'category_id'}"/>
<filter string="Contribution Register" name="register_id" icon="terp-folder-yellow" context="{'group_by':'register_id'}"/>
<filter string="Amount Type" name="amount_select" icon="terp-stock_symbol-selection" context="{'group_by':'amount_select'}"/>
@@ -357,7 +357,7 @@
<filter icon="terp-camera_test" string="Done" domain="[('state','=','done')]" help="Done Slip"/>
<field name="employee_id"/>
<field name="payslip_run_id"/>
- <group expand="0" string="Group By...">
+ <group expand="0" string="Group By">
<filter string="Employees" icon="terp-personal" name="employee_id" context="{'group_by':'employee_id'}"/>
<filter string="PaySlip Batch" name="payslip_run_id" icon="terp-folder-orange" context="{'group_by':'payslip_run_id'}"/>
<filter string="Companies" name="company_id" groups="base.group_multi_company" icon="terp-go-home" context="{'group_by':'company_id'}"/>
@@ -641,7 +641,7 @@
<field name="name" string="Salary Rules" filter_domain="['|',('name','ilike',self),('code','ilike',self)]"/>
<field name="category_id"/>
<field name="condition_range_min"/>
- <group col="8" colspan="4" expand="0" string="Group By...">
+ <group col="8" colspan="4" expand="0" string="Group By">
<filter string="Category" icon="terp-folder-yellow" name="head" context="{'group_by':'category_id'}"/>
</group>
</search>
diff --git a/addons/hr_recruitment/hr_recruitment_view.xml b/addons/hr_recruitment/hr_recruitment_view.xml
index e6c650945fc..1e81d1555d4 100644
--- a/addons/hr_recruitment/hr_recruitment_view.xml
+++ b/addons/hr_recruitment/hr_recruitment_view.xml
@@ -208,7 +208,7 @@
<separator/>
<field name="categ_ids"/>
<separator/>
- <group expand="0" string="Group By...">
+ <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'}"/>
diff --git a/addons/hr_timesheet/hr_timesheet_view.xml b/addons/hr_timesheet/hr_timesheet_view.xml
index 76a1ee02a3f..101423d007c 100644
--- a/addons/hr_timesheet/hr_timesheet_view.xml
+++ b/addons/hr_timesheet/hr_timesheet_view.xml
@@ -70,7 +70,7 @@
<field name="date"/>
<field name="user_id"/>
<field name="account_id"/>
- <group expand="0" string="Group By...">
+ <group expand="0" string="Group By">
<filter string="Users" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/>
<filter string="Analytic account" icon="terp-folder-green" domain="[]" context="{'group_by':'account_id'}"/>
<filter string="Product" icon="terp-accessories-archiver" domain="[]" context="{'group_by':'product_id'}"/>
diff --git a/addons/hr_timesheet_invoice/report/hr_timesheet_invoice_report_view.xml b/addons/hr_timesheet_invoice/report/hr_timesheet_invoice_report_view.xml
index fa48dc7b136..ebf188ae3b3 100644
--- a/addons/hr_timesheet_invoice/report/hr_timesheet_invoice_report_view.xml
+++ b/addons/hr_timesheet_invoice/report/hr_timesheet_invoice_report_view.xml
@@ -51,7 +51,7 @@
<field name="date"/>
<field name="invoice_id"/>
</group>
- <group expand="1" string="Group By...">
+ <group expand="1" string="Group By">
<filter string="User" name="User" icon="terp-personal" context="{'group_by':'user_id'}"/>
<filter string="Account" icon="terp-folder-orange" context="{'group_by':'account_id'}"/>
<filter string="Product" icon="terp-accessories-archiver" context="{'group_by':'product_id'}"/>
diff --git a/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml b/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml
index 43f970801a5..d6d287e7137 100644
--- a/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml
+++ b/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml
@@ -184,7 +184,7 @@
<filter name="to_approve" string="To Approve" domain="[('state','=','confirm')]" help="Confirmed Timesheets"/>
<field name="employee_id"/>
<field name="department_id"/>
- <group expand="0" string="Group By...">
+ <group expand="0" string="Group By">
<filter string="Employees" icon="terp-personal" domain="[]" context="{'group_by':'employee_id'}"/>
<filter string="Department" icon="terp-personal+" domain="[]" context="{'group_by':'department_id'}"/>
</group>
diff --git a/addons/hr_timesheet_sheet/report/hr_timesheet_report_view.xml b/addons/hr_timesheet_sheet/report/hr_timesheet_report_view.xml
index 8e06530ee9b..30757a0b43e 100644
--- a/addons/hr_timesheet_sheet/report/hr_timesheet_report_view.xml
+++ b/addons/hr_timesheet_sheet/report/hr_timesheet_report_view.xml
@@ -28,7 +28,7 @@
<field name="company_id" groups="base.group_multi_company"/>
<field name="date" />
</group>
- <group expand="1" string="Group By...">
+ <group expand="1" string="Group By">
<filter string="User" name="group_user_id" icon="terp-personal" context="{'group_by':'user_id'}"/>
<filter string="Product" icon="terp-accessories-archiver" context="{'group_by':'product_id'}"/>
<filter string="Analytic Account" icon="terp-folder-green" context="{'group_by':'account_id'}" groups="analytic.group_analytic_accounting"/>
diff --git a/addons/hr_timesheet_sheet/report/timesheet_report_view.xml b/addons/hr_timesheet_sheet/report/timesheet_report_view.xml
index a85b17b88af..9b45229c2cc 100644
--- a/addons/hr_timesheet_sheet/report/timesheet_report_view.xml
+++ b/addons/hr_timesheet_sheet/report/timesheet_report_view.xml
@@ -35,7 +35,7 @@
<field name="date_to"/>
<field name="date_from"/>
</group>
- <group expand="1" string="Group By...">
+ <group expand="1" string="Group By">
<filter string="User" name="User_id" icon="terp-personal" context="{'group_by':'user_id'}"/>
<filter string="Department" icon="terp-personal+" context="{'group_by':'department_id'}"/>
<filter string="Product" icon="terp-accessories-archiver" context="{'group_by':'product_id'}"/>
diff --git a/addons/im_livechat/im_livechat_view.xml b/addons/im_livechat/im_livechat_view.xml
index 20a531067b9..1be26e23294 100644
--- a/addons/im_livechat/im_livechat_view.xml
+++ b/addons/im_livechat/im_livechat_view.xml
@@ -150,7 +150,7 @@
<filter name="session_id" string="My Sessions" domain="[('session_id.user_ids','in', uid)]"/>
<field name="from_id"/>
<field name="to_id"/>
- <group expand="0" string="Group By...">
+ <group expand="0" string="Group By">
<filter name="group_by_session_id" string="Session" domain="[]" context="{'group_by':'session_id'}"/>
<filter name="group_by_date" string="Date" domain="[]" context="{'group_by':'date'}"/>
</group>
diff --git a/addons/l10n_be_coda/l10n_be_coda_view.xml b/addons/l10n_be_coda/l10n_be_coda_view.xml
index f9ea814b120..dc147ae3100 100644
--- a/addons/l10n_be_coda/l10n_be_coda_view.xml
+++ b/addons/l10n_be_coda/l10n_be_coda_view.xml
@@ -66,7 +66,7 @@
<field name="note"/>
</group>
<newline/>
- <group string="Group By..." expand="0">
+ <group string="Group By" expand="0">
<filter string="Partner" context="{'group_by':'partner_id'}" icon="terp-folder-green"/>
<filter string="Statement" context="{'group_by':'statement_id'}" icon="terp-folder-orange"/>
</group>
diff --git a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_view.xml b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_view.xml
index a0beb8db145..47ac49eb278 100644
--- a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_view.xml
+++ b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_view.xml
@@ -144,7 +144,7 @@
<field name="batch_id"/>
</group>
<newline/>
- <group expand="0" string="Group By...">
+ <group expand="0" string="Group By">
<filter string="Bank" name="bank_id" icon="terp-go-home" context="{'group_by':'bank_id'}"/>
<separator orientation="vertical"/>
<filter string="Status" name="state" icon="terp-stock_effects-object-colorize" context="{'group_by':'state'}"/>
diff --git a/addons/l10n_in_hr_payroll/report/payment_advice_report_view.xml b/addons/l10n_in_hr_payroll/report/payment_advice_report_view.xml
index 38f1272718b..300d7932bc3 100644
--- a/addons/l10n_in_hr_payroll/report/payment_advice_report_view.xml
+++ b/addons/l10n_in_hr_payroll/report/payment_advice_report_view.xml
@@ -54,7 +54,7 @@
<field name="company_id" groups="base.group_multi_company" widget="selection"/>
</group>
<newline/>
- <group expand="1" string="Group By...">
+ <group expand="1" string="Group By">
<filter string="Employee" icon="terp-personal" context="{'group_by':'employee_id'}" />
<filter string="Bank" icon="terp-go-home" context="{'group_by':'bank_id'}"/>
<separator orientation="vertical"/>
diff --git a/addons/l10n_in_hr_payroll/report/payslip_report_view.xml b/addons/l10n_in_hr_payroll/report/payslip_report_view.xml
index d71cb283336..8293b26a7f3 100644
--- a/addons/l10n_in_hr_payroll/report/payslip_report_view.xml
+++ b/addons/l10n_in_hr_payroll/report/payslip_report_view.xml
@@ -50,7 +50,7 @@
<field name="company_id" groups="base.group_multi_company" widget="selection"/>
</group>
<newline/>
- <group expand="1" string="Group By...">
+ <group expand="1" string="Group By">
<filter string="Employee" name="employee" icon="terp-personal" context="{'group_by':'employee_id'}" />
<filter string="Structure" context="{'group_by':'struct_id'}" />
<filter string="Category" name="category" context="{'group_by':'category_id'}" />
diff --git a/addons/lunch/lunch_view.xml b/addons/lunch/lunch_view.xml
index 5c752f3fa18..55f35f46598 100644
--- a/addons/lunch/lunch_view.xml
+++ b/addons/lunch/lunch_view.xml
@@ -21,7 +21,7 @@
<separator/>
<filter name="today" string="Today" domain="[('date','=',time.strftime('%%Y-%%m-%%d'))]"/>
<field name="user_id"/>
- <group expand="0" string="Group By...">
+ <group expand="0" string="Group By">
<filter name="group_by_supplier" string="By Supplier" context="{'group_by':'supplier'}"/>
<filter name="group_by_date" string="Order Month" context="{'group_by':'date'}" help="Supplier Order by Month"/>
</group>
@@ -52,7 +52,7 @@
<search string="lunch cashmove">
<field name="description"/>
<field name="user_id"/>
- <group expand="0" string="Group By...">
+ <group expand="0" string="Group By">
<filter name='group_by_user' string="By Employee" context="{'group_by':'user_id'}"/>
</group>
</search>
diff --git a/addons/mail/mail_alias_view.xml b/addons/mail/mail_alias_view.xml
index 74c031781b0..c4d1e67dd37 100644
--- a/addons/mail/mail_alias_view.xml
+++ b/addons/mail/mail_alias_view.xml
@@ -60,7 +60,7 @@
<field name="alias_parent_thread_id"/>
<separator/>
<filter string="Active" name="active" domain="[('alias_name', '!=', False)]"/>
- <group expand="0" string="Group By...">
+ <group expand="0" string="Group By">
<filter string="User" name="User" context="{'group_by':'alias_user_id'}"/>
<filter string="Model" name="Model" context="{'group_by':'alias_model_id'}"/>
</group>
diff --git a/addons/mail/mail_mail_view.xml b/addons/mail/mail_mail_view.xml
index 0827b638b14..d32eade0dc4 100644
--- a/addons/mail/mail_mail_view.xml
+++ b/addons/mail/mail_mail_view.xml
@@ -108,7 +108,7 @@
<field name="model"/>
<field name="res_id"/>
</group>
- <group expand="0" string="Group By...">
+ <group expand="0" string="Group By">
<filter string="Status" name="status" domain="[]" context="{'group_by':'state'}"/>
<filter string="Author" name="author" context="{'group_by':'author_id'}"/>
<filter string="Thread" name="thread" domain="[]" context="{'group_by':'message_id'}"/>
diff --git a/addons/mail/mail_message_view.xml b/addons/mail/mail_message_view.xml
index 1a6a80b1e2c..dde087de597 100644
--- a/addons/mail/mail_message_view.xml
+++ b/addons/mail/mail_message_view.xml
@@ -71,7 +71,7 @@
<filter string="Has attachments"
name="attachments"
domain="[('attachment_ids', '!=', False)]"/>
- <group expand="0" string="Group By...">
+ <group expand="0" string="Group By">
<filter string="Type" name="thread" domain="[]" context="{'group_by':'type'}"/>
</group>
</search>
diff --git a/addons/mail/static/src/js/mail.js b/addons/mail/static/src/js/mail.js
index e5eca724659..04e99f5de0e 100644
--- a/addons/mail/static/src/js/mail.js
+++ b/addons/mail/static/src/js/mail.js
@@ -1915,11 +1915,11 @@ openerp.mail = function (session) {
* @param {Object} defaults ??
*/
load_searchview: function (defaults) {
- var self = this;
var ds_msg = new session.web.DataSetSearch(this, 'mail.message');
this.searchview = new session.web.SearchView(this, ds_msg, false, defaults || {}, false);
- this.searchview.appendTo(this.$('.oe_view_manager_view_search'))
- .then(function () { self.searchview.on('search_data', self, self.do_searchview_search); });
+ this.searchview.on('search_data', this, this.do_searchview_search);
+ this.searchview.appendTo(this.$('.oe_view_manager_view_search'),
+ this.$('.oe_searchview_drawer_container'));
if (this.searchview.has_defaults) {
this.searchview.ready.then(this.searchview.do_search);
}
diff --git a/addons/mail/static/src/xml/mail.xml b/addons/mail/static/src/xml/mail.xml
index 3aea4a19555..62ecdcd89d6 100644
--- a/addons/mail/static/src/xml/mail.xml
+++ b/addons/mail/static/src/xml/mail.xml
@@ -191,8 +191,15 @@
</tr>
</tbody>
</table>
- <div class="oe_mail-placeholder"></div>
- <aside class="oe_mail_wall_aside"></aside>
+ <div class="oe_view_manager_wrapper">
+ <div>
+ <div class="oe_view_manager_body">
+ <div class="oe_searchview_drawer_container"/>
+ <div class="oe_mail-placeholder"></div>
+ <aside class="oe_mail_wall_aside"></aside>
+ </div>
+ </div>
+ </div>
</div>
<!--
diff --git a/addons/marketing_campaign/marketing_campaign_view.xml b/addons/marketing_campaign/marketing_campaign_view.xml
index 68d82ba0012..738cea46f2a 100644
--- a/addons/marketing_campaign/marketing_campaign_view.xml
+++ b/addons/marketing_campaign/marketing_campaign_view.xml
@@ -150,7 +150,7 @@
<filter icon="terp-gtk-jump-to-rtl" string="Test Mode" name="test" domain="[('mode','=','test')]"/>
<filter icon="terp-gtk-jump-to-rtl" string="Manual Mode" domain="[('mode','=','manual')]"/>
<field name="object_id" string="Resource"/>
- <group expand="0" string="Group By...">
+ <group expand="0" string="Group By">
<filter string="Resource" name="Object" icon="terp-accessories-archiver" context="{'group_by':'object_id'}"/>
<filter string="Mode" name="Mode" icon="terp-gtk-jump-to-rtl" context="{'group_by':'mode'}"/>
<filter string="Status" name="Status" icon="terp-stock_effects-object-colorize" context="{'group_by':'state'}"/>
@@ -254,7 +254,7 @@
<filter icon="terp-emblem-documents" string="All" help="Sync mode: all records" domain="[('sync_mode','=','all')]"/>
<field name="campaign_id"/>
<field name="object_id"/>
- <group expand="0" string="Group By...">
+ <group expand="0" string="Group By">
<filter string="Campaign" name="Campaign" icon="terp-gtk-jump-to-rtl" context="{'group_by':'campaign_id'}"/>
<filter string="Status" name="Status" icon="terp-stock_effects-object-colorize" context="{'group_by':'state'}"/>
<filter string="Launch Month" name="Launch Date" icon="terp-go-month" context="{'group_by':'date_run'}"/>
@@ -435,7 +435,7 @@
<field name="object_id"/>
<field name="partner_id"/>
<field name="res_id"/>
- <group expand="0" string="Group By...">
+ <group expand="0" string="Group By">
<filter string="Campaign" name="campaign" icon="terp-gtk-jump-to-rtl" context="{'group_by':'campaign_id'}"/>
<filter string="Segment" name="segment" icon="terp-stock_symbol-selection" context="{'group_by':'segment_id'}"/>
<filter string="Activity" name="activity" icon="terp-stock_align_left_24" context="{'group_by':'activity_id'}"/>
diff --git a/addons/marketing_campaign/report/campaign_analysis_view.xml b/addons/marketing_campaign/report/campaign_analysis_view.xml
index d3693497408..26cfa050248 100644
--- a/addons/marketing_campaign/report/campaign_analysis_view.xml
+++ b/addons/marketing_campaign/report/campaign_analysis_view.xml
@@ -38,7 +38,7 @@
<field name="segment_id"/>
<field name="partner_id"/>
<field name="country_id"/>
- <group expand="0" string="Group By...">
+ <group expand="0" string="Group By">
<filter string="Campaign" name="Campaign" icon="terp-gtk-jump-to-rtl" context="{'group_by':'campaign_id'}" />
<filter string="Segment" name="Segment" icon="terp-stock_symbol-selection" context="{'group_by':'segment_id'}"/>
<filter string="Activity" name="activity" icon="terp-stock_align_left_24" context="{'group_by':'activity_id'}"/>
diff --git a/addons/mass_mailing/views/mass_mailing.xml b/addons/mass_mailing/views/mass_mailing.xml
index ef685d76abc..9806022498a 100644
--- a/addons/mass_mailing/views/mass_mailing.xml
+++ b/addons/mass_mailing/views/mass_mailing.xml
@@ -30,7 +30,7 @@
<field name="list_id"/>
<separator/>
<filter string="Exclude Opt Out" name="not_opt_out" domain="[('opt_out', '=', False)]"/>
- <group expand="0" string="Group By...">
+ <group expand="0" string="Group By">
<filter string="Creation Date" name="group_create_date"
context="{'group_by': 'create_date'}"/>
<filter string="Mailing Lists" name="group_list_id"
@@ -151,7 +151,7 @@
<search string="Mass Mailings">
<field name="name" string="Mailings"/>
<field name="mass_mailing_campaign_id"/>
- <group expand="0" string="Group By...">
+ <group expand="0" string="Group By">
<filter string="State" name="group_state"
context="{'group_by': 'state'}"/>
<filter string="Campaign" name="group_mass_mailing_campaign_id"
@@ -421,7 +421,7 @@
<field name="name" string="Campaigns"/>
<field name="category_ids"/>
<field name="user_id"/>
- <group expand="0" string="Group By...">
+ <group expand="0" string="Group By">
<filter string="Stage" name="group_stage_id"
context="{'group_by': 'stage_id'}"/>
<filter string="Responsible" name="group_user_id"
diff --git a/addons/membership/membership_view.xml b/addons/membership/membership_view.xml
index 7a6b9271424..24693845e1c 100644
--- a/addons/membership/membership_view.xml
+++ b/addons/membership/membership_view.xml
@@ -166,7 +166,7 @@
<separator/>
<filter icon="terp-personal" name="all_non_members" domain="[('membership_state', 'in', ['none','canceled','old','waiting'])]" string="All non Members" help="None/Canceled/Old/Waiting"/>
<filter icon="terp-personal" name="all_members" domain="[('membership_state', 'in', ['invoiced','paid','free'])]" string="All Members" help="Invoiced/Paid/Free"/>
- <group expand="0" string="Group By..." colspan="10" col="8">
+ <group expand="0" string="Group By" colspan="10" col="8">
<filter string="Salesperson" icon="terp-personal" domain="[]" context="{'group_by' : 'user_id'}"/>
<filter string="Associate Member" name = "associate" icon="terp-partner" domain="[]" context="{'group_by':'associate_member'}"/>
<filter string=" Membership State" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'membership_state'}"/>
diff --git a/addons/membership/report/report_membership_view.xml b/addons/membership/report/report_membership_view.xml
index ab1b1013e50..39897357add 100644
--- a/addons/membership/report/report_membership_view.xml
+++ b/addons/membership/report/report_membership_view.xml
@@ -13,7 +13,7 @@
<field name="partner_id"/>
<field name="membership_id"/>
<field name="user_id"/>
- <group expand="1" string="Group By...">
+ <group expand="1" string="Group By">
<filter string="Salesperson" icon="terp-personal" name="salesman"
domain="[]" context="{'group_by':'user_id'}"/>
<filter string="Associated Partner" icon="terp-partner" name="associate_member_id"
diff --git a/addons/mrp/mrp_view.xml b/addons/mrp/mrp_view.xml
index 03611c01639..583196684a9 100644
--- a/addons/mrp/mrp_view.xml
+++ b/addons/mrp/mrp_view.xml
@@ -98,7 +98,7 @@
<field name="name" string="Name"/>
<field name="composition"/>
<field name="group_id" />
- <group expand="0" string="Group By...">
+ <group expand="0" string="Group By">
<filter string="Property Group" icon="terp-personal" domain="[]" context="{'group_by':'group_id'}"/>
</group>
</search>
diff --git a/addons/mrp_operations/mrp_operations_view.xml b/addons/mrp_operations/mrp_operations_view.xml
index 9029d33854e..9de33be991a 100644
--- a/addons/mrp_operations/mrp_operations_view.xml
+++ b/addons/mrp_operations/mrp_operations_view.xml
@@ -130,7 +130,7 @@
help="Production started late"/>
<field name="workcenter_id"/>
<field name="production_id"/>
- <group expand="0" string="Group By...">
+ <group expand="0" string="Group By">
<filter string="Work Center" icon="terp-go-home" domain="[]" context="{'group_by':'workcenter_id'}"/>
<filter string="Production" icon="terp-accessories-archiver" domain="[]" context="{'group_by':'production_id'}"/>
<filter string="Status" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
diff --git a/addons/mrp_operations/report/mrp_workorder_analysis_view.xml b/addons/mrp_operations/report/mrp_workorder_analysis_view.xml
index 92c6ef9adb2..624ce0a15ab 100644
--- a/addons/mrp_operations/report/mrp_workorder_analysis_view.xml
+++ b/addons/mrp_operations/report/mrp_workorder_analysis_view.xml
@@ -29,7 +29,7 @@
<filter icon="terp-camera_test" string="Done" domain="[('state','=','done')]"/>
<field name="product_id" />
<field name="workcenter_id"/>
- <group expand="1" string="Group By...">
+ <group expand="1" string="Group By">
<filter string="Product" name="Product" icon="terp-accessories-archiver" context="{'group_by':'product_id'}" />
<filter string="Work Center" name="Workcenter" icon="terp-go-home" context="{'group_by':'workcenter_id'}" />
<filter string="Production" icon="terp-accessories-archiver" domain="[]" context="{'group_by':'production_id'}"/>
diff --git a/addons/mrp_repair/mrp_repair_view.xml b/addons/mrp_repair/mrp_repair_view.xml
index b485446b1ca..e11acdb6b56 100644
--- a/addons/mrp_repair/mrp_repair_view.xml
+++ b/addons/mrp_repair/mrp_repair_view.xml
@@ -213,7 +213,7 @@
<filter icon="terp-dolar" string="Invoiced" domain="[('invoiced','=',True)]"/>
<field name="product_id"/>
<field name="partner_id" filter_domain="[('partner_id', 'child_of', self)]"/>
- <group expand="0" string="Group By...">
+ <group expand="0" string="Group By">
<filter string="Partner" icon="terp-partner" domain="[]" context="{'group_by':'partner_id'}"/>
<filter string="Product" icon="terp-accessories-archiver" domain="[]" context="{'group_by':'product_id'}"/>
<filter string="Status" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
diff --git a/addons/note/note_view.xml b/addons/note/note_view.xml
index d6274066b04..cfbdfd5300c 100644
--- a/addons/note/note_view.xml
+++ b/addons/note/note_view.xml
@@ -135,7 +135,7 @@
<field name="tag_ids"/>
<filter name="open_true" string="Active" domain="[('open', '=', True)]"/>
<filter name="open_false" string="Archive" domain="[('open', '=', False)]"/>
- <group expand="0" string="Group By...">
+ <group expand="0" string="Group By">
<filter icon="terp-stock_symbol-selection" string="Stage" help="By sticky note Category" context="{'group_by':'stage_id'}"/>
</group>
</search>
diff --git a/addons/payment/views/payment_acquirer.xml b/addons/payment/views/payment_acquirer.xml
index 7dd4eed53da..6840aa03274 100644
--- a/addons/payment/views/payment_acquirer.xml
+++ b/addons/payment/views/payment_acquirer.xml
@@ -82,7 +82,7 @@
<search>
<field name="name"/>
<field name="provider"/>
- <group expand="0" string="Group By...">
+ <group expand="0" string="Group By">
<filter string="Provider" name="provider" domain="[]" context="{'group_by': 'provider'}"/>
</group>
</search>
diff --git a/addons/point_of_sale/account_statement_view.xml b/addons/point_of_sale/account_statement_view.xml
index 86fc8fec164..d9e9ac0d02c 100644
--- a/addons/point_of_sale/account_statement_view.xml
+++ b/addons/point_of_sale/account_statement_view.xml
@@ -27,7 +27,7 @@
<field name="date"/>
<filter string="Open" domain="[('state','=','open')]" icon="terp-document-new" name="open"/>
<field name="journal_id"/>
- <group expand="0" string="Group By...">
+ <group expand="0" string="Group By">
<filter string="Journal" context="{'group_by': 'journal_id'}" icon="terp-folder-orange"/>
<filter string="Period" context="{'group_by': 'period_id'}" icon="terp-go-month"/>
<filter string="Status" context="{'group_by': 'state'}" icon="terp-stock_effects-object-colorize"/>
@@ -46,7 +46,7 @@
<filter string="Open" domain="[('state','=','open')]" icon="terp-document-new" name="open"/>
<filter string="Closed" domain="[('state','=','confirm')]" icon="terp-camera_test"/>
<field name="journal_id"/>
- <group expand="0" string="Group By...">
+ <group expand="0" string="Group By">
<filter string="Journal" context="{'group_by': 'journal_id'}" icon="terp-folder-orange"/>
<filter string="Period" context="{'group_by': 'period_id'}" icon="terp-go-month"/>
<filter string="Status" context="{'group_by': 'state'}" icon="terp-stock_effects-object-colorize"/>
diff --git a/addons/point_of_sale/point_of_sale_view.xml b/addons/point_of_sale/point_of_sale_view.xml
index 6bd4cc0e9ed..9103cbd8c01 100644
--- a/addons/point_of_sale/point_of_sale_view.xml
+++ b/addons/point_of_sale/point_of_sale_view.xml
@@ -146,7 +146,7 @@
<filter icon="terp-check" string="Invoiced" domain="[('state','=','invoiced')]"/>
<filter icon="gtk-convert" string="Posted" domain="[('state','=','done')]"/>
<field name="user_id"/>
- <group expand="0" string="Group By...">
+ <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'}"/>
@@ -877,7 +877,7 @@
<filter string="Today" domain="[('start_at', '>=', time.strftime('%%Y-%%m-%%d 00:00:00'))]" />
<field name="config_id" />
<field name="user_id" />
- <group expand="0" string="Group By...">
+ <group expand="0" string="Group By">
<filter string="User" icon="terp-personal" domain="[]" context="{'group_by' : 'user_id'}" />
<filter string="Point of Sales" domain="[]" context="{'group_by': 'user_id'}" />
</group>
@@ -928,7 +928,7 @@
<filter icon="gtk-convert" string="Posted" domain="[('state','=','done')]"/>
<field name="user_id"/>
<field name="session_id"/>
- <group expand="0" string="Group By...">
+ <group expand="0" string="Group By">
<filter string="Customer" icon="terp-personal" domain="[]" context="{'group_by':'partner_id'}"/>
<filter string="Salesman" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/>
<filter string="Session" icon="terp-personal" domain="[]" context="{'group_by':'session_id'}"/>
diff --git a/addons/point_of_sale/report/pos_order_report_view.xml b/addons/point_of_sale/report/pos_order_report_view.xml
index 5cef1f92cbf..1d0b31f6c37 100644
--- a/addons/point_of_sale/report/pos_order_report_view.xml
+++ b/addons/point_of_sale/report/pos_order_report_view.xml
@@ -32,7 +32,7 @@
<field name="user_id"/>
<field name="partner_id"/>
<field name="user_id"/>
- <group expand="1" string="Group By...">
+ <group expand="1" string="Group By">
<filter string="Salesperson" icon="terp-personal" name="User" context="{'group_by':'user_id'}"/>
<filter string="Customer" icon="terp-personal" context="{'group_by':'partner_id'}"/>
<filter string="Product" icon="terp-accessories-archiver" context="{'group_by':'product_id'}"/>
diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml
index f0f13fb41b1..6a13ca00fff 100644
--- a/addons/project/project_view.xml
+++ b/addons/project/project_view.xml
@@ -32,7 +32,7 @@
<field name="reviewer_id"/>
<field name="user_id"/>
<field name="stage_id" domain="[]"/>
- <group expand="0" string="Group By...">
+ <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'}"/>
@@ -201,7 +201,7 @@
<filter string="Project(s) Manager" domain="[('user_id','=',uid)]" help="Projects in which I am a manager" icon="terp-personal"/>
<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...">
+ <group expand="0" string="Group By">
<filter string="Manager" name="Manager" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/>
<filter string="Contact" name="Partner" icon="terp-partner" domain="[]" context="{'group_by':'partner_id'}"/>
<filter string="Parent" name="Parent" help="Parent" icon="terp-folder-blue" domain = "[]" context="{'group_by':'parent_id'}"/>
diff --git a/addons/project/report/project_report_view.xml b/addons/project/report/project_report_view.xml
index aced63a34d6..e2e68b67116 100644
--- a/addons/project/report/project_report_view.xml
+++ b/addons/project/report/project_report_view.xml
@@ -42,7 +42,7 @@
<field name="priority"/>
<field name="company_id" groups="base.group_multi_company"/>
</group>
- <group expand="1" string="Group By...">
+ <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'}" />
diff --git a/addons/project_issue/project_issue_view.xml b/addons/project_issue/project_issue_view.xml
index 087018de310..86fbd4ac912 100644
--- a/addons/project_issue/project_issue_view.xml
+++ b/addons/project_issue/project_issue_view.xml
@@ -151,7 +151,7 @@
<field name="project_id"/>
<field name="categ_ids"/>
<field name="stage_id" domain="[]"/>
- <group expand="0" string="Group By..." >
+ <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'}"/>
diff --git a/addons/project_issue/report/project_issue_report_view.xml b/addons/project_issue/report/project_issue_report_view.xml
index b0e24d7db54..0a9c0448c85 100644
--- a/addons/project_issue/report/project_issue_report_view.xml
+++ b/addons/project_issue/report/project_issue_report_view.xml
@@ -28,7 +28,7 @@
<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...">
+ <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"/>
diff --git a/addons/project_timesheet/report/task_report_view.xml b/addons/project_timesheet/report/task_report_view.xml
index 37d7b1486f9..b5871324b6b 100644
--- a/addons/project_timesheet/report/task_report_view.xml
+++ b/addons/project_timesheet/report/task_report_view.xml
@@ -16,7 +16,7 @@
<search string="Tasks by User">
<field name="name" string="Date"/>
<field name="user_id"/>
- <group expand="1" string="Group By...">
+ <group expand="1" string="Group By">
<filter string="User" name="group_user_id" icon="terp-personal" context="{'group_by':'user_id'}"/>
<filter string="Month" icon="terp-go-month" context="{'group_by':'month'}" help="Group by month of date"/>
<filter string="Year" icon="terp-go-year" context="{'group_by':'year'}" help="Group by year of date"/>
diff --git a/addons/purchase/purchase_view.xml b/addons/purchase/purchase_view.xml
index f10007a4677..132076440dc 100644
--- a/addons/purchase/purchase_view.xml
+++ b/addons/purchase/purchase_view.xml
@@ -315,7 +315,7 @@
<field name="partner_id" operator="child_of"/>
<field name="product_id"/>
<field name="create_uid"/>
- <group expand="0" string="Group By...">
+ <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'}"/>
@@ -342,7 +342,7 @@
<field name="partner_id" operator="child_of"/>
<field name="product_id"/>
<field name="create_uid"/>
- <group expand="0" string="Group By...">
+ <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'}"/>
@@ -526,7 +526,7 @@
<field name="product_id"/>
<field name="partner_id" string="Supplier" filter_domain="[('partner_id', 'child_of', self)]"/>
<filter name="hide_cancelled" string="Hide cancelled lines" domain="[('state', '!=', 'cancel')]"/>
- <group expand="0" string="Group By...">
+ <group expand="0" string="Group By">
<filter name="groupby_supplier" string="Supplier" icon="terp-partner" domain="[]" context="{'group_by' : 'partner_id'}" />
<filter name="groupby_product" string="Product" icon="terp-accessories-archiver" domain="[]" context="{'group_by' : 'product_id'}" />
<filter icon="terp-gtk-jump-to-rtl" string="Order Reference" domain="[]" context="{'group_by' :'order_id'}"/>
diff --git a/addons/purchase/report/purchase_report_view.xml b/addons/purchase/report/purchase_report_view.xml
index fc171e42efa..37778328bcb 100644
--- a/addons/purchase/report/purchase_report_view.xml
+++ b/addons/purchase/report/purchase_report_view.xml
@@ -37,7 +37,7 @@
<field name="expected_date"/>
</group>
<newline/>
- <group expand="1" string="Group By...">
+ <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'}"/>
diff --git a/addons/purchase_requisition/purchase_requisition_view.xml b/addons/purchase_requisition/purchase_requisition_view.xml
index 044e59c636d..718c9719d02 100644
--- a/addons/purchase_requisition/purchase_requisition_view.xml
+++ b/addons/purchase_requisition/purchase_requisition_view.xml
@@ -160,7 +160,7 @@
<separator/>
<filter icon="terp-personal-" string="Unassigned" domain="[('user_id','=', False)]" help="Unassigned Requisition"/>
<field name="user_id" />
- <group expand="0" string="Group By...">
+ <group expand="0" string="Group By">
<filter string="Responsible" icon="terp-personal" domain="[]" context="{'group_by':'user_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'}"/>
diff --git a/addons/resource/resource_view.xml b/addons/resource/resource_view.xml
index dd8b1b5e828..6d3b885b7d2 100644
--- a/addons/resource/resource_view.xml
+++ b/addons/resource/resource_view.xml
@@ -14,7 +14,7 @@
<filter string="Inactive" icon="terp-gdu-smart-failing" domain="[('active','=',False)]"/>
<field name="user_id" string="User"/>
<field name="company_id" groups="base.group_multi_company"/>
- <group expand="0" string="Group By...">
+ <group expand="0" string="Group By">
<filter string="User" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/>
<filter string="Type" icon="terp-stock_symbol-selection" domain="[]" context="{'group_by':'resource_type'}"/>
<filter string="Company" icon="terp-go-home" domain="[]" context="{'group_by':'company_id'}" groups="base.group_multi_company"/>
@@ -45,7 +45,7 @@
<field name="resource_id" string="Resource"/>
<field name="company_id" string="Company" groups="base.group_multi_company"/>
<field name="calendar_id" string="Working Period"/>
- <group expand="0" string="Group By...">
+ <group expand="0" string="Group By">
<filter string="Resource" icon="terp-personal" domain="[]" context="{'group_by':'resource_id'}"/>
<filter string="Company" icon="terp-go-home" domain="[]" context="{'group_by':'company_id'}" groups="base.group_multi_company"/>
<filter string="Leave Month" icon="terp-go-month" domain="[]" context="{'group_by':'date_from'}" help="Starting Date of Leave by Month"/>
diff --git a/addons/sale/report/sale_report_view.xml b/addons/sale/report/sale_report_view.xml
index 0549867ddec..65695350dd1 100644
--- a/addons/sale/report/sale_report_view.xml
+++ b/addons/sale/report/sale_report_view.xml
@@ -32,7 +32,7 @@
<field name="categ_id"/>
<field name="company_id" groups="base.group_multi_company"/>
</group>
- <group expand="1" string="Group By...">
+ <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'}"/>
diff --git a/addons/sale/sale_view.xml b/addons/sale/sale_view.xml
index 8cd20ab4f22..d5d072c4513 100644
--- a/addons/sale/sale_view.xml
+++ b/addons/sale/sale_view.xml
@@ -258,7 +258,7 @@
<field name="user_id"/>
<field name="section_id" string="Sales Team" groups="base.group_multi_salesteams"/>
<field name="project_id"/>
- <group expand="0" string="Group By...">
+ <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'}"/>
@@ -427,7 +427,7 @@
<field name="order_partner_id" operator="child_of"/>
<field name="product_id"/>
<field name="salesman_id"/>
- <group expand="0" string="Group By...">
+ <group expand="0" string="Group By">
<filter string="Product" icon="terp-accessories-archiver" domain="[]" context="{'group_by':'product_id'}"/>
<filter string="Order" icon="terp-gtk-jump-to-rtl" domain="[]" context="{'group_by':'order_id'}"/>
<filter string="Salesperson" icon="terp-personal" domain="[]" context="{'group_by':'salesman_id'}"/>
@@ -453,7 +453,7 @@
<field name="order_partner_id" operator="child_of"/>
<field name="product_id"/>
<field name="salesman_id"/>
- <group expand="0" string="Group By...">
+ <group expand="0" string="Group By">
<filter string="Order" icon="terp-gtk-jump-to-rtl" domain="[]" context="{'group_by':'order_id'}" help="Order reference"/>
<filter string="Product" icon="terp-accessories-archiver" domain="[]" context="{'group_by':'product_id'}"/>
<filter string="Status" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
diff --git a/addons/stock/stock_view.xml b/addons/stock/stock_view.xml
index 2242c0dc2db..66c97aaefbe 100644
--- a/addons/stock/stock_view.xml
+++ b/addons/stock/stock_view.xml
@@ -62,7 +62,7 @@
<field name="name" string="Inventory Reference"/>
<field name="date"/>
<field name="company_id" groups="base.group_multi_company"/>
- <group expand="0" string="Group By...">
+ <group expand="0" string="Group By">
<filter string="Status" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
<filter string="Inventories Month" icon="terp-go-month" domain="[]" context="{'group_by':'date'}" help="Physical Inventories by Month"/>
</group>
@@ -244,7 +244,7 @@
<search string="Product Lots Filter">
<field name="name" string="Product Lots" filter_domain="['|',('name','ilike',self),('ref','ilike',self)]"/>
<field name="product_id"/>
- <group expand="0" string="Group By...">
+ <group expand="0" string="Group By">
<filter string="Product" icon="terp-accessories-archiver" domain="[]" context="{'group_by':'product_id'}"/>
</group>
</search>
@@ -815,7 +815,7 @@
<field name="product_id"/>
<field name="picking_type_id"/>
<field name="group_id"/>
- <group expand="0" string="Group By...">
+ <group expand="0" string="Group By">
<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'}"/>
<filter string="Expected Date" icon="terp-go-month" domain="[]" context="{'group_by':'min_date'}"/>
@@ -1178,7 +1178,7 @@
<field name="product_id"/>
<field name="name" string="Location" filter_domain="['|',('location_id','ilike',self),('location_dest_id','ilike',self)]"/>
<field name="partner_id" string="Partner" filter_domain="[('picking_id.partner_id','child_of',self)]"/>
- <group expand="0" string="Group By...">
+ <group expand="0" string="Group By">
<filter string="Product" name="by_product" icon="terp-accessories-archiver" domain="[]" context="{'group_by':'product_id'}"/>
<filter string="Picking" name="groupby_picking_id" icon="terp-accessories-archiver" domain="[]" context="{'group_by':'picking_id'}"/>
<filter string="Source" name="groupby_location_id" icon="terp-gtk-jump-to-rtl" domain="[]" context="{'group_by':'location_id'}" groups="stock.group_locations"/>
@@ -1530,7 +1530,7 @@
<field name="location_id" groups="stock.group_locations"/>
<field name="company_id" groups="base.group_multi_company"/>
<field name="product_id"/>
- <group expand="0" string="Group By...">
+ <group expand="0" string="Group By">
<filter string="Warehouse" icon="terp-go-home" domain="[]" context="{'group_by':'warehouse_id'}"/>
<filter string="Location" icon="terp-go-home" domain="[]" context="{'group_by':'location_id'}"/>
</group>
diff --git a/addons/stock_account/wizard/stock_valuation_history_view.xml b/addons/stock_account/wizard/stock_valuation_history_view.xml
index eb61d1d1d7c..6343aee26c4 100644
--- a/addons/stock_account/wizard/stock_valuation_history_view.xml
+++ b/addons/stock_account/wizard/stock_valuation_history_view.xml
@@ -74,7 +74,7 @@
<field name="product_id"/>
<field name="location_id" filter_domain="[('name', 'child_of', self)]"/>
<field name="company_id" groups="base.group_multi_company"/>
- <group expand="1" string="Group By...">
+ <group expand="1" string="Group By">
<filter string="Product" icon="terp-accessories-archiver" context="{'group_by':'product_id'}" name='group_by_product'/>
<filter string="Product Category" icon="terp-accessories-archiver" context="{'group_by':'product_categ_id'}"/>
<filter string="Location" icon="terp-accessories-archiver" context="{'group_by':'location_id'}" name='group_by_location'/>
diff --git a/addons/stock_landed_costs/stock_landed_costs_view.xml b/addons/stock_landed_costs/stock_landed_costs_view.xml
index 6938d9b1e91..d2e3cdac44d 100644
--- a/addons/stock_landed_costs/stock_landed_costs_view.xml
+++ b/addons/stock_landed_costs/stock_landed_costs_view.xml
@@ -132,7 +132,7 @@
<separator/>
<filter string="Draft" name="draft" domain="[('state','=','draft')]"/>
<filter string="Done" name="done" domain="[('state','=','done')]"/>
- <group expand="0" string="Group By...">
+ <group expand="0" string="Group By">
<filter string="Month" context="{'group_by': 'date'}"/>
<filter string="Status" context="{'group_by': 'state'}"/>
</group>
diff --git a/addons/stock_picking_wave/stock_picking_wave_view.xml b/addons/stock_picking_wave/stock_picking_wave_view.xml
index 5edcd9fc547..2825914a8cc 100644
--- a/addons/stock_picking_wave/stock_picking_wave_view.xml
+++ b/addons/stock_picking_wave/stock_picking_wave_view.xml
@@ -63,7 +63,7 @@
<field name="name" string="Picking Wave"/>
<filter name="in_progress" string="In Progress" domain="[('state','=', 'in_progress')]" help="Picking Waves not finished"/>
<field name="user_id"/>
- <group expand="0" string="Group By...">
+ <group expand="0" string="Group By">
<filter string="User" domain="[]" context="{'group_by':'user_id'}"/>
<filter string="State" domain="[]" context="{'group_by':'state'}"/>
</group>
diff --git a/addons/subscription/subscription_view.xml b/addons/subscription/subscription_view.xml
index 57e7c2ed1f4..593eefb65a2 100644
--- a/addons/subscription/subscription_view.xml
+++ b/addons/subscription/subscription_view.xml
@@ -75,7 +75,7 @@
domain="[('state','=','running')]"/>
<field name="user_id"/>
<field name="partner_id"/>
- <group expand="0" string="Group By...">
+ <group expand="0" string="Group By">
<filter string="User" icon="terp-personal" name="User" domain="[]" context="{'group_by':'user_id'}"/>
<filter string="Partner" icon="terp-partner" name="Partner" domain="[]" context="{'group_by':'partner_id'}"/>
<filter string="Status" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
diff --git a/addons/survey/views/survey_views.xml b/addons/survey/views/survey_views.xml
index c99dba6a53d..89af696af88 100644
--- a/addons/survey/views/survey_views.xml
+++ b/addons/survey/views/survey_views.xml
@@ -15,7 +15,7 @@
<filter string="Partially completed" domain="[('state', '=', 'skip')]"/>
<filter string="New" domain="[('state', '=', 'new')]"/>
<filter string="Test" domain="[('state','=', 'test')]"/>
- <group expand="0" string="Group By...">
+ <group expand="0" string="Group By">
<filter name="group_by_survey" string="Survey" domain="[]" context="{'group_by': 'survey_id'}"/>
<filter string="Email" domain="[]" context="{'group_by': 'email'}"/>
<filter string="Partner" domain="[]" context="{'group_by': ['partner_id']}"/>
@@ -271,7 +271,7 @@
<search string="Search Page">
<field name="title" string="Page"/>
<field name="survey_id" string="Survey"/>
- <group expand="0" string="Group By...">
+ <group expand="0" string="Group By">
<filter name="group_by_survey" string="Survey" domain="[]" context="{'group_by':'survey_id'}"/>
</group>
</search>
@@ -380,7 +380,7 @@
<field name="survey_id" string="Survey"/>
<field name="page_id" string="Page"/>
<field name="type" string="Type"/>
- <group expand="1" string="Group By...">
+ <group expand="1" string="Group By">
<filter name="group_by_page" string="Page" domain="[]" context="{'group_by':'page_id'}"/>
<filter name="group_by_type" string="Type" domain="[]" context="{'group_by':'type'}"/>
</group>
@@ -481,7 +481,7 @@
<search string="Search User input lines">
<field name="user_input_id"/>
<field name="survey_id"/>
- <group expand="1" string="Group By...">
+ <group expand="1" string="Group By">
<filter name="group_by_survey" string="Survey" domain="[]" context="{'group_by':'survey_id'}"/>
<filter name="group_by_user_input" string="User Input" domain="[]" context="{'group_by':'user_input_id'}"/>
</group>
diff --git a/addons/web/static/src/css/base.css b/addons/web/static/src/css/base.css
index f664baf5319..b234e2738df 100644
--- a/addons/web/static/src/css/base.css
+++ b/addons/web/static/src/css/base.css
@@ -1,4 +1,4 @@
-@charset "utf-8";
+@charset "UTF-8";
@font-face {
font-family: "mnmliconsRegular";
src: url("/web/static/src/font/mnmliconsv21-webfont.eot") format("eot");
@@ -994,19 +994,22 @@
background: #f0eeee;
border-right: 1px solid #afafb6;
text-shadow: none;
- padding-bottom: 16px;
}
-.openerp a.oe_logo {
- position: relative;
+.openerp .oe_leftbar > div {
+ height: 100%;
+ display: table;
width: 220px;
- display: block;
+ position: relative;
+}
+.openerp .oe_leftbar > div a.oe_logo {
+ display: table-row;
text-align: center;
}
-.openerp a.oe_logo img {
+.openerp .oe_leftbar > div a.oe_logo img {
margin: 14px 0;
border: 0;
}
-.openerp a.oe_logo .oe_logo_edit {
+.openerp .oe_leftbar > div a.oe_logo .oe_logo_edit {
margin: 14px 0;
position: absolute;
top: 1px;
@@ -1021,22 +1024,36 @@
-ms-box-sizing: border-box;
box-sizing: border-box;
}
-.openerp a.oe_logo:hover .oe_logo_edit_admin {
+.openerp .oe_leftbar > div a.oe_logo:hover .oe_logo_edit_admin {
display: block;
}
-.openerp .oe_footer {
- position: fixed;
+.openerp .oe_leftbar > div > div {
+ display: table-row;
+ height: 100%;
+}
+.openerp .oe_leftbar > div > div > div {
+ position: relative;
+ height: 100%;
+}
+.openerp .oe_leftbar > div > div > div > div.oe_secondary_menus_container {
+ position: absolute;
+ position: static\9;
+ top: 0;
bottom: 0;
- padding: 4px 0;
+ left: 0;
+ right: 0;
+ overflow-x: hidden;
+ overflow-y: auto;
+}
+.openerp .oe_leftbar > div .oe_footer {
background: #f0eeee;
- width: 220px;
text-align: center;
}
-.openerp .oe_footer a {
+.openerp .oe_leftbar > div .oe_footer a {
font-weight: bold;
color: black;
}
-.openerp .oe_footer a span {
+.openerp .oe_leftbar > div .oe_footer a span {
color: #a24689;
}
.openerp .oe_secondary_menu_section {
@@ -1140,8 +1157,26 @@
color: #7c7bad;
}
.openerp .oe_application > div {
+ position: relative;
height: 100%;
}
+.openerp .oe_application > div > .oe_view_manager > .oe_view_manager_wrapper {
+ display: table-row;
+ height: 100%;
+}
+.openerp .oe_application > div > .oe_view_manager > .oe_view_manager_wrapper > div {
+ position: relative;
+ height: 100%;
+}
+.openerp .oe_application > div > .oe_view_manager > .oe_view_manager_wrapper > div > .oe_view_manager_body {
+ position: absolute;
+ position: static\9;
+ top: 0;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ overflow: auto;
+}
.openerp .oe_application .oe_breadcrumb_item:not(:last-child) {
max-width: 7em;
white-space: nowrap;
@@ -1157,11 +1192,8 @@
height: inherit;
width: 100%;
}
-.openerp .oe_view_manager .oe_view_manager_body {
- height: inherit;
-}
.openerp .oe_view_manager .oe_view_manager_view_kanban:not(:empty) {
- height: inherit;
+ height: 100%;
}
.openerp .oe_view_manager[data-view-type=kanban] .oe_view_manager_body {
display: table-row;
@@ -1381,7 +1413,7 @@
float: right;
padding: 1px 0;
line-height: 18px;
- width: 400px;
+ min-width: 400px;
border: 1px solid #ababab;
background: white;
-moz-border-radius: 13px;
@@ -1556,59 +1588,64 @@
-webkit-border-radius: 2px;
border-radius: 2px;
}
-.openerp .oe_searchview.oe_searchview_open_drawer .oe_searchview_drawer {
- display: block;
+.openerp .oe_searchview_drawer_container {
+ overflow: auto;
}
-.openerp .oe_searchview .oe_searchview_drawer {
+.openerp .oe_searchview_drawer {
+ display: none;
+ width: 100%;
cursor: default;
- position: absolute;
- z-index: 2;
- margin-top: 4px;
- top: 100%;
- right: -1px;
- background-color: white;
- min-width: 100%;
display: none;
- border: 1px solid #afafb6;
+ overflow: hidden;
+ border-bottom: 1px solid #afafb6;
text-align: left;
- -moz-border-radius: 4px;
- -webkit-border-radius: 4px;
- border-radius: 4px;
- -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);
- -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);
- box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);
+ padding: 8px 0;
}
-.openerp .oe_searchview .oe_searchview_drawer > div {
- border-top: 1px solid #cccccc;
- margin: 0;
- padding: 8px;
+.openerp .oe_searchview_drawer .badge {
+ font-size: 12px;
+ line-height: 12px;
}
-.openerp .oe_searchview .oe_searchview_drawer > div:first-child {
- border-top: none;
- margin: 0;
+.openerp .oe_searchview_drawer > div:first-child {
+ border: none;
+ padding-left: 0;
+}
+.openerp .oe_searchview_drawer > div:first-child li:hover:not(.badge) {
+ background-color: #f0f0fa;
+}
+.openerp .oe_searchview_drawer .col-md-5 {
+ padding-left: 0;
}
-.openerp .oe_searchview .oe_searchview_drawer h3 {
- margin: 8px 4px 4px 0px;
+.openerp .oe_searchview_drawer dl {
+ margin-bottom: 0;
+}
+.openerp .oe_searchview_drawer dt {
color: #7c7bad;
font-size: 13px;
+ line-height: 24px;
}
-.openerp .oe_searchview .oe_searchview_drawer h4, .openerp .oe_searchview .oe_searchview_drawer h4 * {
+.openerp .oe_searchview_drawer dd {
+ line-height: 24px;
+ font-size: 13px;
+ padding-top: 3px;
+}
+.openerp .oe_searchview_drawer h4, .openerp .oe_searchview_drawer h4 * {
margin: 0 0 0 2px;
+ padding-left: 20px;
cursor: pointer;
font-weight: normal;
display: inline-block;
}
-.openerp .oe_searchview .oe_searchview_drawer h4:hover, .openerp .oe_searchview .oe_searchview_drawer h4 *:hover {
+.openerp .oe_searchview_drawer h4:hover, .openerp .oe_searchview_drawer h4 *:hover {
background-color: #f0f0fa;
}
-.openerp .oe_searchview .oe_searchview_drawer h4:before {
+.openerp .oe_searchview_drawer h4:before {
content: "â–¸ ";
color: #a3a3a3;
}
-.openerp .oe_searchview .oe_searchview_drawer button {
+.openerp .oe_searchview_drawer button {
margin: 4px 0;
}
-.openerp .oe_searchview .oe_searchview_drawer .button {
+.openerp .oe_searchview_drawer .button {
border: none;
background: transparent;
padding: 0 2px;
@@ -1619,126 +1656,112 @@
-webkit-border-radius: 0;
border-radius: 0;
}
-.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_section {
- display: table;
- width: 100%;
-}
-.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_section > div {
- -webkit-box-sizing: border-box;
- -moz-box-sizing: border-box;
- -ms-box-sizing: border-box;
- box-sizing: border-box;
- display: table-cell;
- width: 50%;
- padding-left: 2px;
-}
-.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_section ul {
- margin: 0 8px 8px;
+.openerp .oe_searchview_drawer .oe_searchview_section ul {
+ margin: 0 8px;
padding: 0;
list-style: none;
+ display: inline;
}
-.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_section li {
- list-style: none;
- padding: 2px 4px 2px 20px;
- line-height: 14px;
- color: inherit;
+.openerp .oe_searchview_drawer .oe_searchview_section li {
+ display: inline-block;
cursor: pointer;
position: relative;
+ margin-right: 8px;
}
-.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_section li.oe_selected:before {
- content: "W";
- font-family: "entypoRegular" !important;
- font-size: 24px;
- font-weight: 300 !important;
- color: #a3a3a3;
- position: absolute;
- left: 4px;
- top: -2px;
-}
-.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_section li:hover {
- background-color: #f0f0fa;
+.openerp .oe_searchview_drawer .oe_searchview_section li > span {
+ display: inline-block;
+ max-width: 250px;
+ text-overflow: ellipsis;
+ vertical-align: bottom;
+ overflow: hidden;
}
-.openerp .oe_searchview .oe_searchview_drawer form {
+.openerp .oe_searchview_drawer form {
margin-left: 12px;
}
-.openerp .oe_searchview .oe_searchview_drawer form p {
+.openerp .oe_searchview_drawer form p {
margin: 4px 0;
line-height: 18px;
}
-.openerp .oe_searchview .oe_searchview_drawer form button {
+.openerp .oe_searchview_drawer form button {
margin: 0 0 8px -3px;
}
-.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom {
- padding: 0 8px 8px 8px;
-}
-.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom div {
- padding: 0;
-}
-.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom div h4 {
- margin: 0;
+.openerp .oe_searchview_drawer .oe_searchview_savefilter form {
+ display: none;
}
-.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom form {
+.openerp .oe_searchview_drawer .oe_searchview_custom {
display: none;
}
-.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom li {
+.openerp .oe_searchview_drawer .oe_searchview_custom li {
cursor: pointer;
position: relative;
line-height: 14px;
- padding: 2px 4px 2px 20px;
+ margin-right: 0;
}
-.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom li:hover {
- background-color: #f0f0fa;
-}
-.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom li button {
+.openerp .oe_searchview_drawer .oe_searchview_custom li button {
position: absolute;
top: 0;
right: 5px;
}
-.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom label {
+.openerp .oe_searchview_drawer .oe_searchview_custom li a {
+ margin-left: 10px;
+ position: inherit;
+ visibility: hidden;
+ display: inline-block;
+}
+.openerp .oe_searchview_drawer .oe_searchview_custom li span:hover:not(.badge) {
+ background-color: #f0f0fa;
+}
+.openerp .oe_searchview_drawer .oe_searchview_custom li:hover a {
+ visibility: visible;
+}
+.openerp .oe_searchview_drawer .oe_searchview_custom label {
font-weight: normal;
}
-.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_dashboard form {
+.openerp .oe_searchview_drawer .oe_searchview_dashboard form {
display: none;
margin-top: 2px;
}
-.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_advanced form {
+.openerp .oe_searchview_drawer .oe_searchview_advanced {
+ overflow: auto;
+}
+.openerp .oe_searchview_drawer .oe_searchview_advanced form {
display: none;
margin-top: 8px;
}
-.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_advanced button.oe_add_condition:before {
+.openerp .oe_searchview_drawer .oe_searchview_advanced button.oe_add_condition:before {
content: "Z";
font-family: "entypoRegular" !important;
font-size: 24px;
font-weight: 300 !important;
margin-right: 4px;
}
-.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_advanced ul {
+.openerp .oe_searchview_drawer .oe_searchview_advanced ul {
list-style: none;
padding: 0;
}
-.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_advanced li {
+.openerp .oe_searchview_drawer .oe_searchview_advanced li {
position: relative;
list-style: none;
margin: 0;
white-space: nowrap;
}
-.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_advanced li:first-child .searchview_extended_prop_or {
+.openerp .oe_searchview_drawer .oe_searchview_advanced li:first-child .searchview_extended_prop_or {
visibility: hidden;
margin-left: -14px;
}
-.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_advanced .searchview_extended_prop_or {
+.openerp .oe_searchview_drawer .oe_searchview_advanced .searchview_extended_prop_or {
opacity: 0.5;
margin-left: -14px;
}
-.openerp .oe_searchview .oe_searchview_drawer .oe_opened h4:before {
+.openerp .oe_searchview_drawer .oe_opened h4:before {
content: "â–¾ ";
position: relative;
top: -1px;
}
-.openerp .oe_searchview .oe_searchview_drawer .oe_opened form {
+.openerp .oe_searchview_drawer .oe_opened form {
display: block;
}
-.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom_delete, .openerp .oe_searchview .oe_searchview_drawer .searchview_extended_delete_prop {
+.openerp .oe_searchview_drawer .oe_searchview_custom_delete, .openerp .oe_searchview_drawer .searchview_extended_delete_prop {
display: inline-block;
width: 12px;
height: 12px;
@@ -1750,7 +1773,7 @@
font-weight: bold;
text-shadow: 0 1px 1px white;
}
-.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom_delete:hover, .openerp .oe_searchview .oe_searchview_drawer .searchview_extended_delete_prop:hover {
+.openerp .oe_searchview_drawer .oe_searchview_custom_delete:hover, .openerp .oe_searchview_drawer .searchview_extended_delete_prop:hover {
text-decoration: none;
color: white;
background: #8786b7;
@@ -1759,16 +1782,16 @@
-webkit-border-radius: 2px;
border-radius: 2px;
}
-.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom_delete {
+.openerp .oe_searchview_drawer .oe_searchview_custom_delete {
display: none;
position: absolute;
bottom: 1px;
right: 4px;
}
-.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom_private:hover .oe_searchview_custom_delete, .openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom_public:hover .oe_searchview_custom_delete {
+.openerp .oe_searchview_drawer .oe_searchview_custom_private:hover .oe_searchview_custom_delete, .openerp .oe_searchview_drawer .oe_searchview_custom_public:hover .oe_searchview_custom_delete {
display: inline-block;
}
-.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom_public:after {
+.openerp .oe_searchview_drawer .oe_searchview_custom_public:after {
content: ",";
font-family: "entypoRegular" !important;
font-size: 22px;
@@ -3423,3 +3446,7 @@ input[type="radio"], input[type="checkbox"] {
background-color: black;
opacity: 0.6;
}
+
+body {
+ overflow: auto;
+}
diff --git a/addons/web/static/src/css/base.sass b/addons/web/static/src/css/base.sass
index 4d952cc47bb..093ebf6cb0b 100644
--- a/addons/web/static/src/css/base.sass
+++ b/addons/web/static/src/css/base.sass
@@ -844,40 +844,53 @@ $sheet-padding: 16px
background: #f0eeee
border-right: 1px solid $tag-border
text-shadow: none
- padding-bottom: 16px
- a.oe_logo
- position: relative
- width: 220px
- display: block
- text-align: center
- img
- margin: 14px 0
- border: 0
- .oe_logo_edit
- margin: 14px 0
- position: absolute
- top: 1px
- padding: 4px
- width: 100%
- display: none
- text-align: center
- color: #eee
- background: rgba(37,37,37,0.9)
- @include box-sizing(border)
- &:hover .oe_logo_edit_admin
- display: block
- .oe_footer
- position: fixed
- bottom: 0
- padding: 4px 0
- background: #f0eeee
- width: 220px
- text-align: center
- a
- font-weight: bold
- color: black
- span
- color: #a24689
+ > div
+ height: 100%
+ display: table
+ width: 220px
+ position: relative
+ a.oe_logo
+ display: table-row
+ text-align: center
+ img
+ margin: 14px 0
+ border: 0
+ .oe_logo_edit
+ margin: 14px 0
+ position: absolute
+ top: 1px
+ padding: 4px
+ width: 100%
+ display: none
+ text-align: center
+ color: #eee
+ background: rgba(37,37,37,0.9)
+ @include box-sizing(border)
+ &:hover .oe_logo_edit_admin
+ display: block
+ > div
+ display: table-row
+ height: 100%
+ > div
+ position: relative
+ height: 100%
+ > div.oe_secondary_menus_container
+ position: absolute
+ position: static\9
+ top: 0
+ bottom: 0
+ left: 0
+ right: 0
+ overflow-x: hidden
+ overflow-y: auto
+ .oe_footer
+ background: #f0eeee
+ text-align: center
+ a
+ font-weight: bold
+ color: black
+ span
+ color: #a24689
// }}}
// Webclient.leftbar items {{{
@@ -955,7 +968,25 @@ $sheet-padding: 16px
a
color: $link-color
> div
+ position: relative
height: 100%
+ > .oe_view_manager
+ > .oe_view_manager_wrapper
+ display: table-row
+ height: 100%
+ > div
+ position: relative
+ height: 100%
+ > .oe_view_manager_body
+ position: absolute
+ position: static\9
+ top: 0
+ bottom: 0
+ left: 0
+ right: 0
+ overflow: auto
+
+
.oe_breadcrumb_item:not(:last-child)
max-width: 7em
white-space: nowrap
@@ -970,10 +1001,8 @@ $sheet-padding: 16px
display: table
height: inherit
width: 100%
- .oe_view_manager_body
- height: inherit
.oe_view_manager_view_kanban:not(:empty)
- height: inherit
+ height: 100%
&[data-view-type=kanban]
.oe_view_manager_body
display: table-row
@@ -1150,7 +1179,7 @@ $sheet-padding: 16px
float: right
padding: 1px 0
line-height: 18px
- width: 400px
+ min-width: 400px
border: 1px solid #ababab
background: white
@include radius(13px)
@@ -1277,188 +1306,180 @@ $sheet-padding: 16px
background: #8786b7
text-shadow: 0 1px 1px rgba(0, 0, 0, 0.4)
@include radius(2px)
- &.oe_searchview_open_drawer
- .oe_searchview_drawer
- display: block
- .oe_searchview_drawer
- cursor: default
- position: absolute
- z-index: 2
- // detach drawer from field slightly
- margin-top: 4px
- top: 100%
- right: -1px
- background-color: white
- min-width: 100%
- display: none
- border: 1px solid $tag-border
- text-align: left
- @include radius(4px)
- @include box-shadow(0 1px 4px rgba(0,0,0,0.3))
- > div
- border-top: 1px solid #ccc
- margin: 0
- padding: 8px
- > div:first-child
- border-top: none
- margin: 0
- h3
- margin: 8px 4px 4px 0px
- color: $section-title-color
- font-size: 13px
- h4, h4 *
- margin: 0 0 0 2px
- cursor: pointer
- font-weight: normal
+ .oe_searchview_drawer_container
+ overflow: auto
+ .oe_searchview_drawer
+ display: none
+ width: 100%
+ cursor: default
+ display: none
+ overflow: hidden
+ border-bottom: 1px solid $tag-border
+ text-align: left
+ padding: 8px 0
+ .badge
+ font-size: 12px
+ line-height: 12px
+ > div:first-child
+ border: none
+ padding-left: 0
+ li:hover:not(.badge)
+ background-color: $hover-background
+ .col-md-5
+ padding-left: 0
+ dl
+ margin-bottom: 0
+ dt
+ color: $section-title-color
+ font-size: 13px
+ line-height: 24px
+ dd
+ line-height: 24px
+ font-size: 13px
+ padding-top: 3px
+ h4, h4 *
+ margin: 0 0 0 2px
+ padding-left: 20px
+ cursor: pointer
+ font-weight: normal
+ display: inline-block
+ &:hover
+ background-color: $hover-background
+ h4:before
+ content: "â–¸ "
+ color: #a3a3a3
+ button
+ margin: 4px 0
+ .button
+ border: none
+ background: transparent
+ padding: 0 2px
+ @include box-shadow(none)
+ @include radius(0)
+ .oe_searchview_section
+ ul
+ margin: 0 8px
+ padding: 0
+ list-style: none
+ display: inline
+ li
display: inline-block
- &:hover
- background-color: $hover-background
- h4:before
- content: "â–¸ "
- color: #a3a3a3
- button
+ cursor: pointer
+ position: relative
+ margin-right: 8px
+ > span
+ display: inline-block
+ max-width: 250px
+ text-overflow: ellipsis
+ vertical-align: bottom
+ overflow: hidden
+ form
+ margin-left: 12px
+ p
margin: 4px 0
- .button
- border: none
- background: transparent
- padding: 0 2px
- @include box-shadow(none)
- @include radius(0)
- .oe_searchview_section
- display: table
- width: 100%
- > div
- @include box-sizing(border)
- display: table-cell
- width: 50%
- padding-left: 2px // Managed padding-left according bootstrap3
- ul
- margin: 0 8px 8px
- padding: 0
- list-style: none
- li
- list-style: none
- padding: 2px 4px 2px 20px
- line-height: 14px
- color: inherit
- cursor: pointer
- position: relative
- &.oe_selected:before
- content: "W"
- font-family: "entypoRegular" !important
- font-size: 24px
- font-weight: 300 !important
- color: #a3a3a3
- position: absolute
- left: 4px
- top: -2px
- // after oe_selected so background color is not overridden
- &:hover
- background-color: $hover-background
+ line-height: 18px
+ button
+ margin: 0 0 8px -3px // Managed margin-left according bootstrap3
+ .oe_searchview_savefilter
form
- margin-left: 12px
- p
- margin: 4px 0
- line-height: 18px
+ display: none
+ .oe_searchview_custom
+ display: none
+ li
+ cursor: pointer
+ position: relative
+ line-height: 14px
+ margin-right: 0
button
- margin: 0 0 8px -3px // Managed margin-left according bootstrap3
- .oe_searchview_custom
- padding: 0 8px 8px 8px
- div
- padding: 0
- h4
- margin: 0
- form
- display: none
- li
- cursor: pointer
- position: relative
- line-height: 14px
- padding: 2px 4px 2px 20px
- &:hover
- background-color: $hover-background
- button
- position: absolute
- top: 0
- right: 5px
- //Customize for searchview label
- label
- font-weight: normal
- //End of Customize
- .oe_searchview_dashboard
- form
- display: none
- margin-top: 2px
-
- .oe_searchview_advanced
- form
- display: none
- margin-top: 8px
- button.oe_add_condition:before
- content: "Z"
- font-family: "entypoRegular" !important
- font-size: 24px
- font-weight: 300 !important
- margin-right: 4px
- ul
- list-style: none
- padding: 0
- li
- position: relative
- list-style: none
- margin: 0
- white-space: nowrap
- &:first-child .searchview_extended_prop_or
- visibility: hidden
- margin-left: -14px
- .searchview_extended_prop_or
- opacity: 0.5
- margin-left: -14px //Customize 'or' in searchview
- .oe_opened
- h4:before
- content: "â–¾ "
- position: relative
- top: -1px
- form
- display: block
+ position: absolute
+ top: 0
+ right: 5px
+ a
+ margin-left: 10px
+ position: inherit
+ visibility: hidden
+ display: inline-block
+ span:hover:not(.badge)
+ background-color: $hover-background
+ li:hover a
+ visibility: visible
+ //Customize for searchview label
+ label
+ font-weight: normal
+ //End of Customize
+ .oe_searchview_dashboard
+ form
+ display: none
+ margin-top: 2px
- // delete buttons
- .oe_searchview_custom_delete, .searchview_extended_delete_prop
- display: inline-block
- width: 12px
- height: 12px
- line-height: 12px
- padding: 1px
- color: #8786b7
- line-height: 8px
- text-align: center
- font-weight: bold
- text-shadow: 0 1px 1px white
- &:hover
- text-decoration: none
- color: white
- background: #8786b7
- text-shadow: 0 1px 1px rgba(0, 0, 0, 0.4)
- @include radius(2px)
- .oe_searchview_custom_delete
+ .oe_searchview_advanced
+ overflow: auto
+ form
display: none
- position: absolute
- bottom: 1px
- right: 4px
- .oe_searchview_custom_private, .oe_searchview_custom_public
- &:hover
- .oe_searchview_custom_delete
- display: inline-block
- .oe_searchview_custom_public:after
- content: ","
+ margin-top: 8px
+ button.oe_add_condition:before
+ content: "Z"
font-family: "entypoRegular" !important
- font-size: 22px
+ font-size: 24px
font-weight: 300 !important
- margin: 0 0 0 4px
+ margin-right: 4px
+ ul
+ list-style: none
padding: 0
+ li
+ position: relative
+ list-style: none
+ margin: 0
+ white-space: nowrap
+ &:first-child .searchview_extended_prop_or
+ visibility: hidden
+ margin-left: -14px
+ .searchview_extended_prop_or
+ opacity: 0.5
+ margin-left: -14px //Customize 'or' in searchview
+ .oe_opened
+ h4:before
+ content: "â–¾ "
+ position: relative
+ top: -1px
+ form
+ display: block
-
+ // delete buttons
+ .oe_searchview_custom_delete, .searchview_extended_delete_prop
+ display: inline-block
+ width: 12px
+ height: 12px
+ line-height: 12px
+ padding: 1px
+ color: #8786b7
+ line-height: 8px
+ text-align: center
+ font-weight: bold
+ text-shadow: 0 1px 1px white
+ &:hover
+ text-decoration: none
+ color: white
+ background: #8786b7
+ text-shadow: 0 1px 1px rgba(0, 0, 0, 0.4)
+ @include radius(2px)
+ .oe_searchview_custom_delete
+ display: none
+ position: absolute
+ bottom: 1px
+ right: 4px
+ .oe_searchview_custom_private, .oe_searchview_custom_public
+ &:hover
+ .oe_searchview_custom_delete
+ display: inline-block
+ .oe_searchview_custom_public:after
+ content: ","
+ font-family: "entypoRegular" !important
+ font-size: 22px
+ font-weight: 300 !important
+ margin: 0 0 0 4px
+ padding: 0
// }}}
// Views Common {{{
.oe_view_nocontent
@@ -2779,5 +2800,7 @@ input[type="radio"], input[type="checkbox"]
opacity: 0.6000000238418579
+body
+ overflow: auto
// au BufWritePost,FileWritePost *.sass :!sass --style expanded --line-numbers <afile> > "%:p:r.css"
// vim:tabstop=4:shiftwidth=4:softtabstop=4:fdm=marker:
diff --git a/addons/web/static/src/js/search.js b/addons/web/static/src/js/search.js
index 832faa4ca62..5653447566b 100644
--- a/addons/web/static/src/js/search.js
+++ b/addons/web/static/src/js/search.js
@@ -340,7 +340,8 @@ instance.web.SearchView = instance.web.Widget.extend(/** @lends instance.web.Sea
},
'click .oe_searchview_unfold_drawer': function (e) {
e.stopImmediatePropagation();
- this.$el.toggleClass('oe_searchview_open_drawer');
+ if (this.drawer)
+ this.drawer.toggle();
},
'keydown .oe_searchview_input, .oe_searchview_facet': function (e) {
switch(e.which) {
@@ -383,19 +384,24 @@ instance.web.SearchView = instance.web.Widget.extend(/** @lends instance.web.Sea
this.defaults = defaults || {};
this.has_defaults = !_.isEmpty(this.defaults);
- this.inputs = [];
- this.controls = [];
-
this.headless = this.options.hidden && !this.has_defaults;
this.input_subviews = [];
+ this.view_manager = null;
+ this.$view_manager_header = null;
this.ready = $.Deferred();
+ this.drawer_ready = $.Deferred();
+ this.fields_view_get = $.Deferred();
+ this.drawer = new instance.web.SearchViewDrawer(parent, this);
+
},
start: function() {
var self = this;
var p = this._super();
+ this.$view_manager_header = this.$el.parents(".oe_view_manager_header").first();
+
this.setup_global_completion();
this.query = new my.SearchQuery()
.on('add change reset remove', this.proxy('do_search'))
@@ -416,20 +422,32 @@ instance.web.SearchView = instance.web.Widget.extend(/** @lends instance.web.Sea
});
this.alive($.when(load_view)).then(function (r) {
+ self.fields_view_get.resolve(r);
return self.search_view_loaded(r);
}).fail(function () {
self.ready.reject.apply(null, arguments);
});
}
- instance.web.bus.on('click', this, function(ev) {
- if ($(ev.target).parents('.oe_searchview').length === 0) {
- self.$el.removeClass('oe_searchview_open_drawer');
- }
- });
+ var view_manager = this.getParent();
+ while (!(view_manager instanceof instance.web.ViewManager) &&
+ view_manager && view_manager.getParent) {
+ view_manager = view_manager.getParent();
+ }
+ if (view_manager) {
+ this.view_manager = view_manager;
+ view_manager.on('switch_mode', this, function (e) {
+ self.drawer.toggle(e === 'graph');
+ });
+ }
return $.when(p, this.ready);
},
+
+ set_drawer: function (drawer) {
+ this.drawer = drawer;
+ },
+
show: function () {
this.$el.show();
},
@@ -463,14 +481,6 @@ instance.web.SearchView = instance.web.Widget.extend(/** @lends instance.web.Sea
},
/**
- * Sets up thingie where all the mess is put?
- */
- select_for_drawer: function () {
- return _(this.inputs).filter(function (input) {
- return input.in_drawer();
- });
- },
- /**
* Sets up search view's view-wide auto-completion widget
*/
setup_global_completion: function () {
@@ -530,7 +540,7 @@ instance.web.SearchView = instance.web.Widget.extend(/** @lends instance.web.Sea
* @param {Function} resp response callback
*/
complete_global_search: function (req, resp) {
- $.when.apply(null, _(this.inputs).chain()
+ $.when.apply(null, _(this.drawer.inputs).chain()
.filter(function (input) { return input.visible(); })
.invoke('complete', req.term)
.value()).then(function () {
@@ -630,87 +640,6 @@ instance.web.SearchView = instance.web.Widget.extend(/** @lends instance.web.Sea
});
},
- /**
- * Builds a list of widget rows (each row is an array of widgets)
- *
- * @param {Array} items a list of nodes to convert to widgets
- * @param {Object} fields a mapping of field names to (ORM) field attributes
- * @param {Object} [group] group to put the new controls in
- */
- make_widgets: function (items, fields, group) {
- if (!group) {
- group = new instance.web.search.Group(
- this, 'q', {attrs: {string: _t("Filters")}});
- }
- var self = this;
- var filters = [];
- _.each(items, function (item) {
- if (filters.length && item.tag !== 'filter') {
- group.push(new instance.web.search.FilterGroup(filters, group));
- filters = [];
- }
-
- switch (item.tag) {
- case 'separator': case 'newline':
- break;
- case 'filter':
- filters.push(new instance.web.search.Filter(item, group));
- break;
- case 'group':
- self.make_widgets(item.children, fields,
- new instance.web.search.Group(group, 'w', item));
- break;
- case 'field':
- var field = this.make_field(
- item, fields[item['attrs'].name], group);
- group.push(field);
- // filters
- self.make_widgets(item.children, fields, group);
- break;
- }
- }, this);
-
- if (filters.length) {
- group.push(new instance.web.search.FilterGroup(filters, this));
- }
- },
- /**
- * Creates a field for the provided field descriptor item (which comes
- * from fields_view_get)
- *
- * @param {Object} item fields_view_get node for the field
- * @param {Object} field fields_get result for the field
- * @param {Object} [parent]
- * @returns instance.web.search.Field
- */
- make_field: function (item, field, parent) {
- // M2O combined with selection widget is pointless and broken in search views,
- // but has been used in the past for unsupported hacks -> ignore it
- if (field.type === "many2one" && item.attrs.widget === "selection"){
- item.attrs.widget = undefined;
- }
- var obj = instance.web.search.fields.get_any( [item.attrs.widget, field.type]);
- if(obj) {
- return new (obj) (item, field, parent || this);
- } else {
- console.group('Unknown field type ' + field.type);
- console.error('View node', item);
- console.info('View field', field);
- console.info('In view', this);
- console.groupEnd();
- return null;
- }
- },
-
- add_common_inputs: function() {
- // add Filters to this.inputs, need view.controls filled
- (new instance.web.search.Filters(this));
- // add custom filters to this.inputs
- this.custom_filters = new instance.web.search.CustomFilters(this);
- // add Advanced to this.inputs
- (new instance.web.search.Advanced(this));
- },
-
search_view_loaded: function(data) {
var self = this;
this.fields_view = data;
@@ -720,24 +649,9 @@ instance.web.SearchView = instance.web.Widget.extend(/** @lends instance.web.Sea
"Got non-search view after asking for a search view: type %s, arch root %s",
data.type, data.arch.tag));
}
- this.make_widgets(
- data['arch'].children,
- data.fields);
-
- this.add_common_inputs();
- // build drawer
- var drawer_started = $.when.apply(
- null, _(this.select_for_drawer()).invoke(
- 'appendTo', this.$('.oe_searchview_drawer')));
-
-
- // load defaults
- var defaults_fetched = $.when.apply(null, _(this.inputs).invoke(
- 'facet_for_defaults', this.defaults))
- .then(this.proxy('setup_default_query'));
-
- return $.when(drawer_started, defaults_fetched)
+ return this.drawer_ready
+ .then(this.proxy('setup_default_query'))
.then(function () {
self.trigger("search_view_loaded", data);
self.ready.resolve();
@@ -747,14 +661,14 @@ instance.web.SearchView = instance.web.Widget.extend(/** @lends instance.web.Sea
// Hacky implementation of CustomFilters#facet_for_defaults ensure
// CustomFilters will be ready (and CustomFilters#filters will be
// correctly filled) by the time this method executes.
- var custom_filters = this.custom_filters.filters;
+ var custom_filters = this.drawer.custom_filters.filters;
if (!this.options.disable_custom_filters && !_(custom_filters).isEmpty()) {
// Check for any is_default custom filter
var personal_filter = _(custom_filters).find(function (filter) {
return filter.user_id && filter.is_default;
});
if (personal_filter) {
- this.custom_filters.toggle_filter(personal_filter, true);
+ this.drawer.custom_filters.toggle_filter(personal_filter, true);
return;
}
@@ -762,7 +676,7 @@ instance.web.SearchView = instance.web.Widget.extend(/** @lends instance.web.Sea
return !filter.user_id && filter.is_default;
});
if (global_filter) {
- this.custom_filters.toggle_filter(global_filter, true);
+ this.drawer.custom_filters.toggle_filter(global_filter, true);
return;
}
}
@@ -872,9 +786,167 @@ instance.web.SearchView = instance.web.Widget.extend(/** @lends instance.web.Sea
on_invalid: function (errors) {
this.do_notify(_t("Invalid Search"), _t("triggered from search view"));
this.trigger('invalid_search', errors);
+ },
+
+ // The method appendTo is overwrited to be able to insert the drawer anywhere
+ appendTo: function ($searchview_parent, $searchview_drawer_node) {
+ var $searchview_drawer_node = $searchview_drawer_node || $searchview_parent;
+
+ return $.when(
+ this._super($searchview_parent),
+ this.drawer.appendTo($searchview_drawer_node)
+ );
+ },
+
+ destroy: function () {
+ this.drawer.destroy();
+ this.getParent().destroy.call(this);
}
});
+instance.web.SearchViewDrawer = instance.web.Widget.extend({
+ template: "SearchViewDrawer",
+
+ init: function(parent, searchview) {
+ this._super(parent);
+ this.searchview = searchview;
+ this.searchview.set_drawer(this);
+ this.ready = searchview.drawer_ready;
+ this.controls = [];
+ this.inputs = [];
+ },
+
+ toggle: function (visibility) {
+ this.$el.toggle(visibility);
+ var $view_manager_body = this.$el.closest('.oe_view_manager_body');
+ if ($view_manager_body.length) {
+ $view_manager_body.scrollTop(0);
+ }
+ },
+
+ start: function() {
+ var self = this;
+ var filters_ready = this.searchview.fields_view_get
+ .then(this.proxy('prepare_filters'));
+ return $.when(this._super(), filters_ready).then(function () {
+ var defaults = arguments[1][0];
+ self.ready.resolve.apply(null, defaults);
+ });
+ },
+ prepare_filters: function (data) {
+ this.make_widgets(
+ data['arch'].children,
+ data.fields);
+
+ this.add_common_inputs();
+
+ // build drawer
+ var in_drawer = this.select_for_drawer();
+
+ var $first_col = this.$(".col-md-7"),
+ $snd_col = this.$(".col-md-5");
+
+ var add_custom_reports = in_drawer[0].appendTo($first_col),
+ add_filters = in_drawer[1].appendTo($first_col),
+ add_rest = $.when.apply(null, _(in_drawer.slice(2)).invoke('appendTo', $snd_col)),
+ defaults_fetched = $.when.apply(null, _(this.inputs).invoke(
+ 'facet_for_defaults', this.searchview.defaults));
+
+ return $.when(defaults_fetched, add_custom_reports, add_filters, add_rest);
+ },
+ /**
+ * Sets up thingie where all the mess is put?
+ */
+ select_for_drawer: function () {
+ return _(this.inputs).filter(function (input) {
+ return input.in_drawer();
+ });
+ },
+
+ /**
+ * Builds a list of widget rows (each row is an array of widgets)
+ *
+ * @param {Array} items a list of nodes to convert to widgets
+ * @param {Object} fields a mapping of field names to (ORM) field attributes
+ * @param {Object} [group] group to put the new controls in
+ */
+ make_widgets: function (items, fields, group) {
+ if (!group) {
+ group = new instance.web.search.Group(
+ this, 'q', {attrs: {string: _t("Filters")}});
+ }
+ var self = this;
+ var filters = [];
+ _.each(items, function (item) {
+ if (filters.length && item.tag !== 'filter') {
+ group.push(new instance.web.search.FilterGroup(filters, group));
+ filters = [];
+ }
+
+ switch (item.tag) {
+ case 'separator': case 'newline':
+ break;
+ case 'filter':
+ filters.push(new instance.web.search.Filter(item, group));
+ break;
+ case 'group':
+ self.make_widgets(item.children, fields,
+ new instance.web.search.Group(group, 'w', item));
+ break;
+ case 'field':
+ var field = this.make_field(
+ item, fields[item['attrs'].name], group);
+ group.push(field);
+ // filters
+ self.make_widgets(item.children, fields, group);
+ break;
+ }
+ }, this);
+
+ if (filters.length) {
+ group.push(new instance.web.search.FilterGroup(filters, this));
+ }
+ },
+ /**
+ * Creates a field for the provided field descriptor item (which comes
+ * from fields_view_get)
+ *
+ * @param {Object} item fields_view_get node for the field
+ * @param {Object} field fields_get result for the field
+ * @param {Object} [parent]
+ * @returns instance.web.search.Field
+ */
+ make_field: function (item, field, parent) {
+ // M2O combined with selection widget is pointless and broken in search views,
+ // but has been used in the past for unsupported hacks -> ignore it
+ if (field.type === "many2one" && item.attrs.widget === "selection"){
+ item.attrs.widget = undefined;
+ }
+ var obj = instance.web.search.fields.get_any( [item.attrs.widget, field.type]);
+ if(obj) {
+ return new (obj) (item, field, parent || this);
+ } else {
+ console.group('Unknown field type ' + field.type);
+ console.error('View node', item);
+ console.info('View field', field);
+ console.info('In view', this);
+ console.groupEnd();
+ return null;
+ }
+ },
+
+ add_common_inputs: function() {
+ // add custom filters to this.inputs
+ this.custom_filters = new instance.web.search.CustomReports(this);
+ // add Filters to this.inputs, need view.controls filled
+ (new instance.web.search.Filters(this));
+ (new instance.web.search.SaveFilter(this, this.custom_filters));
+ // add Advanced to this.inputs
+ (new instance.web.search.Advanced(this));
+ },
+
+});
+
/**
* Registry of search fields, called by :js:class:`instance.web.SearchView` to
* find and instantiate its field widgets.
@@ -932,9 +1004,10 @@ instance.web.search.Widget = instance.web.Widget.extend( /** @lends instance.web
this._super(parent);
var ancestor = parent;
do {
- this.view = ancestor;
- } while (!(ancestor instanceof instance.web.SearchView)
+ this.drawer = ancestor;
+ } while (!(ancestor instanceof instance.web.SearchViewDrawer)
&& (ancestor = (ancestor.getParent && ancestor.getParent())));
+ this.view = this.drawer.searchview || this.drawer;
}
});
@@ -956,7 +1029,7 @@ instance.web.search.Group = instance.web.search.Widget.extend({
this.name = attrs.string;
this.children = [];
- this.view.controls.push(this);
+ this.drawer.controls.push(this);
},
push: function (input) {
this.children.push(input);
@@ -977,7 +1050,7 @@ instance.web.search.Input = instance.web.search.Widget.extend( /** @lends instan
init: function (parent) {
this._super(parent);
this.load_attrs({});
- this.view.inputs.push(this);
+ this.drawer.inputs.push(this);
},
/**
* Fetch auto-completion values for the widget.
@@ -1088,7 +1161,7 @@ instance.web.search.FilterGroup = instance.web.search.Input.extend(/** @lends in
*/
search_change: function () {
var self = this;
- var $filters = this.$('> li').removeClass('oe_selected');
+ var $filters = this.$('> li').removeClass('badge');
var facet = this.view.query.find(_.bind(this.match_facet, this));
if (!facet) { return; }
facet.values.each(function (v) {
@@ -1096,7 +1169,7 @@ instance.web.search.FilterGroup = instance.web.search.Input.extend(/** @lends in
if (i === -1) { return; }
$filters.filter(function () {
return Number($(this).data('index')) === i;
- }).addClass('oe_selected');
+ }).addClass('badge');
});
},
/**
@@ -1628,12 +1701,12 @@ instance.web.search.ManyToOneField = instance.web.search.CharField.extend({
}
});
-instance.web.search.CustomFilters = instance.web.search.Input.extend({
- template: 'SearchView.CustomFilters',
+instance.web.search.CustomReports = instance.web.search.Input.extend({
+ template: 'SearchView.CustomReports',
_in_drawer: true,
init: function () {
this.is_ready = $.Deferred();
- this._super.apply(this, arguments);
+ this._super.apply(this,arguments);
},
start: function () {
var self = this;
@@ -1648,13 +1721,6 @@ instance.web.search.CustomFilters = instance.web.search.Input.extend({
self.clear_selection();
})
.on('reset', this.proxy('clear_selection'));
- this.$el.on('submit', 'form', this.proxy('save_current'));
- this.$el.on('click', 'input[type=checkbox]', function() {
- $(this).siblings('input[type=checkbox]').prop('checked', false);
- });
- this.$el.on('click', 'h4', function () {
- self.$el.toggleClass('oe_opened');
- });
return this.model.call('get_filters', [this.view.model])
.then(this.proxy('set_filters'))
.done(function () { self.is_ready.resolve(); })
@@ -1708,7 +1774,7 @@ instance.web.search.CustomFilters = instance.web.search.Input.extend({
};
},
clear_selection: function () {
- this.$('li.oe_selected').removeClass('oe_selected');
+ this.$('span.badge').removeClass('badge');
},
append_filter: function (filter) {
var self = this;
@@ -1721,12 +1787,13 @@ instance.web.search.CustomFilters = instance.web.search.Input.extend({
} else {
var id = filter.id;
this.filters[key] = filter;
- $filter = this.$filters[key] = $('<li></li>')
+ $filter = $('<li></li>')
.appendTo(this.$('.oe_searchview_custom_list'))
- .addClass(filter.user_id ? 'oe_searchview_custom_private'
- : 'oe_searchview_custom_public')
.toggleClass('oe_searchview_custom_default', filter.is_default)
- .text(filter.name);
+ .append(this.$filters[key] = $('<span>').text(filter.name));
+
+ this.$filters[key].addClass(filter.user_id ? 'oe_searchview_custom_private'
+ : 'oe_searchview_custom_public')
$('<a class="oe_searchview_custom_delete">x</a>')
.click(function (e) {
@@ -1738,14 +1805,18 @@ instance.web.search.CustomFilters = instance.web.search.Input.extend({
$filter.remove();
delete self.$filters[key];
delete self.filters[key];
+ if (_.isEmpty(self.filters)) {
+ self.hide();
+ }
});
})
.appendTo($filter);
}
- $filter.unbind('click').click(function () {
+ this.$filters[key].unbind('click').click(function () {
self.toggle_filter(filter);
});
+ this.show();
},
toggle_filter: function (filter, preventSearch) {
var current = this.view.query.find(function (facet) {
@@ -1753,15 +1824,44 @@ instance.web.search.CustomFilters = instance.web.search.Input.extend({
});
if (current) {
this.view.query.remove(current);
- this.$filters[this.key_for(filter)].removeClass('oe_selected');
+ this.$filters[this.key_for(filter)].removeClass('badge');
return;
}
this.view.query.reset([this.facet_for(filter)], {
preventSearch: preventSearch || false});
- this.$filters[this.key_for(filter)].addClass('oe_selected');
+ this.$filters[this.key_for(filter)].addClass('badge');
},
set_filters: function (filters) {
_(filters).map(_.bind(this.append_filter, this));
+ if (!filters.length) {
+ this.hide();
+ }
+ },
+ hide: function () {
+ this.$el.hide();
+ },
+ show: function () {
+ this.$el.show();
+ },
+});
+
+instance.web.search.SaveFilter = instance.web.search.Input.extend({
+ template: 'SearchView.SaveFilter',
+ _in_drawer: true,
+ init: function (parent, custom_reports) {
+ this._super(parent);
+ this.custom_reports = custom_reports;
+ },
+ start: function () {
+ var self = this;
+ this.model = new instance.web.Model('ir.filters');
+ this.$el.on('submit', 'form', this.proxy('save_current'));
+ this.$el.on('click', 'input[type=checkbox]', function() {
+ $(this).siblings('input[type=checkbox]').prop('checked', false);
+ });
+ this.$el.on('click', 'h4', function () {
+ self.$el.toggleClass('oe_opened');
+ });
},
save_current: function () {
var self = this;
@@ -1799,14 +1899,16 @@ instance.web.search.CustomFilters = instance.web.search.Input.extend({
// FIXME: current context?
return self.model.call('create_or_replace', [filter]).done(function (id) {
filter.id = id;
- self.append_filter(filter);
+ if (self.custom_reports) {
+ self.custom_reports.append_filter(filter);
+ }
self.$el
.removeClass('oe_opened')
.find('form')[0].reset();
});
});
return false;
- }
+ },
});
instance.web.search.Filters = instance.web.search.Input.extend({
@@ -1814,22 +1916,13 @@ instance.web.search.Filters = instance.web.search.Input.extend({
_in_drawer: true,
start: function () {
var self = this;
- var running_count = 0;
- // get total filters count
var is_group = function (i) { return i instanceof instance.web.search.FilterGroup; };
- var visible_filters = _(this.view.controls).chain().reject(function (group) {
+ var visible_filters = _(this.drawer.controls).chain().reject(function (group) {
return _(_(group.children).filter(is_group)).isEmpty()
|| group.modifiers.invisible;
});
- var filters_count = visible_filters
- .pluck('children')
- .flatten()
- .filter(is_group)
- .map(function (i) { return i.filters.length; })
- .sum()
- .value();
- var col1 = [], col2 = visible_filters.map(function (group) {
+ var groups = visible_filters.map(function (group) {
var filters = _(group.children).filter(is_group);
return {
name: _.str.sprintf("<span class='oe_i'>%s</span> %s",
@@ -1840,27 +1933,16 @@ instance.web.search.Filters = instance.web.search.Input.extend({
};
}).value();
- while (col2.length) {
- // col1 + group should be smaller than col2 + group
- if ((running_count + col2[0].length) <= (filters_count - running_count)) {
- running_count += col2[0].length;
- col1.push(col2.shift());
- } else {
- break;
- }
- }
+ var $dl = $('<dl class="dl-horizontal">').appendTo(this.$el);
- return $.when(
- this.render_column(col1, $('<div>').appendTo(this.$el)),
- this.render_column(col2, $('<div>').appendTo(this.$el)));
- },
- render_column: function (column, $el) {
- return $.when.apply(null, _(column).map(function (group) {
- $('<h3>').html(group.name).appendTo($el);
- return $.when.apply(null,
- _(group.filters).invoke('appendTo', $el));
- }));
- }
+ var rendered_lines = _.map(groups, function (group) {
+ $('<dt>').html(group.name).appendTo($dl);
+ var $dd = $('<dd>').appendTo($dl);
+ return $.when.apply(null, _(group.filters).invoke('appendTo', $dd));
+ });
+
+ return $.when.apply(this, rendered_lines);
+ },
});
instance.web.search.Advanced = instance.web.search.Input.extend({
diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js
index b03820eecaa..e276a5e3995 100644
--- a/addons/web/static/src/js/view_form.js
+++ b/addons/web/static/src/js/view_form.js
@@ -5306,8 +5306,12 @@ instance.web.form.SelectCreatePopup = instance.web.form.AbstractFormPopup.extend
if (this.searchview) {
this.searchview.destroy();
}
+ if (this.searchview_drawer) {
+ this.searchview_drawer.destroy();
+ }
this.searchview = new instance.web.SearchView(this,
this.dataset, false, search_defaults);
+ this.searchview_drawer = new instance.web.SearchViewDrawer(this, this.searchview);
this.searchview.on('search_data', self, function(domains, contexts, groupbys) {
if (self.initial_ids) {
self.do_search(domains.concat([[["id", "in", self.initial_ids]], self.domain]),
@@ -5353,7 +5357,7 @@ instance.web.form.SelectCreatePopup = instance.web.form.AbstractFormPopup.extend
});
});
});
- this.searchview.appendTo($(".oe_popup_search", self.$el));
+ this.searchview.appendTo(this.$(".oe_popup_search"));
},
do_search: function(domains, contexts, groupbys) {
var self = this;
diff --git a/addons/web/static/src/js/views.js b/addons/web/static/src/js/views.js
index ec233159d63..19597add308 100644
--- a/addons/web/static/src/js/views.js
+++ b/addons/web/static/src/js/views.js
@@ -607,7 +607,6 @@ instance.web.ViewManager = instance.web.Widget.extend({
// If no default view defined, switch to the first one in sequence
var default_view = this.flags.default_view || this.views_src[0].view_type;
-
return this.switch_mode(default_view, null, this.flags[default_view] && this.flags[default_view].options);
@@ -647,7 +646,7 @@ instance.web.ViewManager = instance.web.Widget.extend({
_.each(_.keys(self.views), function(view_name) {
var controller = self.views[view_name].controller;
if (controller) {
- var container = self.$el.find("> .oe_view_manager_body > .oe_view_manager_view_" + view_name);
+ var container = self.$el.find("> div > div > .oe_view_manager_body > .oe_view_manager_view_" + view_name);
if (view_name === view_type) {
container.show();
controller.do_show(view_options || {});
@@ -690,7 +689,7 @@ instance.web.ViewManager = instance.web.Widget.extend({
controller.on('switch_mode', self, this.switch_mode);
controller.on('previous_view', self, this.prev_view);
- var container = this.$el.find("> .oe_view_manager_body > .oe_view_manager_view_" + view_type);
+ var container = this.$el.find("> div > div > .oe_view_manager_body > .oe_view_manager_view_" + view_type);
var view_promise = controller.appendTo(container);
this.views[view_type].controller = controller;
this.views[view_type].deferred.resolve(view_type);
@@ -705,6 +704,7 @@ instance.web.ViewManager = instance.web.Widget.extend({
self.trigger("controller_inited",view_type,controller);
});
},
+
/**
* @returns {Number|Boolean} the view id of the given type, false if not found
*/
@@ -800,6 +800,7 @@ instance.web.ViewManager = instance.web.Widget.extend({
if (this.searchview) {
this.searchview.destroy();
}
+
var options = {
hidden: this.flags.search_view === false,
disable_custom_filters: this.flags.search_disable_custom_filters,
@@ -807,7 +808,8 @@ instance.web.ViewManager = instance.web.Widget.extend({
this.searchview = new instance.web.SearchView(this, this.dataset, view_id, search_defaults, options);
this.searchview.on('search_data', self, this.do_searchview_search);
- return this.searchview.appendTo(this.$el.find(".oe_view_manager_view_search"));
+ return this.searchview.appendTo(this.$(".oe_view_manager_view_search"),
+ this.$(".oe_searchview_drawer_container"));
},
do_searchview_search: function(domains, contexts, groupbys) {
var self = this,
diff --git a/addons/web/static/src/xml/base.xml b/addons/web/static/src/xml/base.xml
index de544c7dff8..913783a2396 100644
--- a/addons/web/static/src/xml/base.xml
+++ b/addons/web/static/src/xml/base.xml
@@ -440,14 +440,20 @@
</tr>
<tr>
<td class="oe_leftbar" valign="top">
- <t t-set="debug" t-value="__debug__ ? '&amp;debug' : ''"/>
- <a class="oe_logo" t-attf-href="/web?#{debug}">
- <span class="oe_logo_edit">Edit Company data</span>
- <img t-att-src='widget.session.url("/web/binary/company_logo")'/>
- </a>
- <div class="oe_secondary_menus_container"/>
- <div class="oe_footer">
- Powered by <a href="https://www.odoo.com" target="_blank"><span>Odoo</span></a>
+ <div>
+ <t t-set="debug" t-value="__debug__ ? '&amp;debug' : ''"/>
+ <a class="oe_logo" t-attf-href="/web?#{debug}">
+ <span class="oe_logo_edit">Edit Company data</span>
+ <img t-att-src='widget.session.url("/web/binary/company_logo")'/>
+ </a>
+ <div>
+ <div>
+ <div class="oe_secondary_menus_container"/>
+ </div>
+ </div>
+ <div class="oe_footer">
+ Powered by <a href="http://www.odoo.com" target="_blank"><span>Odoo</span></a>
+ </div>
</div>
</td>
<td class="oe_application">
@@ -520,10 +526,15 @@
</tr>
</table>
- <div class="oe_view_manager_body">
- <t t-foreach="widget.views_src" t-as="view">
- <div t-attf-class="oe_view_manager_view_#{view.view_type}"/>
- </t>
+ <div class="oe_view_manager_wrapper">
+ <div>
+ <div class="oe_view_manager_body">
+ <div class="oe_searchview_drawer_container"/>
+ <t t-foreach="widget.views_src" t-as="view">
+ <div t-attf-class="oe_view_manager_view_#{view.view_type}"/>
+ </t>
+ </div>
+ </div>
</div>
</div>
</t>
@@ -1556,11 +1567,15 @@
<div class="oe_searchview_facets"/>
<div class="oe_searchview_clear"/>
<div class="oe_searchview_unfold_drawer" title="Advanced Search..."/>
- <div class="oe_searchview_drawer"/>
<button type="button" class="oe_searchview_search"
title="Search Again">Search</button>
</div>
+<div t-name="SearchViewDrawer" class="oe_searchview_drawer" style="display:none;">
+ <div class="col-md-7"></div>
+ <div class="col-md-5"></div>
+</div>
+
<div t-name="SearchView.InputView"
class="oe_searchview_input"
contenteditable="true"
@@ -1717,24 +1732,27 @@
<div t-name="SearchView.Filters" class="oe_searchview_filters oe_searchview_section">
</div>
-<div t-name="SearchView.CustomFilters" class="oe_searchview_custom oe_searchview_section">
- <div>
- <h3><span class="oe_i">M</span> Custom Filters</h3>
- <ul class="oe_searchview_custom_list"/>
- <div class="oe_searchview_custom">
- <h4>Save current filter</h4>
- <form class="oe_form">
- <p class="oe_form_required"><input id="oe_searchview_custom_input" placeholder="Filter name"/></p>
- <p>
- <input id="oe_searchview_custom_public" type="checkbox"/>
- <label for="oe_searchview_custom_public">Share with all users</label>
- <input id="oe_searchview_custom_default" type="checkbox"/>
- <label for="oe_searchview_custom_default">Use by default</label>
- </p>
- <button>Save</button>
- </form>
- </div>
- </div>
+
+
+<div t-name="SearchView.CustomReports" class="oe_searchview_custom oe_searchview_section">
+ <dl class="dl-horizontal">
+ <dt><span class="oe_i">M</span> Custom Reports</dt>
+ <dd><ul class="oe_searchview_custom_list"/></dd>
+ </dl>
+</div>
+
+ <div t-name="SearchView.SaveFilter" class="oe_searchview_savefilter">
+ <h4>Save current filter</h4>
+ <form class="oe_form">
+ <p class="oe_form_required"><input id="oe_searchview_custom_input" placeholder="Filter name"/></p>
+ <p>
+ <input id="oe_searchview_custom_public" type="checkbox"/>
+ <label for="oe_searchview_custom_public">Share with all users</label>
+ <input id="oe_searchview_custom_default" type="checkbox"/>
+ <label for="oe_searchview_custom_default">Use by default</label>
+ </p>
+ <button>Save</button>
+ </form>
</div>
<div t-name="SearchView.advanced" class="oe_searchview_advanced">
diff --git a/addons/web/static/test/search.js b/addons/web/static/test/search.js
index 96bbb660103..4724ca0792d 100644
--- a/addons/web/static/test/search.js
+++ b/addons/web/static/test/search.js
@@ -173,7 +173,9 @@ var makeSearchView = function (instance, dummy_widget_attributes, defaults) {
};
var dataset = new instance.web.DataSet(null, 'dummy.model');
- var view = new instance.web.SearchView(null, dataset, false, defaults);
+ var mock_parent = {getParent: function () {return null;}};
+
+ var view = new instance.web.SearchView(mock_parent, dataset, false, defaults);
var self = this;
view.on('invalid_search', self, function () {
ok(false, JSON.stringify([].slice(arguments)));
@@ -1071,10 +1073,10 @@ openerp.testing.section('search.filters', {
return view.appendTo($fix)
.done(function () {
var $fs = $fix.find('.oe_searchview_filters ul');
- // 3 filters, 1 filtergroup, 1 custom filters widget,
- // 1 advanced and 1 Filters widget
- equal(view.inputs.length, 7,
- 'view should have 7 inputs total');
+ // 3 filters, 1 filtergroup, 1 custom report widget,
+ // 1 Filters, 1 SaveFilter widget, and 1 advanced
+ equal(view.drawer.inputs.length, 8,
+ 'view should have 8 inputs total');
equal($fs.children().length, 3,
"drawer should have a filter group with 3 filters");
equal(_.str.strip($fs.children().eq(0).text()), "Foo1",
@@ -1159,14 +1161,15 @@ openerp.testing.section('search.groupby', {
return view.appendTo($fix)
.done(function () {
// 3 filters, 1 filtergroup group, 1 custom filter, 1 advanced, 1 Filters
- equal(view.inputs.length, 7,
- 'should have 7 inputs total');
- var group = _.find(view.inputs, function (f) {
+ // and 1 SaveFilter widget
+ equal(view.drawer.inputs.length, 8,
+ 'should have 8 inputs total');
+ var group = _.find(view.drawer.inputs, function (f) {
return f instanceof instance.web.search.GroupbyGroup;
});
ok(group, "should have a GroupbyGroup input");
- ok(group.getParent() === view,
- "group's parent should be view");
+ ok(group.getParent() === view.drawer,
+ "group's parent should be the drawer");
group.toggle(group.filters[0]);
group.toggle(group.filters[2]);
@@ -1208,9 +1211,10 @@ openerp.testing.section('search.groupby', {
return view.appendTo($fix)
.done(function () {
// 3 filters, 3 filtergroups, 1 custom filter, 1 advanced, 1 Filters
- equal(view.inputs.length, 9, "should have 9 inputs total");
+ // and 1 SaveFilter widget
+ equal(view.drawer.inputs.length, 10, "should have 10 inputs total");
- var groups = _.filter(view.inputs, function (f) {
+ var groups = _.filter(view.drawer.inputs, function (f) {
return f instanceof instance.web.search.GroupbyGroup;
});
equal(groups.length, 3, "should have 3 GroupbyGroups");
@@ -1242,10 +1246,10 @@ openerp.testing.section('search.filters.saved', {
return view.appendTo($fix)
.done(function () {
- var $row = $fix.find('.oe_searchview_custom li:first').click();
+ var $span = $fix.find('.oe_searchview_custom_list span:first').click();
- ok($row.hasClass('oe_selected'), "should check/select the filter's row");
- ok($row.hasClass("oe_searchview_custom_private"),
+ ok($span.hasClass('badge'), "should check/select the filter's row");
+ ok($span.hasClass("oe_searchview_custom_private"),
"should have private filter note/class");
equal(view.query.length, 1, "should have only one facet");
var values = view.query.at(0).values;
@@ -1268,7 +1272,7 @@ openerp.testing.section('search.filters.saved', {
var $row = $fix.find('.oe_searchview_custom li:first').click();
view.query.remove(view.query.at(0));
- ok(!$row.hasClass('oe_selected'),
+ ok(!$row.hasClass('badge'),
"should not be checked anymore");
});
});
@@ -1280,7 +1284,7 @@ openerp.testing.section('search.filters.saved', {
return view.appendTo($fix)
.done(function () {
- var $row = $fix.find('.oe_searchview_custom li:first').click();
+ var $row = $fix.find('.oe_searchview_custom_list span:first').click();
equal(view.query.length, 1, "should have one facet");
$row.click();
equal(view.query.length, 0, "should have removed facet");
@@ -1296,13 +1300,13 @@ openerp.testing.section('search.filters.saved', {
});
return view.appendTo($fix)
.done(function () {
- $fix.find('.oe_searchview_custom li:eq(0)').click();
+ $fix.find('.oe_searchview_custom_list span:eq(0)').click();
equal(view.query.length, 1, "should have one facet");
deepEqual(
view.query.at(0).get('field').get_context(),
{'private': 1},
"should have selected first filter");
- $fix.find('.oe_searchview_custom li:eq(1)').click();
+ $fix.find('.oe_searchview_custom_list span:eq(1)').click();
equal(view.query.length, 1, "should have one facet");
deepEqual(
view.query.at(0).get('field').get_context(),
@@ -1325,10 +1329,10 @@ openerp.testing.section('search.filters.saved', {
});
return view.appendTo($fix)
.then(function () {
- $fix.find('.oe_searchview_custom input#oe_searchview_custom_input')
+ $fix.find('.oe_searchview_savefilter input#oe_searchview_custom_input')
.val("filter name")
.end()
- .find('.oe_searchview_custom button').click();
+ .find('.oe_searchview_savefilter button').click();
return done.promise();
});
});
@@ -1529,10 +1533,10 @@ openerp.testing.section('search.invisible', {
].join(''));
return view.appendTo($fix)
.then(function () {
- strictEqual($fix.find('.oe_searchview_filters h3').length,
+ strictEqual($fix.find('.oe_searchview_filters dt').length,
1,
"should only display one group");
- strictEqual($fix.find('.oe_searchview_filters h3').text(),
+ strictEqual($fix.find('.oe_searchview_filters dt').text(),
'w Visibles',
"should only display the Visibles group (and its icon char)");
@@ -1588,3 +1592,4 @@ openerp.testing.section('search.invisible', {
});
});
});
+
diff --git a/addons/web_graph/static/src/js/graph_widget.js b/addons/web_graph/static/src/js/graph_widget.js
index d0038452dfb..bbf27daffb0 100644
--- a/addons/web_graph/static/src/js/graph_widget.js
+++ b/addons/web_graph/static/src/js/graph_widget.js
@@ -86,7 +86,7 @@ openerp.web_graph.Graph = openerp.web.Widget.extend({
get_search_fields: function () {
var self = this;
- var groupbygroups = _(this.search_view.inputs).select(function (g) {
+ var groupbygroups = _(this.search_view.drawer.inputs).select(function (g) {
return g instanceof openerp.web.search.GroupbyGroup;
});
@@ -320,8 +320,8 @@ openerp.web_graph.Graph = openerp.web.Widget.extend({
this.dropdown = $(QWeb.render('field_selection', {fields:fields, header_id:id}));
$(event.target).after(this.dropdown);
this.dropdown.css({position:'absolute',
- left:event.pageX,
- top:event.pageY});
+ left:event.originalEvent.layerX,
+ top:event.originalEvent.layerY});
this.$('.field-selection').next('.dropdown-menu').toggle();
diff --git a/addons/website_blog/views/website_blog_views.xml b/addons/website_blog/views/website_blog_views.xml
index 9e6dcc9798f..e4044c8d646 100644
--- a/addons/website_blog/views/website_blog_views.xml
+++ b/addons/website_blog/views/website_blog_views.xml
@@ -86,7 +86,7 @@
<field name="name" string="Content" filter_domain="['|', ('name','ilike',self), ('content','ilike',self)]"/>
<field name="write_uid"/>
<field name="blog_id"/>
- <group expand="0" string="Group By...">
+ <group expand="0" string="Group By">
<filter string="Blog" domain="[]" context="{'group_by': 'blog_id'}"/>
<filter string="Author" domain="[]" context="{'group_by': 'create_uid'}"/>
<filter string="Last Contributor" domain="[]" context="{'group_by': 'write_uid'}"/>
diff --git a/addons/website_certification/views/website_certification_views.xml b/addons/website_certification/views/website_certification_views.xml
index de55ece5675..9a83a6bb478 100644
--- a/addons/website_certification/views/website_certification_views.xml
+++ b/addons/website_certification/views/website_certification_views.xml
@@ -38,7 +38,7 @@
<search string="Search Certification">
<field name="partner_id" />
<field name="type_id" />
- <group expand="0" string="Group By...">
+ <group expand="0" string="Group By">
<filter string="Partner" name="group_by_partner" domain="[]" context="{'group_by': 'partner_id'}"/>
<filter string="Type" name="group_by_type" domain="[]" context="{'group_by': 'type_id'}"/>
</group>
diff --git a/addons/website_event_track/views/event_backend.xml b/addons/website_event_track/views/event_backend.xml
index 3c4adc6e72e..7c053096f66 100644
--- a/addons/website_event_track/views/event_backend.xml
+++ b/addons/website_event_track/views/event_backend.xml
@@ -281,7 +281,7 @@
<field name="event_id"/>
<field name="stage_id"/>
<field name="speaker_ids"/>
- <group expand="0" string="Group By...">
+ <group expand="0" string="Group By">
<filter string="Responsible" context="{'group_by': 'user_id'}"/>
<filter string="Stage" context="{'group_by':'stage_id'}"/>
<filter string="Date" context="{'group_by':'date'}"/>
diff --git a/addons/website_forum/views/forum.xml b/addons/website_forum/views/forum.xml
index 058ef3b17e9..d6a2484bfd1 100644
--- a/addons/website_forum/views/forum.xml
+++ b/addons/website_forum/views/forum.xml
@@ -105,7 +105,7 @@
<field name="name" string="Content" filter_domain="['|', ('name', 'ilike', self), ('content', 'ilike', self)]"/>
<field name="create_uid"/>
<field name="forum_id"/>
- <group expand="0" string="Group By...">
+ <group expand="0" string="Group By">
<filter string="Forum" domain="[]" context="{'group_by': 'forum_id'}"/>
<filter string="Author" domain="[]" context="{'group_by': 'create_uid'}"/>
</group>