New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[FIX] fields: inherited fields keep parent's modules #30116
Closed
mart-e
wants to merge
2
commits into
odoo:12.0
from
odoo-dev:12.0-inherits-fields-different-module-mat
Closed
[FIX] fields: inherited fields keep parent's modules #30116
mart-e
wants to merge
2
commits into
odoo:12.0
from
odoo-dev:12.0-inherits-fields-different-module-mat
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
On a field created through a _inherits, the fields on the child model did not benefit from the parent _modules information. If two models are created in module base class Partner(models.Model): _name = 'res.partner' class User(models.Model): _inherits = {'res.partner': 'partner_id'} partner_id = fields.Many2one('res.partner') and a second module auth_signup adds a field on the parent model class ResPartner(models.Model): _inherit = 'res.partner' signup_token = fields.Char() Both res.users and res.partner should have an ir.model.data create base_setup.field_res_partner__signup_token was correctly created but base_setup.field_res_users__signup_token was not created The reason is was, in the call to _reflect_model, since 574f4c3, the creation of ir.model.data is based on the field._modules However, the field res.partner.signup_token did not propagate its _modules value to the related field res.users.signup_token With this patch, both ir.model.data are created. This allow a proper uninstallation of fields as well as translation.
mart-e
force-pushed
the
12.0-inherits-fields-different-module-mat
branch
2 times, most recently
from
January 10, 2019 15:11
eba8527
to
58b9c4b
Compare
rco-odoo
approved these changes
Jan 10, 2019
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good to me.
Can you add the usual licencing comment on top of you files?
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
This commit adds a test to test the scenario fixed in the parent commit. Creating a new test module is necessary as the bug is only revealed when the current module is different than the model._original_module (cf c9837ac) Before that commit, was failing only the second search of test_ir_model_data_inherits_depends. Add other test to avoid regression of the bugs corrected at 574f4c3 and c9837ac
mart-e
force-pushed
the
12.0-inherits-fields-different-module-mat
branch
from
January 10, 2019 15:28
58b9c4b
to
1eedff4
Compare
robodoo r+ |
Because this PR has multiple commits, I need to know how to merge it:
|
@robodoo rebase-ff |
Merge method set to rebase and fast-forward |
robodoo
pushed a commit
that referenced
this pull request
Jan 11, 2019
This commit adds a test to test the scenario fixed in the parent commit. Creating a new test module is necessary as the bug is only revealed when the current module is different than the model._original_module (cf c9837ac) Before that commit, was failing only the second search of test_ir_model_data_inherits_depends. Add other test to avoid regression of the bugs corrected at 574f4c3 and c9837ac closes #30116
Merged, thanks! |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
On a field created through a
_inherits
, the fields on the child model did notbenefit from the parent
_modules
information.If two models are created in module
base
and a second module
auth_signup
adds a field on the parent modelBoth res.users and res.partner should have an ir.model.data created:
auth_signup.field_res_partner__signup_token
was correctly created butauth_signup.field_res_users__signup_token
was not created.The reason is was, in the call to _reflect_model, since 574f4c3, the
creation of ir.model.data is based on the set
field._modules
.However, the field
res.partner.signup_token
did not propagate its_modules
valueto the related field
res.users.signup_token
.With this patch, both
ir.model.data
are created.This allow a proper uninstallation of fields as well as translations.
This PR also adds a test to test the scenario fixed.
Creating a new test module is necessary as the bug is only revealed when the
current module is different than the
model._original_module
(cf c9837ac)Before that commit, was failing only the second search of
test_ir_model_data_inherits_depends
.Add other test to avoid regression of the bugs corrected at 574f4c3 and c9837ac.