[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:
Adrian Torres
2017-12-11 10:43:48 +00:00
committed by GitHub
parent a1c5af2556
commit b7ce07ad2a
4 changed files with 62 additions and 0 deletions
+1
View File
@@ -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()
+1
View File
@@ -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
+30
View File
@@ -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()