From b7017e58cce778e29c0947972d2f3333416add5b Mon Sep 17 00:00:00 2001 From: Adrian Torres Date: Tue, 13 Oct 2020 14:13:42 +0000 Subject: [PATCH] [FIX] *: adapt business code to function-redefined error This commit adapts the business code in which class/module/function/method redefinition took place so that it no longer happens and the pylint test passes. --- addons/account_payment/controllers/portal.py | 4 ++-- addons/hr_presence/controllers/bus_controller.py | 4 ++-- addons/http_routing/models/ir_http.py | 5 +++-- addons/portal/controllers/mail.py | 4 ++-- addons/portal/controllers/web.py | 4 ++-- addons/portal_rating/controllers/portal_chatter.py | 4 ++-- addons/project/controllers/portal.py | 5 +++-- addons/purchase/controllers/portal.py | 5 +++-- addons/sale/controllers/portal.py | 5 +++-- addons/sale_management/controllers/portal.py | 4 ++-- addons/sale_quotation_builder/controllers/portal.py | 4 ++-- addons/sale_timesheet/controllers/portal.py | 4 ++-- addons/test_mail_full/tests/common.py | 4 ++-- addons/website/models/ir_http.py | 5 +++-- addons/website_crm/controllers/main.py | 4 ++-- .../controllers/website_event_main.py | 4 ++-- .../controllers/website_event_main.py | 4 ++-- addons/website_mass_mailing/controllers/main.py | 4 ++-- addons/website_sale/controllers/main.py | 4 ++-- addons/website_sale_coupon/controllers/main.py | 4 ++-- .../controllers/main.py | 4 ++-- addons/website_slides_survey/controllers/survey.py | 4 ++-- odoo/addons/base/tests/test_float.py | 2 +- odoo/addons/test_inherit/models.py | 8 ++++---- odoo/addons/test_new_api/tests/test_new_fields.py | 10 ---------- 25 files changed, 54 insertions(+), 59 deletions(-) diff --git a/addons/account_payment/controllers/portal.py b/addons/account_payment/controllers/portal.py index 0f2476c04c2..acf4b57d27a 100644 --- a/addons/account_payment/controllers/portal.py +++ b/addons/account_payment/controllers/portal.py @@ -1,11 +1,11 @@ # -*- coding: utf-8 -*- # Part of Odoo. See LICENSE file for full copyright and licensing details. -from odoo.addons.account.controllers.portal import PortalAccount +from odoo.addons.account.controllers import portal from odoo.http import request -class PortalAccount(PortalAccount): +class PortalAccount(portal.PortalAccount): def _invoice_get_page_view_values(self, invoice, access_token, **kwargs): values = super(PortalAccount, self)._invoice_get_page_view_values(invoice, access_token, **kwargs) diff --git a/addons/hr_presence/controllers/bus_controller.py b/addons/hr_presence/controllers/bus_controller.py index 685ac4e58c5..7e1ab08dfcc 100644 --- a/addons/hr_presence/controllers/bus_controller.py +++ b/addons/hr_presence/controllers/bus_controller.py @@ -2,12 +2,12 @@ from odoo import registry, SUPERUSER_ID from odoo.api import Environment -from odoo.addons.bus.controllers.main import BusController +from odoo.addons.bus.controllers import main from odoo.fields import Datetime from odoo.http import Controller, request, route -class BusController(BusController): +class BusController(main.BusController): @route('/longpolling/poll', type="json", auth="public") def poll(self, channels, last, options=None): diff --git a/addons/http_routing/models/ir_http.py b/addons/http_routing/models/ir_http.py index 206d63f429e..1f84ef299f9 100644 --- a/addons/http_routing/models/ir_http.py +++ b/addons/http_routing/models/ir_http.py @@ -17,7 +17,8 @@ except ImportError: import odoo from odoo import api, models, registry, exceptions, tools -from odoo.addons.base.models.ir_http import RequestUID, ModelConverter +from odoo.addons.base.models import ir_http +from odoo.addons.base.models.ir_http import RequestUID from odoo.addons.base.models.qweb import QWebException from odoo.http import request from odoo.osv import expression @@ -240,7 +241,7 @@ def is_multilang_url(local_url, lang_url_codes=None): return False -class ModelConverter(ModelConverter): +class ModelConverter(ir_http.ModelConverter): def __init__(self, url_map, model=False, domain='[]'): super(ModelConverter, self).__init__(url_map, model) diff --git a/addons/portal/controllers/mail.py b/addons/portal/controllers/mail.py index 612191b705e..af000897113 100644 --- a/addons/portal/controllers/mail.py +++ b/addons/portal/controllers/mail.py @@ -9,7 +9,7 @@ from odoo import http, _ from odoo.http import request from odoo.osv import expression from odoo.tools import consteq, plaintext2html -from odoo.addons.mail.controllers.main import MailController +from odoo.addons.mail.controllers import main from odoo.addons.portal.controllers.portal import CustomerPortal from odoo.exceptions import AccessError, MissingError, UserError @@ -208,7 +208,7 @@ class PortalChatter(http.Controller): return message.is_internal -class MailController(MailController): +class MailController(main.MailController): @classmethod def _redirect_to_record(cls, model, res_id, access_token=None, **kwargs): diff --git a/addons/portal/controllers/web.py b/addons/portal/controllers/web.py index 9e6e6175b32..a0b61f11b7f 100644 --- a/addons/portal/controllers/web.py +++ b/addons/portal/controllers/web.py @@ -2,11 +2,11 @@ # Part of Odoo. See LICENSE file for full copyright and licensing details. from odoo import http -from odoo.addons.web.controllers.main import Home +from odoo.addons.web.controllers import main from odoo.http import request -class Home(Home): +class Home(main.Home): @http.route() def index(self, *args, **kw): diff --git a/addons/portal_rating/controllers/portal_chatter.py b/addons/portal_rating/controllers/portal_chatter.py index fb3116bc774..c57a6d347fc 100644 --- a/addons/portal_rating/controllers/portal_chatter.py +++ b/addons/portal_rating/controllers/portal_chatter.py @@ -4,10 +4,10 @@ from odoo import http from odoo.http import request -from odoo.addons.portal.controllers.mail import PortalChatter +from odoo.addons.portal.controllers import mail -class PortalChatter(PortalChatter): +class PortalChatter(mail.PortalChatter): def _portal_post_filter_params(self): fields = super(PortalChatter, self)._portal_post_filter_params() diff --git a/addons/project/controllers/portal.py b/addons/project/controllers/portal.py index 43147037d2b..10f8f86511f 100644 --- a/addons/project/controllers/portal.py +++ b/addons/project/controllers/portal.py @@ -7,13 +7,14 @@ from operator import itemgetter from odoo import http, _ from odoo.exceptions import AccessError, MissingError from odoo.http import request -from odoo.addons.portal.controllers.portal import CustomerPortal, pager as portal_pager +from odoo.addons.portal.controllers import portal +from odoo.addons.portal.controllers.portal import pager as portal_pager from odoo.tools import groupby as groupbyelem from odoo.osv.expression import OR -class CustomerPortal(CustomerPortal): +class CustomerPortal(portal.CustomerPortal): def _prepare_home_portal_values(self, counters): values = super()._prepare_home_portal_values(counters) diff --git a/addons/purchase/controllers/portal.py b/addons/purchase/controllers/portal.py index 8a264c19188..45ab7d037b9 100644 --- a/addons/purchase/controllers/portal.py +++ b/addons/purchase/controllers/portal.py @@ -10,11 +10,12 @@ from odoo.exceptions import AccessError, MissingError from odoo.http import request, Response from odoo.tools import image_process from odoo.tools.translate import _ -from odoo.addons.portal.controllers.portal import pager as portal_pager, CustomerPortal +from odoo.addons.portal.controllers import portal +from odoo.addons.portal.controllers.portal import pager as portal_pager from odoo.addons.web.controllers.main import Binary -class CustomerPortal(CustomerPortal): +class CustomerPortal(portal.CustomerPortal): def _prepare_home_portal_values(self, counters): values = super()._prepare_home_portal_values(counters) diff --git a/addons/sale/controllers/portal.py b/addons/sale/controllers/portal.py index a9c9fe94550..360fb63dd54 100644 --- a/addons/sale/controllers/portal.py +++ b/addons/sale/controllers/portal.py @@ -6,13 +6,14 @@ import binascii from odoo import fields, http, _ from odoo.exceptions import AccessError, MissingError from odoo.http import request +from odoo.addons.portal.controllers import portal from odoo.addons.payment.controllers.portal import PaymentProcessing from odoo.addons.portal.controllers.mail import _message_post_helper -from odoo.addons.portal.controllers.portal import CustomerPortal, pager as portal_pager, get_records_pager +from odoo.addons.portal.controllers.portal import pager as portal_pager, get_records_pager from odoo.osv import expression -class CustomerPortal(CustomerPortal): +class CustomerPortal(portal.CustomerPortal): def _prepare_home_portal_values(self, counters): values = super()._prepare_home_portal_values(counters) diff --git a/addons/sale_management/controllers/portal.py b/addons/sale_management/controllers/portal.py index da3c3bbcc23..99deb40075b 100644 --- a/addons/sale_management/controllers/portal.py +++ b/addons/sale_management/controllers/portal.py @@ -7,10 +7,10 @@ from odoo import http from odoo.tools import formatLang from odoo.exceptions import AccessError, MissingError from odoo.http import request -from odoo.addons.sale.controllers.portal import CustomerPortal +from odoo.addons.sale.controllers import portal -class CustomerPortal(CustomerPortal): +class CustomerPortal(portal.CustomerPortal): def _get_portal_order_details(self, order_sudo, order_line=False): currency = order_sudo.currency_id diff --git a/addons/sale_quotation_builder/controllers/portal.py b/addons/sale_quotation_builder/controllers/portal.py index 3b2d52ee187..3f9e2a9c6d5 100644 --- a/addons/sale_quotation_builder/controllers/portal.py +++ b/addons/sale_quotation_builder/controllers/portal.py @@ -4,10 +4,10 @@ from odoo import http from odoo.http import request from odoo.addons.http_routing.models.ir_http import unslug -from odoo.addons.portal.controllers.portal import CustomerPortal +from odoo.addons.portal.controllers import portal -class CustomerPortal(CustomerPortal): +class CustomerPortal(portal.CustomerPortal): @http.route(["/sale_quotation_builder/template/"], type='http', auth="user", website=True) def sale_quotation_builder_template_view(self, template_id, **post): diff --git a/addons/sale_timesheet/controllers/portal.py b/addons/sale_timesheet/controllers/portal.py index a705576852f..4439a8ba3fa 100644 --- a/addons/sale_timesheet/controllers/portal.py +++ b/addons/sale_timesheet/controllers/portal.py @@ -4,10 +4,10 @@ from odoo.http import request from odoo.osv import expression -from odoo.addons.account.controllers.portal import PortalAccount +from odoo.addons.account.controllers import portal -class PortalAccount(PortalAccount): +class PortalAccount(portal.PortalAccount): def _invoice_get_page_view_values(self, invoice, access_token, **kwargs): values = super(PortalAccount, self)._invoice_get_page_view_values(invoice, access_token, **kwargs) diff --git a/addons/test_mail_full/tests/common.py b/addons/test_mail_full/tests/common.py index 10b2528b5ce..0e577f0135f 100644 --- a/addons/test_mail_full/tests/common.py +++ b/addons/test_mail_full/tests/common.py @@ -2,7 +2,7 @@ from odoo.addons.phone_validation.tools import phone_validation from odoo.addons.mass_mailing_sms.tests.common import MassSMSCommon -from odoo.addons.test_mail.tests.common import TestRecipients +from odoo.addons.test_mail.tests import common from odoo.addons.test_mass_mailing.tests.common import TestMassMailCommon @@ -28,7 +28,7 @@ class TestMailFullCommon(TestMassMailCommon, MassSMSCommon): cls.partners = partners -class TestRecipients(TestRecipients): +class TestRecipients(common.TestRecipients): @classmethod def setUpClass(cls): diff --git a/addons/website/models/ir_http.py b/addons/website/models/ir_http.py index 603e4d9ff38..1f41f367089 100644 --- a/addons/website/models/ir_http.py +++ b/addons/website/models/ir_http.py @@ -20,7 +20,8 @@ from odoo.http import request from odoo.tools.safe_eval import safe_eval from odoo.osv.expression import FALSE_DOMAIN -from odoo.addons.http_routing.models.ir_http import ModelConverter, _guess_mimetype +from odoo.addons.http_routing.models import ir_http +from odoo.addons.http_routing.models.ir_http import _guess_mimetype from odoo.addons.portal.controllers.portal import _build_url_w_params logger = logging.getLogger(__name__) @@ -418,7 +419,7 @@ class Http(models.AbstractModel): return session_info -class ModelConverter(ModelConverter): +class ModelConverter(ir_http.ModelConverter): def generate(self, uid, dom=None, args=None): Model = request.env[self.model].with_user(uid) diff --git a/addons/website_crm/controllers/main.py b/addons/website_crm/controllers/main.py index 0226d3531d9..21645139bc4 100644 --- a/addons/website_crm/controllers/main.py +++ b/addons/website_crm/controllers/main.py @@ -3,10 +3,10 @@ from odoo import http from odoo.http import request -from odoo.addons.website_form.controllers.main import WebsiteForm +from odoo.addons.website_form.controllers import main -class WebsiteForm(WebsiteForm): +class WebsiteForm(main.WebsiteForm): def _get_country(self): country_code = request.session.geoip and request.session.geoip.get('country_code') or False diff --git a/addons/website_event_meet/controllers/website_event_main.py b/addons/website_event_meet/controllers/website_event_main.py index 991b15f7e91..8d75d58a39e 100644 --- a/addons/website_event_meet/controllers/website_event_main.py +++ b/addons/website_event_meet/controllers/website_event_main.py @@ -5,10 +5,10 @@ from babel.dates import format_datetime from odoo import _ from odoo.http import request -from odoo.addons.website_event.controllers.main import WebsiteEventController +from odoo.addons.website_event.controllers import main -class WebsiteEventController(WebsiteEventController): +class WebsiteEventController(main.WebsiteEventController): def _prepare_event_register_values(self, event, **post): values = super(WebsiteEventController, self)._prepare_event_register_values(event, **post) diff --git a/addons/website_event_track_exhibitor/controllers/website_event_main.py b/addons/website_event_track_exhibitor/controllers/website_event_main.py index ebb194cfc32..20364861f37 100644 --- a/addons/website_event_track_exhibitor/controllers/website_event_main.py +++ b/addons/website_event_track_exhibitor/controllers/website_event_main.py @@ -5,10 +5,10 @@ from babel.dates import format_datetime from odoo import _ from odoo.http import request -from odoo.addons.website_event.controllers.main import WebsiteEventController +from odoo.addons.website_event.controllers import main -class WebsiteEventController(WebsiteEventController): +class WebsiteEventController(main.WebsiteEventController): def _prepare_event_register_values(self, event, **post): values = super(WebsiteEventController, self)._prepare_event_register_values(event, **post) diff --git a/addons/website_mass_mailing/controllers/main.py b/addons/website_mass_mailing/controllers/main.py index 60383155e80..001a6a26b43 100644 --- a/addons/website_mass_mailing/controllers/main.py +++ b/addons/website_mass_mailing/controllers/main.py @@ -4,10 +4,10 @@ from odoo import _ from odoo.http import route, request from odoo.osv import expression -from odoo.addons.mass_mailing.controllers.main import MassMailController +from odoo.addons.mass_mailing.controllers import main -class MassMailController(MassMailController): +class MassMailController(main.MassMailController): @route('/website_mass_mailing/is_subscriber', type='json', website=True, auth="public") def is_subscriber(self, list_id, **post): diff --git a/addons/website_sale/controllers/main.py b/addons/website_sale/controllers/main.py index b6436dda885..40cea0cd7a8 100644 --- a/addons/website_sale/controllers/main.py +++ b/addons/website_sale/controllers/main.py @@ -14,7 +14,7 @@ from odoo.addons.website.controllers.main import QueryURL from odoo.addons.website.models.ir_http import sitemap_qs2dom from odoo.exceptions import ValidationError from odoo.addons.portal.controllers.portal import _build_url_w_params -from odoo.addons.website.controllers.main import Website +from odoo.addons.website.controllers import main from odoo.addons.website_form.controllers.main import WebsiteForm from odoo.osv import expression _logger = logging.getLogger(__name__) @@ -118,7 +118,7 @@ class WebsiteSaleForm(WebsiteForm): return json.dumps({'id': order.id}) -class Website(Website): +class Website(main.Website): @http.route() def get_switchable_related_views(self, key): views = super(Website, self).get_switchable_related_views(key) diff --git a/addons/website_sale_coupon/controllers/main.py b/addons/website_sale_coupon/controllers/main.py index 2df0ed34fed..45fd55e7c83 100644 --- a/addons/website_sale_coupon/controllers/main.py +++ b/addons/website_sale_coupon/controllers/main.py @@ -1,10 +1,10 @@ # -*- coding: utf-8 -*- from odoo import http -from odoo.addons.website_sale.controllers.main import WebsiteSale +from odoo.addons.website_sale.controllers import main from odoo.http import request -class WebsiteSale(WebsiteSale): +class WebsiteSale(main.WebsiteSale): @http.route(['/shop/pricelist']) def pricelist(self, promo, **post): diff --git a/addons/website_sale_product_configurator/controllers/main.py b/addons/website_sale_product_configurator/controllers/main.py index 2378536991a..ae6ddc5edee 100644 --- a/addons/website_sale_product_configurator/controllers/main.py +++ b/addons/website_sale_product_configurator/controllers/main.py @@ -5,7 +5,7 @@ from odoo import http from odoo.http import request from odoo.addons.sale_product_configurator.controllers.main import ProductConfiguratorController -from odoo.addons.website_sale.controllers.main import WebsiteSale +from odoo.addons.website_sale.controllers import main class WebsiteSaleProductConfiguratorController(ProductConfiguratorController): @http.route(['/sale_product_configurator/show_optional_products_website'], type='json', auth="public", methods=['POST'], website=True) @@ -24,7 +24,7 @@ class WebsiteSaleProductConfiguratorController(ProductConfiguratorController): kw.pop('pricelist_id') return self.optional_product_items(product_id, request.website.get_current_pricelist(), **kw) -class WebsiteSale(WebsiteSale): +class WebsiteSale(main.WebsiteSale): def _prepare_product_values(self, product, category, search, **kwargs): values = super(WebsiteSale, self)._prepare_product_values(product, category, search, **kwargs) diff --git a/addons/website_slides_survey/controllers/survey.py b/addons/website_slides_survey/controllers/survey.py index 85a8700156a..718b890e2c0 100644 --- a/addons/website_slides_survey/controllers/survey.py +++ b/addons/website_slides_survey/controllers/survey.py @@ -1,10 +1,10 @@ # -*- coding: utf-8 -*- # Part of Odoo. See LICENSE file for full copyright and licensing details. -from odoo.addons.survey.controllers.main import Survey +from odoo.addons.survey.controllers import main -class Survey(Survey): +class Survey(main.Survey): def _prepare_survey_finished_values(self, survey, answer, token=False): result = super(Survey, self)._prepare_survey_finished_values(survey, answer, token) if answer.slide_id: diff --git a/odoo/addons/base/tests/test_float.py b/odoo/addons/base/tests/test_float.py index 8196c2433ab..a00ca56b6aa 100644 --- a/odoo/addons/base/tests/test_float.py +++ b/odoo/addons/base/tests/test_float.py @@ -149,7 +149,7 @@ class TestFloatPrecision(TransactionCase): try_compare(-657.4444, -657.445, 1) # Rounding to unusual rounding units (e.g. coin values) - def try_round(amount, expected, precision_rounding=None, method='HALF-UP'): + def try_round(amount, expected, precision_rounding=None, method='HALF-UP'): # pylint: disable=function-redefined value = float_round(amount, precision_rounding=precision_rounding, rounding_method=method) result = float_repr(value, precision_digits=2) self.assertEqual(result, expected, 'Rounding error: got %s, expected %s' % (result, expected)) diff --git a/odoo/addons/test_inherit/models.py b/odoo/addons/test_inherit/models.py index 69a199b2900..35aa06ebe79 100644 --- a/odoo/addons/test_inherit/models.py +++ b/odoo/addons/test_inherit/models.py @@ -30,7 +30,7 @@ class daughter(models.Model): # We add a new field in the parent model. Because of a recent refactoring, this # feature was broken. These models rely on that feature. -class mother(models.Model): +class mother2(models.Model): _inherit = 'test.inherit.mother' field_in_mother = fields.Char() @@ -52,14 +52,14 @@ class mother(models.Model): super(mother, rec)._compute_surname() -class mother(models.Model): +class mother3(models.Model): _inherit = 'test.inherit.mother' # extend again the selection of the state field: 'd' must precede 'b' state = fields.Selection(selection_add=[('d', 'D'), ('b',)]) -class daughter(models.Model): +class daughter2(models.Model): _inherit = 'test.inherit.daughter' # simply redeclare the field without adding any option @@ -87,7 +87,7 @@ class test_inherit_property(models.Model): property_bar = fields.Integer(string='Bar', company_dependent=True) -class test_inherit_property(models.Model): +class test_inherit_property2(models.Model): _inherit = 'test.inherit.property' # override property_foo with a plain normal field diff --git a/odoo/addons/test_new_api/tests/test_new_fields.py b/odoo/addons/test_new_api/tests/test_new_fields.py index f93baf0e83e..b378a0f61d4 100644 --- a/odoo/addons/test_new_api/tests/test_new_fields.py +++ b/odoo/addons/test_new_api/tests/test_new_fields.py @@ -573,16 +573,6 @@ class TestFields(TransactionCaseWithUserDemo): with self.assertRaises(AccessError): foo.with_user(user).display_name = 'Forbidden' - def test_13_inverse_access(self): - """ test access rights on inverse fields """ - foo = self.env['test_new_api.category'].create({'name': 'Foo'}) - user = self.env['res.users'].create({'name': 'Foo', 'login': 'foo'}) - self.assertFalse(user.has_group('base.group_system')) - # add group on non-stored inverse field - self.patch(type(foo).display_name, 'groups', 'base.group_system') - with self.assertRaises(AccessError): - foo.with_user(user).display_name = 'Forbidden' - def test_14_search(self): """ test search on computed fields """ discussion = self.env.ref('test_new_api.discussion_0')