From 7347513d0a88405662543dff46d65c5e3c1974ab Mon Sep 17 00:00:00 2001 From: benjamin <benjamin@le-filament.com> Date: Thu, 10 Mar 2022 13:05:35 +0100 Subject: [PATCH] [add] add user_second_ids to change user_second_id m2m field --- models/__init__.py | 1 + models/account.py | 11 ++++++++--- models/res_users.py | 24 ++++++++++++++++++++++++ models/sale.py | 11 ++++++++--- views/account_views.xml | 2 +- views/sale_views.xml | 2 +- 6 files changed, 43 insertions(+), 8 deletions(-) create mode 100644 models/res_users.py diff --git a/models/__init__.py b/models/__init__.py index 2d75913..8260794 100644 --- a/models/__init__.py +++ b/models/__init__.py @@ -2,4 +2,5 @@ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). from . import account +from . import res_users from . import sale diff --git a/models/account.py b/models/account.py index 9306152..12f076b 100644 --- a/models/account.py +++ b/models/account.py @@ -1,7 +1,7 @@ # Copyright 2021 Le Filament (<http://www.le-filament.com>) # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). -from odoo import fields, models, api +from odoo import fields, models class AccountInvoice(models.Model): @@ -11,8 +11,13 @@ class AccountInvoice(models.Model): # Fields declaration # ------------------------------------------------------ user_second_id = fields.Many2one( - 'res.users', - string='Spécialiste', + comodel_name='res.users', + string='Spécialiste') + user_second_ids = fields.Many2many( + comodel_name='res.users', + column1='invoice_id', + column2='user_id', + string='Spécialistes', track_visibility='onchange', copy=False) user_provider_id = fields.Many2one( diff --git a/models/res_users.py b/models/res_users.py new file mode 100644 index 0000000..d89b863 --- /dev/null +++ b/models/res_users.py @@ -0,0 +1,24 @@ +# Copyright 2021 Le Filament (<http://www.le-filament.com>) +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from odoo import fields, models + + +class ResUsers(models.Model): + _inherit = "res.users" + + # ------------------------------------------------------ + # Fields declaration + # ------------------------------------------------------ + order_second_ids = fields.Many2many( + comodel_name='sale.order', + column1='user_id', + column2='order_id', + string='Commandes', + copy=False) + invoice_second_ids = fields.Many2many( + comodel_name='account.invoice', + column1='user_id', + column2='invoice_id', + string='Factures', + copy=False) diff --git a/models/sale.py b/models/sale.py index cfc7324..2cb962c 100644 --- a/models/sale.py +++ b/models/sale.py @@ -11,8 +11,13 @@ class SaleOrder(models.Model): # Fields declaration # ------------------------------------------------------ user_second_id = fields.Many2one( - 'res.users', - string='Spécialiste', + comodel_name='res.users', + string='Spécialiste') + user_second_ids = fields.Many2many( + comodel_name='res.users', + column1='order_id', + column2='user_id', + string='Spécialistes', track_visibility='onchange', copy=False) user_provider_id = fields.Many2one( @@ -52,7 +57,7 @@ class SaleOrder(models.Model): def _prepare_invoice(self): values = super(SaleOrder, self)._prepare_invoice() values.update({ - 'user_second_id': self.user_second_id.id or False, + 'user_second_ids': [(6, 0, self.user_second_ids.ids)], 'user_provider_id': self.user_provider_id.id or False, }) return values diff --git a/views/account_views.xml b/views/account_views.xml index 4c78300..b1661fd 100644 --- a/views/account_views.xml +++ b/views/account_views.xml @@ -8,7 +8,7 @@ <field name="inherit_id" ref="account.invoice_form"/> <field name="arch" type="xml"> <field name="user_id" position="after"> - <field name="user_second_id" options="{'no_create_edit': 1}"/> + <field name="user_second_ids" options="{'no_create_edit': 1}" widget="many2many_tags"/> <field name="user_provider_id" options="{'no_create_edit': 1}"/> </field> </field> diff --git a/views/sale_views.xml b/views/sale_views.xml index d6c544a..735acdf 100644 --- a/views/sale_views.xml +++ b/views/sale_views.xml @@ -8,7 +8,7 @@ <field name="inherit_id" ref="sale.view_order_form"/> <field name="arch" type="xml"> <xpath expr="//notebook//page[@name='other_information']//group//group//field[@name='user_id']" position="after"> - <field name="user_second_id" options="{'no_create_edit': 1}"/> + <field name="user_second_ids" options="{'no_create_edit': 1}" widget="many2many_tags"/> <field name="user_provider_id" options="{'no_create_edit': 1}"/> </xpath> </field> -- GitLab