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.
This commit is contained in:
ged-odoo 2014-06-12 16:27:11 +02:00
commit 74168c4e9d
117 changed files with 910 additions and 744 deletions

View File

@ -462,7 +462,7 @@
<field name="period_id" string="Period"/> <field name="period_id" string="Period"/>
<separator/> <separator/>
<filter domain="[('user_id','=',uid)]" help="My Invoices"/> <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="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 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'}"/> <filter string="Responsible" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/>

View File

@ -61,7 +61,7 @@
<filter string="Open" domain="[('state','=','draft')]" icon="terp-camera_test"/> <filter string="Open" domain="[('state','=','draft')]" icon="terp-camera_test"/>
<filter string="Closed" domain="[('state','=','done')]" icon="terp-dialog-close"/> <filter string="Closed" domain="[('state','=','done')]" icon="terp-dialog-close"/>
<field name="state"/> <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"/> <filter string="Status" context="{'group_by': 'state'}" icon="terp-stock_effects-object-colorize"/>
</group> </group>
</search> </search>
@ -232,7 +232,7 @@
<filter icon="terp-sale" string="Receivable Accounts" domain="[('type','=','receivable')]"/> <filter icon="terp-sale" string="Receivable Accounts" domain="[('type','=','receivable')]"/>
<filter icon="terp-purchase" string="Payable Accounts" domain="[('type','=','payable')]"/> <filter icon="terp-purchase" string="Payable Accounts" domain="[('type','=','payable')]"/>
<field name="user_type"/> <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="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="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'}"/> <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', '=', 'cash'), ('type', '=', 'bank')]" string="Liquidity" icon="terp-dolar"/>
<filter domain="['|', ('type', '=', 'general'), ('type', '=', 'situation')]" string="Others" icon="terp-stock"/> <filter domain="['|', ('type', '=', 'general'), ('type', '=', 'situation')]" string="Others" icon="terp-stock"/>
<field name="user_id"/> <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="User" context="{'group_by':'user_id'}" icon="terp-personal"/>
<filter string="Type" context="{'group_by':'type'}" icon="terp-stock_symbol-selection"/> <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"/> <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="Open" name="state_open" domain="[('state','=','open')]" icon="terp-check"/>
<filter string="Confirmed" name="state_confirmed" domain="[('state','=','confirm')]" icon="terp-camera_test"/> <filter string="Confirmed" name="state_confirmed" domain="[('state','=','confirm')]" icon="terp-camera_test"/>
<field name="journal_id" domain="[('type', '=', 'cash')]" /> <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="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="Status" context="{'group_by': 'state'}" icon="terp-stock_effects-object-colorize"/>
<filter string="Period" context="{'group_by': 'period_id'}" icon="terp-go-month"/> <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"/> <filter string="Confirmed" domain="[('state','=','confirm')]" icon="terp-camera_test"/>
<field name="period_id"/> <field name="period_id"/>
<field name="journal_id" domain="[('type', '=', 'bank')]" /> <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="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="Status" context="{'group_by': 'state'}" icon="terp-stock_effects-object-colorize"/>
<filter string="Period" context="{'group_by': 'period_id'}" icon="terp-go-month"/> <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"/> <field name="company_id" groups="base.group_multi_company"/>
<filter string="Sale" domain="[('type_tax_use','=','sale')]" /> <filter string="Sale" domain="[('type_tax_use','=','sale')]" />
<filter string="Purchase" domain="[('type_tax_use','=','purchase')]" /> <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="Company" domain="[]" context="{'group_by':'company_id'}"/>
<filter string="Tax Application" domain="[]" context="{'group_by':'type_tax_use'}"/> <filter string="Tax Application" domain="[]" context="{'group_by':'type_tax_use'}"/>
</group> </group>
@ -1258,7 +1258,7 @@
<field name="partner_id"/> <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="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 --> <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="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="Journal" icon="terp-folder-orange" domain="[]" context="{'group_by':'journal_id'}"/>
<filter string="Account" icon="terp-folder-green" context="{'group_by':'account_id'}"/> <filter string="Account" icon="terp-folder-green" context="{'group_by':'account_id'}"/>
@ -1491,7 +1491,7 @@
<field name="partner_id"/> <field name="partner_id"/>
<field name="journal_id"/> <field name="journal_id"/>
<field name="period_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="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="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'}"/> <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')]"/> <filter string="Purchase" icon="terp-purchase" domain="[('journal_id.type', '=', 'purchase')]"/>
<field name="journal_id"/> <field name="journal_id"/>
<field name="company_id" groups="base.group_multi_company"/> <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'}"/> <filter string="Journal" icon="terp-folder-orange" domain="[]" context="{'group_by':'journal_id'}"/>
</group> </group>
</search> </search>
@ -1782,7 +1782,7 @@
<filter icon="terp-document-new" string="Draft" domain="[('state','=','draft')]" help="Draft Subscription"/> <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"/> <filter icon="terp-camera_test" string="Running" domain="[('state','=','running')]" help="Running Subscription"/>
<field name="model_id"/> <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="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'}"/> <filter string="Status" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
</group> </group>
@ -1939,7 +1939,7 @@
<field name="parent_id"/> <field name="parent_id"/>
<field name="user_type"/> <field name="user_type"/>
<field name="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="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'}"/> <filter string="Account Type" icon="terp-stock_symbol-selection" domain="[]" context="{'group_by':'user_type'}"/>
</group> </group>
@ -2018,7 +2018,7 @@
<field name="name" string="Account Template"/> <field name="name" string="Account Template"/>
<field name="account_root_id"/> <field name="account_root_id"/>
<field name="bank_account_view_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="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="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'}"/> <filter string="Receivable Account" icon="terp-sale" domain="[]" context="{'group_by':'property_account_receivable'}"/>
@ -2161,7 +2161,7 @@
<search string="Search tax template"> <search string="Search tax template">
<field name="name" filter_domain="['|', ('name','ilike',self), ('code','ilike',self)]" string="Tax Template"/> <field name="name" filter_domain="['|', ('name','ilike',self), ('code','ilike',self)]" string="Tax Template"/>
<field name="parent_id"/> <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'}"/> <filter string="Parent Code" icon="terp-folder-orange" domain="[]" context="{'group_by':'parent_id'}"/>
</group> </group>
</search> </search>
@ -2568,7 +2568,7 @@
<field name="name" string="Account Report"/> <field name="name" string="Account Report"/>
<field name="type"/> <field name="type"/>
<field name="account_report_id"/> <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="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'}"/> <filter string="Report Type" icon="terp-stock_symbol-selection" domain="[]" context="{'group_by':'type'}"/>
</group> </group>

View File

@ -37,7 +37,7 @@
<field name="user_id"/> <field name="user_id"/>
<filter string="Open" domain="[('state','=','open')]" help="Current Accounts"/> <filter string="Open" domain="[('state','=','open')]" help="Current Accounts"/>
<filter string="Pending" domain="[('state','=','pending')]" help="Pending 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="Associated Partner" domain="[]" context="{'group_by':'partner_id'}"/>
<filter string="Type" domain="[]" context="{'group_by':'type'}"/> <filter string="Type" domain="[]" context="{'group_by':'type'}"/>
<filter string="Template" domain="[]" context="{'group_by':'template_id'}"/> <filter string="Template" domain="[]" context="{'group_by':'template_id'}"/>
@ -198,7 +198,7 @@
<filter string="My Entries" domain="[('user_id','=',uid)]"/> <filter string="My Entries" domain="[('user_id','=',uid)]"/>
<field name="account_id"/> <field name="account_id"/>
<field name="user_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="Analytic Account" context="{'group_by':'account_id'}"/>
<filter string="Fin. Account" context="{'group_by':'general_account_id'}"/> <filter string="Fin. Account" context="{'group_by':'general_account_id'}"/>
<filter string="Journal" context="{'group_by':'journal_id'}" name="group_journal"/> <filter string="Journal" context="{'group_by':'journal_id'}" name="group_journal"/>
@ -306,7 +306,7 @@
<search string="Analytic Journals"> <search string="Analytic Journals">
<field name="name" filter_domain="['|', ('name','ilike',self), ('code','ilike',self)]" string="Analytic Journal"/> <field name="name" filter_domain="['|', ('name','ilike',self), ('code','ilike',self)]" string="Analytic Journal"/>
<field name="type"/> <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'}"/> <filter string="Type" icon="terp-stock_symbol-selection" domain="[]" context="{'group_by':'type'}"/>
</group> </group>
</search> </search>

View File

@ -11,7 +11,7 @@
<field name="account_id" groups="analytic.group_analytic_accounting"/> <field name="account_id" groups="analytic.group_analytic_accounting"/>
<field name="product_id" /> <field name="product_id" />
<field name="user_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="User" name="User" icon="terp-personal" context="{'group_by':'user_id'}"/>
<filter string="Partner" icon="terp-partner" context="{'group_by':'partner_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"/> <filter string="Account" name="Account" icon="terp-folder-green" context="{'group_by':'account_id'}" groups="analytic.group_analytic_accounting"/>

View File

@ -83,7 +83,7 @@
<field name="partner_id"/> <field name="partner_id"/>
<field name="company_id" groups="base.group_multi_company"/> <field name="company_id" groups="base.group_multi_company"/>
</group> </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="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="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}"/> <filter string="Currency" name="group_currency" icon="terp-dolar" context="{'group_by':'currency_id', 'currency_id_visible':1, 'amount_currency_visible':1}"/>

View File

@ -35,7 +35,7 @@
<field name="partner_id"/> <field name="partner_id"/>
<field name="user_id" /> <field name="user_id" />
<field name="categ_id" filter_domain="[('categ_id', 'child_of', self)]"/> <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="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" name="commercial_partner_id" context="{'group_by':'commercial_partner_id','residual_visible':True}"/>
<filter string="Commercial Partner's Country" name="country_id" context="{'group_by':'country_id'}"/> <filter string="Commercial Partner's Country" name="country_id" context="{'group_by':'country_id'}"/>

View File

@ -236,7 +236,7 @@
<filter string="Customer Contracts" help="Contracts assigned to a customer." name="has_partner" domain="[('partner_id', '!=', False)]"/> <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)]"/> <filter string="Contracts not assigned" help="Contracts that are not assigned to an account manager." domain="[('manager_id', '=', False)]"/>
<separator/> <separator/>
<group expand="0" string="Group By..."> <group expand="0" string="Group By">
<filter string="Status" domain="[]" context="{'group_by':'state'}"/> <filter string="Status" domain="[]" context="{'group_by':'state'}"/>
<filter string="Account Manager" domain="[]" context="{'group_by':'manager_id'}"/> <filter string="Account Manager" domain="[]" context="{'group_by':'manager_id'}"/>
<filter string="Partner" domain="[]" context="{'group_by':'partner_id'}"/> <filter string="Partner" domain="[]" context="{'group_by':'partner_id'}"/>

View File

@ -49,7 +49,7 @@
<field name="partner_id"/> <field name="partner_id"/>
<field name="user_id"/> <field name="user_id"/>
<field name="company_id" groups="base.group_multi_company"/> <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="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="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" /> <filter string="Product" icon="terp-accessories-archiver" context="{'group_by':'product_id'}" help="Product" />

View File

@ -33,7 +33,7 @@
<field name="partner_id" filter_domain="[('partner_id','child_of',self)]"/> <field name="partner_id" filter_domain="[('partner_id','child_of',self)]"/>
<field name="company_id" groups="base.group_multi_company"/> <field name="company_id" groups="base.group_multi_company"/>
</group> </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" 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="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"/> <filter string="Company" icon="terp-go-home" context="{'group_by':'company_id'}" groups="base.group_multi_company"/>

View File

@ -119,7 +119,7 @@
<field name="globalisation_amount" string="Glob. Amount"/> <field name="globalisation_amount" string="Glob. Amount"/>
<field name="note"/> <field name="note"/>
</group> </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="Journal" context="{'group_by':'journal_id'}" icon="terp-folder-green"/>
<filter string="Statement" context="{'group_by':'statement_id'}" icon="terp-folder-orange"/> <filter string="Statement" context="{'group_by':'statement_id'}" icon="terp-folder-orange"/>
</group> </group>

View File

@ -51,7 +51,7 @@
<filter string="My Follow-ups" domain="[('payment_responsible_id','=', uid)]" name="my"/> <filter string="My Follow-ups" domain="[('payment_responsible_id','=', uid)]" name="my"/>
</group> </group>
</search> </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="Follow-up Responsible" context="{'group_by':'payment_responsible_id'}"/>
<filter string="Followup Level" context="{'group_by':'latest_followup_level_id'}"/> <filter string="Followup Level" context="{'group_by':'latest_followup_level_id'}"/>
</group> </group>

View File

