From 689ea6ea1a27b260a04e553c80c53a9c26276b70 Mon Sep 17 00:00:00 2001 From: Kinjal Mehta Date: Thu, 28 Dec 2017 12:00:51 +0530 Subject: [PATCH 01/22] [IMP] base: give warning if fields have same label to easily identify duplicate field string. --- odoo/addons/base/models/ir_model.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/odoo/addons/base/models/ir_model.py b/odoo/addons/base/models/ir_model.py index af51ddb547f..62b4ea6ab50 100644 --- a/odoo/addons/base/models/ir_model.py +++ b/odoo/addons/base/models/ir_model.py @@ -786,7 +786,12 @@ class IrModelFields(models.Model): def _reflect_model(self, model): """ Reflect the given model's fields. """ self.clear_caches() + duplicate_fields_label = {} for field in model._fields.values(): + if field.string in duplicate_fields_label.keys(): + _logger.warning('two fields (%s, %s) have same label for this model (%s)', field.name, duplicate_fields_label[field.string], model) + else: + duplicate_fields_label[field.string] = field.name self._reflect_field(field) if not self.pool._init: From 0f7930353d8fd283380c7e50658f2656ebdd7845 Mon Sep 17 00:00:00 2001 From: dbh Date: Tue, 2 May 2017 18:54:07 +0530 Subject: [PATCH 02/22] [IMP] base,base_address_city,base_setup: give warning if fields have same label to easily identify duplicate field string. --- addons/base_address_city/models/res_partner.py | 2 +- addons/base_setup/models/res_config_settings.py | 2 +- odoo/addons/base/models/ir_actions.py | 4 ++-- odoo/addons/base/models/ir_sequence.py | 4 ++-- odoo/addons/base/models/ir_ui_view.py | 4 ++-- odoo/addons/base/models/res_partner.py | 2 +- odoo/addons/base/views/ir_sequence_views.xml | 6 +++--- odoo/addons/base/views/ir_ui_view_views.xml | 2 +- odoo/addons/base/wizard/base_module_uninstall_views.xml | 2 +- 9 files changed, 14 insertions(+), 14 deletions(-) diff --git a/addons/base_address_city/models/res_partner.py b/addons/base_address_city/models/res_partner.py index 27b08b5a2a3..efc7f10f341 100644 --- a/addons/base_address_city/models/res_partner.py +++ b/addons/base_address_city/models/res_partner.py @@ -9,7 +9,7 @@ class Partner(models.Model): _inherit = 'res.partner' country_enforce_cities = fields.Boolean(related='country_id.enforce_cities') - city_id = fields.Many2one('res.city', string='City') + city_id = fields.Many2one('res.city', string='Partner City') @api.onchange('city_id') def _onchange_city_id(self): diff --git a/addons/base_setup/models/res_config_settings.py b/addons/base_setup/models/res_config_settings.py index 32946bf4a59..e925bac6a05 100644 --- a/addons/base_setup/models/res_config_settings.py +++ b/addons/base_setup/models/res_config_settings.py @@ -28,7 +28,7 @@ class ResConfigSettings(models.TransientModel): help="Share your partners to all companies defined in your instance.\n" " * Checked : Partners are visible for every companies, even if a company is defined on the partner.\n" " * Unchecked : Each company can see only its partner (partners where company is defined). Partners not related to a company are visible for all companies.") - default_custom_report_footer = fields.Boolean("Custom Report Footer") + default_custom_report_footer = fields.Boolean("Default Custom Report Footer") report_footer = fields.Text(related="company_id.report_footer", string='Custom Report Footer', help="Footer text displayed at the bottom of all reports.") group_multi_currency = fields.Boolean(string='Multi-Currencies', implied_group='base.group_multi_currency', diff --git a/odoo/addons/base/models/ir_actions.py b/odoo/addons/base/models/ir_actions.py index 776a098e453..dc5336fce12 100644 --- a/odoo/addons/base/models/ir_actions.py +++ b/odoo/addons/base/models/ir_actions.py @@ -173,7 +173,7 @@ class IrActionsActWindow(models.Model): help="View type: Tree type to use for the tree view, set to 'tree' for a hierarchical tree view, or 'form' for a regular list view") usage = fields.Char(string='Action Usage', help="Used to filter menu and home actions from the user form.") - view_ids = fields.One2many('ir.actions.act_window.view', 'act_window_id', string='Views') + view_ids = fields.One2many('ir.actions.act_window.view', 'act_window_id', string='No of Views') views = fields.Binary(compute='_compute_views', help="This function field computes the ordered list of views that should be enabled " \ "when displaying the result of an action, federating view mode, views and " \ @@ -358,7 +358,7 @@ class IrActionsServer(models.Model): "based on the sequence. Low number means high priority.") model_id = fields.Many2one('ir.model', string='Model', required=True, ondelete='cascade', help="Model on which the server action runs.") - model_name = fields.Char(related='model_id.model', readonly=True, store=True) + model_name = fields.Char(related='model_id.model', string='Model Name', readonly=True, store=True) # Python code code = fields.Text(string='Python Code', groups='base.group_system', default=DEFAULT_PYTHON_CODE, diff --git a/odoo/addons/base/models/ir_sequence.py b/odoo/addons/base/models/ir_sequence.py index 3f370f3fb4c..6a23b0e3f00 100644 --- a/odoo/addons/base/models/ir_sequence.py +++ b/odoo/addons/base/models/ir_sequence.py @@ -126,7 +126,7 @@ class IrSequence(models.Model): suffix = fields.Char(help="Suffix value of the record for the sequence", trim=False) number_next = fields.Integer(string='Next Number', required=True, default=1, help="Next number of this sequence") number_next_actual = fields.Integer(compute='_get_number_next_actual', inverse='_set_number_next_actual', - string='Next Number', + string='Actual Next Number', help="Next number that will be used. This number can be incremented " "frequently so the displayed value might already be obsolete") number_increment = fields.Integer(string='Step', required=True, default=1, @@ -340,7 +340,7 @@ class IrSequenceDateRange(models.Model): sequence_id = fields.Many2one("ir.sequence", string='Main Sequence', required=True, ondelete='cascade') number_next = fields.Integer(string='Next Number', required=True, default=1, help="Next number of this sequence") number_next_actual = fields.Integer(compute='_get_number_next_actual', inverse='_set_number_next_actual', - string='Next Number', + string='Actual Next Number', help="Next number that will be used. This number can be incremented " "frequently so the displayed value might already be obsolete") diff --git a/odoo/addons/base/models/ir_ui_view.py b/odoo/addons/base/models/ir_ui_view.py index 70094f476d1..ee810c95fe1 100644 --- a/odoo/addons/base/models/ir_ui_view.py +++ b/odoo/addons/base/models/ir_ui_view.py @@ -195,7 +195,7 @@ class View(models.Model): ('search', 'Search'), ('qweb', 'QWeb')], string='View Type') arch = fields.Text(compute='_compute_arch', inverse='_inverse_arch', string='View Architecture', nodrop=True) - arch_base = fields.Text(compute='_compute_arch_base', inverse='_inverse_arch_base', string='View Architecture') + arch_base = fields.Text(compute='_compute_arch_base', inverse='_inverse_arch_base', string='Base View Architecture') arch_db = fields.Text(string='Arch Blob', translate=xml_translate, oldname='arch') arch_fs = fields.Char(string='Arch Filename') inherit_id = fields.Many2one('ir.ui.view', string='Inherited View', ondelete='restrict', index=True) @@ -207,7 +207,7 @@ class View(models.Model): help="ID of the view defined in xml file") groups_id = fields.Many2many('res.groups', 'ir_ui_view_group_rel', 'view_id', 'group_id', string='Groups', help="If this field is empty, the view applies to all users. Otherwise, the view applies to the users of those groups only.") - model_ids = fields.One2many('ir.model.data', 'res_id', domain=[('model', '=', 'ir.ui.view')], auto_join=True) + model_ids = fields.One2many('ir.model.data', 'res_id', string="Models", domain=[('model', '=', 'ir.ui.view')], auto_join=True) create_date = fields.Datetime(readonly=True) write_date = fields.Datetime(string='Last Modification Date', readonly=True) diff --git a/odoo/addons/base/models/res_partner.py b/odoo/addons/base/models/res_partner.py index 996efde0721..0e350ba9901 100644 --- a/odoo/addons/base/models/res_partner.py +++ b/odoo/addons/base/models/res_partner.py @@ -213,7 +213,7 @@ class Partner(models.Model): # technical field used for managing commercial fields commercial_partner_id = fields.Many2one('res.partner', compute='_compute_commercial_partner', string='Commercial Entity', store=True, index=True) - commercial_partner_country_id = fields.Many2one('res.country', related='commercial_partner_id.country_id', store=True) + commercial_partner_country_id = fields.Many2one('res.country', related='commercial_partner_id.country_id', string='Commercial Entity Country', store=True) commercial_company_name = fields.Char('Company Name Entity', compute='_compute_commercial_company_name', store=True) company_name = fields.Char('Company Name') diff --git a/odoo/addons/base/views/ir_sequence_views.xml b/odoo/addons/base/views/ir_sequence_views.xml index 9bfaf30850c..d53570cc79a 100644 --- a/odoo/addons/base/views/ir_sequence_views.xml +++ b/odoo/addons/base/views/ir_sequence_views.xml @@ -28,14 +28,14 @@ - + - + @@ -78,7 +78,7 @@ - + diff --git a/odoo/addons/base/views/ir_ui_view_views.xml b/odoo/addons/base/views/ir_ui_view_views.xml index 58f3a70fd42..256b85cf918 100644 --- a/odoo/addons/base/views/ir_ui_view_views.xml +++ b/odoo/addons/base/views/ir_ui_view_views.xml @@ -26,7 +26,7 @@