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:
commit
74168c4e9d
|
@ -462,7 +462,7 @@
|
|||
<field name="period_id" string="Period"/>
|
||||
<separator/>
|
||||
<filter domain="[('user_id','=',uid)]" help="My Invoices"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter name="group_by_partner_id" string="Partner" domain="[]" context="{'group_by':'partner_id'}"/>
|
||||
<filter name="commercial_partner_id" string="Commercial Partner" domain="[]" context="{'group_by':'commercial_partner_id'}"/>
|
||||
<filter string="Responsible" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/>
|
||||
|
|
|
@ -61,7 +61,7 @@
|
|||
<filter string="Open" domain="[('state','=','draft')]" icon="terp-camera_test"/>
|
||||
<filter string="Closed" domain="[('state','=','done')]" icon="terp-dialog-close"/>
|
||||
<field name="state"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="Status" context="{'group_by': 'state'}" icon="terp-stock_effects-object-colorize"/>
|
||||
</group>
|
||||
</search>
|
||||
|
@ -232,7 +232,7 @@
|
|||
<filter icon="terp-sale" string="Receivable Accounts" domain="[('type','=','receivable')]"/>
|
||||
<filter icon="terp-purchase" string="Payable Accounts" domain="[('type','=','payable')]"/>
|
||||
<field name="user_type"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="Parent Account" icon="terp-folder-orange" domain="" context="{'group_by':'parent_id'}"/>
|
||||
<filter string="Account Type" icon="terp-stock_symbol-selection" domain="" context="{'group_by':'user_type'}"/>
|
||||
<filter string="Internal Type" icon="terp-stock_symbol-selection" domain="" context="{'group_by':'type'}"/>
|
||||
|
@ -381,7 +381,7 @@
|
|||
<filter domain="['|', ('type', '=', 'cash'), ('type', '=', 'bank')]" string="Liquidity" icon="terp-dolar"/>
|
||||
<filter domain="['|', ('type', '=', 'general'), ('type', '=', 'situation')]" string="Others" icon="terp-stock"/>
|
||||
<field name="user_id"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="User" context="{'group_by':'user_id'}" icon="terp-personal"/>
|
||||
<filter string="Type" context="{'group_by':'type'}" icon="terp-stock_symbol-selection"/>
|
||||
<filter string="Company" context="{'group_by':'company_id'}" icon="terp-go-home" groups="base.group_multi_company"/>
|
||||
|
@ -507,7 +507,7 @@
|
|||
<filter string="Open" name="state_open" domain="[('state','=','open')]" icon="terp-check"/>
|
||||
<filter string="Confirmed" name="state_confirmed" domain="[('state','=','confirm')]" icon="terp-camera_test"/>
|
||||
<field name="journal_id" domain="[('type', '=', 'cash')]" />
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="Journal" context="{'group_by': 'journal_id'}" icon="terp-folder-orange"/>
|
||||
<filter string="Status" context="{'group_by': 'state'}" icon="terp-stock_effects-object-colorize"/>
|
||||
<filter string="Period" context="{'group_by': 'period_id'}" icon="terp-go-month"/>
|
||||
|
@ -544,7 +544,7 @@
|
|||
<filter string="Confirmed" domain="[('state','=','confirm')]" icon="terp-camera_test"/>
|
||||
<field name="period_id"/>
|
||||
<field name="journal_id" domain="[('type', '=', 'bank')]" />
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="Journal" context="{'group_by': 'journal_id'}" icon="terp-folder-orange"/>
|
||||
<filter string="Status" context="{'group_by': 'state'}" icon="terp-stock_effects-object-colorize"/>
|
||||
<filter string="Period" context="{'group_by': 'period_id'}" icon="terp-go-month"/>
|
||||
|
@ -979,7 +979,7 @@
|
|||
<field name="company_id" groups="base.group_multi_company"/>
|
||||
<filter string="Sale" domain="[('type_tax_use','=','sale')]" />
|
||||
<filter string="Purchase" domain="[('type_tax_use','=','purchase')]" />
|
||||
<group string="Group By...">
|
||||
<group string="Group By">
|
||||
<filter string="Company" domain="[]" context="{'group_by':'company_id'}"/>
|
||||
<filter string="Tax Application" domain="[]" context="{'group_by':'type_tax_use'}"/>
|
||||
</group>
|
||||
|
@ -1258,7 +1258,7 @@
|
|||
<field name="partner_id"/>
|
||||
<field name="journal_id" context="{'journal_id':self}" widget="selection"/> <!-- it's important to keep widget='selection' in this filter viewbecause without that the value passed in the context is not the ID but the textual value (name) of the selected journal -->
|
||||
<field name="period_id" context="{'period_id':self}" widget="selection"/> <!-- it's important to keep the widget='selection' in this field, for the same reason as explained above -->
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="Partner" icon="terp-partner" domain="[]" context="{'group_by':'partner_id'}"/>
|
||||
<filter string="Journal" icon="terp-folder-orange" domain="[]" context="{'group_by':'journal_id'}"/>
|
||||
<filter string="Account" icon="terp-folder-green" context="{'group_by':'account_id'}"/>
|
||||
|
@ -1491,7 +1491,7 @@
|
|||
<field name="partner_id"/>
|
||||
<field name="journal_id"/>
|
||||
<field name="period_id"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="Partner" icon="terp-partner" domain="[]" context="{'group_by':'partner_id'}"/>
|
||||
<filter string="Journal" icon="terp-folder-orange" domain="[]" context="{'group_by':'journal_id'}"/>
|
||||
<filter string="States" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
|
||||
|
@ -1648,7 +1648,7 @@
|
|||
<filter string="Purchase" icon="terp-purchase" domain="[('journal_id.type', '=', 'purchase')]"/>
|
||||
<field name="journal_id"/>
|
||||
<field name="company_id" groups="base.group_multi_company"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="Journal" icon="terp-folder-orange" domain="[]" context="{'group_by':'journal_id'}"/>
|
||||
</group>
|
||||
</search>
|
||||
|
@ -1782,7 +1782,7 @@
|
|||
<filter icon="terp-document-new" string="Draft" domain="[('state','=','draft')]" help="Draft Subscription"/>
|
||||
<filter icon="terp-camera_test" string="Running" domain="[('state','=','running')]" help="Running Subscription"/>
|
||||
<field name="model_id"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="Model" icon="terp-folder-orange" domain="[]" context="{'group_by':'model_id'}"/>
|
||||
<filter string="Status" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
|
||||
</group>
|
||||
|
@ -1939,7 +1939,7 @@
|
|||
<field name="parent_id"/>
|
||||
<field name="user_type"/>
|
||||
<field name="type"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="Internal Type" icon="terp-stock_symbol-selection" domain="[]" context="{'group_by':'type'}"/>
|
||||
<filter string="Account Type" icon="terp-stock_symbol-selection" domain="[]" context="{'group_by':'user_type'}"/>
|
||||
</group>
|
||||
|
@ -2018,7 +2018,7 @@
|
|||
<field name="name" string="Account Template"/>
|
||||
<field name="account_root_id"/>
|
||||
<field name="bank_account_view_id"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="Root Account" icon="terp-folder-orange" domain="[]" context="{'group_by':'account_root_id'}"/>
|
||||
<filter string="Bank Account" icon="terp-folder-orange" domain="[]" context="{'group_by':'bank_account_view_id'}"/>
|
||||
<filter string="Receivable Account" icon="terp-sale" domain="[]" context="{'group_by':'property_account_receivable'}"/>
|
||||
|
@ -2161,7 +2161,7 @@
|
|||
<search string="Search tax template">
|
||||
<field name="name" filter_domain="['|', ('name','ilike',self), ('code','ilike',self)]" string="Tax Template"/>
|
||||
<field name="parent_id"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="Parent Code" icon="terp-folder-orange" domain="[]" context="{'group_by':'parent_id'}"/>
|
||||
</group>
|
||||
</search>
|
||||
|
@ -2568,7 +2568,7 @@
|
|||
<field name="name" string="Account Report"/>
|
||||
<field name="type"/>
|
||||
<field name="account_report_id"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="Parent Report" icon="terp-folder-orange" domain="" context="{'group_by':'parent_id'}"/>
|
||||
<filter string="Report Type" icon="terp-stock_symbol-selection" domain="[]" context="{'group_by':'type'}"/>
|
||||
</group>
|
||||
|
|
|
@ -37,7 +37,7 @@
|
|||
<field name="user_id"/>
|
||||
<filter string="Open" domain="[('state','=','open')]" help="Current Accounts"/>
|
||||
<filter string="Pending" domain="[('state','=','pending')]" help="Pending Accounts"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="Associated Partner" domain="[]" context="{'group_by':'partner_id'}"/>
|
||||
<filter string="Type" domain="[]" context="{'group_by':'type'}"/>
|
||||
<filter string="Template" domain="[]" context="{'group_by':'template_id'}"/>
|
||||
|
@ -198,7 +198,7 @@
|
|||
<filter string="My Entries" domain="[('user_id','=',uid)]"/>
|
||||
<field name="account_id"/>
|
||||
<field name="user_id"/>
|
||||
<group string="Group By..." expand="0">
|
||||
<group string="Group By" expand="0">
|
||||
<filter string="Analytic Account" context="{'group_by':'account_id'}"/>
|
||||
<filter string="Fin. Account" context="{'group_by':'general_account_id'}"/>
|
||||
<filter string="Journal" context="{'group_by':'journal_id'}" name="group_journal"/>
|
||||
|
@ -306,7 +306,7 @@
|
|||
<search string="Analytic Journals">
|
||||
<field name="name" filter_domain="['|', ('name','ilike',self), ('code','ilike',self)]" string="Analytic Journal"/>
|
||||
<field name="type"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="Type" icon="terp-stock_symbol-selection" domain="[]" context="{'group_by':'type'}"/>
|
||||
</group>
|
||||
</search>
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
<field name="account_id" groups="analytic.group_analytic_accounting"/>
|
||||
<field name="product_id" />
|
||||
<field name="user_id"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="User" name="User" icon="terp-personal" context="{'group_by':'user_id'}"/>
|
||||
<filter string="Partner" icon="terp-partner" context="{'group_by':'partner_id'}"/>
|
||||
<filter string="Account" name="Account" icon="terp-folder-green" context="{'group_by':'account_id'}" groups="analytic.group_analytic_accounting"/>
|
||||
|
|
|
@ -83,7 +83,7 @@
|
|||
<field name="partner_id"/>
|
||||
<field name="company_id" groups="base.group_multi_company"/>
|
||||
</group>
|
||||
<group expand="1" string="Group By...">
|
||||
<group expand="1" string="Group By">
|
||||
<filter string="Partner" icon="terp-partner" context="{'group_by':'partner_id'}"/>
|
||||
<filter string="Product" icon="terp-accessories-archiver" context="{'group_by':['product_id','product_uom_id'], 'quantity_visible':1}"/>
|
||||
<filter string="Currency" name="group_currency" icon="terp-dolar" context="{'group_by':'currency_id', 'currency_id_visible':1, 'amount_currency_visible':1}"/>
|
||||
|
|
|
@ -35,7 +35,7 @@
|
|||
<field name="partner_id"/>
|
||||
<field name="user_id" />
|
||||
<field name="categ_id" filter_domain="[('categ_id', 'child_of', self)]"/>
|
||||
<group expand="1" string="Group By...">
|
||||
<group expand="1" string="Group By">
|
||||
<filter string="Partner" name="partner_id" context="{'group_by':'partner_id','residual_visible':True}"/>
|
||||
<filter string="Commercial Partner" name="commercial_partner_id" context="{'group_by':'commercial_partner_id','residual_visible':True}"/>
|
||||
<filter string="Commercial Partner's Country" name="country_id" context="{'group_by':'country_id'}"/>
|
||||
|
|
|
@ -236,7 +236,7 @@
|
|||
<filter string="Customer Contracts" help="Contracts assigned to a customer." name="has_partner" domain="[('partner_id', '!=', False)]"/>
|
||||
<filter string="Contracts not assigned" help="Contracts that are not assigned to an account manager." domain="[('manager_id', '=', False)]"/>
|
||||
<separator/>
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="Status" domain="[]" context="{'group_by':'state'}"/>
|
||||
<filter string="Account Manager" domain="[]" context="{'group_by':'manager_id'}"/>
|
||||
<filter string="Partner" domain="[]" context="{'group_by':'partner_id'}"/>
|
||||
|
|
|
@ -49,7 +49,7 @@
|
|||
<field name="partner_id"/>
|
||||
<field name="user_id"/>
|
||||
<field name="company_id" groups="base.group_multi_company"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="User" icon="terp-personal" context="{'group_by':'user_id'}" help="User"/>
|
||||
<filter string="Partner" icon="terp-partner" context="{'group_by':'partner_id'}" help="Partner"/>
|
||||
<filter string="Product" icon="terp-accessories-archiver" context="{'group_by':'product_id'}" help="Product" />
|
||||
|
|
|
@ -33,7 +33,7 @@
|
|||
<field name="partner_id" filter_domain="[('partner_id','child_of',self)]"/>
|
||||
<field name="company_id" groups="base.group_multi_company"/>
|
||||
</group>
|
||||
<group expand="1" string="Group By...">
|
||||
<group expand="1" string="Group By">
|
||||
<filter string="Asset" name="asset" context="{'group_by':'asset_id'}"/>
|
||||
<filter string="Asset Category" name="asset_category" icon="terp-stock_symbol-selection" context="{'group_by':'asset_category_id'}"/>
|
||||
<filter string="Company" icon="terp-go-home" context="{'group_by':'company_id'}" groups="base.group_multi_company"/>
|
||||
|
|
|
@ -119,7 +119,7 @@
|
|||
<field name="globalisation_amount" string="Glob. Amount"/>
|
||||
<field name="note"/>
|
||||
</group>
|
||||
<group string="Group By..." expand="1">
|
||||
<group string="Group By" expand="1">
|
||||
<filter string="Journal" context="{'group_by':'journal_id'}" icon="terp-folder-green"/>
|
||||
<filter string="Statement" context="{'group_by':'statement_id'}" icon="terp-folder-orange"/>
|
||||
</group>
|
||||
|
|
|
@ -51,7 +51,7 @@
|
|||
<filter string="My Follow-ups" domain="[('payment_responsible_id','=', uid)]" name="my"/>
|
||||
</group>
|
||||
</search>
|
||||
<group string="Group By..." position="inside">
|
||||
<group string="Group By" position="inside">
|
||||
<filter string="Follow-up Responsible" context="{'group_by':'payment_responsible_id'}"/>
|
||||
<filter string="Followup Level" context="{'group_by':'latest_followup_level_id'}"/>
|
||||
</group>
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
help = "Including journal entries marked as a litigation"/>
|
||||
<field name="partner_id"/>
|
||||
<field name="balance"/>
|
||||
<group expand="1" string="Group By...">
|
||||
<group expand="1" string="Group By">
|
||||
<filter string="Partner" icon="terp-partner" context="{'group_by':'partner_id'}" />
|
||||
<filter string="Litigation" icon="terp-camera_test" context="{'group_by':'blocked'}" />
|
||||
<filter string="Follow-up Level" icon="terp-stock_effects-object-colorize" name="followup_level" context="{'group_by':'followup_id'}" />
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
<field name="name" string="Payment Mode"/>
|
||||
<field name="journal"/>
|
||||
<field name="company_id" groups="base.group_multi_company"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="Journal" icon="terp-folder-orange" domain="[]" context="{'group_by':'journal'}"/>
|
||||
</group>
|
||||
</search>
|
||||
|
@ -177,7 +177,7 @@
|
|||
<filter string="Done" domain="[('state','=','done')]" icon="terp-dialog-close"/>
|
||||
<field name="mode"/>
|
||||
<field name="state"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="Payment Mode" context="{'group_by': 'mode'}" icon="terp-dolar"/>
|
||||
<filter string="Status" context="{'group_by': 'state'}" icon="terp-stock_effects-object-colorize"/>
|
||||
</group>
|
||||
|
|
|
@ -132,7 +132,7 @@
|
|||
<field name="partner_id" filter_domain="[('partner_id', 'child_of', self)]"/>
|
||||
<field name="journal_id" widget="selection" context="{'journal_id': self, 'set_visible':False}" /> <!-- Keep widget=selection on this field to pass numeric `self` value, which is not the case for regular m2o widgets! -->
|
||||
<field name="period_id"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="Partner" icon="terp-partner" domain="[]" context="{'group_by':'partner_id'}"/>
|
||||
<filter string="Journal" icon="terp-folder-orange" domain="[]" context="{'group_by':'journal_id'}"/>
|
||||
<filter string="Period" icon="terp-go-month" domain="[]" context="{'group_by':'period_id','visible':True}"/>
|
||||
|
|
|
@ -57,7 +57,7 @@
|
|||
<field name="pay_now"/>
|
||||
<field name="company_id" groups="base.group_multi_company"/>
|
||||
</group>
|
||||
<group expand="1" string="Group By...">
|
||||
<group expand="1" string="Group By">
|
||||
<filter string="Partner" name="partner" icon="terp-partner" context="{'group_by':'partner_id'}"/>
|
||||
<filter string="Salesperson" name='user' icon="terp-personal" context="{'group_by':'user_id'}"/>
|
||||
<filter string="Status" icon="terp-stock_effects-object-colorize" context="{'group_by':'state'}"/>
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
<field name="partner_id" string="Customer" filter_domain="[('partner_id','child_of',self)]"/>
|
||||
<field name="journal_id" widget="selection" context="{'journal_id': self, 'set_visible':False}" domain="[('type','in',('bank','cash'))]"/> <!-- Keep widget=selection on this field to pass numeric `self` value, which is not the case for regular m2o widgets! -->
|
||||
<field name="period_id"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="Customer" icon="terp-personal" domain="[]" context="{'group_by':'partner_id'}"/>
|
||||
<filter string="Journal" icon="terp-folder-orange" domain="[]" context="{'group_by':'journal_id'}"/>
|
||||
<filter string="Period" icon="terp-go-month" domain="[]" context="{'group_by':'period_id','visible':True}"/>
|
||||
|
@ -37,7 +37,7 @@
|
|||
<field name="partner_id" string="Supplier" filter_domain="[('partner_id','child_of',self)]"/>
|
||||
<field name="journal_id" widget="selection" context="{'journal_id': self, 'set_visible':False}" domain="[('type','in',('bank','cash'))]"/> <!-- Keep widget=selection on this field to pass numeric `self` value, which is not the case for regular m2o widgets! -->
|
||||
<field name="period_id"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="Supplier" icon="terp-personal" domain="[]" context="{'group_by':'partner_id'}"/>
|
||||
<filter string="Journal" icon="terp-folder-orange" domain="[]" context="{'group_by':'journal_id'}"/>
|
||||
<filter string="Period" icon="terp-go-month" domain="[]" context="{'group_by':'period_id','visible':True}"/>
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
<field name="partner_id" string="Supplier" filter_domain="[('partner_id','child_of',self)]"/>
|
||||
<field name="journal_id" widget="selection" context="{'journal_id': self, 'set_visible':False}" domain="[('type','in',('purchase','purchase_refund'))]"/> <!-- Keep widget=selection on this field to pass numeric `self` value, which is not the case for regular m2o widgets! -->
|
||||
<field name="period_id"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="Supplier" icon="terp-personal" domain="[]" context="{'group_by':'partner_id'}"/>
|
||||
<filter string="Journal" icon="terp-folder-orange" domain="[]" context="{'group_by':'journal_id'}"/>
|
||||
<filter string="Period" icon="terp-go-month" domain="[]" context="{'group_by':'period_id','visible':True}"/>
|
||||
|
@ -35,7 +35,7 @@
|
|||
<field name="partner_id" string="Customer" filter_domain="[('partner_id','child_of',self)]"/>
|
||||
<field name="journal_id" widget="selection" context="{'journal_id': self, 'set_visible':False}" domain="[('type','in',('sale','sale_refund'))]"/> <!-- Keep widget=selection on this field to pass numeric `self` value, which is not the case for regular m2o widgets! -->
|
||||
<field name="period_id"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="Customer" icon="terp-personal" domain="[]" context="{'group_by':'partner_id'}"/>
|
||||
<filter string="Journal" icon="terp-folder-orange" domain="[]" context="{'group_by':'journal_id'}"/>
|
||||
<filter string="Period" icon="terp-go-month" domain="[]" context="{'group_by':'period_id','visible':True}"/>
|
||||
|
|
|
@ -366,15 +366,13 @@ instance.board.AddToDashboard = instance.web.search.Input.extend({
|
|||
},
|
||||
add_dashboard: function(){
|
||||
var self = this;
|
||||
var getParent = this.getParent();
|
||||
var view_parent = this.getParent().getParent();
|
||||
if (! view_parent.action || ! this.$el.find("select").val()) {
|
||||
if (! this.view.view_manager.action || ! this.$el.find("select").val()) {
|
||||
this.do_warn("Can't find dashboard action");
|
||||
return;
|
||||
}
|
||||
var data = getParent.build_search_data();
|
||||
var context = new instance.web.CompoundContext(getParent.dataset.get_context() || []);
|
||||
var domain = new instance.web.CompoundDomain(getParent.dataset.get_domain() || []);
|
||||
var data = this.view.build_search_data();
|
||||
var context = new instance.web.CompoundContext(this.view.dataset.get_context() || []);
|
||||
var domain = new instance.web.CompoundDomain(this.view.dataset.get_domain() || []);
|
||||
_.each(data.contexts, context.add, context);
|
||||
_.each(data.domains, domain.add, domain);
|
||||
|
||||
|
@ -394,10 +392,10 @@ instance.board.AddToDashboard = instance.web.search.Input.extend({
|
|||
|
||||
this.rpc('/board/add_to_dashboard', {
|
||||
menu_id: this.$el.find("select").val(),
|
||||
action_id: view_parent.action.id,
|
||||
action_id: this.view.view_manager.action.id,
|
||||
context_to_save: c,
|
||||
domain: d,
|
||||
view_mode: view_parent.active_view,
|
||||
view_mode: this.view.view_manager.active_view,
|
||||
name: this.$el.find("input").val()
|
||||
}).done(function(r) {
|
||||
if (r === false) {
|
||||
|
@ -412,12 +410,12 @@ instance.board.AddToDashboard = instance.web.search.Input.extend({
|
|||
this.$el.toggleClass('oe_opened');
|
||||
if (! this.$el.hasClass('oe_opened'))
|
||||
return;
|
||||
this.$("input").val(this.getParent().fields_view.name || "" );
|
||||
this.$("input").val(this.view.fields_view.name || "" );
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
instance.web.SearchView.include({
|
||||
instance.web.SearchViewDrawer.include({
|
||||
add_common_inputs: function() {
|
||||
this._super();
|
||||
var vm = this.getParent().getParent();
|
||||
|
|
|
@ -260,7 +260,7 @@
|
|||
<separator/>
|
||||
<filter icon="terp-check" string="Confirmed" domain="[('state','=','confirmed')]" help="Confirmed Events"/>
|
||||
<field name="user_id"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="Responsible" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/>
|
||||
<filter string="Availability" icon="terp-camera_test" domain="[]" context="{'group_by':'show_as'}"/>
|
||||
<filter string="Privacy" icon="terp-locked" domain="[]" context="{'group_by':'class'}"/>
|
||||
|
|
|
@ -260,7 +260,7 @@
|
|||
<filter string="My Meetings" help="My Meetings" name="mymeetings" context='{"mymeetings": 1}'/>
|
||||
<filter string="Unread Messages" name="message_unread" domain="[('message_unread','=',True)]"/>
|
||||
<separator/>
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="Responsible" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/>
|
||||
<filter string="Availability" icon="terp-camera_test" domain="[]" context="{'group_by':'show_as'}"/>
|
||||
<filter string="Privacy" icon="terp-locked" domain="[]" context="{'group_by':'class'}"/>
|
||||
|
|
|
@ -349,7 +349,7 @@
|
|||
name='not_opt_out' domain="[('opt_out', '=', False)]"
|
||||
help="Leads that did not ask not to be included in mass mailing campaigns"/>
|
||||
<separator />
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="Salesperson" domain="[]" context="{'group_by':'user_id'}"/>
|
||||
<filter string="Team" domain="[]" context="{'group_by':'section_id'}" groups="base.group_multi_salesteams"/>
|
||||
<filter string="Stage" domain="[]" context="{'group_by':'stage_id'}"/>
|
||||
|
@ -571,7 +571,7 @@
|
|||
help="Opportunities that are assigned to any sales teams I am member of" groups="base.group_multi_salesteams"/>
|
||||
<filter string="Unread Messages" name="message_unread" domain="[('message_unread','=',True)]"/>
|
||||
<separator/>
|
||||
<group expand="0" string="Group By..." colspan="16">
|
||||
<group expand="0" string="Group By" colspan="16">
|
||||
<filter string="Salesperson" domain="[]" context="{'group_by':'user_id'}"/>
|
||||
<filter string="Team" domain="[]" context="{'group_by':'section_id'}" groups="base.group_multi_salesteams"/>
|
||||
<filter string="Stage" domain="[]" context="{'group_by':'stage_id'}"/>
|
||||
|
|
|
@ -186,7 +186,7 @@
|
|||
<field name="opportunity_id"/>
|
||||
<field name="section_id" string="Sales Team"
|
||||
groups="base.group_multi_salesteams"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="Partner" icon="terp-partner" domain="[]" context="{'group_by':'partner_id'}"/>
|
||||
<filter string="Responsible" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/>
|
||||
<filter string="Creation" icon="terp-go-month" help="Creation Date" domain="[]" context="{'group_by':'create_date'}"/>
|
||||
|
|
|
@ -79,7 +79,7 @@
|
|||
<field name="opening_date"/>
|
||||
<field name="date_closed"/>
|
||||
</group>
|
||||
<group expand="1" string="Group By...">
|
||||
<group expand="1" string="Group By">
|
||||
<filter string="Salesperson" domain="[]" context="{'group_by':'user_id'}" />
|
||||
<filter string="Sales Team" domain="[]" context="{'group_by':'section_id'}" groups="base.group_multi_salesteams"/>
|
||||
<filter string="Partner" context="{'group_by':'partner_id'}" />
|
||||
|
|
|
@ -45,7 +45,7 @@
|
|||
<field name="opening_date"/>
|
||||
<field name="date_closed"/>
|
||||
</group>
|
||||
<group expand="1" string="Group By...">
|
||||
<group expand="1" string="Group By">
|
||||
<filter string="Salesperson" name="Salesperson" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}" />
|
||||
<filter string="Sales Team" icon="terp-personal+" domain="[]" context="{'group_by':'section_id'}" groups="base.group_multi_salesteams"/>
|
||||
<filter string="Partner" icon="terp-partner" context="{'group_by':'partner_id'}" />
|
||||
|
|
|
@ -193,7 +193,7 @@
|
|||
<filter string="Unassigned Claims" icon="terp-personal-" domain="[('user_id','=', False)]" help="Unassigned Claims" />
|
||||
<field name="partner_id" filter_domain="[('partner_id','child_of',self)]"/>
|
||||
<field name="user_id"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="Partner" icon="terp-partner" domain="[]" help="Partner" context="{'group_by':'partner_id'}"/>
|
||||
<filter string="Responsible" icon="terp-personal" domain="[]" help="Responsible User" context="{'group_by':'user_id'}"/>
|
||||
<filter string="Stage" icon="terp-stage" domain="[]" context="{'group_by':'stage_id'}"/>
|
||||
|
|
|
@ -44,7 +44,7 @@
|
|||
<field name="date_closed" />
|
||||
<field name="date_deadline" />
|
||||
</group>
|
||||
<group expand="1" string="Group By...">
|
||||
<group expand="1" string="Group By">
|
||||
<filter string="Salesperson" name="Salesperson" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}" />
|
||||
<filter string="Sales Team" icon="terp-personal+" domain="[]" context="{'group_by':'section_id'}" groups="base.group_multi_salesteams"/>
|
||||
<filter string="Partner" name="partner" icon="terp-partner" domain="[]" context="{'group_by':'partner_id'}" />
|
||||
|
|
|
@ -143,7 +143,7 @@
|
|||
<field name="partner_id" filter_domain="[('partner_id','child_of',self)]"/>
|
||||
<field name="user_id"/>
|
||||
<field name="section_id" string="Sales Team" groups="base.group_multi_salesteams"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="Partner" icon="terp-partner" domain="[]" help="Partner" context="{'group_by':'partner_id'}" />
|
||||
<filter string="Responsible" icon="terp-personal" domain="[]" help="Responsible User" context="{'group_by':'user_id'}" />
|
||||
<filter string="Sales Team" icon="terp-personal+" domain="[]" help="Sales Team" context="{'group_by':'section_id'}" groups="base.group_multi_salesteams"/>
|
||||
|
|
|
@ -42,7 +42,7 @@
|
|||
<field name="create_date"/>
|
||||
<field name="date_closed" string="Close Date"/>
|
||||
</group>
|
||||
<group expand="1" string="Group By...">
|
||||
<group expand="1" string="Group By">
|
||||
<filter string="Salesperson" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/>
|
||||
<filter string="Sales Team" icon="terp-personal+" domain="[]" context="{'group_by':'section_id'}" groups="base.group_multi_salesteams"/>
|
||||
<filter string="Partner" icon="terp-partner" domain="[]" context="{'group_by':'partner_id'}" />
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
<field name="opening_date"/>
|
||||
<field name="date_closed"/>
|
||||
</group>
|
||||
<group expand="1" string="Group By...">
|
||||
<group expand="1" string="Group By">
|
||||
<filter string="Salesperson" name="user" icon="terp-personal"
|
||||
domain="[]" context="{'group_by':'user_id'}" />
|
||||
<filter string="Partner" icon="terp-partner" context="{'group_by':'partner_assigned_id'}" />
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
<field name="user_id"/>
|
||||
<field name="grade_id"/>
|
||||
<field name="activation"/>
|
||||
<group expand="1" string="Group By...">
|
||||
<group expand="1" string="Group By">
|
||||
<filter string="Salesperson" name="user" icon="terp-personal"
|
||||
domain="[]" context="{'group_by':'user_id'}" />
|
||||
<filter string="Country" icon="terp-go-home" name="group_country" context="{'group_by':'country_id'}" />
|
||||
|
|
|
@ -110,7 +110,7 @@
|
|||
<filter string="Resources" icon="terp-personal" domain="[('type','=','ressource')]"/>
|
||||
<field name="company_id" groups="base.group_multi_company"/>
|
||||
<field name="user_id" />
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="Owner" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/>
|
||||
<filter string="Type" icon="terp-stock_symbol-selection" domain="[]" context="{'group_by':'type'}"/>
|
||||
<filter string="Company" domain="[]" icon="terp-go-home" context="{'group_by':'company_id'}" groups="base.group_multi_company"/>
|
||||
|
|
|
@ -280,7 +280,7 @@
|
|||
<filter string="Upcoming" name="upcoming" domain="[('date_begin','>=', time.strftime('%%Y-%%m-%%d 00:00:00'))]" help="Upcoming events from today" />
|
||||
<field name="type"/>
|
||||
<field name="user_id"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="Responsible" context="{'group_by': 'user_id'}"/>
|
||||
<filter string="Event Type" context="{'group_by':'type'}"/>
|
||||
<filter string="Status" context="{'group_by':'state'}"/>
|
||||
|
@ -436,7 +436,7 @@
|
|||
<field name="event_id"/>
|
||||
<field name="user_id"/>
|
||||
<field name="partner_id"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="Responsible" domain="[]" context="{'group_by':'user_id'}"/>
|
||||
<filter string="Partner" domain="[]" context="{'group_by':'partner_id'}"/>
|
||||
<filter string="Event" name="group_event" domain="[]" context="{'group_by':'event_id'}"/>
|
||||
|
|
|
@ -32,7 +32,7 @@
|
|||
<field name="event_date"/>
|
||||
</group>
|
||||
<newline/>
|
||||
<group expand="1" string="Group By...">
|
||||
<group expand="1" string="Group By">
|
||||
<filter string="Participant / Contact" icon="terp-personal" context="{'group_by':'name_registration'}" help="Registration contact"/>
|
||||
<filter string="Register" icon="terp-personal" context="{'group_by':'user_id_registration'}" help="Registration contact" groups="base.group_no_one"/>
|
||||
<filter string="Event Responsible" name="user_id" icon="terp-personal" context="{'group_by': 'user_id'}"/>
|
||||
|
|
|
@ -61,7 +61,7 @@
|
|||
<field name="arch" type="xml">
|
||||
<search string="Vehicles costs" >
|
||||
<field name="brand_id" />
|
||||
<group expand="1" string="Group By...">
|
||||
<group expand="1" string="Group By">
|
||||
<filter name="groupby_brand" context="{'group_by' : 'brand_id'}" string="Brand"/>
|
||||
</group>
|
||||
</search>
|
||||
|
@ -329,7 +329,7 @@
|
|||
<field name="location"/>
|
||||
<field name="state_id" />
|
||||
<filter name="alert_true" domain="['|',('contract_renewal_due_soon','=',True),('contract_renewal_overdue','=',True)]" string="Has Alert(s)"/>
|
||||
<group expand="1" string="Group By...">
|
||||
<group expand="1" string="Group By">
|
||||
<filter name="groupby_status" context="{'group_by' : 'state_id'}" string="Status"/>
|
||||
<filter name="groupby_model" context="{'group_by' : 'model_id'}" string="Model"/>
|
||||
</group>
|
||||
|
@ -610,7 +610,7 @@
|
|||
<field name="value"/>
|
||||
<field name="unit"/>
|
||||
<field name="date"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter name="groupby_vehicle" context="{'group_by' : 'vehicle_id'}" string="Vehicle"/>
|
||||
</group>
|
||||
</search>
|
||||
|
@ -716,7 +716,7 @@
|
|||
<field name="purchaser_id" />
|
||||
<field name="liter" />
|
||||
<field name="amount" sum="Price"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter name="groupby_vehicle" context="{'group_by' : 'vehicle_id'}" string="Vehicle"/>
|
||||
</group>
|
||||
</search>
|
||||
|
@ -924,7 +924,7 @@
|
|||
<field name="parent_id"/>
|
||||
<filter name="parent_false" domain="[('parent_id','=',False)]" string="Effective Costs"/>
|
||||
<filter name="parent_true" domain="[('parent_id','!=',False)]" string="Indicative Costs"/>
|
||||
<group expand="1" string="Group By...">
|
||||
<group expand="1" string="Group By">
|
||||
<filter name="groupby_year" context="{'group_by' : 'year'}" string="Year"/>
|
||||
<filter name="groupby_date" context="{'group_by' : 'date'}" string="Vehicle Costs Month" help="Vehicle Costs by Month"/>
|
||||
<filter name="groupby_cost_type" context="{'group_by' : 'cost_type'}" string="Cost Type"/>
|
||||
|
|
|
@ -223,7 +223,7 @@
|
|||
<filter name="hr_challenges" string="HR Challenges"
|
||||
domain="[('category', '=', 'hr')]"/>
|
||||
<field name="name"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="State" domain="[]" context="{'group_by':'state'}"/>
|
||||
<filter string="Period" domain="[]" context="{'group_by':'period'}"/>
|
||||
</group>
|
||||
|
|
|
@ -110,7 +110,7 @@
|
|||
<field name="user_id"/>
|
||||
<field name="definition_id"/>
|
||||
<field name="challenge_id"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter name="group_by_user" string="User" domain="[]" context="{'group_by':'user_id'}"/>
|
||||
<filter name="group_by_definition" string="Goal Definition" domain="[]" context="{'group_by':'definition_id'}"/>
|
||||
<filter string="State" domain="[]" context="{'group_by':'state'}"/>
|
||||
|
@ -274,7 +274,7 @@
|
|||
<field name="name"/>
|
||||
<field name="model_id"/>
|
||||
<field name="field_id"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="Model" domain="[]" context="{'group_by':'model_id'}"/>
|
||||
<filter string="Computation Mode" domain="[]" context="{'group_by':'computation_mode'}"/>
|
||||
</group>
|
||||
|
|
|
@ -42,7 +42,7 @@ openerp.google_spreadsheet = function(instance) {
|
|||
});
|
||||
},
|
||||
});
|
||||
instance.web.SearchView.include({
|
||||
instance.web.SearchViewDrawer.include({
|
||||
add_common_inputs: function() {
|
||||
this._super();
|
||||
var vm = this.getParent().getParent();
|
||||
|
|
|
@ -121,7 +121,7 @@
|
|||
<field name="name" string="Employees" filter_domain="['|',('work_email','ilike',self),('name','ilike',self)]"/>
|
||||
<field name="department_id" />
|
||||
<field name="category_ids" groups="base.group_hr_user"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="Manager" icon="terp-personal" domain="[]" context="{'group_by':'parent_id'}"/>
|
||||
<filter string="Coach" icon="terp-personal" domain="[]" context="{'group_by':'coach_id'}"/>
|
||||
<filter string="Department" icon="terp-personal+" domain="[]" context="{'group_by':'department_id'}"/>
|
||||
|
@ -394,7 +394,7 @@
|
|||
<filter domain="[('state','=','open')]" string="In Position"/>
|
||||
<filter domain="[('state','=','recruit')]" string="In Recruitment" name="in_recruitment"/>
|
||||
<field name="department_id"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="Department" domain="[]" context="{'group_by':'department_id'}"/>
|
||||
<filter string="Status" domain="[]" context="{'group_by':'state'}"/>
|
||||
<filter string="Company" domain="[]" context="{'group_by':'company_id'}" groups="base.group_multi_company"/>
|
||||
|
|
|
@ -56,7 +56,7 @@
|
|||
<separator/>
|
||||
<filter icon="terp-stock_align_left_24" string="My Attendance" domain="[('employee_id.user_id.id', '=', uid)]" />
|
||||
<field name="employee_id"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter name="employee" string="Employee" icon="terp-personal" domain="[]" context="{'group_by':'employee_id'}"/>
|
||||
<filter name="name" string="Date" icon="terp-personal" domain="[]" context="{'group_by':'name'}"/>
|
||||
</group>
|
||||
|
|
|
@ -62,7 +62,7 @@
|
|||
<field name="date_end"/>
|
||||
<field name="working_hours"/>
|
||||
<field name="employee_id"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="Employee" icon="terp-personal" domain="[]" context="{'group_by':'employee_id'}"/>
|
||||
<filter string="Working Schedule" icon="terp-go-week" domain="[]" context="{'group_by':'working_hours'}"/>
|
||||
<filter string="Job" icon="terp-gtk-select-all" domain="[]" context="{'group_by':'job_id'}"/>
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
<search string="Appraisal Plan">
|
||||
<field name="name" string="Appraisal Plans"/>
|
||||
<field name="company_id" groups="base.group_multi_company"/>
|
||||
<group expand="0" string="Group By..." groups="base.group_multi_company">
|
||||
<group expand="0" string="Group By" groups="base.group_multi_company">
|
||||
<filter string="Company" icon="terp-go-home" domain="[]" context="{'group_by':'company_id'}"/>
|
||||
</group>
|
||||
</search>
|
||||
|
@ -333,7 +333,7 @@
|
|||
<filter icon="terp-gtk-go-back-rtl" string="To Do" name="todo" domain="[('state','=','waiting_answer')]"/>
|
||||
<field name="user_to_review_id"/>
|
||||
<field name="user_id" string="Interviewer"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="Interviewer" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/>
|
||||
<filter string="Survey" icon="terp-stock_align_left_24" domain="[]" context="{'group_by':'survey_id'}"/>
|
||||
<filter string="Status" name="group_state" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
<field name="state"/>
|
||||
<field name="create_date"/>
|
||||
</group>
|
||||
<group expand="1" string="Group By...">
|
||||
<group expand="1" string="Group By">
|
||||
<filter string="Employee" name="employee" icon="terp-personal" context="{'group_by':'employee_id'}"/>
|
||||
<filter string="Plan" icon="terp-stock_align_left_24" context="{'group_by':'plan_id'}"/>
|
||||
<filter string="Appreciation" icon="terp-face-plain" context="{'group_by':'rating'}"/>
|
||||
|
|
|
@ -162,7 +162,7 @@
|
|||
<filter domain="[('user_id', '=', uid)]" string="My Expenses"/>
|
||||
<field name="employee_id"/>
|
||||
<field name="department_id" string="Department" context="{'invisible_department': False}"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="Employee" icon="terp-personal" domain="[]" context="{'group_by':'employee_id'}"/>
|
||||
<filter string="Department" icon="terp-personal+" domain="[]" context="{'group_by':'department_id'}"/>
|
||||
<filter string="Expenses Month" icon="terp-go-month" domain="[]" context="{'group_by':'date'}" help="Expenses by Month"/>
|
||||
|
|
|
@ -35,7 +35,7 @@
|
|||
<field name="date_confirm"/>
|
||||
<field name="date_valid"/>
|
||||
</group>
|
||||
<group expand="1" string="Group By...">
|
||||
<group expand="1" string="Group By">
|
||||
<filter string="Employee" name="employee" icon="terp-personal" context="{'group_by':'employee_id'}"/>
|
||||
<filter string="Validation User" name="User" icon="terp-personal" context="{'group_by':'user_id'}"/>
|
||||
<filter string="Department" icon="terp-personal+" context="{'group_by':'department_id'}"/>
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
<field name="employee_id"/>
|
||||
<field name="department_id"/>
|
||||
<field name="holiday_status_id"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter name="group_name" string="Description" domain="[]" context="{'group_by':'name'}"/>
|
||||
<filter name="group_date_from" string="Start Month" icon="terp-personal" domain="[]" context="{'group_by':'date_from'}"/>
|
||||
<filter name="group_employee" string="Employee" icon="terp-personal" domain="[]" context="{'group_by':'employee_id'}"/>
|
||||
|
|
|
@ -171,7 +171,7 @@
|
|||
<field name="name" string="Payslip Lines" filter_domain="['|',('name','ilike',self),('code','ilike',self)]"/>
|
||||
<field name="amount_select"/>
|
||||
<field name="slip_id"/>
|
||||
<group col="8" colspan="4" expand="0" string="Group By...">
|
||||
<group col="8" colspan="4" expand="0" string="Group By">
|
||||
<filter string="Salary Rule Category" icon="terp-camera_test" name="category_id" context="{'group_by':'category_id'}"/>
|
||||
<filter string="Contribution Register" name="register_id" icon="terp-folder-yellow" context="{'group_by':'register_id'}"/>
|
||||
<filter string="Amount Type" name="amount_select" icon="terp-stock_symbol-selection" context="{'group_by':'amount_select'}"/>
|
||||
|
@ -357,7 +357,7 @@
|
|||
<filter icon="terp-camera_test" string="Done" domain="[('state','=','done')]" help="Done Slip"/>
|
||||
<field name="employee_id"/>
|
||||
<field name="payslip_run_id"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="Employees" icon="terp-personal" name="employee_id" context="{'group_by':'employee_id'}"/>
|
||||
<filter string="PaySlip Batch" name="payslip_run_id" icon="terp-folder-orange" context="{'group_by':'payslip_run_id'}"/>
|
||||
<filter string="Companies" name="company_id" groups="base.group_multi_company" icon="terp-go-home" context="{'group_by':'company_id'}"/>
|
||||
|
@ -641,7 +641,7 @@
|
|||
<field name="name" string="Salary Rules" filter_domain="['|',('name','ilike',self),('code','ilike',self)]"/>
|
||||
<field name="category_id"/>
|
||||
<field name="condition_range_min"/>
|
||||
<group col="8" colspan="4" expand="0" string="Group By...">
|
||||
<group col="8" colspan="4" expand="0" string="Group By">
|
||||
<filter string="Category" icon="terp-folder-yellow" name="head" context="{'group_by':'category_id'}"/>
|
||||
</group>
|
||||
</search>
|
||||
|
|
|
@ -208,7 +208,7 @@
|
|||
<separator/>
|
||||
<field name="categ_ids"/>
|
||||
<separator/>
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="Responsible" domain="[]" context="{'group_by':'user_id'}"/>
|
||||
<filter string="Department" domain="[]" context="{'group_by':'department_id'}"/>
|
||||
<filter string="Job" domain="[]" context="{'group_by':'job_id'}"/>
|
||||
|
|
|
@ -70,7 +70,7 @@
|
|||
<field name="date"/>
|
||||
<field name="user_id"/>
|
||||
<field name="account_id"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="Users" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/>
|
||||
<filter string="Analytic account" icon="terp-folder-green" domain="[]" context="{'group_by':'account_id'}"/>
|
||||
<filter string="Product" icon="terp-accessories-archiver" domain="[]" context="{'group_by':'product_id'}"/>
|
||||
|
|
|
@ -51,7 +51,7 @@
|
|||
<field name="date"/>
|
||||
<field name="invoice_id"/>
|
||||
</group>
|
||||
<group expand="1" string="Group By...">
|
||||
<group expand="1" string="Group By">
|
||||
<filter string="User" name="User" icon="terp-personal" context="{'group_by':'user_id'}"/>
|
||||
<filter string="Account" icon="terp-folder-orange" context="{'group_by':'account_id'}"/>
|
||||
<filter string="Product" icon="terp-accessories-archiver" context="{'group_by':'product_id'}"/>
|
||||
|
|
|
@ -184,7 +184,7 @@
|
|||
<filter name="to_approve" string="To Approve" domain="[('state','=','confirm')]" help="Confirmed Timesheets"/>
|
||||
<field name="employee_id"/>
|
||||
<field name="department_id"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="Employees" icon="terp-personal" domain="[]" context="{'group_by':'employee_id'}"/>
|
||||
<filter string="Department" icon="terp-personal+" domain="[]" context="{'group_by':'department_id'}"/>
|
||||
</group>
|
||||
|
|
|
@ -28,7 +28,7 @@
|
|||
<field name="company_id" groups="base.group_multi_company"/>
|
||||
<field name="date" />
|
||||
</group>
|
||||
<group expand="1" string="Group By...">
|
||||
<group expand="1" string="Group By">
|
||||
<filter string="User" name="group_user_id" icon="terp-personal" context="{'group_by':'user_id'}"/>
|
||||
<filter string="Product" icon="terp-accessories-archiver" context="{'group_by':'product_id'}"/>
|
||||
<filter string="Analytic Account" icon="terp-folder-green" context="{'group_by':'account_id'}" groups="analytic.group_analytic_accounting"/>
|
||||
|
|
|
@ -35,7 +35,7 @@
|
|||
<field name="date_to"/>
|
||||
<field name="date_from"/>
|
||||
</group>
|
||||
<group expand="1" string="Group By...">
|
||||
<group expand="1" string="Group By">
|
||||
<filter string="User" name="User_id" icon="terp-personal" context="{'group_by':'user_id'}"/>
|
||||
<filter string="Department" icon="terp-personal+" context="{'group_by':'department_id'}"/>
|
||||
<filter string="Product" icon="terp-accessories-archiver" context="{'group_by':'product_id'}"/>
|
||||
|
|
|
@ -150,7 +150,7 @@
|
|||
<filter name="session_id" string="My Sessions" domain="[('session_id.user_ids','in', uid)]"/>
|
||||
<field name="from_id"/>
|
||||
<field name="to_id"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter name="group_by_session_id" string="Session" domain="[]" context="{'group_by':'session_id'}"/>
|
||||
<filter name="group_by_date" string="Date" domain="[]" context="{'group_by':'date'}"/>
|
||||
</group>
|
||||
|
|
|
@ -66,7 +66,7 @@
|
|||
<field name="note"/>
|
||||
</group>
|
||||
<newline/>
|
||||
<group string="Group By..." expand="0">
|
||||
<group string="Group By" expand="0">
|
||||
<filter string="Partner" context="{'group_by':'partner_id'}" icon="terp-folder-green"/>
|
||||
<filter string="Statement" context="{'group_by':'statement_id'}" icon="terp-folder-orange"/>
|
||||
</group>
|
||||
|
|
|
@ -144,7 +144,7 @@
|
|||
<field name="batch_id"/>
|
||||
</group>
|
||||
<newline/>
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="Bank" name="bank_id" icon="terp-go-home" context="{'group_by':'bank_id'}"/>
|
||||
<separator orientation="vertical"/>
|
||||
<filter string="Status" name="state" icon="terp-stock_effects-object-colorize" context="{'group_by':'state'}"/>
|
||||
|
|
|
@ -54,7 +54,7 @@
|
|||
<field name="company_id" groups="base.group_multi_company" widget="selection"/>
|
||||
</group>
|
||||
<newline/>
|
||||
<group expand="1" string="Group By...">
|
||||
<group expand="1" string="Group By">
|
||||
<filter string="Employee" icon="terp-personal" context="{'group_by':'employee_id'}" />
|
||||
<filter string="Bank" icon="terp-go-home" context="{'group_by':'bank_id'}"/>
|
||||
<separator orientation="vertical"/>
|
||||
|
|
|
@ -50,7 +50,7 @@
|
|||
<field name="company_id" groups="base.group_multi_company" widget="selection"/>
|
||||
</group>
|
||||
<newline/>
|
||||
<group expand="1" string="Group By...">
|
||||
<group expand="1" string="Group By">
|
||||
<filter string="Employee" name="employee" icon="terp-personal" context="{'group_by':'employee_id'}" />
|
||||
<filter string="Structure" context="{'group_by':'struct_id'}" />
|
||||
<filter string="Category" name="category" context="{'group_by':'category_id'}" />
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
<separator/>
|
||||
<filter name="today" string="Today" domain="[('date','=',time.strftime('%%Y-%%m-%%d'))]"/>
|
||||
<field name="user_id"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter name="group_by_supplier" string="By Supplier" context="{'group_by':'supplier'}"/>
|
||||
<filter name="group_by_date" string="Order Month" context="{'group_by':'date'}" help="Supplier Order by Month"/>
|
||||
</group>
|
||||
|
@ -52,7 +52,7 @@
|
|||
<search string="lunch cashmove">
|
||||
<field name="description"/>
|
||||
<field name="user_id"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter name='group_by_user' string="By Employee" context="{'group_by':'user_id'}"/>
|
||||
</group>
|
||||
</search>
|
||||
|
|
|
@ -60,7 +60,7 @@
|
|||
<field name="alias_parent_thread_id"/>
|
||||
<separator/>
|
||||
<filter string="Active" name="active" domain="[('alias_name', '!=', False)]"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="User" name="User" context="{'group_by':'alias_user_id'}"/>
|
||||
<filter string="Model" name="Model" context="{'group_by':'alias_model_id'}"/>
|
||||
</group>
|
||||
|
|
|
@ -108,7 +108,7 @@
|
|||
<field name="model"/>
|
||||
<field name="res_id"/>
|
||||
</group>
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="Status" name="status" domain="[]" context="{'group_by':'state'}"/>
|
||||
<filter string="Author" name="author" context="{'group_by':'author_id'}"/>
|
||||
<filter string="Thread" name="thread" domain="[]" context="{'group_by':'message_id'}"/>
|
||||
|
|
|
@ -71,7 +71,7 @@
|
|||
<filter string="Has attachments"
|
||||
name="attachments"
|
||||
domain="[('attachment_ids', '!=', False)]"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="Type" name="thread" domain="[]" context="{'group_by':'type'}"/>
|
||||
</group>
|
||||
</search>
|
||||
|
|
|
@ -1915,11 +1915,11 @@ openerp.mail = function (session) {
|
|||
* @param {Object} defaults ??
|
||||
*/
|
||||
load_searchview: function (defaults) {
|
||||
var self = this;
|
||||
var ds_msg = new session.web.DataSetSearch(this, 'mail.message');
|
||||
this.searchview = new session.web.SearchView(this, ds_msg, false, defaults || {}, false);
|
||||
this.searchview.appendTo(this.$('.oe_view_manager_view_search'))
|
||||
.then(function () { self.searchview.on('search_data', self, self.do_searchview_search); });
|
||||
this.searchview.on('search_data', this, this.do_searchview_search);
|
||||
this.searchview.appendTo(this.$('.oe_view_manager_view_search'),
|
||||
this.$('.oe_searchview_drawer_container'));
|
||||
if (this.searchview.has_defaults) {
|
||||
this.searchview.ready.then(this.searchview.do_search);
|
||||
}
|
||||
|
|
|
@ -191,8 +191,15 @@
|
|||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="oe_mail-placeholder"></div>
|
||||
<aside class="oe_mail_wall_aside"></aside>
|
||||
<div class="oe_view_manager_wrapper">
|
||||
<div>
|
||||
<div class="oe_view_manager_body">
|
||||
<div class="oe_searchview_drawer_container"/>
|
||||
<div class="oe_mail-placeholder"></div>
|
||||
<aside class="oe_mail_wall_aside"></aside>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!--
|
||||
|
|
|
@ -150,7 +150,7 @@
|
|||
<filter icon="terp-gtk-jump-to-rtl" string="Test Mode" name="test" domain="[('mode','=','test')]"/>
|
||||
<filter icon="terp-gtk-jump-to-rtl" string="Manual Mode" domain="[('mode','=','manual')]"/>
|
||||
<field name="object_id" string="Resource"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="Resource" name="Object" icon="terp-accessories-archiver" context="{'group_by':'object_id'}"/>
|
||||
<filter string="Mode" name="Mode" icon="terp-gtk-jump-to-rtl" context="{'group_by':'mode'}"/>
|
||||
<filter string="Status" name="Status" icon="terp-stock_effects-object-colorize" context="{'group_by':'state'}"/>
|
||||
|
@ -254,7 +254,7 @@
|
|||
<filter icon="terp-emblem-documents" string="All" help="Sync mode: all records" domain="[('sync_mode','=','all')]"/>
|
||||
<field name="campaign_id"/>
|
||||
<field name="object_id"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="Campaign" name="Campaign" icon="terp-gtk-jump-to-rtl" context="{'group_by':'campaign_id'}"/>
|
||||
<filter string="Status" name="Status" icon="terp-stock_effects-object-colorize" context="{'group_by':'state'}"/>
|
||||
<filter string="Launch Month" name="Launch Date" icon="terp-go-month" context="{'group_by':'date_run'}"/>
|
||||
|
@ -435,7 +435,7 @@
|
|||
<field name="object_id"/>
|
||||
<field name="partner_id"/>
|
||||
<field name="res_id"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="Campaign" name="campaign" icon="terp-gtk-jump-to-rtl" context="{'group_by':'campaign_id'}"/>
|
||||
<filter string="Segment" name="segment" icon="terp-stock_symbol-selection" context="{'group_by':'segment_id'}"/>
|
||||
<filter string="Activity" name="activity" icon="terp-stock_align_left_24" context="{'group_by':'activity_id'}"/>
|
||||
|
|
|
@ -38,7 +38,7 @@
|
|||
<field name="segment_id"/>
|
||||
<field name="partner_id"/>
|
||||
<field name="country_id"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="Campaign" name="Campaign" icon="terp-gtk-jump-to-rtl" context="{'group_by':'campaign_id'}" />
|
||||
<filter string="Segment" name="Segment" icon="terp-stock_symbol-selection" context="{'group_by':'segment_id'}"/>
|
||||
<filter string="Activity" name="activity" icon="terp-stock_align_left_24" context="{'group_by':'activity_id'}"/>
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
<field name="list_id"/>
|
||||
<separator/>
|
||||
<filter string="Exclude Opt Out" name="not_opt_out" domain="[('opt_out', '=', False)]"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="Creation Date" name="group_create_date"
|
||||
context="{'group_by': 'create_date'}"/>
|
||||
<filter string="Mailing Lists" name="group_list_id"
|
||||
|
@ -151,7 +151,7 @@
|
|||
<search string="Mass Mailings">
|
||||
<field name="name" string="Mailings"/>
|
||||
<field name="mass_mailing_campaign_id"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="State" name="group_state"
|
||||
context="{'group_by': 'state'}"/>
|
||||
<filter string="Campaign" name="group_mass_mailing_campaign_id"
|
||||
|
@ -421,7 +421,7 @@
|
|||
<field name="name" string="Campaigns"/>
|
||||
<field name="category_ids"/>
|
||||
<field name="user_id"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="Stage" name="group_stage_id"
|
||||
context="{'group_by': 'stage_id'}"/>
|
||||
<filter string="Responsible" name="group_user_id"
|
||||
|
|
|
@ -166,7 +166,7 @@
|
|||
<separator/>
|
||||
<filter icon="terp-personal" name="all_non_members" domain="[('membership_state', 'in', ['none','canceled','old','waiting'])]" string="All non Members" help="None/Canceled/Old/Waiting"/>
|
||||
<filter icon="terp-personal" name="all_members" domain="[('membership_state', 'in', ['invoiced','paid','free'])]" string="All Members" help="Invoiced/Paid/Free"/>
|
||||
<group expand="0" string="Group By..." colspan="10" col="8">
|
||||
<group expand="0" string="Group By" colspan="10" col="8">
|
||||
<filter string="Salesperson" icon="terp-personal" domain="[]" context="{'group_by' : 'user_id'}"/>
|
||||
<filter string="Associate Member" name = "associate" icon="terp-partner" domain="[]" context="{'group_by':'associate_member'}"/>
|
||||
<filter string=" Membership State" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'membership_state'}"/>
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
<field name="partner_id"/>
|
||||
<field name="membership_id"/>
|
||||
<field name="user_id"/>
|
||||
<group expand="1" string="Group By...">
|
||||
<group expand="1" string="Group By">
|
||||
<filter string="Salesperson" icon="terp-personal" name="salesman"
|
||||
domain="[]" context="{'group_by':'user_id'}"/>
|
||||
<filter string="Associated Partner" icon="terp-partner" name="associate_member_id"
|
||||
|
|
|
@ -98,7 +98,7 @@
|
|||
<field name="name" string="Name"/>
|
||||
<field name="composition"/>
|
||||
<field name="group_id" />
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="Property Group" icon="terp-personal" domain="[]" context="{'group_by':'group_id'}"/>
|
||||
</group>
|
||||
</search>
|
||||
|
|
|
@ -130,7 +130,7 @@
|
|||
help="Production started late"/>
|
||||
<field name="workcenter_id"/>
|
||||
<field name="production_id"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="Work Center" icon="terp-go-home" domain="[]" context="{'group_by':'workcenter_id'}"/>
|
||||
<filter string="Production" icon="terp-accessories-archiver" domain="[]" context="{'group_by':'production_id'}"/>
|
||||
<filter string="Status" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
|
||||
|
|
|
@ -29,7 +29,7 @@
|
|||
<filter icon="terp-camera_test" string="Done" domain="[('state','=','done')]"/>
|
||||
<field name="product_id" />
|
||||
<field name="workcenter_id"/>
|
||||
<group expand="1" string="Group By...">
|
||||
<group expand="1" string="Group By">
|
||||
<filter string="Product" name="Product" icon="terp-accessories-archiver" context="{'group_by':'product_id'}" />
|
||||
<filter string="Work Center" name="Workcenter" icon="terp-go-home" context="{'group_by':'workcenter_id'}" />
|
||||
<filter string="Production" icon="terp-accessories-archiver" domain="[]" context="{'group_by':'production_id'}"/>
|
||||
|
|
|
@ -213,7 +213,7 @@
|
|||
<filter icon="terp-dolar" string="Invoiced" domain="[('invoiced','=',True)]"/>
|
||||
<field name="product_id"/>
|
||||
<field name="partner_id" filter_domain="[('partner_id', 'child_of', self)]"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="Partner" icon="terp-partner" domain="[]" context="{'group_by':'partner_id'}"/>
|
||||
<filter string="Product" icon="terp-accessories-archiver" domain="[]" context="{'group_by':'product_id'}"/>
|
||||
<filter string="Status" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
|
||||
|
|
|
@ -135,7 +135,7 @@
|
|||
<field name="tag_ids"/>
|
||||
<filter name="open_true" string="Active" domain="[('open', '=', True)]"/>
|
||||
<filter name="open_false" string="Archive" domain="[('open', '=', False)]"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter icon="terp-stock_symbol-selection" string="Stage" help="By sticky note Category" context="{'group_by':'stage_id'}"/>
|
||||
</group>
|
||||
</search>
|
||||
|
|
|
@ -82,7 +82,7 @@
|
|||
<search>
|
||||
<field name="name"/>
|
||||
<field name="provider"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="Provider" name="provider" domain="[]" context="{'group_by': 'provider'}"/>
|
||||
</group>
|
||||
</search>
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
<field name="date"/>
|
||||
<filter string="Open" domain="[('state','=','open')]" icon="terp-document-new" name="open"/>
|
||||
<field name="journal_id"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="Journal" context="{'group_by': 'journal_id'}" icon="terp-folder-orange"/>
|
||||
<filter string="Period" context="{'group_by': 'period_id'}" icon="terp-go-month"/>
|
||||
<filter string="Status" context="{'group_by': 'state'}" icon="terp-stock_effects-object-colorize"/>
|
||||
|
@ -46,7 +46,7 @@
|
|||
<filter string="Open" domain="[('state','=','open')]" icon="terp-document-new" name="open"/>
|
||||
<filter string="Closed" domain="[('state','=','confirm')]" icon="terp-camera_test"/>
|
||||
<field name="journal_id"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="Journal" context="{'group_by': 'journal_id'}" icon="terp-folder-orange"/>
|
||||
<filter string="Period" context="{'group_by': 'period_id'}" icon="terp-go-month"/>
|
||||
<filter string="Status" context="{'group_by': 'state'}" icon="terp-stock_effects-object-colorize"/>
|
||||
|
|
|
@ -146,7 +146,7 @@
|
|||
<filter icon="terp-check" string="Invoiced" domain="[('state','=','invoiced')]"/>
|
||||
<filter icon="gtk-convert" string="Posted" domain="[('state','=','done')]"/>
|
||||
<field name="user_id"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="Customer" icon="terp-personal" domain="[]" context="{'group_by':'partner_id'}"/>
|
||||
<filter string="Salesperson" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/>
|
||||
<filter string="Status" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
|
||||
|
@ -877,7 +877,7 @@
|
|||
<filter string="Today" domain="[('start_at', '>=', time.strftime('%%Y-%%m-%%d 00:00:00'))]" />
|
||||
<field name="config_id" />
|
||||
<field name="user_id" />
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="User" icon="terp-personal" domain="[]" context="{'group_by' : 'user_id'}" />
|
||||
<filter string="Point of Sales" domain="[]" context="{'group_by': 'user_id'}" />
|
||||
</group>
|
||||
|
@ -928,7 +928,7 @@
|
|||
<filter icon="gtk-convert" string="Posted" domain="[('state','=','done')]"/>
|
||||
<field name="user_id"/>
|
||||
<field name="session_id"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="Customer" icon="terp-personal" domain="[]" context="{'group_by':'partner_id'}"/>
|
||||
<filter string="Salesman" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/>
|
||||
<filter string="Session" icon="terp-personal" domain="[]" context="{'group_by':'session_id'}"/>
|
||||
|
|
|
@ -32,7 +32,7 @@
|
|||
<field name="user_id"/>
|
||||
<field name="partner_id"/>
|
||||
<field name="user_id"/>
|
||||
<group expand="1" string="Group By...">
|
||||
<group expand="1" string="Group By">
|
||||
<filter string="Salesperson" icon="terp-personal" name="User" context="{'group_by':'user_id'}"/>
|
||||
<filter string="Customer" icon="terp-personal" context="{'group_by':'partner_id'}"/>
|
||||
<filter string="Product" icon="terp-accessories-archiver" context="{'group_by':'product_id'}"/>
|
||||
|
|
|
@ -32,7 +32,7 @@
|
|||
<field name="reviewer_id"/>
|
||||
<field name="user_id"/>
|
||||
<field name="stage_id" domain="[]"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="Reviewers" name="group_reviewer_id" domain="[]" context="{'group_by':'reviewer_id'}"/>
|
||||
<filter string="Users" name="group_user_id" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/>
|
||||
<filter string="Project" name="group_project_id" icon="terp-folder-violet" domain="[]" context="{'group_by':'project_id'}"/>
|
||||
|
@ -201,7 +201,7 @@
|
|||
<filter string="Project(s) Manager" domain="[('user_id','=',uid)]" help="Projects in which I am a manager" icon="terp-personal"/>
|
||||
<field name="user_id" string="Project Manager"/>
|
||||
<field name="partner_id" string="Contact" filter_domain="[('partner_id', 'child_of', self)]"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="Manager" name="Manager" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/>
|
||||
<filter string="Contact" name="Partner" icon="terp-partner" domain="[]" context="{'group_by':'partner_id'}"/>
|
||||
<filter string="Parent" name="Parent" help="Parent" icon="terp-folder-blue" domain = "[]" context="{'group_by':'parent_id'}"/>
|
||||
|
|
|
@ -42,7 +42,7 @@
|
|||
<field name="priority"/>
|
||||
<field name="company_id" groups="base.group_multi_company"/>
|
||||
</group>
|
||||
<group expand="1" string="Group By...">
|
||||
<group expand="1" string="Group By">
|
||||
<filter string="Project" name="project" context="{'group_by':'project_id'}"/>
|
||||
<filter string="Task" context="{'group_by':'name'}" />
|
||||
<filter string="Contact" context="{'group_by':'partner_id'}" />
|
||||
|
|
|
@ -151,7 +151,7 @@
|
|||
<field name="project_id"/>
|
||||
<field name="categ_ids"/>
|
||||
<field name="stage_id" domain="[]"/>
|
||||
<group expand="0" string="Group By..." >
|
||||
<group expand="0" string="Group By" >
|
||||
<filter string="Responsible" name="group_user_id" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/>
|
||||
<filter string="Contact" name="group_partner_id" icon="terp-partner" domain="[]" context="{'group_by':'partner_id'}"/>
|
||||
<filter string="Project" name="group_project_id" icon="terp-folder-violet" domain="[]" context="{'group_by':'project_id'}"/>
|
||||
|
|
|
@ -28,7 +28,7 @@
|
|||
<filter string="New" name="new" domain="[('stage_id.sequence', '=', 1)]"/>
|
||||
<filter string="Done" name="done" domain="[('stage_id.fold', '=', True)]"
|
||||
help="Tasks beloging to a folded stage"/>
|
||||
<group expand="1" string="Group By...">
|
||||
<group expand="1" string="Group By">
|
||||
<filter string="Assigned to" name="Responsible" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}" />
|
||||
<filter string="Contact" icon="terp-partner" context="{'group_by':'partner_id'}" />
|
||||
<filter string="Sale Team" icon="terp-personal+" domain="[]" context="{'group_by':'section_id'}" groups="base.group_multi_salesteams"/>
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
<search string="Tasks by User">
|
||||
<field name="name" string="Date"/>
|
||||
<field name="user_id"/>
|
||||
<group expand="1" string="Group By...">
|
||||
<group expand="1" string="Group By">
|
||||
<filter string="User" name="group_user_id" icon="terp-personal" context="{'group_by':'user_id'}"/>
|
||||
<filter string="Month" icon="terp-go-month" context="{'group_by':'month'}" help="Group by month of date"/>
|
||||
<filter string="Year" icon="terp-go-year" context="{'group_by':'year'}" help="Group by year of date"/>
|
||||
|
|
|
@ -315,7 +315,7 @@
|
|||
<field name="partner_id" operator="child_of"/>
|
||||
<field name="product_id"/>
|
||||
<field name="create_uid"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="Supplier" icon="terp-partner" domain="[]" context="{'group_by':'partner_id'}"/>
|
||||
<filter string="Source" icon="terp-gtk-jump-to-rtl" domain="[]" context="{'group_by':'origin'}"/>
|
||||
<filter string="Status" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
|
||||
|
@ -342,7 +342,7 @@
|
|||
<field name="partner_id" operator="child_of"/>
|
||||
<field name="product_id"/>
|
||||
<field name="create_uid"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="Supplier" icon="terp-partner" domain="[]" context="{'group_by':'partner_id'}"/>
|
||||
<filter string="Source" icon="terp-gtk-jump-to-rtl" domain="[]" context="{'group_by':'origin'}"/>
|
||||
<filter string="Status" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
|
||||
|
@ -526,7 +526,7 @@
|
|||
<field name="product_id"/>
|
||||
<field name="partner_id" string="Supplier" filter_domain="[('partner_id', 'child_of', self)]"/>
|
||||
<filter name="hide_cancelled" string="Hide cancelled lines" domain="[('state', '!=', 'cancel')]"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter name="groupby_supplier" string="Supplier" icon="terp-partner" domain="[]" context="{'group_by' : 'partner_id'}" />
|
||||
<filter name="groupby_product" string="Product" icon="terp-accessories-archiver" domain="[]" context="{'group_by' : 'product_id'}" />
|
||||
<filter icon="terp-gtk-jump-to-rtl" string="Order Reference" domain="[]" context="{'group_by' :'order_id'}"/>
|
||||
|
|
|
@ -37,7 +37,7 @@
|
|||
<field name="expected_date"/>
|
||||
</group>
|
||||
<newline/>
|
||||
<group expand="1" string="Group By...">
|
||||
<group expand="1" string="Group By">
|
||||
<filter string="Supplier" name="group_partner_id" icon="terp-personal" context="{'group_by':'partner_id'}"/>
|
||||
<filter string="Responsible" name="Responsible" icon="terp-personal" context="{'group_by':'user_id'}"/>
|
||||
<filter string="Validated by" icon="terp-personal" context="{'group_by':'validator'}"/>
|
||||
|
|
|
@ -160,7 +160,7 @@
|
|||
<separator/>
|
||||
<filter icon="terp-personal-" string="Unassigned" domain="[('user_id','=', False)]" help="Unassigned Requisition"/>
|
||||
<field name="user_id" />
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="Responsible" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/>
|
||||
<filter string="Source" icon="terp-gtk-jump-to-rtl" domain="[]" context="{'group_by':'origin'}"/>
|
||||
<filter string="Status" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
<filter string="Inactive" icon="terp-gdu-smart-failing" domain="[('active','=',False)]"/>
|
||||
<field name="user_id" string="User"/>
|
||||
<field name="company_id" groups="base.group_multi_company"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="User" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/>
|
||||
<filter string="Type" icon="terp-stock_symbol-selection" domain="[]" context="{'group_by':'resource_type'}"/>
|
||||
<filter string="Company" icon="terp-go-home" domain="[]" context="{'group_by':'company_id'}" groups="base.group_multi_company"/>
|
||||
|
@ -45,7 +45,7 @@
|
|||
<field name="resource_id" string="Resource"/>
|
||||
<field name="company_id" string="Company" groups="base.group_multi_company"/>
|
||||
<field name="calendar_id" string="Working Period"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="Resource" icon="terp-personal" domain="[]" context="{'group_by':'resource_id'}"/>
|
||||
<filter string="Company" icon="terp-go-home" domain="[]" context="{'group_by':'company_id'}" groups="base.group_multi_company"/>
|
||||
<filter string="Leave Month" icon="terp-go-month" domain="[]" context="{'group_by':'date_from'}" help="Starting Date of Leave by Month"/>
|
||||
|
|
|
@ -32,7 +32,7 @@
|
|||
<field name="categ_id"/>
|
||||
<field name="company_id" groups="base.group_multi_company"/>
|
||||
</group>
|
||||
<group expand="1" string="Group By...">
|
||||
<group expand="1" string="Group By">
|
||||
<filter string="Salesperson" icon="terp-personal" name="User" context="{'group_by':'user_id'}"/>
|
||||
<filter string="Sales Team" context="{'group_by':'section_id'}" groups="base.group_multi_salesteams"/>
|
||||
<filter string="Partner" icon="terp-partner" name="Customer" context="{'group_by':'partner_id'}"/>
|
||||
|
|
|
@ -258,7 +258,7 @@
|
|||
<field name="user_id"/>
|
||||
<field name="section_id" string="Sales Team" groups="base.group_multi_salesteams"/>
|
||||
<field name="project_id"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="Customer" icon="terp-personal" domain="[]" context="{'group_by':'partner_id'}"/>
|
||||
<filter string="Salesperson" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/>
|
||||
<filter string="Status" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
|
||||
|
@ -427,7 +427,7 @@
|
|||
<field name="order_partner_id" operator="child_of"/>
|
||||
<field name="product_id"/>
|
||||
<field name="salesman_id"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="Product" icon="terp-accessories-archiver" domain="[]" context="{'group_by':'product_id'}"/>
|
||||
<filter string="Order" icon="terp-gtk-jump-to-rtl" domain="[]" context="{'group_by':'order_id'}"/>
|
||||
<filter string="Salesperson" icon="terp-personal" domain="[]" context="{'group_by':'salesman_id'}"/>
|
||||
|
@ -453,7 +453,7 @@
|
|||
<field name="order_partner_id" operator="child_of"/>
|
||||
<field name="product_id"/>
|
||||
<field name="salesman_id"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="Order" icon="terp-gtk-jump-to-rtl" domain="[]" context="{'group_by':'order_id'}" help="Order reference"/>
|
||||
<filter string="Product" icon="terp-accessories-archiver" domain="[]" context="{'group_by':'product_id'}"/>
|
||||
<filter string="Status" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
|
||||
|
|
|
@ -62,7 +62,7 @@
|
|||
<field name="name" string="Inventory Reference"/>
|
||||
<field name="date"/>
|
||||
<field name="company_id" groups="base.group_multi_company"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="Status" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
|
||||
<filter string="Inventories Month" icon="terp-go-month" domain="[]" context="{'group_by':'date'}" help="Physical Inventories by Month"/>
|
||||
</group>
|
||||
|
@ -244,7 +244,7 @@
|
|||
<search string="Product Lots Filter">
|
||||
<field name="name" string="Product Lots" filter_domain="['|',('name','ilike',self),('ref','ilike',self)]"/>
|
||||
<field name="product_id"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="Product" icon="terp-accessories-archiver" domain="[]" context="{'group_by':'product_id'}"/>
|
||||
</group>
|
||||
</search>
|
||||
|
@ -815,7 +815,7 @@
|
|||
<field name="product_id"/>
|
||||
<field name="picking_type_id"/>
|
||||
<field name="group_id"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="Status" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
|
||||
<filter string="Order Date" icon="terp-go-month" domain="[]" context="{'group_by':'date'}"/>
|
||||
<filter string="Expected Date" icon="terp-go-month" domain="[]" context="{'group_by':'min_date'}"/>
|
||||
|
@ -1178,7 +1178,7 @@
|
|||
<field name="product_id"/>
|
||||
<field name="name" string="Location" filter_domain="['|',('location_id','ilike',self),('location_dest_id','ilike',self)]"/>
|
||||
<field name="partner_id" string="Partner" filter_domain="[('picking_id.partner_id','child_of',self)]"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="Product" name="by_product" icon="terp-accessories-archiver" domain="[]" context="{'group_by':'product_id'}"/>
|
||||
<filter string="Picking" name="groupby_picking_id" icon="terp-accessories-archiver" domain="[]" context="{'group_by':'picking_id'}"/>
|
||||
<filter string="Source" name="groupby_location_id" icon="terp-gtk-jump-to-rtl" domain="[]" context="{'group_by':'location_id'}" groups="stock.group_locations"/>
|
||||
|
@ -1530,7 +1530,7 @@
|
|||
<field name="location_id" groups="stock.group_locations"/>
|
||||
<field name="company_id" groups="base.group_multi_company"/>
|
||||
<field name="product_id"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="Warehouse" icon="terp-go-home" domain="[]" context="{'group_by':'warehouse_id'}"/>
|
||||
<filter string="Location" icon="terp-go-home" domain="[]" context="{'group_by':'location_id'}"/>
|
||||
</group>
|
||||
|
|
|
@ -74,7 +74,7 @@
|
|||
<field name="product_id"/>
|
||||
<field name="location_id" filter_domain="[('name', 'child_of', self)]"/>
|
||||
<field name="company_id" groups="base.group_multi_company"/>
|
||||
<group expand="1" string="Group By...">
|
||||
<group expand="1" string="Group By">
|
||||
<filter string="Product" icon="terp-accessories-archiver" context="{'group_by':'product_id'}" name='group_by_product'/>
|
||||
<filter string="Product Category" icon="terp-accessories-archiver" context="{'group_by':'product_categ_id'}"/>
|
||||
<filter string="Location" icon="terp-accessories-archiver" context="{'group_by':'location_id'}" name='group_by_location'/>
|
||||
|
|
|
@ -132,7 +132,7 @@
|
|||
<separator/>
|
||||
<filter string="Draft" name="draft" domain="[('state','=','draft')]"/>
|
||||
<filter string="Done" name="done" domain="[('state','=','done')]"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="Month" context="{'group_by': 'date'}"/>
|
||||
<filter string="Status" context="{'group_by': 'state'}"/>
|
||||
</group>
|
||||
|
|
|
@ -63,7 +63,7 @@
|
|||
<field name="name" string="Picking Wave"/>
|
||||
<filter name="in_progress" string="In Progress" domain="[('state','=', 'in_progress')]" help="Picking Waves not finished"/>
|
||||
<field name="user_id"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="User" domain="[]" context="{'group_by':'user_id'}"/>
|
||||
<filter string="State" domain="[]" context="{'group_by':'state'}"/>
|
||||
</group>
|
||||
|
|
|
@ -75,7 +75,7 @@
|
|||
domain="[('state','=','running')]"/>
|
||||
<field name="user_id"/>
|
||||
<field name="partner_id"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="User" icon="terp-personal" name="User" domain="[]" context="{'group_by':'user_id'}"/>
|
||||
<filter string="Partner" icon="terp-partner" name="Partner" domain="[]" context="{'group_by':'partner_id'}"/>
|
||||
<filter string="Status" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
<filter string="Partially completed" domain="[('state', '=', 'skip')]"/>
|
||||
<filter string="New" domain="[('state', '=', 'new')]"/>
|
||||
<filter string="Test" domain="[('state','=', 'test')]"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter name="group_by_survey" string="Survey" domain="[]" context="{'group_by': 'survey_id'}"/>
|
||||
<filter string="Email" domain="[]" context="{'group_by': 'email'}"/>
|
||||
<filter string="Partner" domain="[]" context="{'group_by': ['partner_id']}"/>
|
||||
|
@ -271,7 +271,7 @@
|
|||
<search string="Search Page">
|
||||
<field name="title" string="Page"/>
|
||||
<field name="survey_id" string="Survey"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Group By">
|
||||
<filter name="group_by_survey" string="Survey" domain="[]" context="{'group_by':'survey_id'}"/>
|
||||
</group>
|
||||
</search>
|
||||
|
@ -380,7 +380,7 @@
|
|||
<field name="survey_id" string="Survey"/>
|
||||
<field name="page_id" string="Page"/>
|
||||
<field name="type" string="Type"/>
|
||||
<group expand="1" string="Group By...">
|
||||
<group expand="1" string="Group By">
|
||||
<filter name="group_by_page" string="Page" domain="[]" context="{'group_by':'page_id'}"/>
|
||||
<filter name="group_by_type" string="Type" domain="[]" context="{'group_by':'type'}"/>
|
||||
</group>
|
||||
|
@ -481,7 +481,7 @@
|
|||
<search string="Search User input lines">
|
||||
<field name="user_input_id"/>
|
||||
<field name="survey_id"/>
|
||||
<group expand="1" string="Group By...">
|
||||
<group expand="1" string="Group By">
|
||||
<filter name="group_by_survey" string="Survey" domain="[]" context="{'group_by':'survey_id'}"/>
|
||||
<filter name="group_by_user_input" string="User Input" domain="[]" context="{'group_by':'user_input_id'}"/>
|
||||
</group>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
@charset "utf-8";
|
||||
@charset "UTF-8";
|
||||
@font-face {
|
||||
font-family: "mnmliconsRegular";
|
||||
src: url("/web/static/src/font/mnmliconsv21-webfont.eot") format("eot");
|
||||
|
@ -994,19 +994,22 @@
|
|||
background: #f0eeee;
|
||||
border-right: 1px solid #afafb6;
|
||||
text-shadow: none;
|
||||
padding-bottom: 16px;
|
||||
}
|
||||
.openerp a.oe_logo {
|
||||
position: relative;
|
||||
.openerp .oe_leftbar > div {
|
||||
height: 100%;
|
||||
display: table;
|
||||
width: 220px;
|
||||
display: block;
|
||||
position: relative;
|
||||
}
|
||||
.openerp .oe_leftbar > div a.oe_logo {
|
||||
display: table-row;
|
||||
text-align: center;
|
||||
}
|
||||
.openerp a.oe_logo img {
|
||||
.openerp .oe_leftbar > div a.oe_logo img {
|
||||
margin: 14px 0;
|
||||
border: 0;
|
||||
}
|
||||
.openerp a.oe_logo .oe_logo_edit {
|
||||
.openerp .oe_leftbar > div a.oe_logo .oe_logo_edit {
|
||||
margin: 14px 0;
|
||||
position: absolute;
|
||||
top: 1px;
|
||||
|
@ -1021,22 +1024,36 @@
|
|||
-ms-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.openerp a.oe_logo:hover .oe_logo_edit_admin {
|
||||
.openerp .oe_leftbar > div a.oe_logo:hover .oe_logo_edit_admin {
|
||||
display: block;
|
||||
}
|
||||
.openerp .oe_footer {
|
||||
position: fixed;
|
||||
.openerp .oe_leftbar > div > div {
|
||||
display: table-row;
|
||||
height: 100%;
|
||||
}
|
||||
.openerp .oe_leftbar > div > div > div {
|
||||
position: relative;
|
||||
height: 100%;
|
||||
}
|
||||
.openerp .oe_leftbar > div > div > div > div.oe_secondary_menus_container {
|
||||
position: absolute;
|
||||
position: static\9;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
padding: 4px 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
}
|
||||
.openerp .oe_leftbar > div .oe_footer {
|
||||
background: #f0eeee;
|
||||
width: 220px;
|
||||
text-align: center;
|
||||
}
|
||||
.openerp .oe_footer a {
|
||||
.openerp .oe_leftbar > div .oe_footer a {
|
||||
font-weight: bold;
|
||||
color: black;
|
||||
}
|
||||
.openerp .oe_footer a span {
|
||||
.openerp .oe_leftbar > div .oe_footer a span {
|
||||
color: #a24689;
|
||||
}
|
||||
.openerp .oe_secondary_menu_section {
|
||||
|
@ -1140,8 +1157,26 @@
|
|||
color: #7c7bad;
|
||||
}
|
||||
.openerp .oe_application > div {
|
||||
position: relative;
|
||||
height: 100%;
|
||||
}
|
||||
.openerp .oe_application > div > .oe_view_manager > .oe_view_manager_wrapper {
|
||||
display: table-row;
|
||||
height: 100%;
|
||||
}
|
||||
.openerp .oe_application > div > .oe_view_manager > .oe_view_manager_wrapper > div {
|
||||
position: relative;
|
||||
height: 100%;
|
||||
}
|
||||
.openerp .oe_application > div > .oe_view_manager > .oe_view_manager_wrapper > div > .oe_view_manager_body {
|
||||
position: absolute;
|
||||
position: static\9;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
overflow: auto;
|
||||
}
|
||||
.openerp .oe_application .oe_breadcrumb_item:not(:last-child) {
|
||||
max-width: 7em;
|
||||
white-space: nowrap;
|
||||
|
@ -1157,11 +1192,8 @@
|
|||
height: inherit;
|
||||
width: 100%;
|
||||
}
|
||||
.openerp .oe_view_manager .oe_view_manager_body {
|
||||
height: inherit;
|
||||
}
|
||||
.openerp .oe_view_manager .oe_view_manager_view_kanban:not(:empty) {
|
||||
height: inherit;
|
||||
height: 100%;
|
||||
}
|
||||
.openerp .oe_view_manager[data-view-type=kanban] .oe_view_manager_body {
|
||||
display: table-row;
|
||||
|
@ -1381,7 +1413,7 @@
|
|||
float: right;
|
||||
padding: 1px 0;
|
||||
line-height: 18px;
|
||||
width: 400px;
|
||||
min-width: 400px;
|
||||
border: 1px solid #ababab;
|
||||
background: white;
|
||||
-moz-border-radius: 13px;
|
||||
|
@ -1556,59 +1588,64 @@
|
|||
-webkit-border-radius: 2px;
|
||||
border-radius: 2px;
|
||||
}
|
||||
.openerp .oe_searchview.oe_searchview_open_drawer .oe_searchview_drawer {
|
||||
display: block;
|
||||
.openerp .oe_searchview_drawer_container {
|
||||
overflow: auto;
|
||||
}
|
||||
.openerp .oe_searchview .oe_searchview_drawer {
|
||||
cursor: default;
|
||||
position: absolute;
|
||||
z-index: 2;
|
||||
margin-top: 4px;
|
||||
top: 100%;
|
||||
right: -1px;
|
||||
background-color: white;
|
||||
min-width: 100%;
|
||||
.openerp .oe_searchview_drawer {
|
||||
display: none;
|
||||
border: 1px solid #afafb6;
|
||||
width: 100%;
|
||||
cursor: default;
|
||||
display: none;
|
||||
overflow: hidden;
|
||||
border-bottom: 1px solid #afafb6;
|
||||
text-align: left;
|
||||
-moz-border-radius: 4px;
|
||||
-webkit-border-radius: 4px;
|
||||
border-radius: 4px;
|
||||
-moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);
|
||||
-webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);
|
||||
box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);
|
||||
padding: 8px 0;
|
||||
}
|
||||
.openerp .oe_searchview .oe_searchview_drawer > div {
|
||||
border-top: 1px solid #cccccc;
|
||||
margin: 0;
|
||||
padding: 8px;
|
||||
.openerp .oe_searchview_drawer .badge {
|
||||
font-size: 12px;
|
||||
line-height: 12px;
|
||||
}
|
||||
.openerp .oe_searchview .oe_searchview_drawer > div:first-child {
|
||||
border-top: none;
|
||||
margin: 0;
|
||||
.openerp .oe_searchview_drawer > div:first-child {
|
||||
border: none;
|
||||
padding-left: 0;
|
||||
}
|
||||
.openerp .oe_searchview .oe_searchview_drawer h3 {
|
||||
margin: 8px 4px 4px 0px;
|
||||
.openerp .oe_searchview_drawer > div:first-child li:hover:not(.badge) {
|
||||
background-color: #f0f0fa;
|
||||
}
|
||||
.openerp .oe_searchview_drawer .col-md-5 {
|
||||
padding-left: 0;
|
||||
}
|
||||
.openerp .oe_searchview_drawer dl {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.openerp .oe_searchview_drawer dt {
|
||||
color: #7c7bad;
|
||||
font-size: 13px;
|
||||
line-height: 24px;
|
||||
}
|
||||
.openerp .oe_searchview .oe_searchview_drawer h4, .openerp .oe_searchview .oe_searchview_drawer h4 * {
|
||||
.openerp .oe_searchview_drawer dd {
|
||||
line-height: 24px;
|
||||
font-size: 13px;
|
||||
padding-top: 3px;
|
||||
}
|
||||
.openerp .oe_searchview_drawer h4, .openerp .oe_searchview_drawer h4 * {
|
||||
margin: 0 0 0 2px;
|
||||
padding-left: 20px;
|
||||
cursor: pointer;
|
||||
font-weight: normal;
|
||||
display: inline-block;
|
||||
}
|
||||
.openerp .oe_searchview .oe_searchview_drawer h4:hover, .openerp .oe_searchview .oe_searchview_drawer h4 *:hover {
|
||||
.openerp .oe_searchview_drawer h4:hover, .openerp .oe_searchview_drawer h4 *:hover {
|
||||
background-color: #f0f0fa;
|
||||
}
|
||||
.openerp .oe_searchview .oe_searchview_drawer h4:before {
|
||||
.openerp .oe_searchview_drawer h4:before {
|
||||
content: "▸ ";
|
||||
color: #a3a3a3;
|
||||
}
|
||||
.openerp .oe_searchview .oe_searchview_drawer button {
|
||||
.openerp .oe_searchview_drawer button {
|
||||
margin: 4px 0;
|
||||
}
|
||||
.openerp .oe_searchview .oe_searchview_drawer .button {
|
||||
.openerp .oe_searchview_drawer .button {
|
||||
border: none;
|
||||
background: transparent;
|
||||
padding: 0 2px;
|
||||
|
@ -1619,126 +1656,112 @@
|
|||
-webkit-border-radius: 0;
|
||||
border-radius: 0;
|
||||
}
|
||||
.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_section {
|
||||
display: table;
|
||||
width: 100%;
|
||||
}
|
||||
.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_section > div {
|
||||
-webkit-box-sizing: border-box;
|
||||
-moz-box-sizing: border-box;
|
||||
-ms-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
display: table-cell;
|
||||
width: 50%;
|
||||
padding-left: 2px;
|
||||
}
|
||||
.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_section ul {
|
||||
margin: 0 8px 8px;
|
||||
.openerp .oe_searchview_drawer .oe_searchview_section ul {
|
||||
margin: 0 8px;
|
||||
padding: 0;
|
||||
list-style: none;
|
||||
display: inline;
|
||||
}
|
||||
.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_section li {
|
||||
list-style: none;
|
||||
padding: 2px 4px 2px 20px;
|
||||
line-height: 14px;
|
||||
color: inherit;
|
||||
.openerp .oe_searchview_drawer .oe_searchview_section li {
|
||||
display: inline-block;
|
||||
cursor: pointer;
|
||||
position: relative;
|
||||
margin-right: 8px;
|
||||
}
|
||||
.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_section li.oe_selected:before {
|
||||
content: "W";
|
||||
font-family: "entypoRegular" !important;
|
||||
font-size: 24px;
|
||||
font-weight: 300 !important;
|
||||
color: #a3a3a3;
|
||||
position: absolute;
|
||||
left: 4px;
|
||||
top: -2px;
|
||||
.openerp .oe_searchview_drawer .oe_searchview_section li > span {
|
||||
display: inline-block;
|
||||
max-width: 250px;
|
||||
text-overflow: ellipsis;
|
||||
vertical-align: bottom;
|
||||
overflow: hidden;
|
||||
}
|
||||
.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_section li:hover {
|
||||
background-color: #f0f0fa;
|
||||
}
|
||||
.openerp .oe_searchview .oe_searchview_drawer form {
|
||||
.openerp .oe_searchview_drawer form {
|
||||
margin-left: 12px;
|
||||
}
|
||||
.openerp .oe_searchview .oe_searchview_drawer form p {
|
||||
.openerp .oe_searchview_drawer form p {
|
||||
margin: 4px 0;
|
||||
line-height: 18px;
|
||||
}
|
||||
.openerp .oe_searchview .oe_searchview_drawer form button {
|
||||
.openerp .oe_searchview_drawer form button {
|
||||
margin: 0 0 8px -3px;
|
||||
}
|
||||
.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom {
|
||||
padding: 0 8px 8px 8px;
|
||||
}
|
||||
.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom div {
|
||||
padding: 0;
|
||||
}
|
||||
.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom div h4 {
|
||||
margin: 0;
|
||||
}
|
||||
.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom form {
|
||||
.openerp .oe_searchview_drawer .oe_searchview_savefilter form {
|
||||
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;
|
||||
position: relative;
|
||||
line-height: 14px;
|
||||
padding: 2px 4px 2px 20px;
|
||||
margin-right: 0;
|
||||
}
|
||||
.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom li:hover {
|
||||
background-color: #f0f0fa;
|
||||
}
|
||||
.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom li button {
|
||||
.openerp .oe_searchview_drawer .oe_searchview_custom li button {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 5px;
|
||||
}
|
||||
.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom label {
|
||||
.openerp .oe_searchview_drawer .oe_searchview_custom li a {
|
||||
margin-left: 10px;
|
||||
position: inherit;
|
||||
visibility: hidden;
|
||||
display: inline-block;
|
||||
}
|
||||
.openerp .oe_searchview_drawer .oe_searchview_custom li span:hover:not(.badge) {
|
||||
background-color: #f0f0fa;
|
||||
}
|
||||
.openerp .oe_searchview_drawer .oe_searchview_custom li:hover a {
|
||||
visibility: visible;
|
||||
}
|
||||
.openerp .oe_searchview_drawer .oe_searchview_custom label {
|
||||
font-weight: normal;
|
||||
}
|
||||
.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_dashboard form {
|
||||
.openerp .oe_searchview_drawer .oe_searchview_dashboard form {
|
||||
display: none;
|
||||
margin-top: 2px;
|
||||
}
|
||||
.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_advanced form {
|
||||
.openerp .oe_searchview_drawer .oe_searchview_advanced {
|
||||
overflow: auto;
|
||||
}
|
||||
.openerp .oe_searchview_drawer .oe_searchview_advanced form {
|
||||
display: none;
|
||||
margin-top: 8px;
|
||||
}
|
||||
.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_advanced button.oe_add_condition:before {
|
||||
.openerp .oe_searchview_drawer .oe_searchview_advanced button.oe_add_condition:before {
|
||||
content: "Z";
|
||||
font-family: "entypoRegular" !important;
|
||||
font-size: 24px;
|
||||
font-weight: 300 !important;
|
||||
margin-right: 4px;
|
||||
}
|
||||
.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_advanced ul {
|
||||
.openerp .oe_searchview_drawer .oe_searchview_advanced ul {
|
||||
list-style: none;
|
||||
padding: 0;
|
||||
}
|
||||
.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_advanced li {
|
||||
.openerp .oe_searchview_drawer .oe_searchview_advanced li {
|
||||
position: relative;
|
||||
list-style: none;
|
||||
margin: 0;
|
||||
white-space: nowrap;
|
||||
}
|
||||
.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_advanced li:first-child .searchview_extended_prop_or {
|
||||
.openerp .oe_searchview_drawer .oe_searchview_advanced li:first-child .searchview_extended_prop_or {
|
||||
visibility: hidden;
|
||||
margin-left: -14px;
|
||||
}
|
||||
.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_advanced .searchview_extended_prop_or {
|
||||
.openerp .oe_searchview_drawer .oe_searchview_advanced .searchview_extended_prop_or {
|
||||
opacity: 0.5;
|
||||
margin-left: -14px;
|
||||
}
|
||||
.openerp .oe_searchview .oe_searchview_drawer .oe_opened h4:before {
|
||||
.openerp .oe_searchview_drawer .oe_opened h4:before {
|
||||
content: "▾ ";
|
||||
position: relative;
|
||||
top: -1px;
|
||||
}
|
||||
.openerp .oe_searchview .oe_searchview_drawer .oe_opened form {
|
||||
.openerp .oe_searchview_drawer .oe_opened form {
|
||||
display: block;
|
||||
}
|
||||
.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom_delete, .openerp .oe_searchview .oe_searchview_drawer .searchview_extended_delete_prop {
|
||||
.openerp .oe_searchview_drawer .oe_searchview_custom_delete, .openerp .oe_searchview_drawer .searchview_extended_delete_prop {
|
||||
display: inline-block;
|
||||
width: 12px;
|
||||
height: 12px;
|
||||
|
@ -1750,7 +1773,7 @@
|
|||
font-weight: bold;
|
||||
text-shadow: 0 1px 1px white;
|
||||
}
|
||||
.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom_delete:hover, .openerp .oe_searchview .oe_searchview_drawer .searchview_extended_delete_prop:hover {
|
||||
.openerp .oe_searchview_drawer .oe_searchview_custom_delete:hover, .openerp .oe_searchview_drawer .searchview_extended_delete_prop:hover {
|
||||
text-decoration: none;
|
||||
color: white;
|
||||
background: #8786b7;
|
||||
|
@ -1759,16 +1782,16 @@
|
|||
-webkit-border-radius: 2px;
|
||||
border-radius: 2px;
|
||||
}
|
||||
.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom_delete {
|
||||
.openerp .oe_searchview_drawer .oe_searchview_custom_delete {
|
||||
display: none;
|
||||
position: absolute;
|
||||
bottom: 1px;
|
||||
right: 4px;
|
||||
}
|
||||
.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom_private:hover .oe_searchview_custom_delete, .openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom_public:hover .oe_searchview_custom_delete {
|
||||
.openerp .oe_searchview_drawer .oe_searchview_custom_private:hover .oe_searchview_custom_delete, .openerp .oe_searchview_drawer .oe_searchview_custom_public:hover .oe_searchview_custom_delete {
|
||||
display: inline-block;
|
||||
}
|
||||
.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom_public:after {
|
||||
.openerp .oe_searchview_drawer .oe_searchview_custom_public:after {
|
||||
content: ",";
|
||||
font-family: "entypoRegular" !important;
|
||||
font-size: 22px;
|
||||
|
@ -3423,3 +3446,7 @@ input[type="radio"], input[type="checkbox"] {
|
|||
background-color: black;
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
body {
|
||||
overflow: auto;
|
||||
}
|
||||
|
|
|
@ -844,40 +844,53 @@ $sheet-padding: 16px
|
|||
background: #f0eeee
|
||||
border-right: 1px solid $tag-border
|
||||
text-shadow: none
|
||||
padding-bottom: 16px
|
||||
a.oe_logo
|
||||
position: relative
|
||||
width: 220px
|
||||
display: block
|
||||
text-align: center
|
||||
img
|
||||
margin: 14px 0
|
||||
border: 0
|
||||
.oe_logo_edit
|
||||
margin: 14px 0
|
||||
position: absolute
|
||||
top: 1px
|
||||
padding: 4px
|
||||
width: 100%
|
||||
display: none
|
||||
text-align: center
|
||||
color: #eee
|
||||
background: rgba(37,37,37,0.9)
|
||||
@include box-sizing(border)
|
||||
&:hover .oe_logo_edit_admin
|
||||
display: block
|
||||
.oe_footer
|
||||
position: fixed
|
||||
bottom: 0
|
||||
padding: 4px 0
|
||||
background: #f0eeee
|
||||
width: 220px
|
||||
text-align: center
|
||||
a
|
||||
font-weight: bold
|
||||
color: black
|
||||
span
|
||||
color: #a24689
|
||||
> div
|
||||
height: 100%
|
||||
display: table
|
||||
width: 220px
|
||||
position: relative
|
||||
a.oe_logo
|
||||
display: table-row
|
||||
text-align: center
|
||||
img
|
||||
margin: 14px 0
|
||||
border: 0
|
||||
.oe_logo_edit
|
||||
margin: 14px 0
|
||||
position: absolute
|
||||
top: 1px
|
||||
padding: 4px
|
||||
width: 100%
|
||||
display: none
|
||||
text-align: center
|
||||
color: #eee
|
||||
background: rgba(37,37,37,0.9)
|
||||
@include box-sizing(border)
|
||||
&:hover .oe_logo_edit_admin
|
||||
display: block
|
||||
> div
|
||||
display: table-row
|
||||
height: 100%
|
||||
> div
|
||||
position: relative
|
||||
height: 100%
|
||||
> div.oe_secondary_menus_container
|
||||
position: absolute
|
||||
position: static\9
|
||||
top: 0
|
||||
bottom: 0
|
||||
left: 0
|
||||
right: 0
|
||||
overflow-x: hidden
|
||||
overflow-y: auto
|
||||
.oe_footer
|
||||
background: #f0eeee
|
||||
text-align: center
|
||||
a
|
||||
font-weight: bold
|
||||
color: black
|
||||
span
|
||||
color: #a24689
|
||||
// }}}
|
||||
// Webclient.leftbar items {{{
|
||||
|
||||
|
@ -955,7 +968,25 @@ $sheet-padding: 16px
|
|||
a
|
||||
color: $link-color
|
||||
> div
|
||||
position: relative
|
||||
height: 100%
|
||||
> .oe_view_manager
|
||||
> .oe_view_manager_wrapper
|
||||
display: table-row
|
||||
height: 100%
|
||||
> div
|
||||
position: relative
|
||||
height: 100%
|
||||
> .oe_view_manager_body
|
||||
position: absolute
|
||||
position: static\9
|
||||
top: 0
|
||||
bottom: 0
|
||||
left: 0
|
||||
right: 0
|
||||
overflow: auto
|
||||
|
||||
|
||||
.oe_breadcrumb_item:not(:last-child)
|
||||
max-width: 7em
|
||||
white-space: nowrap
|
||||
|
@ -970,10 +1001,8 @@ $sheet-padding: 16px
|
|||
display: table
|
||||
height: inherit
|
||||
width: 100%
|
||||
.oe_view_manager_body
|
||||
height: inherit
|
||||
.oe_view_manager_view_kanban:not(:empty)
|
||||
height: inherit
|
||||
height: 100%
|
||||
&[data-view-type=kanban]
|
||||
.oe_view_manager_body
|
||||
display: table-row
|
||||
|
@ -1150,7 +1179,7 @@ $sheet-padding: 16px
|
|||
float: right
|
||||
padding: 1px 0
|
||||
line-height: 18px
|
||||
width: 400px
|
||||
min-width: 400px
|
||||
border: 1px solid #ababab
|
||||
background: white
|
||||
@include radius(13px)
|
||||
|
@ -1277,188 +1306,180 @@ $sheet-padding: 16px
|
|||
background: #8786b7
|
||||
text-shadow: 0 1px 1px rgba(0, 0, 0, 0.4)
|
||||
@include radius(2px)
|
||||
&.oe_searchview_open_drawer
|
||||
.oe_searchview_drawer
|
||||
|
||||
.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
|
||||
|
||||
.oe_searchview_drawer
|
||||
cursor: default
|
||||
position: absolute
|
||||
z-index: 2
|
||||
// detach drawer from field slightly
|
||||
margin-top: 4px
|
||||
top: 100%
|
||||
right: -1px
|
||||
background-color: white
|
||||
min-width: 100%
|
||||
// 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
|
||||
border: 1px solid $tag-border
|
||||
text-align: left
|
||||
@include radius(4px)
|
||||
@include box-shadow(0 1px 4px rgba(0,0,0,0.3))
|
||||
> div
|
||||
border-top: 1px solid #ccc
|
||||
margin: 0
|
||||
padding: 8px
|
||||
> div:first-child
|
||||
border-top: none
|
||||
margin: 0
|
||||
h3
|
||||
margin: 8px 4px 4px 0px
|
||||
color: $section-title-color
|
||||
font-size: 13px
|
||||
h4, h4 *
|
||||
margin: 0 0 0 2px
|
||||
cursor: pointer
|
||||
font-weight: normal
|
||||
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
|
||||
|
||||
|
||||
position: absolute
|
||||
bottom: 1px
|
||||
right: 4px
|
||||
.oe_searchview_custom_private, .oe_searchview_custom_public
|
||||
&:hover
|
||||
.oe_searchview_custom_delete
|
||||
display: inline-block
|
||||
.oe_searchview_custom_public:after
|
||||
content: ","
|
||||
font-family: "entypoRegular" !important
|
||||
font-size: 22px
|
||||
font-weight: 300 !important
|
||||
margin: 0 0 0 4px
|
||||
padding: 0
|
||||
// }}}
|
||||
// Views Common {{{
|
||||
.oe_view_nocontent
|
||||
|
@ -2779,5 +2800,7 @@ input[type="radio"], input[type="checkbox"]
|
|||
opacity: 0.6000000238418579
|
||||
|
||||
|
||||
body
|
||||
overflow: auto
|
||||
// au BufWritePost,FileWritePost *.sass :!sass --style expanded --line-numbers <afile> > "%:p:r.css"
|
||||
// vim:tabstop=4:shiftwidth=4:softtabstop=4:fdm=marker:
|
||||
|
|
|
@ -340,7 +340,8 @@ instance.web.SearchView = instance.web.Widget.extend(/** @lends instance.web.Sea
|
|||
},
|
||||
'click .oe_searchview_unfold_drawer': function (e) {
|
||||
e.stopImmediatePropagation();
|
||||
this.$el.toggleClass('oe_searchview_open_drawer');
|
||||
if (this.drawer)
|
||||
this.drawer.toggle();
|
||||
},
|
||||
'keydown .oe_searchview_input, .oe_searchview_facet': function (e) {
|
||||
switch(e.which) {
|
||||
|
@ -383,19 +384,24 @@ instance.web.SearchView = instance.web.Widget.extend(/** @lends instance.web.Sea
|
|||
this.defaults = defaults || {};
|
||||
this.has_defaults = !_.isEmpty(this.defaults);
|
||||
|
||||
this.inputs = [];
|
||||
this.controls = [];
|
||||
|
||||
this.headless = this.options.hidden && !this.has_defaults;
|
||||
|
||||
this.input_subviews = [];
|
||||
this.view_manager = null;
|
||||
this.$view_manager_header = null;
|
||||
|
||||
this.ready = $.Deferred();
|
||||
this.drawer_ready = $.Deferred();
|
||||
this.fields_view_get = $.Deferred();
|
||||
this.drawer = new instance.web.SearchViewDrawer(parent, this);
|
||||
|
||||
},
|
||||
start: function() {
|
||||
var self = this;
|
||||
var p = this._super();
|
||||
|
||||
this.$view_manager_header = this.$el.parents(".oe_view_manager_header").first();
|
||||
|
||||
this.setup_global_completion();
|
||||
this.query = new my.SearchQuery()
|
||||
.on('add change reset remove', this.proxy('do_search'))
|
||||
|
@ -416,20 +422,32 @@ instance.web.SearchView = instance.web.Widget.extend(/** @lends instance.web.Sea
|
|||
});
|
||||
|
||||
this.alive($.when(load_view)).then(function (r) {
|
||||
self.fields_view_get.resolve(r);
|
||||
return self.search_view_loaded(r);
|
||||
}).fail(function () {
|
||||
self.ready.reject.apply(null, arguments);
|
||||
});
|
||||
}
|
||||
|
||||
instance.web.bus.on('click', this, function(ev) {
|
||||
if ($(ev.target).parents('.oe_searchview').length === 0) {
|
||||
self.$el.removeClass('oe_searchview_open_drawer');
|
||||
}
|
||||
});
|
||||
var view_manager = this.getParent();
|
||||
while (!(view_manager instanceof instance.web.ViewManager) &&
|
||||
view_manager && view_manager.getParent) {
|
||||
view_manager = view_manager.getParent();
|
||||
}
|
||||
|
||||
if (view_manager) {
|
||||
this.view_manager = view_manager;
|
||||
view_manager.on('switch_mode', this, function (e) {
|
||||
self.drawer.toggle(e === 'graph');
|
||||
});
|
||||
}
|
||||
return $.when(p, this.ready);
|
||||
},
|
||||
|
||||
set_drawer: function (drawer) {
|
||||
this.drawer = drawer;
|
||||
},
|
||||
|
||||
show: function () {
|
||||
this.$el.show();
|
||||
},
|
||||
|
@ -462,14 +480,6 @@ instance.web.SearchView = instance.web.Widget.extend(/** @lends instance.web.Sea
|
|||
.$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
|
||||
*/
|
||||
|
@ -530,7 +540,7 @@ instance.web.SearchView = instance.web.Widget.extend(/** @lends instance.web.Sea
|
|||
* @param {Function} resp response callback
|
||||
*/
|
||||
complete_global_search: function (req, resp) {
|
||||
$.when.apply(null, _(this.inputs).chain()
|
||||
$.when.apply(null, _(this.drawer.inputs).chain()
|
||||
.filter(function (input) { return input.visible(); })
|
||||
.invoke('complete', req.term)
|
||||
.value()).then(function () {
|
||||
|
@ -630,87 +640,6 @@ instance.web.SearchView = instance.web.Widget.extend(/** @lends instance.web.Sea
|
|||
});
|
||||
},
|
||||
|
||||
/**
|
||||
* Builds a list of widget rows (each row is an array of widgets)
|
||||
*
|
||||
* @param {Array} items a list of nodes to convert to widgets
|
||||
* @param {Object} fields a mapping of field names to (ORM) field attributes
|
||||
* @param {Object} [group] group to put the new controls in
|
||||
*/
|
||||
make_widgets: function (items, fields, group) {
|
||||
if (!group) {
|
||||
group = new instance.web.search.Group(
|
||||
this, 'q', {attrs: {string: _t("Filters")}});
|
||||
}
|
||||
var self = this;
|
||||
var filters = [];
|
||||
_.each(items, function (item) {
|
||||
if (filters.length && item.tag !== 'filter') {
|
||||
group.push(new instance.web.search.FilterGroup(filters, group));
|
||||
filters = [];
|
||||
}
|
||||
|
||||
switch (item.tag) {
|
||||
case 'separator': case 'newline':
|
||||
break;
|
||||
case 'filter':
|
||||
filters.push(new instance.web.search.Filter(item, group));
|
||||
break;
|
||||
case 'group':
|
||||
self.make_widgets(item.children, fields,
|
||||
new instance.web.search.Group(group, 'w', item));
|
||||
break;
|
||||
case 'field':
|
||||
var field = this.make_field(
|
||||
item, fields[item['attrs'].name], group);
|
||||
group.push(field);
|
||||
// filters
|
||||
self.make_widgets(item.children, fields, group);
|
||||
break;
|
||||
}
|
||||
}, this);
|
||||
|
||||
if (filters.length) {
|
||||
group.push(new instance.web.search.FilterGroup(filters, this));
|
||||
}
|
||||
},
|
||||
/**
|
||||
* Creates a field for the provided field descriptor item (which comes
|
||||
* from fields_view_get)
|
||||
*
|
||||
* @param {Object} item fields_view_get node for the field
|
||||
* @param {Object} field fields_get result for the field
|
||||
* @param {Object} [parent]
|
||||
* @returns instance.web.search.Field
|
||||
*/
|
||||
make_field: function (item, field, parent) {
|
||||
// M2O combined with selection widget is pointless and broken in search views,
|
||||
// but has been used in the past for unsupported hacks -> ignore it
|
||||
if (field.type === "many2one" && item.attrs.widget === "selection"){
|
||||
item.attrs.widget = undefined;
|
||||
}
|
||||
var obj = instance.web.search.fields.get_any( [item.attrs.widget, field.type]);
|
||||
if(obj) {
|
||||
return new (obj) (item, field, parent || this);
|
||||
} else {
|
||||
console.group('Unknown field type ' + field.type);
|
||||
console.error('View node', item);
|
||||
console.info('View field', field);
|
||||
console.info('In view', this);
|
||||
console.groupEnd();
|
||||
return null;
|
||||
}
|
||||
},
|
||||
|
||||
add_common_inputs: function() {
|
||||
// add Filters to this.inputs, need view.controls filled
|
||||
(new instance.web.search.Filters(this));
|
||||
// add custom filters to this.inputs
|
||||
this.custom_filters = new instance.web.search.CustomFilters(this);
|
||||
// add Advanced to this.inputs
|
||||
(new instance.web.search.Advanced(this));
|
||||
},
|
||||
|
||||
search_view_loaded: function(data) {
|
||||
var self = this;
|
||||
this.fields_view = data;
|
||||
|
@ -720,24 +649,9 @@ instance.web.SearchView = instance.web.Widget.extend(/** @lends instance.web.Sea
|
|||
"Got non-search view after asking for a search view: type %s, arch root %s",
|
||||
data.type, data.arch.tag));
|
||||
}
|
||||
this.make_widgets(
|
||||
data['arch'].children,
|
||||
data.fields);
|
||||
|
||||
this.add_common_inputs();
|
||||
|
||||
// build drawer
|
||||
var drawer_started = $.when.apply(
|
||||
null, _(this.select_for_drawer()).invoke(
|
||||
'appendTo', this.$('.oe_searchview_drawer')));
|
||||
|
||||
|
||||
// load defaults
|
||||
var defaults_fetched = $.when.apply(null, _(this.inputs).invoke(
|
||||
'facet_for_defaults', this.defaults))
|
||||
.then(this.proxy('setup_default_query'));
|
||||
|
||||
return $.when(drawer_started, defaults_fetched)
|
||||
return this.drawer_ready
|
||||
.then(this.proxy('setup_default_query'))
|
||||
.then(function () {
|
||||
self.trigger("search_view_loaded", data);
|
||||
self.ready.resolve();
|
||||
|
@ -747,14 +661,14 @@ instance.web.SearchView = instance.web.Widget.extend(/** @lends instance.web.Sea
|
|||
// Hacky implementation of CustomFilters#facet_for_defaults ensure
|
||||
// CustomFilters will be ready (and CustomFilters#filters will be
|
||||
// correctly filled) by the time this method executes.
|
||||
var custom_filters = this.custom_filters.filters;
|
||||
var custom_filters = this.drawer.custom_filters.filters;
|
||||
if (!this.options.disable_custom_filters && !_(custom_filters).isEmpty()) {
|
||||
// Check for any is_default custom filter
|
||||
var personal_filter = _(custom_filters).find(function (filter) {
|
||||
return filter.user_id && filter.is_default;
|
||||
});
|
||||
if (personal_filter) {
|
||||
this.custom_filters.toggle_filter(personal_filter, true);
|
||||
this.drawer.custom_filters.toggle_filter(personal_filter, true);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -762,7 +676,7 @@ instance.web.SearchView = instance.web.Widget.extend(/** @lends instance.web.Sea
|
|||
return !filter.user_id && filter.is_default;
|
||||
});
|
||||
if (global_filter) {
|
||||
this.custom_filters.toggle_filter(global_filter, true);
|
||||
this.drawer.custom_filters.toggle_filter(global_filter, true);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -872,9 +786,167 @@ instance.web.SearchView = instance.web.Widget.extend(/** @lends instance.web.Sea
|
|||
on_invalid: function (errors) {
|
||||
this.do_notify(_t("Invalid Search"), _t("triggered from search view"));
|
||||
this.trigger('invalid_search', errors);
|
||||
},
|
||||
|
||||
// The method appendTo is overwrited to be able to insert the drawer anywhere
|
||||
appendTo: function ($searchview_parent, $searchview_drawer_node) {
|
||||
var $searchview_drawer_node = $searchview_drawer_node || $searchview_parent;
|
||||
|
||||
return $.when(
|
||||
this._super($searchview_parent),
|
||||
this.drawer.appendTo($searchview_drawer_node)
|
||||
);
|
||||
},
|
||||
|
||||
destroy: function () {
|
||||
this.drawer.destroy();
|
||||
this.getParent().destroy.call(this);
|
||||
}
|
||||
});
|
||||
|
||||
instance.web.SearchViewDrawer = instance.web.Widget.extend({
|
||||
template: "SearchViewDrawer",
|
||||
|
||||
init: function(parent, searchview) {
|
||||
this._super(parent);
|
||||
this.searchview = searchview;
|
||||
this.searchview.set_drawer(this);
|
||||
this.ready = searchview.drawer_ready;
|
||||
this.controls = [];
|
||||
this.inputs = [];
|
||||
},
|
||||
|
||||
toggle: function (visibility) {
|
||||
this.$el.toggle(visibility);
|
||||
var $view_manager_body = this.$el.closest('.oe_view_manager_body');
|
||||
if ($view_manager_body.length) {
|
||||
$view_manager_body.scrollTop(0);
|
||||
}
|
||||
},
|
||||
|
||||
start: function() {
|
||||
var self = this;
|
||||
var filters_ready = this.searchview.fields_view_get
|
||||
.then(this.proxy('prepare_filters'));
|
||||
return $.when(this._super(), filters_ready).then(function () {
|
||||
var defaults = arguments[1][0];
|
||||
self.ready.resolve.apply(null, defaults);
|
||||
});
|
||||
},
|
||||
prepare_filters: function (data) {
|
||||
this.make_widgets(
|
||||
data['arch'].children,
|
||||
data.fields);
|
||||
|
||||
this.add_common_inputs();
|
||||
|
||||
// build drawer
|
||||
var in_drawer = this.select_for_drawer();
|
||||
|
||||
var $first_col = this.$(".col-md-7"),
|
||||
$snd_col = this.$(".col-md-5");
|
||||
|
||||
var add_custom_reports = in_drawer[0].appendTo($first_col),
|
||||
add_filters = in_drawer[1].appendTo($first_col),
|
||||
add_rest = $.when.apply(null, _(in_drawer.slice(2)).invoke('appendTo', $snd_col)),
|
||||
defaults_fetched = $.when.apply(null, _(this.inputs).invoke(
|
||||
'facet_for_defaults', this.searchview.defaults));
|
||||
|
||||
return $.when(defaults_fetched, add_custom_reports, add_filters, add_rest);
|
||||
},
|
||||
/**
|
||||
* Sets up thingie where all the mess is put?
|
||||
*/
|
||||
select_for_drawer: function () {
|
||||
return _(this.inputs).filter(function (input) {
|
||||
return input.in_drawer();
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
* Builds a list of widget rows (each row is an array of widgets)
|
||||
*
|
||||
* @param {Array} items a list of nodes to convert to widgets
|
||||
* @param {Object} fields a mapping of field names to (ORM) field attributes
|
||||
* @param {Object} [group] group to put the new controls in
|
||||
*/
|
||||
make_widgets: function (items, fields, group) {
|
||||
if (!group) {
|
||||
group = new instance.web.search.Group(
|
||||
this, 'q', {attrs: {string: _t("Filters")}});
|
||||
}
|
||||
var self = this;
|
||||
var filters = [];
|
||||
_.each(items, function (item) {
|
||||
if (filters.length && item.tag !== 'filter') {
|
||||
group.push(new instance.web.search.FilterGroup(filters, group));
|
||||
filters = [];
|
||||
}
|
||||
|
||||
switch (item.tag) {
|
||||
case 'separator': case 'newline':
|
||||
break;
|
||||
case 'filter':
|
||||
filters.push(new instance.web.search.Filter(item, group));
|
||||
break;
|
||||
case 'group':
|
||||
self.make_widgets(item.children, fields,
|
||||
new instance.web.search.Group(group, 'w', item));
|
||||
break;
|
||||
case 'field':
|
||||
var field = this.make_field(
|
||||
item, fields[item['attrs'].name], group);
|
||||
group.push(field);
|
||||
// filters
|
||||
self.make_widgets(item.children, fields, group);
|
||||
break;
|
||||
}
|
||||
}, this);
|
||||
|
||||
if (filters.length) {
|
||||
group.push(new instance.web.search.FilterGroup(filters, this));
|
||||
}
|
||||
},
|
||||
/**
|
||||
* Creates a field for the provided field descriptor item (which comes
|
||||
* from fields_view_get)
|
||||
*
|
||||
* @param {Object} item fields_view_get node for the field
|
||||
* @param {Object} field fields_get result for the field
|
||||
* @param {Object} [parent]
|
||||
* @returns instance.web.search.Field
|
||||
*/
|
||||
make_field: function (item, field, parent) {
|
||||
// M2O combined with selection widget is pointless and broken in search views,
|
||||
// but has been used in the past for unsupported hacks -> ignore it
|
||||
if (field.type === "many2one" && item.attrs.widget === "selection"){
|
||||
item.attrs.widget = undefined;
|
||||
}
|
||||
var obj = instance.web.search.fields.get_any( [item.attrs.widget, field.type]);
|
||||
if(obj) {
|
||||
return new (obj) (item, field, parent || this);
|
||||
} else {
|
||||
console.group('Unknown field type ' + field.type);
|
||||
console.error('View node', item);
|
||||
console.info('View field', field);
|
||||
console.info('In view', this);
|
||||
console.groupEnd();
|
||||
return null;
|
||||
}
|
||||
},
|
||||
|
||||
add_common_inputs: function() {
|
||||
// add custom filters to this.inputs
|
||||
this.custom_filters = new instance.web.search.CustomReports(this);
|
||||
// add Filters to this.inputs, need view.controls filled
|
||||
(new instance.web.search.Filters(this));
|
||||
(new instance.web.search.SaveFilter(this, this.custom_filters));
|
||||
// add Advanced to this.inputs
|
||||
(new instance.web.search.Advanced(this));
|
||||
},
|
||||
|
||||
});
|
||||
|
||||
/**
|
||||
* Registry of search fields, called by :js:class:`instance.web.SearchView` to
|
||||
* find and instantiate its field widgets.
|
||||
|
@ -932,9 +1004,10 @@ instance.web.search.Widget = instance.web.Widget.extend( /** @lends instance.web
|
|||
this._super(parent);
|
||||
var ancestor = parent;
|
||||
do {
|
||||
this.view = ancestor;
|
||||
} while (!(ancestor instanceof instance.web.SearchView)
|
||||
this.drawer = ancestor;
|
||||
} while (!(ancestor instanceof instance.web.SearchViewDrawer)
|
||||
&& (ancestor = (ancestor.getParent && ancestor.getParent())));
|
||||
this.view = this.drawer.searchview || this.drawer;
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -956,7 +1029,7 @@ instance.web.search.Group = instance.web.search.Widget.extend({
|
|||
this.name = attrs.string;
|
||||
this.children = [];
|
||||
|
||||
this.view.controls.push(this);
|
||||
this.drawer.controls.push(this);
|
||||
},
|
||||
push: function (input) {
|
||||
this.children.push(input);
|
||||
|
@ -977,7 +1050,7 @@ instance.web.search.Input = instance.web.search.Widget.extend( /** @lends instan
|
|||
init: function (parent) {
|
||||
this._super(parent);
|
||||
this.load_attrs({});
|
||||
this.view.inputs.push(this);
|
||||
this.drawer.inputs.push(this);
|
||||
},
|
||||
/**
|
||||
* Fetch auto-completion values for the widget.
|
||||
|
@ -1088,7 +1161,7 @@ instance.web.search.FilterGroup = instance.web.search.Input.extend(/** @lends in
|
|||
*/
|
||||
search_change: function () {
|
||||
var self = this;
|
||||
var $filters = this.$('> li').removeClass('oe_selected');
|
||||
var $filters = this.$('> li').removeClass('badge');
|
||||
var facet = this.view.query.find(_.bind(this.match_facet, this));
|
||||
if (!facet) { return; }
|
||||
facet.values.each(function (v) {
|
||||
|
@ -1096,7 +1169,7 @@ instance.web.search.FilterGroup = instance.web.search.Input.extend(/** @lends in
|
|||
if (i === -1) { return; }
|
||||
$filters.filter(function () {
|
||||
return Number($(this).data('index')) === i;
|
||||
}).addClass('oe_selected');
|
||||
}).addClass('badge');
|
||||
});
|
||||
},
|
||||
/**
|
||||
|
@ -1628,12 +1701,12 @@ instance.web.search.ManyToOneField = instance.web.search.CharField.extend({
|
|||
}
|
||||
});
|
||||
|
||||
instance.web.search.CustomFilters = instance.web.search.Input.extend({
|
||||
template: 'SearchView.CustomFilters',
|
||||
instance.web.search.CustomReports = instance.web.search.Input.extend({
|
||||
template: 'SearchView.CustomReports',
|
||||
_in_drawer: true,
|
||||
init: function () {
|
||||
this.is_ready = $.Deferred();
|
||||
this._super.apply(this, arguments);
|
||||
this._super.apply(this,arguments);
|
||||
},
|
||||
start: function () {
|
||||
var self = this;
|
||||
|
@ -1648,13 +1721,6 @@ instance.web.search.CustomFilters = instance.web.search.Input.extend({
|
|||
self.clear_selection();
|
||||
})
|
||||
.on('reset', this.proxy('clear_selection'));
|
||||
this.$el.on('submit', 'form', this.proxy('save_current'));
|
||||
this.$el.on('click', 'input[type=checkbox]', function() {
|
||||
$(this).siblings('input[type=checkbox]').prop('checked', false);
|
||||
});
|
||||
this.$el.on('click', 'h4', function () {
|
||||
self.$el.toggleClass('oe_opened');
|
||||
});
|
||||
return this.model.call('get_filters', [this.view.model])
|
||||
.then(this.proxy('set_filters'))
|
||||
.done(function () { self.is_ready.resolve(); })
|
||||
|
@ -1708,7 +1774,7 @@ instance.web.search.CustomFilters = instance.web.search.Input.extend({
|
|||
};
|
||||
},
|
||||
clear_selection: function () {
|
||||
this.$('li.oe_selected').removeClass('oe_selected');
|
||||
this.$('span.badge').removeClass('badge');
|
||||
},
|
||||
append_filter: function (filter) {
|
||||
var self = this;
|
||||
|
@ -1721,12 +1787,13 @@ instance.web.search.CustomFilters = instance.web.search.Input.extend({
|
|||
} else {
|
||||
var id = filter.id;
|
||||
this.filters[key] = filter;
|
||||
$filter = this.$filters[key] = $('<li></li>')
|
||||
$filter = $('<li></li>')
|
||||
.appendTo(this.$('.oe_searchview_custom_list'))
|
||||
.addClass(filter.user_id ? 'oe_searchview_custom_private'
|
||||
: 'oe_searchview_custom_public')
|
||||
.toggleClass('oe_searchview_custom_default', filter.is_default)
|
||||
.text(filter.name);
|
||||
.append(this.$filters[key] = $('<span>').text(filter.name));
|
||||
|
||||
this.$filters[key].addClass(filter.user_id ? 'oe_searchview_custom_private'
|
||||
: 'oe_searchview_custom_public')
|
||||
|
||||
$('<a class="oe_searchview_custom_delete">x</a>')
|
||||
.click(function (e) {
|
||||
|
@ -1738,14 +1805,18 @@ instance.web.search.CustomFilters = instance.web.search.Input.extend({
|
|||
$filter.remove();
|
||||
delete self.$filters[key];
|
||||
delete self.filters[key];
|
||||
if (_.isEmpty(self.filters)) {
|
||||
self.hide();
|
||||
}
|
||||
});
|
||||
})
|
||||
.appendTo($filter);
|
||||
}
|
||||
|
||||
$filter.unbind('click').click(function () {
|
||||
this.$filters[key].unbind('click').click(function () {
|
||||
self.toggle_filter(filter);
|
||||
});
|
||||
this.show();
|
||||
},
|
||||
toggle_filter: function (filter, preventSearch) {
|
||||
var current = this.view.query.find(function (facet) {
|
||||
|
@ -1753,15 +1824,44 @@ instance.web.search.CustomFilters = instance.web.search.Input.extend({
|
|||
});
|
||||
if (current) {
|
||||
this.view.query.remove(current);
|
||||
this.$filters[this.key_for(filter)].removeClass('oe_selected');
|
||||
this.$filters[this.key_for(filter)].removeClass('badge');
|
||||
return;
|
||||
}
|
||||
this.view.query.reset([this.facet_for(filter)], {
|
||||
preventSearch: preventSearch || false});
|
||||
this.$filters[this.key_for(filter)].addClass('oe_selected');
|
||||
this.$filters[this.key_for(filter)].addClass('badge');
|
||||
},
|
||||
set_filters: function (filters) {
|
||||
_(filters).map(_.bind(this.append_filter, this));
|
||||
if (!filters.length) {
|
||||
this.hide();
|
||||
}
|
||||
},
|
||||
hide: function () {
|
||||
this.$el.hide();
|
||||
},
|
||||
show: function () {
|
||||
this.$el.show();
|
||||
},
|
||||
});
|
||||
|
||||
instance.web.search.SaveFilter = instance.web.search.Input.extend({
|
||||
template: 'SearchView.SaveFilter',
|
||||
_in_drawer: true,
|
||||
init: function (parent, custom_reports) {
|
||||
this._super(parent);
|
||||
this.custom_reports = custom_reports;
|
||||
},
|
||||
start: function () {
|
||||
var self = this;
|
||||
this.model = new instance.web.Model('ir.filters');
|
||||
this.$el.on('submit', 'form', this.proxy('save_current'));
|
||||
this.$el.on('click', 'input[type=checkbox]', function() {
|
||||
$(this).siblings('input[type=checkbox]').prop('checked', false);
|
||||
});
|
||||
this.$el.on('click', 'h4', function () {
|
||||
self.$el.toggleClass('oe_opened');
|
||||
});
|
||||
},
|
||||
save_current: function () {
|
||||
var self = this;
|
||||
|
@ -1799,14 +1899,16 @@ instance.web.search.CustomFilters = instance.web.search.Input.extend({
|
|||
// FIXME: current context?
|
||||
return self.model.call('create_or_replace', [filter]).done(function (id) {
|
||||
filter.id = id;
|
||||
self.append_filter(filter);
|
||||
if (self.custom_reports) {
|
||||
self.custom_reports.append_filter(filter);
|
||||
}
|
||||
self.$el
|
||||
.removeClass('oe_opened')
|
||||
.find('form')[0].reset();
|
||||
});
|
||||
});
|
||||
return false;
|
||||
}
|
||||
},
|
||||
});
|
||||
|
||||
instance.web.search.Filters = instance.web.search.Input.extend({
|
||||
|
@ -1814,22 +1916,13 @@ instance.web.search.Filters = instance.web.search.Input.extend({
|
|||
_in_drawer: true,
|
||||
start: function () {
|
||||
var self = this;
|
||||
var running_count = 0;
|
||||
// get total filters count
|
||||
var is_group = function (i) { return i instanceof instance.web.search.FilterGroup; };
|
||||
var visible_filters = _(this.view.controls).chain().reject(function (group) {
|
||||
var visible_filters = _(this.drawer.controls).chain().reject(function (group) {
|
||||
return _(_(group.children).filter(is_group)).isEmpty()
|
||||
|| group.modifiers.invisible;
|
||||
});
|
||||
var filters_count = visible_filters
|
||||
.pluck('children')
|
||||
.flatten()
|
||||
.filter(is_group)
|
||||
.map(function (i) { return i.filters.length; })
|
||||
.sum()
|
||||
.value();
|
||||
|
||||
var col1 = [], col2 = visible_filters.map(function (group) {
|
||||
var groups = visible_filters.map(function (group) {
|
||||
var filters = _(group.children).filter(is_group);
|
||||
return {
|
||||
name: _.str.sprintf("<span class='oe_i'>%s</span> %s",
|
||||
|
@ -1840,27 +1933,16 @@ instance.web.search.Filters = instance.web.search.Input.extend({
|
|||
};
|
||||
}).value();
|
||||
|
||||
while (col2.length) {
|
||||
// col1 + group should be smaller than col2 + group
|
||||
if ((running_count + col2[0].length) <= (filters_count - running_count)) {
|
||||
running_count += col2[0].length;
|
||||
col1.push(col2.shift());
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
}
|
||||
var $dl = $('<dl class="dl-horizontal">').appendTo(this.$el);
|
||||
|
||||
return $.when(
|
||||
this.render_column(col1, $('<div>').appendTo(this.$el)),
|
||||
this.render_column(col2, $('<div>').appendTo(this.$el)));
|
||||
var rendered_lines = _.map(groups, function (group) {
|
||||
$('<dt>').html(group.name).appendTo($dl);
|
||||
var $dd = $('<dd>').appendTo($dl);
|
||||
return $.when.apply(null, _(group.filters).invoke('appendTo', $dd));
|
||||
});
|
||||
|
||||
return $.when.apply(this, rendered_lines);
|
||||
},
|
||||
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({
|
||||
|
|
|
@ -5306,8 +5306,12 @@ instance.web.form.SelectCreatePopup = instance.web.form.AbstractFormPopup.extend
|
|||
if (this.searchview) {
|
||||
this.searchview.destroy();
|
||||
}
|
||||
if (this.searchview_drawer) {
|
||||
this.searchview_drawer.destroy();
|
||||
}
|
||||
this.searchview = new instance.web.SearchView(this,
|
||||
this.dataset, false, search_defaults);
|
||||
this.searchview_drawer = new instance.web.SearchViewDrawer(this, this.searchview);
|
||||
this.searchview.on('search_data', self, function(domains, contexts, groupbys) {
|
||||
if (self.initial_ids) {
|
||||
self.do_search(domains.concat([[["id", "in", self.initial_ids]], self.domain]),
|
||||
|
@ -5353,7 +5357,7 @@ instance.web.form.SelectCreatePopup = instance.web.form.AbstractFormPopup.extend
|
|||
});
|
||||
});
|
||||
});
|
||||
this.searchview.appendTo($(".oe_popup_search", self.$el));
|
||||
this.searchview.appendTo(this.$(".oe_popup_search"));
|
||||
},
|
||||
do_search: function(domains, contexts, groupbys) {
|
||||
var self = this;
|
||||
|
|
|
@ -607,7 +607,6 @@ instance.web.ViewManager = instance.web.Widget.extend({
|
|||
// If no default view defined, switch to the first one in sequence
|
||||
var default_view = this.flags.default_view || this.views_src[0].view_type;
|
||||
|
||||
|
||||
return this.switch_mode(default_view, null, this.flags[default_view] && this.flags[default_view].options);
|
||||
|
||||
|
||||
|
@ -647,7 +646,7 @@ instance.web.ViewManager = instance.web.Widget.extend({
|
|||
_.each(_.keys(self.views), function(view_name) {
|
||||
var controller = self.views[view_name].controller;
|
||||
if (controller) {
|
||||
var container = self.$el.find("> .oe_view_manager_body > .oe_view_manager_view_" + view_name);
|
||||
var container = self.$el.find("> div > div > .oe_view_manager_body > .oe_view_manager_view_" + view_name);
|
||||
if (view_name === view_type) {
|
||||
container.show();
|
||||
controller.do_show(view_options || {});
|
||||
|
@ -690,7 +689,7 @@ instance.web.ViewManager = instance.web.Widget.extend({
|
|||
controller.on('switch_mode', self, this.switch_mode);
|
||||
controller.on('previous_view', self, this.prev_view);
|
||||
|
||||
var container = this.$el.find("> .oe_view_manager_body > .oe_view_manager_view_" + view_type);
|
||||
var container = this.$el.find("> div > div > .oe_view_manager_body > .oe_view_manager_view_" + view_type);
|
||||
var view_promise = controller.appendTo(container);
|
||||
this.views[view_type].controller = controller;
|
||||
this.views[view_type].deferred.resolve(view_type);
|
||||
|
@ -705,6 +704,7 @@ instance.web.ViewManager = instance.web.Widget.extend({
|
|||
self.trigger("controller_inited",view_type,controller);
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
* @returns {Number|Boolean} the view id of the given type, false if not found
|
||||
*/
|
||||
|
@ -800,6 +800,7 @@ instance.web.ViewManager = instance.web.Widget.extend({
|
|||
if (this.searchview) {
|
||||
this.searchview.destroy();
|
||||
}
|
||||
|
||||
var options = {
|
||||
hidden: this.flags.search_view === false,
|
||||
disable_custom_filters: this.flags.search_disable_custom_filters,
|
||||
|
@ -807,7 +808,8 @@ instance.web.ViewManager = instance.web.Widget.extend({
|
|||
this.searchview = new instance.web.SearchView(this, this.dataset, view_id, search_defaults, options);
|
||||
|
||||
this.searchview.on('search_data', self, this.do_searchview_search);
|
||||
return this.searchview.appendTo(this.$el.find(".oe_view_manager_view_search"));
|
||||
return this.searchview.appendTo(this.$(".oe_view_manager_view_search"),
|
||||
this.$(".oe_searchview_drawer_container"));
|
||||
},
|
||||
do_searchview_search: function(domains, contexts, groupbys) {
|
||||
var self = this,
|
||||
|
|
|
@ -440,14 +440,20 @@
|
|||
</tr>
|
||||
<tr>
|
||||
<td class="oe_leftbar" valign="top">
|
||||
<t t-set="debug" t-value="__debug__ ? '&debug' : ''"/>
|
||||
<a class="oe_logo" t-attf-href="/web?#{debug}">
|
||||
<span class="oe_logo_edit">Edit Company data</span>
|
||||
<img t-att-src='widget.session.url("/web/binary/company_logo")'/>
|
||||
</a>
|
||||
<div class="oe_secondary_menus_container"/>
|
||||
<div class="oe_footer">
|
||||
Powered by <a href="https://www.odoo.com" target="_blank"><span>Odoo</span></a>
|
||||
<div>
|
||||
<t t-set="debug" t-value="__debug__ ? '&debug' : ''"/>
|
||||
<a class="oe_logo" t-attf-href="/web?#{debug}">
|
||||
<span class="oe_logo_edit">Edit Company data</span>
|
||||
<img t-att-src='widget.session.url("/web/binary/company_logo")'/>
|
||||
</a>
|
||||
<div>
|
||||
<div>
|
||||
<div class="oe_secondary_menus_container"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="oe_footer">
|
||||
Powered by <a href="http://www.odoo.com" target="_blank"><span>Odoo</span></a>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
<td class="oe_application">
|
||||
|
@ -520,10 +526,15 @@
|
|||
</tr>
|
||||
</table>
|
||||
|
||||
<div class="oe_view_manager_body">
|
||||
<t t-foreach="widget.views_src" t-as="view">
|
||||
<div t-attf-class="oe_view_manager_view_#{view.view_type}"/>
|
||||
</t>
|
||||
<div class="oe_view_manager_wrapper">
|
||||
<div>
|
||||
<div class="oe_view_manager_body">
|
||||
<div class="oe_searchview_drawer_container"/>
|
||||
<t t-foreach="widget.views_src" t-as="view">
|
||||
<div t-attf-class="oe_view_manager_view_#{view.view_type}"/>
|
||||
</t>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</t>
|
||||
|
@ -1556,11 +1567,15 @@
|
|||
<div class="oe_searchview_facets"/>
|
||||
<div class="oe_searchview_clear"/>
|
||||
<div class="oe_searchview_unfold_drawer" title="Advanced Search..."/>
|
||||
<div class="oe_searchview_drawer"/>
|
||||
<button type="button" class="oe_searchview_search"
|
||||
title="Search Again">Search</button>
|
||||
</div>
|
||||
|
||||
<div t-name="SearchViewDrawer" class="oe_searchview_drawer" style="display:none;">
|
||||
<div class="col-md-7"></div>
|
||||
<div class="col-md-5"></div>
|
||||
</div>
|
||||
|
||||
<div t-name="SearchView.InputView"
|
||||
class="oe_searchview_input"
|
||||
contenteditable="true"
|
||||
|
@ -1717,24 +1732,27 @@
|
|||
<div t-name="SearchView.Filters" class="oe_searchview_filters oe_searchview_section">
|
||||
|
||||
</div>
|
||||
<div t-name="SearchView.CustomFilters" class="oe_searchview_custom oe_searchview_section">
|
||||
<div>
|
||||
<h3><span class="oe_i">M</span> Custom Filters</h3>
|
||||
<ul class="oe_searchview_custom_list"/>
|
||||
<div class="oe_searchview_custom">
|
||||
<h4>Save current filter</h4>
|
||||
<form class="oe_form">
|
||||
<p class="oe_form_required"><input id="oe_searchview_custom_input" placeholder="Filter name"/></p>
|
||||
<p>
|
||||
<input id="oe_searchview_custom_public" type="checkbox"/>
|
||||
<label for="oe_searchview_custom_public">Share with all users</label>
|
||||
<input id="oe_searchview_custom_default" type="checkbox"/>
|
||||
<label for="oe_searchview_custom_default">Use by default</label>
|
||||
</p>
|
||||
<button>Save</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div t-name="SearchView.CustomReports" class="oe_searchview_custom oe_searchview_section">
|
||||
<dl class="dl-horizontal">
|
||||
<dt><span class="oe_i">M</span> Custom Reports</dt>
|
||||
<dd><ul class="oe_searchview_custom_list"/></dd>
|
||||
</dl>
|
||||
</div>
|
||||
|
||||
<div t-name="SearchView.SaveFilter" class="oe_searchview_savefilter">
|
||||
<h4>Save current filter</h4>
|
||||
<form class="oe_form">
|
||||
<p class="oe_form_required"><input id="oe_searchview_custom_input" placeholder="Filter name"/></p>
|
||||
<p>
|
||||
<input id="oe_searchview_custom_public" type="checkbox"/>
|
||||
<label for="oe_searchview_custom_public">Share with all users</label>
|
||||
<input id="oe_searchview_custom_default" type="checkbox"/>
|
||||
<label for="oe_searchview_custom_default">Use by default</label>
|
||||
</p>
|
||||
<button>Save</button>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<div t-name="SearchView.advanced" class="oe_searchview_advanced">
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue