Files
odoo_source/addons/membership/wizard/membership_invoice.py
T
Romain Derie 4a1c516b01 [FIX] *: search_view_id expects an id/name pair
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>
2021-06-17 10:38:18 +00:00

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],
}