From 2432b4a49038eb8b0c180488068694e2dceb4465 Mon Sep 17 00:00:00 2001 From: "Xavier BOL (xbo)" Date: Fri, 1 Jul 2022 09:36:55 +0000 Subject: [PATCH] [IMP] project_purchase: allow user to add new purchase order Before this commit, when the user is in the project update kanban view and click on Purchase Order row shown in Project Profitability section in the right side panel, the user cannot create or edit a purchase order because the AA on each purchase order line is used to link those purchase orders to the project. This commit adds the project and also `project_update` key in the context to use them keys to set the AA on new Purchase Order Line by default. task-2861207 closes odoo/odoo#95721 Related: odoo/enterprise#29304 Signed-off-by: Laurent Stukkens (ltu) --- addons/project_purchase/models/__init__.py | 1 + addons/project_purchase/models/project.py | 2 +- .../models/purchase_order_line.py | 15 +++++++++++++++ 3 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 addons/project_purchase/models/purchase_order_line.py diff --git a/addons/project_purchase/models/__init__.py b/addons/project_purchase/models/__init__.py index 62a525c47db..7566db2c098 100644 --- a/addons/project_purchase/models/__init__.py +++ b/addons/project_purchase/models/__init__.py @@ -1,3 +1,4 @@ # -*- coding: utf-8 -*- # Part of Odoo. See LICENSE file for full copyright and licensing details. from . import project +from . import purchase_order_line diff --git a/addons/project_purchase/models/project.py b/addons/project_purchase/models/project.py index 9de301d16d2..4efd8485b10 100644 --- a/addons/project_purchase/models/project.py +++ b/addons/project_purchase/models/project.py @@ -40,7 +40,7 @@ class Project(models.Model): 'views': [[False, 'tree'], [False, 'form']], 'domain': [('id', 'in', purchase_orders.ids)], 'context': { - 'create': False, + 'project_id': self.id, } } if len(purchase_orders) == 1: diff --git a/addons/project_purchase/models/purchase_order_line.py b/addons/project_purchase/models/purchase_order_line.py new file mode 100644 index 00000000000..7c9f406f1a1 --- /dev/null +++ b/addons/project_purchase/models/purchase_order_line.py @@ -0,0 +1,15 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo import fields, models + + +class PurchaseOrderLine(models.Model): + _inherit = 'purchase.order.line' + + def _default_account_analytic_id(self): + if self._context.get('project_id'): + return self.env['project.project'].browse(self._context['project_id']).analytic_account_id + return False + + account_analytic_id = fields.Many2one(default=_default_account_analytic_id)