diff --git a/models/__init__.py b/models/__init__.py index 2d759130246b635ba5cb249de9d05600128c84c4..82607947345efb7a0b6ad93be477d00ea55f695c 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 93061520fae421bdda63fb2e52cd96238872c248..12f076b7d922119f2db511c3f4e5c2b751b263fa 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 0000000000000000000000000000000000000000..d89b863488e4ca2c1323eec43bf8e267a8618d6e --- /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 cfc7324b24901813c94f612a9af3fc86e111d274..2cb962cea66223db07bc14179de9dfb82f153a61 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 4c78300928a3106e8b35534a7275cc22e953e023..b1661fdde8129be4a02adf226155474be387d548 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 d6c544a536d57b18dcf0fa0b39f037efaa983571..735acdf903bbe545d06306ed049e6a4638a1f17a 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>