Initial commit: Odoo 18.0-20251222 extra-addons
This commit is contained in:
4
sale_partner_selectable_option/models/__init__.py
Executable file
4
sale_partner_selectable_option/models/__init__.py
Executable file
@@ -0,0 +1,4 @@
|
||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||
|
||||
from . import res_partner
|
||||
from . import sale_order
|
||||
22
sale_partner_selectable_option/models/res_partner.py
Executable file
22
sale_partner_selectable_option/models/res_partner.py
Executable file
@@ -0,0 +1,22 @@
|
||||
# Copyright 2021 Tecnativa - Víctor Martínez
|
||||
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
|
||||
|
||||
from odoo import api, fields, models
|
||||
|
||||
|
||||
class Partner(models.Model):
|
||||
_inherit = "res.partner"
|
||||
|
||||
sale_selectable = fields.Boolean(
|
||||
string="Selectable in sale orders",
|
||||
default=lambda self: self._default_sale_selectable(),
|
||||
)
|
||||
|
||||
@api.model
|
||||
def _default_sale_selectable(self):
|
||||
param = (
|
||||
self.env["ir.config_parameter"]
|
||||
.sudo()
|
||||
.get_param("sale_partner_selectable_option.default_sale_selectable")
|
||||
)
|
||||
return False if param == "0" else True
|
||||
24
sale_partner_selectable_option/models/sale_order.py
Executable file
24
sale_partner_selectable_option/models/sale_order.py
Executable file
@@ -0,0 +1,24 @@
|
||||
# Copyright 2021 Tecnativa - Víctor Martínez
|
||||
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
|
||||
from lxml import etree
|
||||
|
||||
from odoo import api, models
|
||||
|
||||
|
||||
class SaleOrder(models.Model):
|
||||
_inherit = "sale.order"
|
||||
|
||||
@api.model
|
||||
def get_view(self, view_id=None, view_type="form", **options):
|
||||
res = super().get_view(view_id, view_type, **options)
|
||||
if view_type == "form":
|
||||
order_xml = etree.XML(res["arch"])
|
||||
partner_id_fields = order_xml.xpath("//field[@name='partner_id']")
|
||||
if partner_id_fields:
|
||||
partner_id_field = partner_id_fields[0]
|
||||
domain = partner_id_field.get("domain", "[]").replace(
|
||||
"[", "[('sale_selectable', '=', True),"
|
||||
)
|
||||
partner_id_field.attrib["domain"] = domain
|
||||
res["arch"] = etree.tostring(order_xml)
|
||||
return res
|
||||
Reference in New Issue
Block a user