@ -26,7 +26,7 @@
help = "Including journal entries marked as a litigation"/> help = "Including journal entries marked as a litigation"/>
<field name="partner_id"/> <field name="partner_id"/>
<field name="balance"/> <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="Partner" icon="terp-partner" context="{'group_by':'partner_id'}" />
<filter string="Litigation" icon="terp-camera_test" context="{'group_by':'blocked'}" /> <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'}" /> <filter string="Follow-up Level" icon="terp-stock_effects-object-colorize" name="followup_level" context="{'group_by':'followup_id'}" />

View File

@ -12,7 +12,7 @@
<field name="name" string="Payment Mode"/> <field name="name" string="Payment Mode"/>
<field name="journal"/> <field name="journal"/>
<field name="company_id" groups="base.group_multi_company"/> <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'}"/> <filter string="Journal" icon="terp-folder-orange" domain="[]" context="{'group_by':'journal'}"/>
</group> </group>
</search> </search>
@ -177,7 +177,7 @@
<filter string="Done" domain="[('state','=','done')]" icon="terp-dialog-close"/> <filter string="Done" domain="[('state','=','done')]" icon="terp-dialog-close"/>
<field name="mode"/> <field name="mode"/>
<field name="state"/> <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="Payment Mode" context="{'group_by': 'mode'}" icon="terp-dolar"/>
<filter string="Status" context="{'group_by': 'state'}" icon="terp-stock_effects-object-colorize"/> <filter string="Status" context="{'group_by': 'state'}" icon="terp-stock_effects-object-colorize"/>
</group> </group>

View File

@ -132,7 +132,7 @@
<field name="partner_id" filter_domain="[('partner_id', 'child_of', self)]"/> <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="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"/> <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="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="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}"/> <filter string="Period" icon="terp-go-month" domain="[]" context="{'group_by':'period_id','visible':True}"/>

View File

@ -57,7 +57,7 @@
<field name="pay_now"/> <field name="pay_now"/>
<field name="company_id" groups="base.group_multi_company"/> <field name="company_id" groups="base.group_multi_company"/>
</group> </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="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="Salesperson" name='user' icon="terp-personal" context="{'group_by':'user_id'}"/>
<filter string="Status" icon="terp-stock_effects-object-colorize" context="{'group_by':'state'}"/> <filter string="Status" icon="terp-stock_effects-object-colorize" context="{'group_by':'state'}"/>

View File

@ -14,7 +14,7 @@
<field name="partner_id" string="Customer" filter_domain="[('partner_id','child_of',self)]"/> <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="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"/> <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="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="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}"/> <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="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="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"/> <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="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="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}"/> <filter string="Period" icon="terp-go-month" domain="[]" context="{'group_by':'period_id','visible':True}"/>

View File

@ -13,7 +13,7 @@
<field name="partner_id" string="Supplier" filter_domain="[('partner_id','child_of',self)]"/> <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="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"/> <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="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="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}"/> <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="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="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"/> <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="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="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}"/> <filter string="Period" icon="terp-go-month" domain="[]" context="{'group_by':'period_id','visible':True}"/>

View File

