Passing an id directly to `search_view_id` is not working. It is silently ignored. The framework js code expects an id/name pair, as described in the ORM doc. Most of the time, this will be unoticed as the specified search view being ignored, the default one will be used instead, which is often the same one as there is only one search view. Only 3 occurences are real misbehavior. Note that the `name` of the pair is useless, you can just pass the ID in an array. Working: 'search_view_id': [123, 'search'], 'search_view_id': [123], Not working: 'search_view_id': 123, closes odoo/odoo#72247 Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
36 lines
1.5 KiB
Python
36 lines
1.5 KiB
Python
# -*- coding: utf-8 -*-
|
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
|
|
from odoo import api, fields, models
|
|
|
|
|
|
class MembershipInvoice(models.TransientModel):
|
|
_name = "membership.invoice"
|
|
_description = "Membership Invoice"
|
|
|
|
product_id = fields.Many2one('product.product', string='Membership', required=True)
|
|
member_price = fields.Float(string='Member Price', digits='Product Price', required=True)
|
|
|
|
@api.onchange('product_id')
|
|
def onchange_product(self):
|
|
"""This function returns value of product's member price based on product id.
|
|
"""
|
|
price_dict = self.product_id.price_compute('list_price')
|
|
self.member_price = price_dict.get(self.product_id.id) or False
|
|
|
|
def membership_invoice(self):
|
|
invoice_list = self.env['res.partner'].browse(self._context.get('active_ids')).create_membership_invoice(self.product_id, self.member_price)
|
|
|
|
search_view_ref = self.env.ref('account.view_account_invoice_filter', False)
|
|
form_view_ref = self.env.ref('account.view_move_form', False)
|
|
tree_view_ref = self.env.ref('account.view_move_tree', False)
|
|
|
|
return {
|
|
'domain': [('id', 'in', invoice_list.ids)],
|
|
'name': 'Membership Invoices',
|
|
'res_model': 'account.move',
|
|
'type': 'ir.actions.act_window',
|
|
'views': [(tree_view_ref.id, 'tree'), (form_view_ref.id, 'form')],
|
|
'search_view_id': search_view_ref and [search_view_ref.id],
|
|
}
|