From b539c2d17097550fb88b4d24dfc4b6a3b5b36dae Mon Sep 17 00:00:00 2001 From: Majda EL MARIOULI Date: Mon, 4 Mar 2024 14:19:19 -0500 Subject: [PATCH] TA#63117 [IMP] Add precommit, flake8 and github workflow (#109) * TA#63117 [IMP] Add precommit, flake8 and github workflow * TA#63117 [IMP] Correct flake8 errors --- .flake8 | 12 +++++ .github/workflows/pre-commit.yml | 36 +++++++++++++ .pre-commit-config.yaml | 37 +++++++++---- .../web_search_input_many2many/README.md | 17 ------ .../web_search_input_many2many/__init__.py | 3 -- .../__manifest__.py | 18 ------- .../static/description/after_install.png | Bin 40746 -> 0 bytes .../static/description/before_install.png | Bin 39308 -> 0 bytes .../static/description/icon.png | Bin 7982 -> 0 bytes .../static/description/index.html | 17 ------ .../static/src/js/search_view_field.js | 50 ------------------ .../views/search_view_field.xml | 10 ---- docker-compose.yml | 2 +- google_attachment/__manifest__.py | 5 +- web_custom_label/models/common.py | 12 ++++- web_custom_label/models/ir_ui_view.py | 12 +++-- web_custom_modifier/models/ir_ui_view.py | 4 +- web_editor_backend_context/__manifest__.py | 4 +- .../src/js/control_panel_model_extension.js | 4 +- .../tests/test_search_date_range.py | 4 +- web_search_date_range_account/__manifest__.py | 4 +- .../tests/test_date_ranges.py | 2 +- .../controllers/website_blog_internal.py | 29 +++++++--- website_geoip/models/website_visitor.py | 27 +++++----- .../__manifest__.py | 4 +- website_login_as/models/ir_http.py | 2 +- .../models/website_menu.py | 3 +- .../tests/test_website_menu.py | 2 +- 28 files changed, 159 insertions(+), 161 deletions(-) create mode 100644 .flake8 create mode 100644 .github/workflows/pre-commit.yml delete mode 100644 .unported_addons/web_search_input_many2many/README.md delete mode 100644 .unported_addons/web_search_input_many2many/__init__.py delete mode 100644 .unported_addons/web_search_input_many2many/__manifest__.py delete mode 100644 .unported_addons/web_search_input_many2many/static/description/after_install.png delete mode 100644 .unported_addons/web_search_input_many2many/static/description/before_install.png delete mode 100644 .unported_addons/web_search_input_many2many/static/description/icon.png delete mode 100644 .unported_addons/web_search_input_many2many/static/description/index.html delete mode 100644 .unported_addons/web_search_input_many2many/static/src/js/search_view_field.js delete mode 100644 .unported_addons/web_search_input_many2many/views/search_view_field.xml diff --git a/.flake8 b/.flake8 new file mode 100644 index 0000000..b6a254e --- /dev/null +++ b/.flake8 @@ -0,0 +1,12 @@ +[flake8] +max-line-length = 88 +max-complexity = 16 +# B = bugbear +# B9 = bugbear opinionated (incl line length) +select = C,E,F,W,B,B9 +# E203: whitespace before ':' (black behaviour) +# E501: flake8 line length (covered by bugbear B950) +# W503: line break before binary operator (black behaviour) +ignore = E203,E501,W503,F821 +per-file-ignores= + __init__.py:F401 diff --git a/.github/workflows/pre-commit.yml b/.github/workflows/pre-commit.yml new file mode 100644 index 0000000..47590c7 --- /dev/null +++ b/.github/workflows/pre-commit.yml @@ -0,0 +1,36 @@ +name: pre-commit + +on: + pull_request: + branches: + - "14.0*" + push: + branches: + - "14.0" + +jobs: + pre-commit: + runs-on: ubuntu-22.04 + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-python@v2 + with: + python-version: "3.11" + - name: Get python version + run: echo "PY=$(python -VV | sha256sum | cut -d' ' -f1)" >> $GITHUB_ENV + - uses: actions/cache@v1 + with: + path: ~/.cache/pre-commit + key: pre-commit|${{ env.PY }}|${{ hashFiles('.pre-commit-config.yaml') }} + - name: Install pre-commit + run: pip install pre-commit + - name: Run pre-commit + run: pre-commit run --all-files --show-diff-on-failure --color=always + - name: Check that all files generated by pre-commit are in git + run: | + newfiles="$(git ls-files --others --exclude-from=.gitignore)" + if [ "$newfiles" != "" ] ; then + echo "Please check-in the following files:" + echo "$newfiles" + exit 1 + fi diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 7b3a281..28b1b49 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,11 +1,30 @@ +exclude: | + (?x) + # NOT INSTALLABLE ADDONS + # END NOT INSTALLABLE ADDONS + # Files and folders generated by bots, to avoid loops + ^setup/|/static/description/index\.html$| + # We don't want to mess with tool-generated files + .svg$|/tests/([^/]+/)?cassettes/|^.copier-answers.yml$|^.github/| + # Maybe reactivate this when all README files include prettier ignore tags? + ^README\.md$| + # Library files can have extraneous formatting (even minimized) + /static/(src/)?lib/| + # Repos using Sphinx to generate docs don't need prettying + ^docs/_templates/.*\.html$| + # Don't bother non-technical authors with formatting issues in docs + readme/.*\.(rst|md)$| + # Ignore build and dist directories in addons + /build/|/dist/| + # You don't usually want a bot to modify your legal texts + (LICENSE.*|COPYING.*) +default_language_version: + python: python3 + node: "14.13.0" repos: - - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v2.3.0 + - repo: https://github.com/PyCQA/flake8 + rev: 3.8.3 hooks: - - id: check-yaml - - id: end-of-file-fixer - - id: trailing-whitespace - - repo: https://github.com/psf/black - rev: 19.3b0 - hooks: - - id: black + - id: flake8 + name: flake8 + additional_dependencies: ["flake8-bugbear==20.1.4"] diff --git a/.unported_addons/web_search_input_many2many/README.md b/.unported_addons/web_search_input_many2many/README.md deleted file mode 100644 index 548d76f..0000000 --- a/.unported_addons/web_search_input_many2many/README.md +++ /dev/null @@ -1,17 +0,0 @@ -# Web Search Input Many2many - -This module allows to properly display many2many values in the search bar. - -Without this module, Odoo only displays the id of the filtered value: - -![Before Installing](static/description/before_install.png?raw=true) - -After installing the module, the many2many records are properly displayed in the search bar: - -![After Installing](static/description/after_install.png?raw=true) - -The many2many field (Parent Project) shown in the example is added by a custom module. - -Contributors ------------- -* Numigi (tm) and all its contributors (https://bit.ly/numigiens) diff --git a/.unported_addons/web_search_input_many2many/__init__.py b/.unported_addons/web_search_input_many2many/__init__.py deleted file mode 100644 index cf6bb6d..0000000 --- a/.unported_addons/web_search_input_many2many/__init__.py +++ /dev/null @@ -1,3 +0,0 @@ -# -*- coding: utf-8 -*- -# © 2023 Numigi (tm) and all its contributors (https://bit.ly/numigiens) -# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). diff --git a/.unported_addons/web_search_input_many2many/__manifest__.py b/.unported_addons/web_search_input_many2many/__manifest__.py deleted file mode 100644 index 5632ec5..0000000 --- a/.unported_addons/web_search_input_many2many/__manifest__.py +++ /dev/null @@ -1,18 +0,0 @@ -# -*- coding: utf-8 -*- -# © 2023 Numigi (tm) and all its contributors (https://bit.ly/numigiens) -# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). - -{ - 'name': 'Web Search Input Many2many', - 'version': '14.0.1.0.0', - 'author': 'Numigi', - 'maintainer': 'Numigi', - 'license': 'LGPL-3', - 'category': 'Project', - 'summary': 'Allow to display many2many records in the search view input.', - 'depends': ['web'], - 'data': [ - 'views/search_view_field.xml', - ], - 'installable': True, -} diff --git a/.unported_addons/web_search_input_many2many/static/description/after_install.png b/.unported_addons/web_search_input_many2many/static/description/after_install.png deleted file mode 100644 index 8db9b59a237341dcefccea23de77a28356f59da8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 40746 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 diff --git a/.unported_addons/web_search_input_many2many/static/description/icon.png b/.unported_addons/web_search_input_many2many/static/description/icon.png deleted file mode 100644 index 92a86b10ed6e2f6a40b286805c8c92c5dc775111..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7982 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 -