@ -366,15 +366,13 @@ instance.board.AddToDashboard = instance.web.search.Input.extend({
}, },
add_dashboard: function(){ add_dashboard: function(){
var self = this; var self = this;
var getParent = this.getParent(); if (! this.view.view_manager.action || ! this.$el.find("select").val()) {
var view_parent = this.getParent().getParent();
if (! view_parent.action || ! this.$el.find("select").val()) {
this.do_warn("Can't find dashboard action"); this.do_warn("Can't find dashboard action");
return; return;
} }
var data = getParent.build_search_data(); var data = this.view.build_search_data();
var context = new instance.web.CompoundContext(getParent.dataset.get_context() || []); var context = new instance.web.CompoundContext(this.view.dataset.get_context() || []);
var domain = new instance.web.CompoundDomain(getParent.dataset.get_domain() || []); var domain = new instance.web.CompoundDomain(this.view.dataset.get_domain() || []);
_.each(data.contexts, context.add, context); _.each(data.contexts, context.add, context);
_.each(data.domains, domain.add, domain); _.each(data.domains, domain.add, domain);
@ -394,10 +392,10 @@ instance.board.AddToDashboard = instance.web.search.Input.extend({
this.rpc('/board/add_to_dashboard', { this.rpc('/board/add_to_dashboard', {
menu_id: this.$el.find("select").val(), 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, context_to_save: c,
domain: d, domain: d,
view_mode: view_parent.active_view, view_mode: this.view.view_manager.active_view,
name: this.$el.find("input").val() name: this.$el.find("input").val()
}).done(function(r) { }).done(function(r) {
if (r === false) { if (r === false) {
@ -412,12 +410,12 @@ instance.board.AddToDashboard = instance.web.search.Input.extend({
this.$el.toggleClass('oe_opened'); this.$el.toggleClass('oe_opened');
if (! this.$el.hasClass('oe_opened')) if (! this.$el.hasClass('oe_opened'))
return; 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() { add_common_inputs: function() {
this._super(); this._super();
var vm = this.getParent().getParent(); var vm = this.getParent().getParent();

View File

@ -260,7 +260,7 @@
<separator/> <separator/>
<filter icon="terp-check" string="Confirmed" domain="[('state','=','confirmed')]" help="Confirmed Events"/> <filter icon="terp-check" string="Confirmed" domain="[('state','=','confirmed')]" help="Confirmed Events"/>
<field name="user_id"/> <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="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="Availability" icon="terp-camera_test" domain="[]" context="{'group_by':'show_as'}"/>
<filter string="Privacy" icon="terp-locked" domain="[]" context="{'group_by':'class'}"/> <filter string="Privacy" icon="terp-locked" domain="[]" context="{'group_by':'class'}"/>

View File

@ -260,7 +260,7 @@
<filter string="My Meetings" help="My Meetings" name="mymeetings" context='{"mymeetings": 1}'/> <filter string="My Meetings" help="My Meetings" name="mymeetings" context='{"mymeetings": 1}'/>
<filter string="Unread Messages" name="message_unread" domain="[('message_unread','=',True)]"/> <filter string="Unread Messages" name="message_unread" domain="[('message_unread','=',True)]"/>
<separator/> <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="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="Availability" icon="terp-camera_test" domain="[]" context="{'group_by':'show_as'}"/>
<filter string="Privacy" icon="terp-locked" domain="[]" context="{'group_by':'class'}"/> <filter string="Privacy" icon="terp-locked" domain="[]" context="{'group_by':'class'}"/>

View File

@ -349,7 +349,7 @@
name='not_opt_out' domain="[('opt_out', '=', False)]" name='not_opt_out' domain="[('opt_out', '=', False)]"
help="Leads that did not ask not to be included in mass mailing campaigns"/> help="Leads that did not ask not to be included in mass mailing campaigns"/>
<separator /> <separator />
<group expand="0" string="Group By..."> <group expand="0" string="Group By">
<filter string="Salesperson" domain="[]" context="{'group_by':'user_id'}"/> <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="Team" domain="[]" context="{'group_by':'section_id'}" groups="base.group_multi_salesteams"/>
<filter string="Stage" domain="[]" context="{'group_by':'stage_id'}"/> <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"/> help="Opportunities that are assigned to any sales teams I am member of" groups="base.group_multi_salesteams"/>
<filter string="Unread Messages" name="message_unread" domain="[('message_unread','=',True)]"/> <filter string="Unread Messages" name="message_unread" domain="[('message_unread','=',True)]"/>
<separator/> <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="Salesperson" domain="[]" context="{'group_by':'user_id'}"/>
<filter string="Team" domain="[]" context="{'group_by':'section_id'}" groups="base.group_multi_salesteams"/> <filter string="Team" domain="[]" context="{'group_by':'section_id'}" groups="base.group_multi_salesteams"/>
<filter string="Stage" domain="[]" context="{'group_by':'stage_id'}"/> <filter string="Stage" domain="[]" context="{'group_by':'stage_id'}"/>

View File

@ -186,7 +186,7 @@
<field name="opportunity_id"/> <field name="opportunity_id"/>
<field name="section_id" string="Sales Team" <field name="section_id" string="Sales Team"
groups="base.group_multi_salesteams"/> 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="Partner" icon="terp-partner" domain="[]" context="{'group_by':'partner_id'}"/>
<filter string="Responsible" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/> <filter string="Responsible" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/>
<filter string="Creation" icon="terp-go-month" help="Creation Date" domain="[]" context="{'group_by':'create_date'}"/> <filter string="Creation" icon="terp-go-month" help="Creation Date" domain="[]" context="{'group_by':'create_date'}"/>

View File

@ -79,7 +79,7 @@
<field name="opening_date"/> <field name="opening_date"/>
<field name="date_closed"/> <field name="date_closed"/>
</group> </group>
<group expand="1" string="Group By..."> <group expand="1" string="Group By">
<filter string="Salesperson" domain="[]" context="{'group_by':'user_id'}" /> <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="Sales Team" domain="[]" context="{'group_by':'section_id'}" groups="base.group_multi_salesteams"/>
<filter string="Partner" context="{'group_by':'partner_id'}" /> <filter string="Partner" context="{'group_by':'partner_id'}" />

View File

@ -45,7 +45,7 @@
<field name="opening_date"/> <field name="opening_date"/>
<field name="date_closed"/> <field name="date_closed"/>
</group> </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="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="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'}" /> <filter string="Partner" icon="terp-partner" context="{'group_by':'partner_id'}" />

View File

@ -193,7 +193,7 @@
<filter string="Unassigned Claims" icon="terp-personal-" domain="[('user_id','=', False)]" help="Unassigned Claims" /> <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="partner_id" filter_domain="[('partner_id','child_of',self)]"/>
<field name="user_id"/> <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="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="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'}"/> <filter string="Stage" icon="terp-stage" domain="[]" context="{'group_by':'stage_id'}"/>

View File

@ -44,7 +44,7 @@
<field name="date_closed" /> <field name="date_closed" />
<field name="date_deadline" /> <field name="date_deadline" />
</group> </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="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="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'}" /> <filter string="Partner" name="partner" icon="terp-partner" domain="[]" context="{'group_by':'partner_id'}" />

View File

@ -143,7 +143,7 @@
<field name="partner_id" filter_domain="[('partner_id','child_of',self)]"/> <field name="partner_id" filter_domain="[('partner_id','child_of',self)]"/>
<field name="user_id"/> <field name="user_id"/>
<field name="section_id" string="Sales Team" groups="base.group_multi_salesteams"/> <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="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="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"/> <filter string="Sales Team" icon="terp-personal+" domain="[]" help="Sales Team" context="{'group_by':'section_id'}" groups="base.group_multi_salesteams"/>

View File

@ -42,7 +42,7 @@
<field name="create_date"/> <field name="create_date"/>
<field name="date_closed" string="Close Date"/> <field name="date_closed" string="Close Date"/>
</group> </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="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="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'}" /> <filter string="Partner" icon="terp-partner" domain="[]" context="{'group_by':'partner_id'}" />

View File

@ -22,7 +22,7 @@
<field name="opening_date"/> <field name="opening_date"/>
<field name="date_closed"/> <field name="date_closed"/>
</group> </group>
<group expand="1" string="Group By..."> <group expand="1" string="Group By">
<filter string="Salesperson" name="user" icon="terp-personal" <filter string="Salesperson" name="user" icon="terp-personal"
domain="[]" context="{'group_by':'user_id'}" /> domain="[]" context="{'group_by':'user_id'}" />
<filter string="Partner" icon="terp-partner" context="{'group_by':'partner_assigned_id'}" /> <filter string="Partner" icon="terp-partner" context="{'group_by':'partner_assigned_id'}" />

View File

@ -12,7 +12,7 @@
<field name="user_id"/> <field name="user_id"/>
<field name="grade_id"/> <field name="grade_id"/>
<field name="activation"/> <field name="activation"/>
<group expand="1" string="Group By..."> <group expand="1" string="Group By">
<filter string="Salesperson" name="user" icon="terp-personal" <filter string="Salesperson" name="user" icon="terp-personal"
domain="[]" context="{'group_by':'user_id'}" /> domain="[]" context="{'group_by':'user_id'}" />
<filter string="Country" icon="terp-go-home" name="group_country" context="{'group_by':'country_id'}" /> <filter string="Country" icon="terp-go-home" name="group_country" context="{'group_by':'country_id'}" />

View File

@ -110,7 +110,7 @@
<filter string="Resources" icon="terp-personal" domain="[('type','=','ressource')]"/> <filter string="Resources" icon="terp-personal" domain="[('type','=','ressource')]"/>
<field name="company_id" groups="base.group_multi_company"/> <field name="company_id" groups="base.group_multi_company"/>
<field name="user_id" /> <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="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="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"/> <filter string="Company" domain="[]" icon="terp-go-home" context="{'group_by':'company_id'}" groups="base.group_multi_company"/>

View File

@ -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" /> <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="type"/>
<field name="user_id"/> <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="Responsible" context="{'group_by': 'user_id'}"/>
<filter string="Event Type" context="{'group_by':'type'}"/> <filter string="Event Type" context="{'group_by':'type'}"/>
<filter string="Status" context="{'group_by':'state'}"/> <filter string="Status" context="{'group_by':'state'}"/>
@ -436,7 +436,7 @@
<field name="event_id"/> <field name="event_id"/>
<field name="user_id"/> <field name="user_id"/>
<field name="partner_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="Responsible" domain="[]" context="{'group_by':'user_id'}"/>
<filter string="Partner" domain="[]" context="{'group_by':'partner_id'}"/> <filter string="Partner" domain="[]" context="{'group_by':'partner_id'}"/>
<filter string="Event" name="group_event" domain="[]" context="{'group_by':'event_id'}"/> <filter string="Event" name="group_event" domain="[]" context="{'group_by':'event_id'}"/>

View File

@ -32,7 +32,7 @@
<field name="event_date"/> <field name="event_date"/>
</group> </group>
<newline/> <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="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="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'}"/> <filter string="Event Responsible" name="user_id" icon="terp-personal" context="{'group_by': 'user_id'}"/>

View File

@ -61,7 +61,7 @@
<field name="arch" type="xml"> <field name="arch" type="xml">
<search string="Vehicles costs" > <search string="Vehicles costs" >
<field name="brand_id" /> <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"/> <filter name="groupby_brand" context="{'group_by' : 'brand_id'}" string="Brand"/>
</group> </group>
</search> </search>
@ -329,7 +329,7 @@
<field name="location"/> <field name="location"/>
<field name="state_id" /> <field name="state_id" />
<filter name="alert_true" domain="['|',('contract_renewal_due_soon','=',True),('contract_renewal_overdue','=',True)]" string="Has Alert(s)"/> <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_status" context="{'group_by' : 'state_id'}" string="Status"/>
<filter name="groupby_model" context="{'group_by' : 'model_id'}" string="Model"/> <filter name="groupby_model" context="{'group_by' : 'model_id'}" string="Model"/>
</group> </group>
@ -610,7 +610,7 @@
<field name="value"/> <field name="value"/>
<field name="unit"/> <field name="unit"/>
<field name="date"/> <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"/> <filter name="groupby_vehicle" context="{'group_by' : 'vehicle_id'}" string="Vehicle"/>
</group> </group>
</search> </search>
@ -716,7 +716,7 @@
<field name="purchaser_id" /> <field name="purchaser_id" />
<field name="liter" /> <field name="liter" />
<field name="amount" sum="Price"/> <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"/> <filter name="groupby_vehicle" context="{'group_by' : 'vehicle_id'}" string="Vehicle"/>
</group> </group>
</search> </search>
@ -924,7 +924,7 @@
<field name="parent_id"/> <field name="parent_id"/>
<filter name="parent_false" domain="[('parent_id','=',False)]" string="Effective Costs"/> <filter name="parent_false" domain="[('parent_id','=',False)]" string="Effective Costs"/>
<filter name="parent_true" domain="[('parent_id','!=',False)]" string="Indicative 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_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_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"/> <filter name="groupby_cost_type" context="{'group_by' : 'cost_type'}" string="Cost Type"/>

View File

@ -223,7 +223,7 @@
<filter name="hr_challenges" string="HR Challenges" <filter name="hr_challenges" string="HR Challenges"
domain="[('category', '=', 'hr')]"/> domain="[('category', '=', 'hr')]"/>
<field name="name"/> <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="State" domain="[]" context="{'group_by':'state'}"/>
<filter string="Period" domain="[]" context="{'group_by':'period'}"/> <filter string="Period" domain="[]" context="{'group_by':'period'}"/>
</group> </group>

View File

@ -110,7 +110,7 @@
<field name="user_id"/> <field name="user_id"/>
<field name="definition_id"/> <field name="definition_id"/>
<field name="challenge_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_user" string="User" domain="[]" context="{'group_by':'user_id'}"/>
<filter name="group_by_definition" string="Goal Definition" domain="[]" context="{'group_by':'definition_id'}"/> <filter name="group_by_definition" string="Goal Definition" domain="[]" context="{'group_by':'definition_id'}"/>
<filter string="State" domain="[]" context="{'group_by':'state'}"/> <filter string="State" domain="[]" context="{'group_by':'state'}"/>
@ -274,7 +274,7 @@
<field name="name"/> <field name="name"/>
<field name="model_id"/> <field name="model_id"/>
<field name="field_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="Model" domain="[]" context="{'group_by':'model_id'}"/>
<filter string="Computation Mode" domain="[]" context="{'group_by':'computation_mode'}"/> <filter string="Computation Mode" domain="[]" context="{'group_by':'computation_mode'}"/>
</group> </group>

View File

@ -42,7 +42,7 @@ openerp.google_spreadsheet = function(instance) {
}); });
}, },
}); });
instance.web.SearchView.include({ instance.web.SearchViewDrawer.include({
add_common_inputs: function() { add_common_inputs: function() {
this._super(); this._super();
var vm = this.getParent().getParent(); var vm = this.getParent().getParent();

View File

@ -121,7 +121,7 @@
<field name="name" string="Employees" filter_domain="['|',('work_email','ilike',self),('name','ilike',self)]"/> <field name="name" string="Employees" filter_domain="['|',('work_email','ilike',self),('name','ilike',self)]"/>
<field name="department_id" /> <field name="department_id" />
<field name="category_ids" groups="base.group_hr_user"/> <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="Manager" icon="terp-personal" domain="[]" context="{'group_by':'parent_id'}"/>
<filter string="Coach" icon="terp-personal" domain="[]" context="{'group_by':'coach_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'}"/> <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','=','open')]" string="In Position"/>
<filter domain="[('state','=','recruit')]" string="In Recruitment" name="in_recruitment"/> <filter domain="[('state','=','recruit')]" string="In Recruitment" name="in_recruitment"/>
<field name="department_id"/> <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="Department" domain="[]" context="{'group_by':'department_id'}"/>
<filter string="Status" domain="[]" context="{'group_by':'state'}"/> <filter string="Status" domain="[]" context="{'group_by':'state'}"/>
<filter string="Company" domain="[]" context="{'group_by':'company_id'}" groups="base.group_multi_company"/> <filter string="Company" domain="[]" context="{'group_by':'company_id'}" groups="base.group_multi_company"/>

View File

@ -56,7 +56,7 @@
<separator/> <separator/>
<filter icon="terp-stock_align_left_24" string="My Attendance" domain="[('employee_id.user_id.id', '=', uid)]" /> <filter icon="terp-stock_align_left_24" string="My Attendance" domain="[('employee_id.user_id.id', '=', uid)]" />
<field name="employee_id"/> <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="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'}"/> <filter name="name" string="Date" icon="terp-personal" domain="[]" context="{'group_by':'name'}"/>
</group> </group>

View File

@ -62,7 +62,7 @@
<field name="date_end"/> <field name="date_end"/>
<field name="working_hours"/> <field name="working_hours"/>
<field name="employee_id"/> <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="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="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'}"/> <filter string="Job" icon="terp-gtk-select-all" domain="[]" context="{'group_by':'job_id'}"/>

View File

@ -9,7 +9,7 @@
<search string="Appraisal Plan"> <search string="Appraisal Plan">
<field name="name" string="Appraisal Plans"/> <field name="name" string="Appraisal Plans"/>
<field name="company_id" groups="base.group_multi_company"/> <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'}"/> <filter string="Company" icon="terp-go-home" domain="[]" context="{'group_by':'company_id'}"/>
</group> </group>
</search> </search>
@ -333,7 +333,7 @@
<filter icon="terp-gtk-go-back-rtl" string="To Do" name="todo" domain="[('state','=','waiting_answer')]"/> <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_to_review_id"/>
<field name="user_id" string="Interviewer"/> <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="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="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'}"/> <filter string="Status" name="group_state" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>

View File

@ -30,7 +30,7 @@
<field name="state"/> <field name="state"/>
<field name="create_date"/> <field name="create_date"/>
</group> </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="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="Plan" icon="terp-stock_align_left_24" context="{'group_by':'plan_id'}"/>
<filter string="Appreciation" icon="terp-face-plain" context="{'group_by':'rating'}"/> <filter string="Appreciation" icon="terp-face-plain" context="{'group_by':'rating'}"/>

View File

@ -162,7 +162,7 @@
<filter domain="[('user_id', '=', uid)]" string="My Expenses"/> <filter domain="[('user_id', '=', uid)]" string="My Expenses"/>
<field name="employee_id"/> <field name="employee_id"/>
<field name="department_id" string="Department" context="{'invisible_department': False}"/> <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="Employee" icon="terp-personal" domain="[]" context="{'group_by':'employee_id'}"/>
<filter string="Department" icon="terp-personal+" domain="[]" context="{'group_by':'department_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"/> <filter string="Expenses Month" icon="terp-go-month" domain="[]" context="{'group_by':'date'}" help="Expenses by Month"/>

View File

@ -35,7 +35,7 @@
<field name="date_confirm"/> <field name="date_confirm"/>
<field name="date_valid"/> <field name="date_valid"/>
</group> </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="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="Validation User" name="User" icon="terp-personal" context="{'group_by':'user_id'}"/>
<filter string="Department" icon="terp-personal+" context="{'group_by':'department_id'}"/> <filter string="Department" icon="terp-personal+" context="{'group_by':'department_id'}"/>

View File

@ -20,7 +20,7 @@
<field name="employee_id"/> <field name="employee_id"/>
<field name="department_id"/> <field name="department_id"/>
<field name="holiday_status_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_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_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'}"/> <filter name="group_employee" string="Employee" icon="terp-personal" domain="[]" context="{'group_by':'employee_id'}"/>

View File

@ -171,7 +171,7 @@
<field name="name" string="Payslip Lines" filter_domain="['|',('name','ilike',self),('code','ilike',self)]"/> <field name="name" string="Payslip Lines" filter_domain="['|',('name','ilike',self),('code','ilike',self)]"/>
<field name="amount_select"/> <field name="amount_select"/>
<field name="slip_id"/> <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="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="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'}"/> <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"/> <filter icon="terp-camera_test" string="Done" domain="[('state','=','done')]" help="Done Slip"/>
<field name="employee_id"/> <field name="employee_id"/>
<field name="payslip_run_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="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="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'}"/> <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="name" string="Salary Rules" filter_domain="['|',('name','ilike',self),('code','ilike',self)]"/>
<field name="category_id"/> <field name="category_id"/>
<field name="condition_range_min"/> <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'}"/> <filter string="Category" icon="terp-folder-yellow" name="head" context="{'group_by':'category_id'}"/>
</group> </group>
</search> </search>

View File

@ -208,7 +208,7 @@
<separator/> <separator/>
<field name="categ_ids"/> <field name="categ_ids"/>
<separator/> <separator/>
<group expand="0" string="Group By..."> <group expand="0" string="Group By">
<filter string="Responsible" domain="[]" context="{'group_by':'user_id'}"/> <filter string="Responsible" domain="[]" context="{'group_by':'user_id'}"/>
<filter string="Department" domain="[]" context="{'group_by':'department_id'}"/> <filter string="Department" domain="[]" context="{'group_by':'department_id'}"/>
<filter string="Job" domain="[]" context="{'group_by':'job_id'}"/> <filter string="Job" domain="[]" context="{'group_by':'job_id'}"/>

View File

@ -70,7 +70,7 @@
<field name="date"/> <field name="date"/>
<field name="user_id"/> <field name="user_id"/>
<field name="account_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="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="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'}"/> <filter string="Product" icon="terp-accessories-archiver" domain="[]" context="{'group_by':'product_id'}"/>

View File

@ -51,7 +51,7 @@
<field name="date"/> <field name="date"/>
<field name="invoice_id"/> <field name="invoice_id"/>
</group> </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="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="Account" icon="terp-folder-orange" context="{'group_by':'account_id'}"/>
<filter string="Product" icon="terp-accessories-archiver" context="{'group_by':'product_id'}"/> <filter string="Product" icon="terp-accessories-archiver" context="{'group_by':'product_id'}"/>

View File

@ -184,7 +184,7 @@
<filter name="to_approve" string="To Approve" domain="[('state','=','confirm')]" help="Confirmed Timesheets"/> <filter name="to_approve" string="To Approve" domain="[('state','=','confirm')]" help="Confirmed Timesheets"/>
<field name="employee_id"/> <field name="employee_id"/>
<field name="department_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="Employees" icon="terp-personal" domain="[]" context="{'group_by':'employee_id'}"/>
<filter string="Department" icon="terp-personal+" domain="[]" context="{'group_by':'department_id'}"/> <filter string="Department" icon="terp-personal+" domain="[]" context="{'group_by':'department_id'}"/>
</group> </group>

View File

@ -28,7 +28,7 @@
<field name="company_id" groups="base.group_multi_company"/> <field name="company_id" groups="base.group_multi_company"/>
<field name="date" /> <field name="date" />
</group> </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="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="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"/> <filter string="Analytic Account" icon="terp-folder-green" context="{'group_by':'account_id'}" groups="analytic.group_analytic_accounting"/>

View File

@ -35,7 +35,7 @@
<field name="date_to"/> <field name="date_to"/>
<field name="date_from"/> <field name="date_from"/>
</group> </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="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="Department" icon="terp-personal+" context="{'group_by':'department_id'}"/>
<filter string="Product" icon="terp-accessories-archiver" context="{'group_by':'product_id'}"/> <filter string="Product" icon="terp-accessories-archiver" context="{'group_by':'product_id'}"/>

View File

@ -150,7 +150,7 @@
<filter name="session_id" string="My Sessions" domain="[('session_id.user_ids','in', uid)]"/> <filter name="session_id" string="My Sessions" domain="[('session_id.user_ids','in', uid)]"/>
<field name="from_id"/> <field name="from_id"/>
<field name="to_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_session_id" string="Session" domain="[]" context="{'group_by':'session_id'}"/>
<filter name="group_by_date" string="Date" domain="[]" context="{'group_by':'date'}"/> <filter name="group_by_date" string="Date" domain="[]" context="{'group_by':'date'}"/>
</group> </group>

View File

@ -66,7 +66,7 @@
<field name="note"/> <field name="note"/>
</group> </group>
<newline/> <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="Partner" context="{'group_by':'partner_id'}" icon="terp-folder-green"/>
<filter string="Statement" context="{'group_by':'statement_id'}" icon="terp-folder-orange"/> <filter string="Statement" context="{'group_by':'statement_id'}" icon="terp-folder-orange"/>
</group> </group>

View File

@ -144,7 +144,7 @@
<field name="batch_id"/> <field name="batch_id"/>
</group> </group>
<newline/> <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'}"/> <filter string="Bank" name="bank_id" icon="terp-go-home" context="{'group_by':'bank_id'}"/>
<separator orientation="vertical"/> <separator orientation="vertical"/>
<filter string="Status" name="state" icon="terp-stock_effects-object-colorize" context="{'group_by':'state'}"/> <filter string="Status" name="state" icon="terp-stock_effects-object-colorize" context="{'group_by':'state'}"/>

View File

@ -54,7 +54,7 @@
<field name="company_id" groups="base.group_multi_company" widget="selection"/> <field name="company_id" groups="base.group_multi_company" widget="selection"/>
</group> </group>
<newline/> <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="Employee" icon="terp-personal" context="{'group_by':'employee_id'}" />
<filter string="Bank" icon="terp-go-home" context="{'group_by':'bank_id'}"/> <filter string="Bank" icon="terp-go-home" context="{'group_by':'bank_id'}"/>
<separator orientation="vertical"/> <separator orientation="vertical"/>

View File

@ -50,7 +50,7 @@
<field name="company_id" groups="base.group_multi_company" widget="selection"/> <field name="company_id" groups="base.group_multi_company" widget="selection"/>
</group> </group>
<newline/> <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="Employee" name="employee" icon="terp-personal" context="{'group_by':'employee_id'}" />
<filter string="Structure" context="{'group_by':'struct_id'}" /> <filter string="Structure" context="{'group_by':'struct_id'}" />
<filter string="Category" name="category" context="{'group_by':'category_id'}" /> <filter string="Category" name="category" context="{'group_by':'category_id'}" />

View File

@ -21,7 +21,7 @@
<separator/> <separator/>
<filter name="today" string="Today" domain="[('date','=',time.strftime('%%Y-%%m-%%d'))]"/> <filter name="today" string="Today" domain="[('date','=',time.strftime('%%Y-%%m-%%d'))]"/>
<field name="user_id"/> <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_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"/> <filter name="group_by_date" string="Order Month" context="{'group_by':'date'}" help="Supplier Order by Month"/>
</group> </group>
@ -52,7 +52,7 @@
<search string="lunch cashmove"> <search string="lunch cashmove">
<field name="description"/> <field name="description"/>
<field name="user_id"/> <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'}"/> <filter name='group_by_user' string="By Employee" context="{'group_by':'user_id'}"/>
</group> </group>
</search> </search>

View File

@ -60,7 +60,7 @@
<field name="alias_parent_thread_id"/> <field name="alias_parent_thread_id"/>
<separator/> <separator/>
<filter string="Active" name="active" domain="[('alias_name', '!=', False)]"/> <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="User" name="User" context="{'group_by':'alias_user_id'}"/>
<filter string="Model" name="Model" context="{'group_by':'alias_model_id'}"/> <filter string="Model" name="Model" context="{'group_by':'alias_model_id'}"/>
</group> </group>

View File

@ -108,7 +108,7 @@
<field name="model"/> <field name="model"/>
<field name="res_id"/> <field name="res_id"/>
</group> </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="Status" name="status" domain="[]" context="{'group_by':'state'}"/>
<filter string="Author" name="author" context="{'group_by':'author_id'}"/> <filter string="Author" name="author" context="{'group_by':'author_id'}"/>
<filter string="Thread" name="thread" domain="[]" context="{'group_by':'message_id'}"/> <filter string="Thread" name="thread" domain="[]" context="{'group_by':'message_id'}"/>

View File

@ -71,7 +71,7 @@
<filter string="Has attachments" <filter string="Has attachments"
name="attachments" name="attachments"
domain="[('attachment_ids', '!=', False)]"/> 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'}"/> <filter string="Type" name="thread" domain="[]" context="{'group_by':'type'}"/>
</group> </group>
</search> </search>

View File

@ -1915,11 +1915,11 @@ openerp.mail = function (session) {
* @param {Object} defaults ?? * @param {Object} defaults ??
*/ */
load_searchview: function (defaults) { load_searchview: function (defaults) {
var self = this;
var ds_msg = new session.web.DataSetSearch(this, 'mail.message'); var ds_msg = new session.web.DataSetSearch(this, 'mail.message');
this.searchview = new session.web.SearchView(this, ds_msg, false, defaults || {}, false); this.searchview = new session.web.SearchView(this, ds_msg, false, defaults || {}, false);
this.searchview.appendTo(this.$('.oe_view_manager_view_search')) this.searchview.on('search_data', this, this.do_searchview_search);
.then(function () { self.searchview.on('search_data', self, self.do_searchview_search); }); this.searchview.appendTo(this.$('.oe_view_manager_view_search'),
this.$('.oe_searchview_drawer_container'));
if (this.searchview.has_defaults) { if (this.searchview.has_defaults) {
this.searchview.ready.then(this.searchview.do_search); this.searchview.ready.then(this.searchview.do_search);
} }

View File

@ -191,8 +191,15 @@
</tr> </tr>
</tbody> </tbody>
</table> </table>
<div class="oe_mail-placeholder"></div> <div class="oe_view_manager_wrapper">
<aside class="oe_mail_wall_aside"></aside> <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> </div>
<!-- <!--

View File

@ -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="Test Mode" name="test" domain="[('mode','=','test')]"/>
<filter icon="terp-gtk-jump-to-rtl" string="Manual Mode" domain="[('mode','=','manual')]"/> <filter icon="terp-gtk-jump-to-rtl" string="Manual Mode" domain="[('mode','=','manual')]"/>
<field name="object_id" string="Resource"/> <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="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="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'}"/> <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')]"/> <filter icon="terp-emblem-documents" string="All" help="Sync mode: all records" domain="[('sync_mode','=','all')]"/>
<field name="campaign_id"/> <field name="campaign_id"/>
<field name="object_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="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="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'}"/> <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="object_id"/>
<field name="partner_id"/> <field name="partner_id"/>
<field name="res_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="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="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'}"/> <filter string="Activity" name="activity" icon="terp-stock_align_left_24" context="{'group_by':'activity_id'}"/>

View File

@ -38,7 +38,7 @@
<field name="segment_id"/> <field name="segment_id"/>
<field name="partner_id"/> <field name="partner_id"/>
<field name="country_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="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="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'}"/> <filter string="Activity" name="activity" icon="terp-stock_align_left_24" context="{'group_by':'activity_id'}"/>

View File

@ -30,7 +30,7 @@
<field name="list_id"/> <field name="list_id"/>
<separator/> <separator/>
<filter string="Exclude Opt Out" name="not_opt_out" domain="[('opt_out', '=', False)]"/> <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" <filter string="Creation Date" name="group_create_date"
context="{'group_by': 'create_date'}"/> context="{'group_by': 'create_date'}"/>
<filter string="Mailing Lists" name="group_list_id" <filter string="Mailing Lists" name="group_list_id"
@ -151,7 +151,7 @@
<search string="Mass Mailings"> <search string="Mass Mailings">
<field name="name" string="Mailings"/> <field name="name" string="Mailings"/>
<field name="mass_mailing_campaign_id"/> <field name="mass_mailing_campaign_id"/>
<group expand="0" string="Group By..."> <group expand="0" string="Group By">
<filter string="State" name="group_state" <filter string="State" name="group_state"
context="{'group_by': 'state'}"/> context="{'group_by': 'state'}"/>
<filter string="Campaign" name="group_mass_mailing_campaign_id" <filter string="Campaign" name="group_mass_mailing_campaign_id"
@ -421,7 +421,7 @@
<field name="name" string="Campaigns"/> <field name="name" string="Campaigns"/>
<field name="category_ids"/> <field name="category_ids"/>
<field name="user_id"/> <field name="user_id"/>
<group expand="0" string="Group By..."> <group expand="0" string="Group By">
<filter string="Stage" name="group_stage_id" <filter string="Stage" name="group_stage_id"
context="{'group_by': 'stage_id'}"/> context="{'group_by': 'stage_id'}"/>
<filter string="Responsible" name="group_user_id" <filter string="Responsible" name="group_user_id"

View File

@ -166,7 +166,7 @@
<separator/> <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_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"/> <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="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="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'}"/> <filter string=" Membership State" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'membership_state'}"/>

View File

@ -13,7 +13,7 @@
<field name="partner_id"/> <field name="partner_id"/>
<field name="membership_id"/> <field name="membership_id"/>
<field name="user_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" <filter string="Salesperson" icon="terp-personal" name="salesman"
domain="[]" context="{'group_by':'user_id'}"/> domain="[]" context="{'group_by':'user_id'}"/>
<filter string="Associated Partner" icon="terp-partner" name="associate_member_id" <filter string="Associated Partner" icon="terp-partner" name="associate_member_id"

View File

@ -98,7 +98,7 @@
<field name="name" string="Name"/> <field name="name" string="Name"/>
<field name="composition"/> <field name="composition"/>
<field name="group_id" /> <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'}"/> <filter string="Property Group" icon="terp-personal" domain="[]" context="{'group_by':'group_id'}"/>
</group> </group>
</search> </search>

View File

@ -130,7 +130,7 @@
help="Production started late"/> help="Production started late"/>
<field name="workcenter_id"/> <field name="workcenter_id"/>
<field name="production_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="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="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'}"/> <filter string="Status" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>

View File

@ -29,7 +29,7 @@
<filter icon="terp-camera_test" string="Done" domain="[('state','=','done')]"/> <filter icon="terp-camera_test" string="Done" domain="[('state','=','done')]"/>
<field name="product_id" /> <field name="product_id" />
<field name="workcenter_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="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="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'}"/> <filter string="Production" icon="terp-accessories-archiver" domain="[]" context="{'group_by':'production_id'}"/>

View File

@ -213,7 +213,7 @@
<filter icon="terp-dolar" string="Invoiced" domain="[('invoiced','=',True)]"/> <filter icon="terp-dolar" string="Invoiced" domain="[('invoiced','=',True)]"/>
<field name="product_id"/> <field name="product_id"/>
<field name="partner_id" filter_domain="[('partner_id', 'child_of', self)]"/> <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="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="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'}"/> <filter string="Status" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>

View File

@ -135,7 +135,7 @@
<field name="tag_ids"/> <field name="tag_ids"/>
<filter name="open_true" string="Active" domain="[('open', '=', True)]"/> <filter name="open_true" string="Active" domain="[('open', '=', True)]"/>
<filter name="open_false" string="Archive" domain="[('open', '=', False)]"/> <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'}"/> <filter icon="terp-stock_symbol-selection" string="Stage" help="By sticky note Category" context="{'group_by':'stage_id'}"/>
</group> </group>
</search> </search>

View File

@ -82,7 +82,7 @@
<search> <search>
<field name="name"/> <field name="name"/>
<field name="provider"/> <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'}"/> <filter string="Provider" name="provider" domain="[]" context="{'group_by': 'provider'}"/>
</group> </group>
</search> </search>

View File

@ -27,7 +27,7 @@
<field name="date"/> <field name="date"/>
<filter string="Open" domain="[('state','=','open')]" icon="terp-document-new" name="open"/> <filter string="Open" domain="[('state','=','open')]" icon="terp-document-new" name="open"/>
<field name="journal_id"/> <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="Journal" context="{'group_by': 'journal_id'}" icon="terp-folder-orange"/>
<filter string="Period" context="{'group_by': 'period_id'}" icon="terp-go-month"/> <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"/> <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="Open" domain="[('state','=','open')]" icon="terp-document-new" name="open"/>
<filter string="Closed" domain="[('state','=','confirm')]" icon="terp-camera_test"/> <filter string="Closed" domain="[('state','=','confirm')]" icon="terp-camera_test"/>
<field name="journal_id"/> <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="Journal" context="{'group_by': 'journal_id'}" icon="terp-folder-orange"/>
<filter string="Period" context="{'group_by': 'period_id'}" icon="terp-go-month"/> <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"/> <filter string="Status" context="{'group_by': 'state'}" icon="terp-stock_effects-object-colorize"/>

View File

@ -146,7 +146,7 @@
<filter icon="terp-check" string="Invoiced" domain="[('state','=','invoiced')]"/> <filter icon="terp-check" string="Invoiced" domain="[('state','=','invoiced')]"/>
<filter icon="gtk-convert" string="Posted" domain="[('state','=','done')]"/> <filter icon="gtk-convert" string="Posted" domain="[('state','=','done')]"/>
<field name="user_id"/> <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="Customer" icon="terp-personal" domain="[]" context="{'group_by':'partner_id'}"/>
<filter string="Salesperson" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/> <filter string="Salesperson" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/>
<filter string="Status" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/> <filter string="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'))]" /> <filter string="Today" domain="[('start_at', '>=', time.strftime('%%Y-%%m-%%d 00:00:00'))]" />
<field name="config_id" /> <field name="config_id" />
<field name="user_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="User" icon="terp-personal" domain="[]" context="{'group_by' : 'user_id'}" />
<filter string="Point of Sales" domain="[]" context="{'group_by': 'user_id'}" /> <filter string="Point of Sales" domain="[]" context="{'group_by': 'user_id'}" />
</group> </group>
@ -928,7 +928,7 @@
<filter icon="gtk-convert" string="Posted" domain="[('state','=','done')]"/> <filter icon="gtk-convert" string="Posted" domain="[('state','=','done')]"/>
<field name="user_id"/> <field name="user_id"/>
<field name="session_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="Customer" icon="terp-personal" domain="[]" context="{'group_by':'partner_id'}"/>
<filter string="Salesman" icon="terp-personal" domain="[]" context="{'group_by':'user_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'}"/> <filter string="Session" icon="terp-personal" domain="[]" context="{'group_by':'session_id'}"/>

View File

@ -32,7 +32,7 @@
<field name="user_id"/> <field name="user_id"/>
<field name="partner_id"/> <field name="partner_id"/>
<field name="user_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="Salesperson" icon="terp-personal" name="User" context="{'group_by':'user_id'}"/>
<filter string="Customer" icon="terp-personal" context="{'group_by':'partner_id'}"/> <filter string="Customer" icon="terp-personal" context="{'group_by':'partner_id'}"/>
<filter string="Product" icon="terp-accessories-archiver" context="{'group_by':'product_id'}"/> <filter string="Product" icon="terp-accessories-archiver" context="{'group_by':'product_id'}"/>

View File

@ -32,7 +32,7 @@
<field name="reviewer_id"/> <field name="reviewer_id"/>
<field name="user_id"/> <field name="user_id"/>
<field name="stage_id" domain="[]"/> <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="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="Users" name="group_user_id" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/>
<filter string="Project" name="group_project_id" icon="terp-folder-violet" domain="[]" context="{'group_by':'project_id'}"/> <filter string="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"/> <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="user_id" string="Project Manager"/>
<field name="partner_id" string="Contact" filter_domain="[('partner_id', 'child_of', self)]"/> <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="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="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'}"/> <filter string="Parent" name="Parent" help="Parent" icon="terp-folder-blue" domain = "[]" context="{'group_by':'parent_id'}"/>

View File

@ -42,7 +42,7 @@
<field name="priority"/> <field name="priority"/>
<field name="company_id" groups="base.group_multi_company"/> <field name="company_id" groups="base.group_multi_company"/>
</group> </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="Project" name="project" context="{'group_by':'project_id'}"/>
<filter string="Task" context="{'group_by':'name'}" /> <filter string="Task" context="{'group_by':'name'}" />
<filter string="Contact" context="{'group_by':'partner_id'}" /> <filter string="Contact" context="{'group_by':'partner_id'}" />

View File

@ -151,7 +151,7 @@
<field name="project_id"/> <field name="project_id"/>
<field name="categ_ids"/> <field name="categ_ids"/>
<field name="stage_id" domain="[]"/> <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="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="Contact" name="group_partner_id" icon="terp-partner" domain="[]" context="{'group_by':'partner_id'}"/>
<filter string="Project" name="group_project_id" icon="terp-folder-violet" domain="[]" context="{'group_by':'project_id'}"/> <filter string="Project" name="group_project_id" icon="terp-folder-violet" domain="[]" context="{'group_by':'project_id'}"/>

View File

@ -28,7 +28,7 @@
<filter string="New" name="new" domain="[('stage_id.sequence', '=', 1)]"/> <filter string="New" name="new" domain="[('stage_id.sequence', '=', 1)]"/>
<filter string="Done" name="done" domain="[('stage_id.fold', '=', True)]" <filter string="Done" name="done" domain="[('stage_id.fold', '=', True)]"
help="Tasks beloging to a folded stage"/> 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="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="Contact" icon="terp-partner" context="{'group_by':'partner_id'}" />
<filter string="Sale Team" icon="terp-personal+" domain="[]" context="{'group_by':'section_id'}" groups="base.group_multi_salesteams"/> <filter string="Sale Team" icon="terp-personal+" domain="[]" context="{'group_by':'section_id'}" groups="base.group_multi_salesteams"/>

View File

@ -16,7 +16,7 @@
<search string="Tasks by User"> <search string="Tasks by User">
<field name="name" string="Date"/> <field name="name" string="Date"/>
<field name="user_id"/> <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="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="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"/> <filter string="Year" icon="terp-go-year" context="{'group_by':'year'}" help="Group by year of date"/>

View File

@ -315,7 +315,7 @@
<field name="partner_id" operator="child_of"/> <field name="partner_id" operator="child_of"/>
<field name="product_id"/> <field name="product_id"/>
<field name="create_uid"/> <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="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="Source" icon="terp-gtk-jump-to-rtl" domain="[]" context="{'group_by':'origin'}"/>
<filter string="Status" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/> <filter string="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="partner_id" operator="child_of"/>
<field name="product_id"/> <field name="product_id"/>
<field name="create_uid"/> <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="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="Source" icon="terp-gtk-jump-to-rtl" domain="[]" context="{'group_by':'origin'}"/>
<filter string="Status" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/> <filter string="Status" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
@ -526,7 +526,7 @@
<field name="product_id"/> <field name="product_id"/>
<field name="partner_id" string="Supplier" filter_domain="[('partner_id', 'child_of', self)]"/> <field name="partner_id" string="Supplier" filter_domain="[('partner_id', 'child_of', self)]"/>
<filter name="hide_cancelled" string="Hide cancelled lines" domain="[('state', '!=', 'cancel')]"/> <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_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 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'}"/> <filter icon="terp-gtk-jump-to-rtl" string="Order Reference" domain="[]" context="{'group_by' :'order_id'}"/>

View File

@ -37,7 +37,7 @@
<field name="expected_date"/> <field name="expected_date"/>
</group> </group>
<newline/> <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="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="Responsible" name="Responsible" icon="terp-personal" context="{'group_by':'user_id'}"/>
<filter string="Validated by" icon="terp-personal" context="{'group_by':'validator'}"/> <filter string="Validated by" icon="terp-personal" context="{'group_by':'validator'}"/>

View File

@ -160,7 +160,7 @@
<separator/> <separator/>
<filter icon="terp-personal-" string="Unassigned" domain="[('user_id','=', False)]" help="Unassigned Requisition"/> <filter icon="terp-personal-" string="Unassigned" domain="[('user_id','=', False)]" help="Unassigned Requisition"/>
<field name="user_id" /> <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="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="Source" icon="terp-gtk-jump-to-rtl" domain="[]" context="{'group_by':'origin'}"/>
<filter string="Status" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/> <filter string="Status" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>

View File

@ -14,7 +14,7 @@
<filter string="Inactive" icon="terp-gdu-smart-failing" domain="[('active','=',False)]"/> <filter string="Inactive" icon="terp-gdu-smart-failing" domain="[('active','=',False)]"/>
<field name="user_id" string="User"/> <field name="user_id" string="User"/>
<field name="company_id" groups="base.group_multi_company"/> <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="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="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"/> <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="resource_id" string="Resource"/>
<field name="company_id" string="Company" groups="base.group_multi_company"/> <field name="company_id" string="Company" groups="base.group_multi_company"/>
<field name="calendar_id" string="Working Period"/> <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="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="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"/> <filter string="Leave Month" icon="terp-go-month" domain="[]" context="{'group_by':'date_from'}" help="Starting Date of Leave by Month"/>

View File

@ -32,7 +32,7 @@
<field name="categ_id"/> <field name="categ_id"/>
<field name="company_id" groups="base.group_multi_company"/> <field name="company_id" groups="base.group_multi_company"/>
</group> </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="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="Sales Team" context="{'group_by':'section_id'}" groups="base.group_multi_salesteams"/>
<filter string="Partner" icon="terp-partner" name="Customer" context="{'group_by':'partner_id'}"/> <filter string="Partner" icon="terp-partner" name="Customer" context="{'group_by':'partner_id'}"/>

View File

@ -258,7 +258,7 @@
<field name="user_id"/> <field name="user_id"/>
<field name="section_id" string="Sales Team" groups="base.group_multi_salesteams"/> <field name="section_id" string="Sales Team" groups="base.group_multi_salesteams"/>
<field name="project_id"/> <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="Customer" icon="terp-personal" domain="[]" context="{'group_by':'partner_id'}"/>
<filter string="Salesperson" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/> <filter string="Salesperson" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/>
<filter string="Status" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/> <filter string="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="order_partner_id" operator="child_of"/>
<field name="product_id"/> <field name="product_id"/>
<field name="salesman_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="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="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'}"/> <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="order_partner_id" operator="child_of"/>
<field name="product_id"/> <field name="product_id"/>
<field name="salesman_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="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="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'}"/> <filter string="Status" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>

View File

@ -62,7 +62,7 @@
<field name="name" string="Inventory Reference"/> <field name="name" string="Inventory Reference"/>
<field name="date"/> <field name="date"/>
<field name="company_id" groups="base.group_multi_company"/> <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="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"/> <filter string="Inventories Month" icon="terp-go-month" domain="[]" context="{'group_by':'date'}" help="Physical Inventories by Month"/>
</group> </group>
@ -244,7 +244,7 @@
<search string="Product Lots Filter"> <search string="Product Lots Filter">
<field name="name" string="Product Lots" filter_domain="['|',('name','ilike',self),('ref','ilike',self)]"/> <field name="name" string="Product Lots" filter_domain="['|',('name','ilike',self),('ref','ilike',self)]"/>
<field name="product_id"/> <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'}"/> <filter string="Product" icon="terp-accessories-archiver" domain="[]" context="{'group_by':'product_id'}"/>
</group> </group>
</search> </search>
@ -815,7 +815,7 @@
<field name="product_id"/> <field name="product_id"/>
<field name="picking_type_id"/> <field name="picking_type_id"/>
<field name="group_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="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="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'}"/> <filter string="Expected Date" icon="terp-go-month" domain="[]" context="{'group_by':'min_date'}"/>
@ -1178,7 +1178,7 @@
<field name="product_id"/> <field name="product_id"/>
<field name="name" string="Location" filter_domain="['|',('location_id','ilike',self),('location_dest_id','ilike',self)]"/> <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)]"/> <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="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="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"/> <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="location_id" groups="stock.group_locations"/>
<field name="company_id" groups="base.group_multi_company"/> <field name="company_id" groups="base.group_multi_company"/>
<field name="product_id"/> <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="Warehouse" icon="terp-go-home" domain="[]" context="{'group_by':'warehouse_id'}"/>
<filter string="Location" icon="terp-go-home" domain="[]" context="{'group_by':'location_id'}"/> <filter string="Location" icon="terp-go-home" domain="[]" context="{'group_by':'location_id'}"/>
</group> </group>

View File

@ -74,7 +74,7 @@
<field name="product_id"/> <field name="product_id"/>
<field name="location_id" filter_domain="[('name', 'child_of', self)]"/> <field name="location_id" filter_domain="[('name', 'child_of', self)]"/>
<field name="company_id" groups="base.group_multi_company"/> <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" 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="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'/> <filter string="Location" icon="terp-accessories-archiver" context="{'group_by':'location_id'}" name='group_by_location'/>

View File

@ -132,7 +132,7 @@
<separator/> <separator/>
<filter string="Draft" name="draft" domain="[('state','=','draft')]"/> <filter string="Draft" name="draft" domain="[('state','=','draft')]"/>
<filter string="Done" name="done" domain="[('state','=','done')]"/> <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="Month" context="{'group_by': 'date'}"/>
<filter string="Status" context="{'group_by': 'state'}"/> <filter string="Status" context="{'group_by': 'state'}"/>
</group> </group>

View File

@ -63,7 +63,7 @@
<field name="name" string="Picking Wave"/> <field name="name" string="Picking Wave"/>
<filter name="in_progress" string="In Progress" domain="[('state','=', 'in_progress')]" help="Picking Waves not finished"/> <filter name="in_progress" string="In Progress" domain="[('state','=', 'in_progress')]" help="Picking Waves not finished"/>
<field name="user_id"/> <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="User" domain="[]" context="{'group_by':'user_id'}"/>
<filter string="State" domain="[]" context="{'group_by':'state'}"/> <filter string="State" domain="[]" context="{'group_by':'state'}"/>
</group> </group>

View File

@ -75,7 +75,7 @@
domain="[('state','=','running')]"/> domain="[('state','=','running')]"/>
<field name="user_id"/> <field name="user_id"/>
<field name="partner_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="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="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'}"/> <filter string="Status" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>

View File

@ -15,7 +15,7 @@
<filter string="Partially completed" domain="[('state', '=', 'skip')]"/> <filter string="Partially completed" domain="[('state', '=', 'skip')]"/>
<filter string="New" domain="[('state', '=', 'new')]"/> <filter string="New" domain="[('state', '=', 'new')]"/>
<filter string="Test" domain="[('state','=', 'test')]"/> <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 name="group_by_survey" string="Survey" domain="[]" context="{'group_by': 'survey_id'}"/>
<filter string="Email" domain="[]" context="{'group_by': 'email'}"/> <filter string="Email" domain="[]" context="{'group_by': 'email'}"/>
<filter string="Partner" domain="[]" context="{'group_by': ['partner_id']}"/> <filter string="Partner" domain="[]" context="{'group_by': ['partner_id']}"/>
@ -271,7 +271,7 @@
<search string="Search Page"> <search string="Search Page">
<field name="title" string="Page"/> <field name="title" string="Page"/>
<field name="survey_id" string="Survey"/> <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'}"/> <filter name="group_by_survey" string="Survey" domain="[]" context="{'group_by':'survey_id'}"/>
</group> </group>
</search> </search>
@ -380,7 +380,7 @@
<field name="survey_id" string="Survey"/> <field name="survey_id" string="Survey"/>
<field name="page_id" string="Page"/> <field name="page_id" string="Page"/>
<field name="type" string="Type"/> <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_page" string="Page" domain="[]" context="{'group_by':'page_id'}"/>
<filter name="group_by_type" string="Type" domain="[]" context="{'group_by':'type'}"/> <filter name="group_by_type" string="Type" domain="[]" context="{'group_by':'type'}"/>
</group> </group>
@ -481,7 +481,7 @@
<search string="Search User input lines"> <search string="Search User input lines">
<field name="user_input_id"/> <field name="user_input_id"/>
<field name="survey_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_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'}"/> <filter name="group_by_user_input" string="User Input" domain="[]" context="{'group_by':'user_input_id'}"/>
</group> </group>

View File

@ -1,4 +1,4 @@
@charset "utf-8"; @charset "UTF-8";
@font-face { @font-face {
font-family: "mnmliconsRegular"; font-family: "mnmliconsRegular";
src: url("/web/static/src/font/mnmliconsv21-webfont.eot") format("eot"); src: url("/web/static/src/font/mnmliconsv21-webfont.eot") format("eot");
@ -994,19 +994,22 @@
background: #f0eeee; background: #f0eeee;
border-right: 1px solid #afafb6; border-right: 1px solid #afafb6;
text-shadow: none; text-shadow: none;
padding-bottom: 16px;
} }
.openerp a.oe_logo { .openerp .oe_leftbar > div {
position: relative; height: 100%;
display: table;
width: 220px; width: 220px;
display: block; position: relative;
}
.openerp .oe_leftbar > div a.oe_logo {
display: table-row;
text-align: center; text-align: center;
} }
.openerp a.oe_logo img { .openerp .oe_leftbar > div a.oe_logo img {
margin: 14px 0; margin: 14px 0;
border: 0; border: 0;
} }
.openerp a.oe_logo .oe_logo_edit { .openerp .oe_leftbar > div a.oe_logo .oe_logo_edit {
margin: 14px 0; margin: 14px 0;
position: absolute; position: absolute;
top: 1px; top: 1px;
@ -1021,22 +1024,36 @@
-ms-box-sizing: border-box; -ms-box-sizing: border-box;
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; display: block;
} }
.openerp .oe_footer { .openerp .oe_leftbar > div > div {
position: fixed; 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; bottom: 0;
padding: 4px 0; left: 0;
right: 0;
overflow-x: hidden;
overflow-y: auto;
}
.openerp .oe_leftbar > div .oe_footer {
background: #f0eeee; background: #f0eeee;
width: 220px;
text-align: center; text-align: center;
} }
.openerp .oe_footer a { .openerp .oe_leftbar > div .oe_footer a {
font-weight: bold; font-weight: bold;
color: black; color: black;
} }
.openerp .oe_footer a span { .openerp .oe_leftbar > div .oe_footer a span {
color: #a24689; color: #a24689;
} }
.openerp .oe_secondary_menu_section { .openerp .oe_secondary_menu_section {
@ -1140,8 +1157,26 @@
color: #7c7bad; color: #7c7bad;
} }
.openerp .oe_application > div { .openerp .oe_application > div {
position: relative;
height: 100%; 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) { .openerp .oe_application .oe_breadcrumb_item:not(:last-child) {
max-width: 7em; max-width: 7em;
white-space: nowrap; white-space: nowrap;
@ -1157,11 +1192,8 @@
height: inherit; height: inherit;
width: 100%; width: 100%;
} }
.openerp .oe_view_manager .oe_view_manager_body {
height: inherit;
}
.openerp .oe_view_manager .oe_view_manager_view_kanban:not(:empty) { .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 { .openerp .oe_view_manager[data-view-type=kanban] .oe_view_manager_body {
display: table-row; display: table-row;
@ -1381,7 +1413,7 @@
float: right; float: right;
padding: 1px 0; padding: 1px 0;
line-height: 18px; line-height: 18px;
width: 400px; min-width: 400px;
border: 1px solid #ababab; border: 1px solid #ababab;
background: white; background: white;
-moz-border-radius: 13px; -moz-border-radius: 13px;
@ -1556,59 +1588,64 @@
-webkit-border-radius: 2px; -webkit-border-radius: 2px;
border-radius: 2px; border-radius: 2px;
} }
.openerp .oe_searchview.oe_searchview_open_drawer .oe_searchview_drawer { .openerp .oe_searchview_drawer_container {
display: block; overflow: auto;
} }
.openerp .oe_searchview .oe_searchview_drawer { .openerp .oe_searchview_drawer {
cursor: default;
position: absolute;
z-index: 2;
margin-top: 4px;
top: 100%;
right: -1px;
background-color: white;
min-width: 100%;
display: none; display: none;
border: 1px solid #afafb6; width: 100%;
cursor: default;
display: none;
overflow: hidden;
border-bottom: 1px solid #afafb6;
text-align: left; text-align: left;
-moz-border-radius: 4px; padding: 8px 0;
-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);
} }
.openerp .oe_searchview .oe_searchview_drawer > div { .openerp .oe_searchview_drawer .badge {
border-top: 1px solid #cccccc; font-size: 12px;
margin: 0; line-height: 12px;
padding: 8px;
} }
.openerp .oe_searchview .oe_searchview_drawer > div:first-child { .openerp .oe_searchview_drawer > div:first-child {
border-top: none; border: none;
margin: 0; padding-left: 0;
} }
.openerp .oe_searchview .oe_searchview_drawer h3 { .openerp .oe_searchview_drawer > div:first-child li:hover:not(.badge) {
margin: 8px 4px 4px 0px; background-color: #f0f0fa;
}
.openerp .oe_searchview_drawer .col-md-5 {
padding-left: 0;
}
.openerp .oe_searchview_drawer dl {
margin-bottom: 0;
}
.openerp .oe_searchview_drawer dt {
color: #7c7bad; color: #7c7bad;
font-size: 13px; 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; margin: 0 0 0 2px;
padding-left: 20px;
cursor: pointer; cursor: pointer;
font-weight: normal; font-weight: normal;
display: inline-block; 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; background-color: #f0f0fa;
} }
.openerp .oe_searchview .oe_searchview_drawer h4:before { .openerp .oe_searchview_drawer h4:before {
content: "▸ "; content: "▸ ";
color: #a3a3a3; color: #a3a3a3;
} }
.openerp .oe_searchview .oe_searchview_drawer button { .openerp .oe_searchview_drawer button {
margin: 4px 0; margin: 4px 0;
} }
.openerp .oe_searchview .oe_searchview_drawer .button { .openerp .oe_searchview_drawer .button {
border: none; border: none;
background: transparent; background: transparent;
padding: 0 2px; padding: 0 2px;
@ -1619,126 +1656,112 @@
-webkit-border-radius: 0; -webkit-border-radius: 0;
border-radius: 0; border-radius: 0;
} }
.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_section { .openerp .oe_searchview_drawer .oe_searchview_section ul {
display: table; margin: 0 8px;
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;
padding: 0; padding: 0;
list-style: none; list-style: none;
display: inline;
} }
.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_section li { .openerp .oe_searchview_drawer .oe_searchview_section li {
list-style: none; display: inline-block;
padding: 2px 4px 2px 20px;
line-height: 14px;
color: inherit;
cursor: pointer; cursor: pointer;
position: relative; position: relative;
margin-right: 8px;
} }
.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_section li.oe_selected:before { .openerp .oe_searchview_drawer .oe_searchview_section li > span {
content: "W"; display: inline-block;
font-family: "entypoRegular" !important; max-width: 250px;
font-size: 24px; text-overflow: ellipsis;
font-weight: 300 !important; vertical-align: bottom;
color: #a3a3a3; overflow: hidden;
position: absolute;
left: 4px;
top: -2px;
} }
.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_section li:hover { .openerp .oe_searchview_drawer form {
background-color: #f0f0fa;
}
.openerp .oe_searchview .oe_searchview_drawer form {
margin-left: 12px; margin-left: 12px;
} }
.openerp .oe_searchview .oe_searchview_drawer form p { .openerp .oe_searchview_drawer form p {
margin: 4px 0; margin: 4px 0;
line-height: 18px; line-height: 18px;
} }
.openerp .oe_searchview .oe_searchview_drawer form button { .openerp .oe_searchview_drawer form button {
margin: 0 0 8px -3px; margin: 0 0 8px -3px;
} }
.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom { .openerp .oe_searchview_drawer .oe_searchview_savefilter form {
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 .oe_searchview_drawer .oe_searchview_custom form {
display: none; display: none;
} }
.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom li { .openerp .oe_searchview_drawer .oe_searchview_custom {
display: none;
}
.openerp .oe_searchview_drawer .oe_searchview_custom li {
cursor: pointer; cursor: pointer;
position: relative; position: relative;
line-height: 14px; line-height: 14px;
padding: 2px 4px 2px 20px; margin-right: 0;
} }
.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom li:hover { .openerp .oe_searchview_drawer .oe_searchview_custom li button {
background-color: #f0f0fa;
}
.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom li button {
position: absolute; position: absolute;
top: 0; top: 0;
right: 5px; 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; font-weight: normal;
} }
.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_dashboard form { .openerp .oe_searchview_drawer .oe_searchview_dashboard form {
display: none; display: none;
margin-top: 2px; 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; display: none;
margin-top: 8px; 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"; content: "Z";
font-family: "entypoRegular" !important; font-family: "entypoRegular" !important;
font-size: 24px; font-size: 24px;
font-weight: 300 !important; font-weight: 300 !important;
margin-right: 4px; margin-right: 4px;
} }
.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_advanced ul { .openerp .oe_searchview_drawer .oe_searchview_advanced ul {
list-style: none; list-style: none;
padding: 0; padding: 0;
} }
.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_advanced li { .openerp .oe_searchview_drawer .oe_searchview_advanced li {
position: relative; position: relative;
list-style: none; list-style: none;
margin: 0; margin: 0;
white-space: nowrap; 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; visibility: hidden;
margin-left: -14px; 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; opacity: 0.5;
margin-left: -14px; margin-left: -14px;
} }
.openerp .oe_searchview .oe_searchview_drawer .oe_opened h4:before { .openerp .oe_searchview_drawer .oe_opened h4:before {
content: "▾ "; content: "▾ ";
position: relative; position: relative;
top: -1px; top: -1px;
} }
.openerp .oe_searchview .oe_searchview_drawer .oe_opened form { .openerp .oe_searchview_drawer .oe_opened form {
display: block; 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; display: inline-block;
width: 12px; width: 12px;
height: 12px; height: 12px;
@ -1750,7 +1773,7 @@
font-weight: bold; font-weight: bold;
text-shadow: 0 1px 1px white; 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; text-decoration: none;
color: white; color: white;
background: #8786b7; background: #8786b7;
@ -1759,16 +1782,16 @@
-webkit-border-radius: 2px; -webkit-border-radius: 2px;
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; display: none;
position: absolute; position: absolute;
bottom: 1px; bottom: 1px;
right: 4px; 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; display: inline-block;
} }
.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom_public:after { .openerp .oe_searchview_drawer .oe_searchview_custom_public:after {
content: ","; content: ",";
font-family: "entypoRegular" !important; font-family: "entypoRegular" !important;
font-size: 22px; font-size: 22px;
@ -3423,3 +3446,7 @@ input[type="radio"], input[type="checkbox"] {
background-color: black; background-color: black;
opacity: 0.6; opacity: 0.6;
} }
body {
overflow: auto;
}

View File

@ -844,40 +844,53 @@ $sheet-padding: 16px
background: #f0eeee background: #f0eeee
border-right: 1px solid $tag-border border-right: 1px solid $tag-border
text-shadow: none text-shadow: none
padding-bottom: 16px > div
a.oe_logo height: 100%
position: relative display: table
width: 220px width: 220px
display: block position: relative
text-align: center a.oe_logo
img display: table-row
margin: 14px 0 text-align: center
border: 0 img
.oe_logo_edit margin: 14px 0
margin: 14px 0 border: 0
position: absolute .oe_logo_edit
top: 1px margin: 14px 0
padding: 4px position: absolute
width: 100% top: 1px
display: none padding: 4px
text-align: center width: 100%
color: #eee display: none
background: rgba(37,37,37,0.9) text-align: center
@include box-sizing(border) color: #eee
&:hover .oe_logo_edit_admin background: rgba(37,37,37,0.9)
display: block @include box-sizing(border)
.oe_footer &:hover .oe_logo_edit_admin
position: fixed display: block
bottom: 0 > div
padding: 4px 0 display: table-row
background: #f0eeee height: 100%
width: 220px > div
text-align: center position: relative
a height: 100%
font-weight: bold > div.oe_secondary_menus_container
color: black position: absolute
span position: static\9
color: #a24689 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 {{{ // Webclient.leftbar items {{{
@ -955,7 +968,25 @@ $sheet-padding: 16px
a a
color: $link-color color: $link-color
> div > div
position: relative
height: 100% 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) .oe_breadcrumb_item:not(:last-child)
max-width: 7em max-width: 7em
white-space: nowrap white-space: nowrap
@ -970,10 +1001,8 @@ $sheet-padding: 16px
display: table display: table
height: inherit height: inherit
width: 100% width: 100%
.oe_view_manager_body
height: inherit
.oe_view_manager_view_kanban:not(:empty) .oe_view_manager_view_kanban:not(:empty)
height: inherit height: 100%
&[data-view-type=kanban] &[data-view-type=kanban]
.oe_view_manager_body .oe_view_manager_body
display: table-row display: table-row
@ -1150,7 +1179,7 @@ $sheet-padding: 16px
float: right float: right
padding: 1px 0 padding: 1px 0
line-height: 18px line-height: 18px
width: 400px min-width: 400px
border: 1px solid #ababab border: 1px solid #ababab
background: white background: white
@include radius(13px) @include radius(13px)
@ -1277,188 +1306,180 @@ $sheet-padding: 16px
background: #8786b7 background: #8786b7
text-shadow: 0 1px 1px rgba(0, 0, 0, 0.4) text-shadow: 0 1px 1px rgba(0, 0, 0, 0.4)
@include radius(2px) @include radius(2px)
&.oe_searchview_open_drawer
.oe_searchview_drawer .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
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
line-height: 18px
button
margin: 0 0 8px -3px // Managed margin-left according bootstrap3
.oe_searchview_savefilter
form
display: none
.oe_searchview_custom
display: none
li
cursor: pointer
position: relative
line-height: 14px
margin-right: 0
button
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
.oe_searchview_advanced
overflow: auto
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 display: block
.oe_searchview_drawer // delete buttons
cursor: default .oe_searchview_custom_delete, .searchview_extended_delete_prop
position: absolute display: inline-block
z-index: 2 width: 12px
// detach drawer from field slightly height: 12px
margin-top: 4px line-height: 12px
top: 100% padding: 1px
right: -1px color: #8786b7
background-color: white line-height: 8px
min-width: 100% 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 display: none
border: 1px solid $tag-border position: absolute
text-align: left bottom: 1px
@include radius(4px) right: 4px
@include box-shadow(0 1px 4px rgba(0,0,0,0.3)) .oe_searchview_custom_private, .oe_searchview_custom_public
> div &:hover
border-top: 1px solid #ccc .oe_searchview_custom_delete
margin: 0 display: inline-block
padding: 8px .oe_searchview_custom_public:after
> div:first-child content: ","
border-top: none font-family: "entypoRegular" !important
margin: 0 font-size: 22px
h3 font-weight: 300 !important
margin: 8px 4px 4px 0px margin: 0 0 0 4px
color: $section-title-color padding: 0
font-size: 13px
h4, h4 *
margin: 0 0 0 2px
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
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
form
margin-left: 12px
p
margin: 4px 0
line-height: 18px
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
// 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 {{{ // Views Common {{{
.oe_view_nocontent .oe_view_nocontent
@ -2779,5 +2800,7 @@ input[type="radio"], input[type="checkbox"]
opacity: 0.6000000238418579 opacity: 0.6000000238418579
body
overflow: auto
// au BufWritePost,FileWritePost *.sass :!sass --style expanded --line-numbers <afile> > "%:p:r.css" // au BufWritePost,FileWritePost *.sass :!sass --style expanded --line-numbers <afile> > "%:p:r.css"
// vim:tabstop=4:shiftwidth=4:softtabstop=4:fdm=marker: // vim:tabstop=4:shiftwidth=4:softtabstop=4:fdm=marker:

View File

@ -340,7 +340,8 @@ instance.web.SearchView = instance.web.Widget.extend(/** @lends instance.web.Sea
}, },
'click .oe_searchview_unfold_drawer': function (e) { 'click .oe_searchview_unfold_drawer': function (e) {
e.stopImmediatePropagation(); e.stopImmediatePropagation();
this.$el.toggleClass('oe_searchview_open_drawer'); if (this.drawer)
this.drawer.toggle();
}, },
'keydown .oe_searchview_input, .oe_searchview_facet': function (e) { 'keydown .oe_searchview_input, .oe_searchview_facet': function (e) {
switch(e.which) { switch(e.which) {
@ -383,19 +384,24 @@ instance.web.SearchView = instance.web.Widget.extend(/** @lends instance.web.Sea
this.defaults = defaults || {}; this.defaults = defaults || {};
this.has_defaults = !_.isEmpty(this.defaults); this.has_defaults = !_.isEmpty(this.defaults);
this.inputs = [];
this.controls = [];
this.headless = this.options.hidden && !this.has_defaults; this.headless = this.options.hidden && !this.has_defaults;
this.input_subviews = []; this.input_subviews = [];
this.view_manager = null;
this.$view_manager_header = null;
this.ready = $.Deferred(); this.ready = $.Deferred();
this.drawer_ready = $.Deferred();
this.fields_view_get = $.Deferred();
this.drawer = new instance.web.SearchViewDrawer(parent, this);
}, },
start: function() { start: function() {
var self = this; var self = this;
var p = this._super(); var p = this._super();
this.$view_manager_header = this.$el.parents(".oe_view_manager_header").first();
this.setup_global_completion(); this.setup_global_completion();
this.query = new my.SearchQuery() this.query = new my.SearchQuery()
.on('add change reset remove', this.proxy('do_search')) .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) { this.alive($.when(load_view)).then(function (r) {
self.fields_view_get.resolve(r);
return self.search_view_loaded(r); return self.search_view_loaded(r);
}).fail(function () { }).fail(function () {
self.ready.reject.apply(null, arguments); self.ready.reject.apply(null, arguments);
}); });
} }
instance.web.bus.on('click', this, function(ev) { var view_manager = this.getParent();
if ($(ev.target).parents('.oe_searchview').length === 0) { while (!(view_manager instanceof instance.web.ViewManager) &&
self.$el.removeClass('oe_searchview_open_drawer'); 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); return $.when(p, this.ready);
}, },
set_drawer: function (drawer) {
this.drawer = drawer;
},
show: function () { show: function () {
this.$el.show(); this.$el.show();
}, },
@ -462,14 +480,6 @@ instance.web.SearchView = instance.web.Widget.extend(/** @lends instance.web.Sea
.$el.focus(); .$el.focus();
}, },
/**
* 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 * Sets up search view's view-wide auto-completion widget
*/ */
@ -530,7 +540,7 @@ instance.web.SearchView = instance.web.Widget.extend(/** @lends instance.web.Sea
* @param {Function} resp response callback * @param {Function} resp response callback
*/ */
complete_global_search: function (req, resp) { 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(); }) .filter(function (input) { return input.visible(); })
.invoke('complete', req.term) .invoke('complete', req.term)
.value()).then(function () { .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) { search_view_loaded: function(data) {
var self = this; var self = this;
this.fields_view = data; 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", "Got non-search view after asking for a search view: type %s, arch root %s",
data.type, data.arch.tag)); data.type, data.arch.tag));
} }
this.make_widgets(
data['arch'].children,
data.fields);
this.add_common_inputs(); return this.drawer_ready
.then(this.proxy('setup_default_query'))
// 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)
.then(function () { .then(function () {
self.trigger("search_view_loaded", data); self.trigger("search_view_loaded", data);
self.ready.resolve(); 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 // Hacky implementation of CustomFilters#facet_for_defaults ensure
// CustomFilters will be ready (and CustomFilters#filters will be // CustomFilters will be ready (and CustomFilters#filters will be
// correctly filled) by the time this method executes. // 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()) { if (!this.options.disable_custom_filters && !_(custom_filters).isEmpty()) {
// Check for any is_default custom filter // Check for any is_default custom filter
var personal_filter = _(custom_filters).find(function (filter) { var personal_filter = _(custom_filters).find(function (filter) {
return filter.user_id && filter.is_default; return filter.user_id && filter.is_default;
}); });
if (personal_filter) { if (personal_filter) {
this.custom_filters.toggle_filter(personal_filter, true); this.drawer.custom_filters.toggle_filter(personal_filter, true);
return; return;
} }
@ -762,7 +676,7 @@ instance.web.SearchView = instance.web.Widget.extend(/** @lends instance.web.Sea
return !filter.user_id && filter.is_default; return !filter.user_id && filter.is_default;
}); });
if (global_filter) { if (global_filter) {
this.custom_filters.toggle_filter(global_filter, true); this.drawer.custom_filters.toggle_filter(global_filter, true);
return; return;
} }
} }
@ -872,9 +786,167 @@ instance.web.SearchView = instance.web.Widget.extend(/** @lends instance.web.Sea
on_invalid: function (errors) { on_invalid: function (errors) {
this.do_notify(_t("Invalid Search"), _t("triggered from search view")); this.do_notify(_t("Invalid Search"), _t("triggered from search view"));
this.trigger('invalid_search', errors); 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 * Registry of search fields, called by :js:class:`instance.web.SearchView` to
* find and instantiate its field widgets. * find and instantiate its field widgets.
@ -932,9 +1004,10 @@ instance.web.search.Widget = instance.web.Widget.extend( /** @lends instance.web
this._super(parent); this._super(parent);
var ancestor = parent; var ancestor = parent;
do { do {
this.view = ancestor; this.drawer = ancestor;
} while (!(ancestor instanceof instance.web.SearchView) } while (!(ancestor instanceof instance.web.SearchViewDrawer)
&& (ancestor = (ancestor.getParent && ancestor.getParent()))); && (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.name = attrs.string;
this.children = []; this.children = [];
this.view.controls.push(this); this.drawer.controls.push(this);
}, },
push: function (input) { push: function (input) {
this.children.push(input); this.children.push(input);
@ -977,7 +1050,7 @@ instance.web.search.Input = instance.web.search.Widget.extend( /** @lends instan
init: function (parent) { init: function (parent) {
this._super(parent); this._super(parent);
this.load_attrs({}); this.load_attrs({});
this.view.inputs.push(this); this.drawer.inputs.push(this);
}, },
/** /**
* Fetch auto-completion values for the widget. * 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 () { search_change: function () {
var self = this; 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)); var facet = this.view.query.find(_.bind(this.match_facet, this));
if (!facet) { return; } if (!facet) { return; }
facet.values.each(function (v) { facet.values.each(function (v) {
@ -1096,7 +1169,7 @@ instance.web.search.FilterGroup = instance.web.search.Input.extend(/** @lends in
if (i === -1) { return; } if (i === -1) { return; }
$filters.filter(function () { $filters.filter(function () {
return Number($(this).data('index')) === i; 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({ instance.web.search.CustomReports = instance.web.search.Input.extend({
template: 'SearchView.CustomFilters', template: 'SearchView.CustomReports',
_in_drawer: true, _in_drawer: true,
init: function () { init: function () {
this.is_ready = $.Deferred(); this.is_ready = $.Deferred();
this._super.apply(this, arguments); this._super.apply(this,arguments);
}, },
start: function () { start: function () {
var self = this; var self = this;
@ -1648,13 +1721,6 @@ instance.web.search.CustomFilters = instance.web.search.Input.extend({
self.clear_selection(); self.clear_selection();
}) })
.on('reset', this.proxy('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]) return this.model.call('get_filters', [this.view.model])
.then(this.proxy('set_filters')) .then(this.proxy('set_filters'))
.done(function () { self.is_ready.resolve(); }) .done(function () { self.is_ready.resolve(); })
@ -1708,7 +1774,7 @@ instance.web.search.CustomFilters = instance.web.search.Input.extend({
}; };
}, },
clear_selection: function () { clear_selection: function () {
this.$('li.oe_selected').removeClass('oe_selected'); this.$('span.badge').removeClass('badge');
}, },
append_filter: function (filter) { append_filter: function (filter) {
var self = this; var self = this;
@ -1721,12 +1787,13 @@ instance.web.search.CustomFilters = instance.web.search.Input.extend({
} else { } else {
var id = filter.id; var id = filter.id;
this.filters[key] = filter; this.filters[key] = filter;
$filter = this.$filters[key] = $('<li></li>') $filter = $('<li></li>')
.appendTo(this.$('.oe_searchview_custom_list')) .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) .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>') $('<a class="oe_searchview_custom_delete">x</a>')
.click(function (e) { .click(function (e) {
@ -1738,14 +1805,18 @@ instance.web.search.CustomFilters = instance.web.search.Input.extend({
$filter.remove(); $filter.remove();
delete self.$filters[key]; delete self.$filters[key];
delete self.filters[key]; delete self.filters[key];
if (_.isEmpty(self.filters)) {
self.hide();
}
}); });
}) })
.appendTo($filter); .appendTo($filter);
} }
$filter.unbind('click').click(function () { this.$filters[key].unbind('click').click(function () {
self.toggle_filter(filter); self.toggle_filter(filter);
}); });
this.show();
}, },
toggle_filter: function (filter, preventSearch) { toggle_filter: function (filter, preventSearch) {
var current = this.view.query.find(function (facet) { var current = this.view.query.find(function (facet) {
@ -1753,15 +1824,44 @@ instance.web.search.CustomFilters = instance.web.search.Input.extend({
}); });
if (current) { if (current) {
this.view.query.remove(current); this.view.query.remove(current);
this.$filters[this.key_for(filter)].removeClass('oe_selected'); this.$filters[this.key_for(filter)].removeClass('badge');
return; return;
} }
this.view.query.reset([this.facet_for(filter)], { this.view.query.reset([this.facet_for(filter)], {
preventSearch: preventSearch || false}); preventSearch: preventSearch || false});
this.$filters[this.key_for(filter)].addClass('oe_selected'); this.$filters[this.key_for(filter)].addClass('badge');
}, },
set_filters: function (filters) { set_filters: function (filters) {
_(filters).map(_.bind(this.append_filter, this)); _(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 () { save_current: function () {
var self = this; var self = this;
@ -1799,14 +1899,16 @@ instance.web.search.CustomFilters = instance.web.search.Input.extend({
// FIXME: current context? // FIXME: current context?
return self.model.call('create_or_replace', [filter]).done(function (id) { return self.model.call('create_or_replace', [filter]).done(function (id) {
filter.id = id; filter.id = id;
self.append_filter(filter); if (self.custom_reports) {
self.custom_reports.append_filter(filter);
}
self.$el self.$el
.removeClass('oe_opened') .removeClass('oe_opened')
.find('form')[0].reset(); .find('form')[0].reset();
}); });
}); });
return false; return false;
} },
}); });
instance.web.search.Filters = instance.web.search.Input.extend({ 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, _in_drawer: true,
start: function () { start: function () {
var self = this; var self = this;
var running_count = 0;
// get total filters count
var is_group = function (i) { return i instanceof instance.web.search.FilterGroup; }; 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() return _(_(group.children).filter(is_group)).isEmpty()
|| group.modifiers.invisible; || 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); var filters = _(group.children).filter(is_group);
return { return {
name: _.str.sprintf("<span class='oe_i'>%s</span> %s", name: _.str.sprintf("<span class='oe_i'>%s</span> %s",
@ -1840,27 +1933,16 @@ instance.web.search.Filters = instance.web.search.Input.extend({
}; };
}).value(); }).value();
while (col2.length) { var $dl = $('<dl class="dl-horizontal">').appendTo(this.$el);
// 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;
}
}
return $.when( var rendered_lines = _.map(groups, function (group) {
this.render_column(col1, $('<div>').appendTo(this.$el)), $('<dt>').html(group.name).appendTo($dl);
this.render_column(col2, $('<div>').appendTo(this.$el))); var $dd = $('<dd>').appendTo($dl);
return $.when.apply(null, _(group.filters).invoke('appendTo', $dd));
});
return $.when.apply(this, rendered_lines);
}, },
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));
}));
}
}); });
instance.web.search.Advanced = instance.web.search.Input.extend({ instance.web.search.Advanced = instance.web.search.Input.extend({

View File

@ -5306,8 +5306,12 @@ instance.web.form.SelectCreatePopup = instance.web.form.AbstractFormPopup.extend
if (this.searchview) { if (this.searchview) {
this.searchview.destroy(); this.searchview.destroy();
} }
if (this.searchview_drawer) {
this.searchview_drawer.destroy();
}
this.searchview = new instance.web.SearchView(this, this.searchview = new instance.web.SearchView(this,
this.dataset, false, search_defaults); 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) { this.searchview.on('search_data', self, function(domains, contexts, groupbys) {
if (self.initial_ids) { if (self.initial_ids) {
self.do_search(domains.concat([[["id", "in", self.initial_ids]], self.domain]), 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) { do_search: function(domains, contexts, groupbys) {
var self = this; var self = this;

View File

@ -607,7 +607,6 @@ instance.web.ViewManager = instance.web.Widget.extend({
// If no default view defined, switch to the first one in sequence // 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; 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); 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) { _.each(_.keys(self.views), function(view_name) {
var controller = self.views[view_name].controller; var controller = self.views[view_name].controller;
if (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) { if (view_name === view_type) {
container.show(); container.show();
controller.do_show(view_options || {}); 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('switch_mode', self, this.switch_mode);
controller.on('previous_view', self, this.prev_view); 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); var view_promise = controller.appendTo(container);
this.views[view_type].controller = controller; this.views[view_type].controller = controller;
this.views[view_type].deferred.resolve(view_type); 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); self.trigger("controller_inited",view_type,controller);
}); });
}, },
/** /**
* @returns {Number|Boolean} the view id of the given type, false if not found * @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) { if (this.searchview) {
this.searchview.destroy(); this.searchview.destroy();
} }
var options = { var options = {
hidden: this.flags.search_view === false, hidden: this.flags.search_view === false,
disable_custom_filters: this.flags.search_disable_custom_filters, 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 = new instance.web.SearchView(this, this.dataset, view_id, search_defaults, options);
this.searchview.on('search_data', self, this.do_searchview_search); 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) { do_searchview_search: function(domains, contexts, groupbys) {
var self = this, var self = this,

View File

@ -440,14 +440,20 @@
</tr> </tr>
<tr> <tr>
<td class="oe_leftbar" valign="top"> <td class="oe_leftbar" valign="top">
<t t-set="debug" t-value="__debug__ ? '&amp;debug' : ''"/> <div>
<a class="oe_logo" t-attf-href="/web?#{debug}"> <t t-set="debug" t-value="__debug__ ? '&amp;debug' : ''"/>
<span class="oe_logo_edit">Edit Company data</span> <a class="oe_logo" t-attf-href="/web?#{debug}">
<img t-att-src='widget.session.url("/web/binary/company_logo")'/> <span class="oe_logo_edit">Edit Company data</span>
</a> <img t-att-src='widget.session.url("/web/binary/company_logo")'/>
<div class="oe_secondary_menus_container"/> </a>
<div class="oe_footer"> <div>
Powered by <a href="https://www.odoo.com" target="_blank"><span>Odoo</span></a> <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> </div>
</td> </td>
<td class="oe_application"> <td class="oe_application">
@ -520,10 +526,15 @@
</tr> </tr>
</table> </table>
<div class="oe_view_manager_body"> <div class="oe_view_manager_wrapper">
<t t-foreach="widget.views_src" t-as="view"> <div>
<div t-attf-class="oe_view_manager_view_#{view.view_type}"/> <div class="oe_view_manager_body">
</t> <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>
</div> </div>
</t> </t>
@ -1556,11 +1567,15 @@
<div class="oe_searchview_facets"/> <div class="oe_searchview_facets"/>
<div class="oe_searchview_clear"/> <div class="oe_searchview_clear"/>
<div class="oe_searchview_unfold_drawer" title="Advanced Search..."/> <div class="oe_searchview_unfold_drawer" title="Advanced Search..."/>
<div class="oe_searchview_drawer"/>
<button type="button" class="oe_searchview_search" <button type="button" class="oe_searchview_search"
title="Search Again">Search</button> title="Search Again">Search</button>
</div> </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" <div t-name="SearchView.InputView"
class="oe_searchview_input" class="oe_searchview_input"
contenteditable="true" contenteditable="true"
@ -1717,24 +1732,27 @@
<div t-name="SearchView.Filters" class="oe_searchview_filters oe_searchview_section"> <div t-name="SearchView.Filters" class="oe_searchview_filters oe_searchview_section">
</div> </div>
<div t-name="SearchView.CustomFilters" class="oe_searchview_custom oe_searchview_section">
<div>
<h3><span class="oe_i">M</span> Custom Filters</h3> <div t-name="SearchView.CustomReports" class="oe_searchview_custom oe_searchview_section">
<ul class="oe_searchview_custom_list"/> <dl class="dl-horizontal">
<div class="oe_searchview_custom"> <dt><span class="oe_i">M</span> Custom Reports</dt>
<h4>Save current filter</h4> <dd><ul class="oe_searchview_custom_list"/></dd>
<form class="oe_form"> </dl>
<p class="oe_form_required"><input id="oe_searchview_custom_input" placeholder="Filter name"/></p> </div>
<p>
<input id="oe_searchview_custom_public" type="checkbox"/> <div t-name="SearchView.SaveFilter" class="oe_searchview_savefilter">
<label for="oe_searchview_custom_public">Share with all users</label> <h4>Save current filter</h4>
<input id="oe_searchview_custom_default" type="checkbox"/> <form class="oe_form">
<label for="oe_searchview_custom_default">Use by default</label> <p class="oe_form_required"><input id="oe_searchview_custom_input" placeholder="Filter name"/></p>
</p> <p>
<button>Save</button> <input id="oe_searchview_custom_public" type="checkbox"/>
</form> <label for="oe_searchview_custom_public">Share with all users</label>
</div> <input id="oe_searchview_custom_default" type="checkbox"/>
</div> <label for="oe_searchview_custom_default">Use by default</label>
</p>
<button>Save</button>
</form>
</div> </div>
<div t-name="SearchView.advanced" class="oe_searchview_advanced"> <div t-name="SearchView.advanced" class="oe_searchview_advanced">

Some files were not shown because too many files have changed in this diff Show More