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