-

Display Many2many Records In Search Views

-
- Before installing the module: -
- -
-
-
- After installing the module: -
- -
-
-
- diff --git a/.unported_addons/web_search_input_many2many/static/src/js/search_view_field.js b/.unported_addons/web_search_input_many2many/static/src/js/search_view_field.js deleted file mode 100644 index b991b4a..0000000 --- a/.unported_addons/web_search_input_many2many/static/src/js/search_view_field.js +++ /dev/null @@ -1,50 +0,0 @@ -/* - © 2018 Numigi (tm) and all its contributors (https://bit.ly/numigiens) - License LGPL-3.0 or later (http://www.gnu.org/licenses/LGPL.html). -*/ -odoo.define("web_search_input_many2many.search_view_field", function(require) { - "use strict"; - -var searchInputs = require("web.search_inputs"); - -searchInputs.Field.include({ - facet_for(value){ - var field = this.getParent().fields[this.attrs.name]; - var isMany2many = field && field.type === "many2many"; - var isIdArray = value instanceof Array && value.every(function(i){return typeof i === "number";}); - if(isMany2many && isIdArray){ - return this._getFacetForMany2manyValue(value); - } - else{ - return this._super.apply(this, arguments); - } - }, - /** - * Get a facet for a many2many field value. - * - * A facet is an element contained in the search bar input. - * - * @param {String} value - a array of record ids. - * @returns {$.Deferred} - a deferred which returns the facet. - */ - _getFacetForMany2manyValue(value){ - var field = this.getParent().fields[this.attrs.name]; - var self = this; - return this._rpc({ - model: field.relation, - method: "name_get", - args: value, - }).then(function(result) { - var label = result.map(function(el){ - return el[1]; - }).sort().join(", "); - return { - field: self, - category: self.attrs.string || self.attrs.name, - values: [{label, value}], - }; - }); - }, -}); - -}); diff --git a/.unported_addons/web_search_input_many2many/views/search_view_field.xml b/.unported_addons/web_search_input_many2many/views/search_view_field.xml deleted file mode 100644 index ef5aa74..0000000 --- a/.unported_addons/web_search_input_many2many/views/search_view_field.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - diff --git a/docker-compose.yml b/docker-compose.yml index dad15e8..dc55912 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -16,7 +16,7 @@ services: environment: - LOG_ODOO=/var/log/odoo db: - image: postgres:9.6 + image: postgres:16.0 environment: - POSTGRES_PASSWORD=odoo - POSTGRES_USER=odoo diff --git a/google_attachment/__manifest__.py b/google_attachment/__manifest__.py index a4ca277..f3209bd 100644 --- a/google_attachment/__manifest__.py +++ b/google_attachment/__manifest__.py @@ -10,7 +10,10 @@ "website": "https://bit.ly/numigi-com", "license": "LGPL-3", "depends": ["base_setup", "mail"], - "data": ["views/assets.xml", "views/res_config_settings.xml",], + "data": [ + "views/assets.xml", + "views/res_config_settings.xml" + ], "qweb": [ "static/src/components/google_attachment.xml", "static/src/components/attachment_box.xml", diff --git a/web_custom_label/models/common.py b/web_custom_label/models/common.py index cf8f7da..cc8c433 100644 --- a/web_custom_label/models/common.py +++ b/web_custom_label/models/common.py @@ -40,11 +40,19 @@ def _set_single_custom_field_helper(label, fields): def _iter_field_labels_with_position(labels, position): - return (l for l in labels if l['type_'] == 'field' and l['position'] == position) + return ( + label + for label in labels + if label["type_"] == "field" and label["position"] == position + ) def _set_custom_selection_labels(labels, fields): - selection_labels = (l for l in labels if l['type_'] == 'field' and l['position'] == 'selection') + selection_labels = ( + label + for label in labels + if label["type_"] == "field" and label["position"] == "selection" + ) for label in selection_labels: _set_single_custom_selection_label(label, fields) diff --git a/web_custom_label/models/ir_ui_view.py b/web_custom_label/models/ir_ui_view.py index 746f123..e82443e 100644 --- a/web_custom_label/models/ir_ui_view.py +++ b/web_custom_label/models/ir_ui_view.py @@ -2,7 +2,7 @@ # License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). from lxml import etree -from odoo import api, models +from odoo import models from .common import set_custom_labels_on_fields @@ -11,7 +11,9 @@ class ViewWithCustomLabels(models.Model): _inherit = 'ir.ui.view' def _postprocess_view(self, node, model, validate=True, editable=True): - arch, name_manager = super()._postprocess_view(node, model, validate=validate, editable=editable) + arch, name_manager = super()._postprocess_view( + node, model, validate=validate, editable=editable + ) lang = self.env.context.get('lang') or self.env.user.lang labels = self.env['web.custom.label'].get(model, lang) @@ -21,7 +23,11 @@ def _postprocess_view(self, node, model, validate=True, editable=True): def _add_custom_labels_to_view_arch(labels, arch): - labels_to_apply = [l for l in labels if l['position'] in ('string', 'placeholder', 'help')] + labels_to_apply = [ + label + for label in labels + if label["position"] in ("string", "placeholder", "help") + ] if not labels_to_apply: return arch diff --git a/web_custom_modifier/models/ir_ui_view.py b/web_custom_modifier/models/ir_ui_view.py index 82ec498..9f4579f 100644 --- a/web_custom_modifier/models/ir_ui_view.py +++ b/web_custom_modifier/models/ir_ui_view.py @@ -29,7 +29,9 @@ def postprocess(self, node, current_node_path, editable, name_manager): modifiers, node) set_custom_modifiers_on_fields(modifiers, name_manager.available_fields) self.clear_caches() # Clear the cache in order to recompute _get_active_rules - return super().postprocess(node_with_custom_modifiers, current_node_path, editable, name_manager) + return super().postprocess( + node_with_custom_modifiers, current_node_path, editable, name_manager + ) def _add_custom_modifiers_to_view_arch(modifiers, arch): diff --git a/web_editor_backend_context/__manifest__.py b/web_editor_backend_context/__manifest__.py index 406bf83..91290b1 100644 --- a/web_editor_backend_context/__manifest__.py +++ b/web_editor_backend_context/__manifest__.py @@ -11,7 +11,9 @@ "category": "Web", "summary": "Fix the user context for web editor assets", "depends": ["web_editor"], - "data": ["views/assets.xml",], + "data": [ + "views/assets.xml" + ], "installable": True, "auto_install": True, } diff --git a/web_search_date_range/static/src/js/control_panel_model_extension.js b/web_search_date_range/static/src/js/control_panel_model_extension.js index 0f162b2..c57b1f7 100644 --- a/web_search_date_range/static/src/js/control_panel_model_extension.js +++ b/web_search_date_range/static/src/js/control_panel_model_extension.js @@ -28,7 +28,9 @@ class ControlPanelExtension extends ControlPanel { _addDateRangeFilters() { const pregroup = [...this.dateRangeFilters] - this._createGroupOfFilters(pregroup); + if (pregroup.length) { + this._createGroupOfFilters(pregroup); + } } _enrichFilterCopy(filter, filterQueryElements) { diff --git a/web_search_date_range/tests/test_search_date_range.py b/web_search_date_range/tests/test_search_date_range.py index 00d6a5e..85e6508 100644 --- a/web_search_date_range/tests/test_search_date_range.py +++ b/web_search_date_range/tests/test_search_date_range.py @@ -18,7 +18,9 @@ def setUpClass(cls): cls.field = cls.env.ref('base.field_res_partner__create_date') def _eval_filter_domain(self, range_ref): - date_range = self.env.ref('web_search_date_range.{range_ref}'.format(range_ref=range_ref)) + date_range = self.env.ref( + "web_search_date_range.{range_ref}".format(range_ref=range_ref) + ) return date_range.generate_domain(self.field.name) def test_eval_domain_for_range_before_today(self): diff --git a/web_search_date_range_account/__manifest__.py b/web_search_date_range_account/__manifest__.py index 104ca2a..2d05c6d 100644 --- a/web_search_date_range_account/__manifest__.py +++ b/web_search_date_range_account/__manifest__.py @@ -11,6 +11,8 @@ "category": "Project", "summary": "Add accounting date range filters.", "depends": ["web_search_date_range", "account"], - "data": ["data/search_date_range.xml",], + "data": [ + "data/search_date_range.xml" + ], "installable": True, } diff --git a/web_search_date_range_account/tests/test_date_ranges.py b/web_search_date_range_account/tests/test_date_ranges.py index 94da377..73a1d9e 100644 --- a/web_search_date_range_account/tests/test_date_ranges.py +++ b/web_search_date_range_account/tests/test_date_ranges.py @@ -14,7 +14,7 @@ def setUpClass(cls): cls.model = cls.env.ref("base.model_res_partner") cls.field = cls.env.ref("base.field_res_partner__create_date") cls.env.user.company_id.write( - {"fiscalyear_last_month": "3", "fiscalyear_last_day": "31",} + {"fiscalyear_last_month": "3", "fiscalyear_last_day": "31"} ) def _eval_filter_domain(self, range_ref): diff --git a/website_blog_internal/controllers/website_blog_internal.py b/website_blog_internal/controllers/website_blog_internal.py index 4fb3b5b..a9866d4 100644 --- a/website_blog_internal/controllers/website_blog_internal.py +++ b/website_blog_internal/controllers/website_blog_internal.py @@ -27,17 +27,34 @@ class WebsiteBlogInternal(WebsiteBlog): def blog(self, blog=None, tag=None, page=1, search=None, **opt): if not http.request.env.user.has_group("base.group_user"): raise NotFound() - return super(WebsiteBlogInternal, self).blog(blog=blog, tag=tag, page=page, **opt) + return super(WebsiteBlogInternal, self).blog( + blog=blog, tag=tag, page=page, **opt + ) - @http.route(['''/blog//feed'''], type='http', auth="user", website=True, sitemap=True) + @http.route( + ["""/blog//feed"""], + type="http", + auth="user", + website=True, + sitemap=True, + ) def blog_feed(self, blog, limit="15", **kwargs): if not http.request.env.user.has_group("base.group_user"): raise NotFound() - return super(WebsiteBlogInternal, self).blog_feed(blog=blog, limit=limit, **kwargs) + return super(WebsiteBlogInternal, self).blog_feed( + blog=blog, limit=limit, **kwargs + ) - @http.route([ - '''/blog///