[FIX] website, mass_mailing: same field defined twice (#21503)
The ORM does not currently, an probably won't support two fields with the same name in different modules that do not depend on each other. This is obviously a nasty hack, but it's the best one can do for a stable branch. THIS IS WHY WE HAVE DEPENDENCY MODULES, PEOPLE.
This commit is contained in:
@@ -9,3 +9,4 @@ from . import res_config_settings
|
||||
from . import mass_mailing_report
|
||||
from . import link_tracker
|
||||
from . import res_company
|
||||
from . import ir_model_fields
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Part of Odoo. See LICENSE file for full copyright and licensing details
|
||||
|
||||
from odoo import api, models
|
||||
|
||||
|
||||
# This is a nasty hack, targeted for V11 only
|
||||
class IrModelFields(models.Model):
|
||||
_inherit = 'ir.model.fields'
|
||||
|
||||
@api.multi
|
||||
def unlink(self):
|
||||
# Prevent the deletion of social_* fields defined in res.company if
|
||||
# the other module is installed
|
||||
social = (
|
||||
'social_facebook',
|
||||
'social_github',
|
||||
'social_googleplus',
|
||||
'social_linkedin',
|
||||
'social_twitter',
|
||||
'social_youtube',
|
||||
)
|
||||
|
||||
self = self.filtered(
|
||||
lambda rec: not (
|
||||
rec.model == 'res.company' and
|
||||
rec.name in social
|
||||
)
|
||||
)
|
||||
return super(IrModelFields, self).unlink()
|
||||
@@ -11,3 +11,4 @@ from . import res_company
|
||||
from . import res_partner
|
||||
from . import web_planner
|
||||
from . import res_config_settings
|
||||
from . import ir_model_fields
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Part of Odoo. See LICENSE file for full copyright and licensing details
|
||||
|
||||
from odoo import api, models
|
||||
|
||||
|
||||
# This is a nasty hack, targeted for V11 only
|
||||
class IrModelFields(models.Model):
|
||||
_inherit = 'ir.model.fields'
|
||||
|
||||
@api.multi
|
||||
def unlink(self):
|
||||
# Prevent the deletion of social_* fields defined in res.company if
|
||||
# the other module is installed
|
||||
social = (
|
||||
'social_facebook',
|
||||
'social_github',
|
||||
'social_googleplus',
|
||||
'social_linkedin',
|
||||
'social_twitter',
|
||||
'social_youtube',
|
||||
)
|
||||
|
||||
self = self.filtered(
|
||||
lambda rec: not (
|
||||
rec.model == 'res.company' and
|
||||
rec.name in social
|
||||
)
|
||||
)
|
||||
return super(IrModelFields, self).unlink()
|
||||
Reference in New Issue
Block a user