I have added an extra field which relates to the project.project model in the sale order
class InheritSaleOrder(models.Model):
_inherit = 'sale.order'
project_name = fields.Many2one(comodel_name="project.project", string="Project Name", required=False)
i also have a customized module for project budget which is supposed to automatically pick the all the products in the sale order line relating to a specific order using onchange here is my function
@api.multi
@api.onchange('project_id')
def change_project_id(self):
#get quotation id
quotation_id = self.project_id
if(quotation_id!=""):
#get quotation info
quotation_list = self.env['sale.order'].search([('project_name','=',quotation_id.id)])
data = {}
#loop through quotation lines
new_lines = self.env['project.budget.line']
for line in quotation_list.order_line: #line 83
##populate items
data = {
'product_id': line.product_id.id,
'product_categ_id':line.product_categ_id,
'product_qty':line.product_uom_qty ,
'product_uom' : line.product_uom.id ,
'price_unit': line.product_id.standard_price #TODO - Use the pricelist to retrieve item prices
}
new_line = new_lines.new(data) #adding new items to the model
new_lines += new_line
#self.update('reference_bq' : value)
self.budget_line_items += new_lines # set budget lines
return {}
#return vals
# on change update lines
however when i try to run my code i get a singleton error i dont know what am missing kindly assist
File "/home/dishon/Desktop/odoo-dev/todo_app/project_budget/models/models.py", line 83, in change_project_id for line in quotation_list.order_line: File "/home/dishon/Desktop/odoo-dev/odoo/odoo/fields.py", line 909, in __get__ record.ensure_one() File "/home/dishon/Desktop/odoo-dev/odoo/odoo/models.py", line 4848, in ensure_one raise ValueError("Expected singleton: %s" % self) ValueError: Expected singleton: sale.order(23, 22, 21)
Read Odoo Customization: https://learnopenerp.tumblr.com/