[FIX] base_comment_template: Incorrect m2m column names + script + avoid FK constraint
- The name of the columns were swapped, so better to fix it for avoiding mistakes due to this. - Migration script for detecting the condition and swap column names. - On v12 > v13 migration, include JOINs for avoiding FK constraint, which `ON CONFLICT` clause doesn't protect.pull/512/head
parent
75ffd70cda
commit
5d73e93c19
|
@ -5,7 +5,7 @@
|
||||||
"name": "Base Comments Templates",
|
"name": "Base Comments Templates",
|
||||||
"summary": "Add conditional mako template to any report "
|
"summary": "Add conditional mako template to any report "
|
||||||
"on models that inherits comment.template.",
|
"on models that inherits comment.template.",
|
||||||
"version": "13.0.2.0.0",
|
"version": "13.0.3.0.0",
|
||||||
"category": "Reporting",
|
"category": "Reporting",
|
||||||
"website": "https://github.com/OCA/reporting-engine",
|
"website": "https://github.com/OCA/reporting-engine",
|
||||||
"author": "Camptocamp, Odoo Community Association (OCA)",
|
"author": "Camptocamp, Odoo Community Association (OCA)",
|
||||||
|
|
|
@ -16,6 +16,9 @@ def migrate(env, version):
|
||||||
SPLIT_PART(ip.value_reference, ',', 2)::int AS base_comment_template_id
|
SPLIT_PART(ip.value_reference, ',', 2)::int AS base_comment_template_id
|
||||||
FROM ir_property ip
|
FROM ir_property ip
|
||||||
JOIN ir_model_fields imf ON ip.fields_id = imf.id
|
JOIN ir_model_fields imf ON ip.fields_id = imf.id
|
||||||
|
JOIN res_partner rp ON rp.id = SPLIT_PART(ip.res_id, ',', 2)::int
|
||||||
|
JOIN base_comment_template bct
|
||||||
|
ON bct.id = SPLIT_PART(ip.value_reference, ',', 2)::int
|
||||||
WHERE imf.name = 'property_comment_template_id'
|
WHERE imf.name = 'property_comment_template_id'
|
||||||
AND imf.model = 'res.partner'
|
AND imf.model = 'res.partner'
|
||||||
AND ip.res_id IS NOT NULL
|
AND ip.res_id IS NOT NULL
|
||||||
|
|
|
@ -0,0 +1,21 @@
|
||||||
|
# Copyright 2021 Tecnativa - Pedro M: Baeza
|
||||||
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
|
||||||
|
from openupgradelib import openupgrade # pylint: disable=W7936
|
||||||
|
|
||||||
|
|
||||||
|
@openupgrade.migrate()
|
||||||
|
def migrate(env, version):
|
||||||
|
if openupgrade.table_exists(env.cr, "base_comment_template_res_partner_rel"):
|
||||||
|
# Swap column names, as they were incorrect
|
||||||
|
env.cr.execute(
|
||||||
|
"ALTER TABLE base_comment_template_res_partner_rel "
|
||||||
|
"RENAME base_comment_template_id TO temp"
|
||||||
|
)
|
||||||
|
env.cr.execute(
|
||||||
|
"ALTER TABLE base_comment_template_res_partner_rel "
|
||||||
|
"RENAME res_partner_id TO base_comment_template_id"
|
||||||
|
)
|
||||||
|
env.cr.execute(
|
||||||
|
"ALTER TABLE base_comment_template_res_partner_rel "
|
||||||
|
"RENAME temp TO res_partner_id"
|
||||||
|
)
|
|
@ -45,8 +45,8 @@ class BaseCommentTemplate(models.Model):
|
||||||
partner_ids = fields.Many2many(
|
partner_ids = fields.Many2many(
|
||||||
comodel_name="res.partner",
|
comodel_name="res.partner",
|
||||||
relation="base_comment_template_res_partner_rel",
|
relation="base_comment_template_res_partner_rel",
|
||||||
column1="res_partner_id",
|
column1="base_comment_template_id",
|
||||||
column2="base_comment_template_id",
|
column2="res_partner_id",
|
||||||
string="Partner",
|
string="Partner",
|
||||||
readonly=True,
|
readonly=True,
|
||||||
help="If set, the comment template will be available only for the selected "
|
help="If set, the comment template will be available only for the selected "
|
||||||
|
|
|
@ -11,8 +11,8 @@ class ResPartner(models.Model):
|
||||||
base_comment_template_ids = fields.Many2many(
|
base_comment_template_ids = fields.Many2many(
|
||||||
comodel_name="base.comment.template",
|
comodel_name="base.comment.template",
|
||||||
relation="base_comment_template_res_partner_rel",
|
relation="base_comment_template_res_partner_rel",
|
||||||
column1="base_comment_template_id",
|
column1="res_partner_id",
|
||||||
column2="res_partner_id",
|
column2="base_comment_template_id",
|
||||||
string="Comment Templates",
|
string="Comment Templates",
|
||||||
help="Specific partner comments that can be included in reports",
|
help="Specific partner comments that can be included in reports",
|
||||||
)
|
)
|
||||||
|
|
Loading…
Reference in New Issue