partner-contact/partner_deduplicate_by_website/wizards/partner_merge.py

29 lines
1.1 KiB
Python
Raw Normal View History

2024-10-01 05:51:46 +00:00
# Copyright 2016 Tecnativa - Pedro M. Baeza
# Copyright 2024 Tecnativa - Carolina Fernandez
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
from flectra import fields, models
class BasePartnerMergeAutomaticWizard(models.TransientModel):
_inherit = "base.partner.merge.automatic.wizard"
group_by_website = fields.Boolean("Website")
def _generate_query(self, fields, maximum_group=100):
"""Inject the additional criteria 'website IS NOT NULL' when needed.
There's no better way to do it, as there are no hooks for adding
this criteria regularly.
"""
query = super()._generate_query(fields, maximum_group=maximum_group)
if "website" in fields:
if "WHERE" in query:
index = query.find("WHERE")
query = (
query[: index + 6] + "website IS NOT NULL AND " + query[index + 6 :]
)
else:
index = query.find(" GROUP BY")
query = query[:index] + " WHERE website IS NOT NULL" + query[index:]
return query