[IMP] account: dynamically display invoice filters depending on the context:

When displaying only invoices, a "Credit notes" filter is useless (and
vice-versa). Filters will be called "Not draft"

When displaying both, keep filters for Invoices and Credit Notes.
This commit is contained in:
Chirag Vaghela
2017-08-18 15:59:55 +02:00
committed by Richard Mathot
parent f6031f617c
commit b31f7786f4
2 changed files with 39 additions and 6 deletions
@@ -351,6 +351,9 @@ class account_journal(models.Model):
[action] = self.env.ref('account.%s' % action_name).read()
action['context'] = ctx
action['domain'] = self._context.get('use_domain', [])
account_invoice_filter = self.env.ref('account.view_account_invoice_filter', False)
if action_name in ['action_invoice_tree1', 'action_invoice_tree2']:
action['search_view_id'] = account_invoice_filter and account_invoice_filter.id or False
if action_name in ['action_bank_statement_tree', 'action_view_bank_statement_tree']:
action['views'] = False
action['view_id'] = False
+36 -6
View File
@@ -522,8 +522,8 @@
<field name="number" string="Invoice" filter_domain="['|','|','|', ('number','ilike',self), ('origin','ilike',self), ('reference', 'ilike', self), ('partner_id', 'child_of', self)]"/>
<field name="journal_id" />
<filter name="draft" string="Draft" domain="[('state','=','draft')]"/>
<filter name="invoices" string="Invoices" domain="['&amp;', ('state','in',['open','paid']),('type','in',('out_invoice','in_invoice'))]"/>
<filter name="refunds" string="Credit Notes" domain="['&amp;', ('state','in',['open','paid']),('type','in',('out_refund','in_refund'))]"/>
<filter name="invoices" string="Invoices" domain="['&amp;', ('state','in',['draft','open','paid']),('type','in',('out_invoice','in_invoice'))]"/>
<filter name="refunds" string="Credit Notes" domain="['&amp;', ('state','in',['draft','open','paid']),('type','in',('out_refund','in_refund'))]"/>
<separator/>
<filter name="unpaid" string="Not Paid" domain="[('state','=','open')]"/>
<filter name="late" string="Overdue" domain="['&amp;', ('date_due', '&lt;', time.strftime('%%Y-%%m-%%d')), ('state', '=', 'open')]" help="Overdue invoices, maturity date passed"/>
@@ -557,6 +557,36 @@
</field>
</record>
<record id="view_account_invoice_filter_inherit_invoices" model="ir.ui.view">
<field name="name">account.invoice.select.invoices</field>
<field name="model">account.invoice</field>
<field name="mode">primary</field>
<field name="inherit_id" ref="view_account_invoice_filter"/>
<field name="arch" type="xml">
<data>
<xpath expr="filter[@name='invoices']" position="attributes">
<attribute name="string">Not Draft</attribute>
</xpath>
<filter name="refunds" position="replace"/>
</data>
</field>
</record>
<record id="view_account_invoice_filter_inherit_credit_notes" model="ir.ui.view">
<field name="name">account.invoice.select.credit.notes</field>
<field name="model">account.invoice</field>
<field name="mode">primary</field>
<field name="inherit_id" ref="view_account_invoice_filter"/>
<field name="arch" type="xml">
<data>
<xpath expr="filter[@name='refunds']" position="attributes">
<attribute name="string">Not Draft</attribute>
</xpath>
<filter name="invoices" position="replace"/>
</data>
</field>
</record>
<record id="action_invoice_tree" model="ir.actions.act_window">
<field name="name">Invoices</field>
<field name="res_model">account.invoice</field>
@@ -624,7 +654,7 @@
<field eval="False" name="view_id"/>
<field name="domain">[('type','=','out_invoice')]</field>
<field name="context">{'type':'out_invoice', 'journal_type': 'sale'}</field>
<field name="search_view_id" ref="view_account_invoice_filter"/>
<field name="search_view_id" ref="view_account_invoice_filter_inherit_invoices"/>
<field name="help" type="html">
<p class="oe_view_nocontent_create">
Click to create a customer invoice.
@@ -665,7 +695,7 @@
<field eval="False" name="view_id"/>
<field name="domain">[('type','=','out_refund')]</field>
<field name="context">{'default_type': 'out_refund', 'journal_type': 'sale'}</field>
<field name="search_view_id" ref="view_account_invoice_filter"/>
<field name="search_view_id" ref="view_account_invoice_filter_inherit_credit_notes"/>
<field name="help" type="html">
<p class="oe_view_nocontent_create">
Click to create a credit note.
@@ -703,7 +733,7 @@
<field eval="False" name="view_id"/>
<field name="domain">[('type','=','in_invoice')]</field>
<field name="context">{'default_type': 'in_invoice', 'type': 'in_invoice', 'journal_type': 'purchase'}</field>
<field name="search_view_id" ref="view_account_invoice_filter"/>
<field name="search_view_id" ref="view_account_invoice_filter_inherit_invoices"/>
<field name="help" type="html">
<p class="oe_view_nocontent_create">
Click to record a new vendor bill.
@@ -739,7 +769,7 @@
<field eval="False" name="view_id"/>
<field name="domain">[('type','=','in_refund')]</field>
<field name="context">{'default_type': 'in_refund', 'journal_type': 'purchase'}</field>
<field name="search_view_id" ref="view_account_invoice_filter"/>
<field name="search_view_id" ref="view_account_invoice_filter_inherit_credit_notes"/>
<field name="help" type="html">
<p class="oe_view_nocontent_create">
Click to record a new vendor credit note.