diff --git a/.eslintrc.yml b/.eslintrc.yml index 9429bc688aab4993eae460767368f65089afa323..fed88d70d23ecb3297ea28854b320c4d62ee3c26 100644 --- a/.eslintrc.yml +++ b/.eslintrc.yml @@ -22,6 +22,7 @@ globals: odoo: readonly openerp: readonly owl: readonly + luxon: readonly # Styling is handled by Prettier, so we only need to enable AST rules; # see https://github.com/OCA/maintainer-quality-tools/pull/618#issuecomment-558576890 diff --git a/.flake8 b/.flake8 deleted file mode 100644 index e397e8ed4e3e7f7fe7785dd391bb80aa6d85575e..0000000000000000000000000000000000000000 --- a/.flake8 +++ /dev/null @@ -1,12 +0,0 @@ -[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 -per-file-ignores= - __init__.py:F401 diff --git a/.gitignore b/.gitignore index 9c283fd41f6cc3330653f1d90a820b85e23caf65..0090721f5d248bc5342cb3699b64d2ddc863da8b 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,7 @@ __pycache__/ *.py[cod] /.venv /.pytest_cache +/.ruff_cache # C extensions *.so diff --git a/.isort.cfg b/.isort.cfg deleted file mode 100644 index 0ec187efd1bf802844749f508cda0c8f138970f9..0000000000000000000000000000000000000000 --- a/.isort.cfg +++ /dev/null @@ -1,13 +0,0 @@ -[settings] -; see https://github.com/psf/black -multi_line_output=3 -include_trailing_comma=True -force_grid_wrap=0 -combine_as_imports=True -use_parentheses=True -line_length=88 -known_odoo=odoo -known_odoo_addons=odoo.addons -sections=FUTURE,STDLIB,THIRDPARTY,ODOO,ODOO_ADDONS,FIRSTPARTY,LOCALFOLDER -default_section=THIRDPARTY -ensure_newline_before_comments = True diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index c575299fc05d609e25260193f2b663be50d0fd31..3efb4d9157dc36d84e372eec5fc21e7f4a417a58 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -12,6 +12,10 @@ exclude: | /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: @@ -33,27 +37,25 @@ repos: language: fail files: '[a-zA-Z0-9_]*/i18n/en\.po$' - repo: https://github.com/oca/maintainer-tools - rev: 4cd2b852214dead80822e93e6749b16f2785b2fe + rev: f71041f22b8cd68cf7c77b73a14ca8d8cd190a60 hooks: # update the NOT INSTALLABLE ADDONS section above - id: oca-update-pre-commit-excluded-addons - id: oca-fix-manifest-website args: ["https://le-filament.com"] - - repo: https://github.com/myint/autoflake - rev: v1.6.1 - hooks: - - id: autoflake + - id: oca-gen-addon-readme args: - - --expand-star-imports - - --ignore-init-module-imports - - --in-place - - --remove-all-unused-imports - - --remove-duplicate-keys - - --remove-unused-variables - - repo: https://github.com/psf/black - rev: 22.8.0 + - --addons-dir=. + - --branch=16.0 + - --org-name=lefilament + - --repo-name=template_module + - --if-source-changed + - --keep-source-digest + - repo: https://github.com/OCA/odoo-pre-commit-hooks + rev: v0.0.25 hooks: - - id: black + - id: oca-checks-odoo-module + - id: oca-checks-po - repo: https://github.com/pre-commit/mirrors-prettier rev: v2.7.1 hooks: @@ -95,27 +97,14 @@ repos: - id: check-xml - id: mixed-line-ending args: ["--fix=lf"] - - repo: https://github.com/asottile/pyupgrade - rev: v2.38.2 - hooks: - - id: pyupgrade - args: ["--keep-percent-format"] - - repo: https://github.com/PyCQA/isort - rev: 5.10.1 - hooks: - - id: isort - name: isort except __init__.py - args: - - --settings=. - exclude: /__init__\.py$ - - repo: https://gitlab.com/PyCQA/flake8 - rev: 3.9.2 + - repo: https://github.com/astral-sh/ruff-pre-commit + rev: v0.1.3 hooks: - - id: flake8 - name: flake8 - additional_dependencies: ["flake8-bugbear==21.9.2"] + - id: ruff + args: [--fix, --exit-non-zero-on-fix] + - id: ruff-format - repo: https://github.com/OCA/pylint-odoo - rev: 7.0.2 + rev: v8.0.19 hooks: - id: pylint_odoo name: pylint with optional checks diff --git a/.pylintrc-mandatory b/.pylintrc-mandatory index ed2c2171ffe63ac191e30ed0759c4b6211ad5f15..99064933ef82c469ba5fda5b2904447c05c99dbe 100644 --- a/.pylintrc-mandatory +++ b/.pylintrc-mandatory @@ -4,12 +4,12 @@ load-plugins=pylint_odoo score=n [ODOOLINT] -readme_template_url="https://github.com/OCA/maintainer-tools/blob/master/template/module/README.rst" -manifest_required_authors=Le Filament -manifest_required_keys=license -manifest_deprecated_keys=description,active -license_allowed=AGPL-3,GPL-2,GPL-2 or any later version,GPL-3,GPL-3 or any later version,LGPL-3 -valid_odoo_versions=16.0 +readme-template-url="https://github.com/OCA/maintainer-tools/blob/master/template/module/README.rst" +manifest-required-authors=Le Filament +manifest-required-keys=license +manifest-deprecated-keys=description,active +license-allowed=AGPL-3,GPL-2,GPL-2 or any later version,GPL-3,GPL-3 or any later version,LGPL-3 +valid-odoo-versions=16.0 [MESSAGES CONTROL] disable=all diff --git a/.ruff.toml b/.ruff.toml new file mode 100644 index 0000000000000000000000000000000000000000..0240c75f6a4ae4550f3473ad0a5faaef022bf6c7 --- /dev/null +++ b/.ruff.toml @@ -0,0 +1,30 @@ + +target-version = "py310" +fix = true + +[lint] +extend-select = [ + "B", + "C90", + "E501", # line too long (default 88) + "I", # isort + "UP", # pyupgrade +] +exclude = ["setup/*"] + +[format] +exclude = ["setup/*"] + +[per-file-ignores] +"__init__.py" = ["F401", "I001"] # ignore unused and unsorted imports in __init__.py +"__manifest__.py" = ["B018"] # useless expression + +[isort] +section-order = ["future", "standard-library", "third-party", "odoo", "odoo-addons", "first-party", "local-folder"] + +[isort.sections] +"odoo" = ["odoo"] +"odoo-addons" = ["odoo.addons"] + +[mccabe] +max-complexity = 16 diff --git a/README.rst b/README.rst index e7e07f6286ab638efed7072bacfce4422de3047b..e4140c0cda557bc454fe272f00fa0e1c50494e2e 100644 --- a/README.rst +++ b/README.rst @@ -21,7 +21,7 @@ Credits ======= Le développement de ce module a été financé par / The development of this module has been financially supported by: - - CLIENT (https://website-client) + - AGAP Paris (https://agap-paris.com) Contributors ------------ diff --git a/__manifest__.py b/__manifest__.py index 60dce24dfc2f5a5a62f495b809c0b2f0a53845ab..8d9ccfc1c95e625926b672ac4df332d8d522e55d 100644 --- a/__manifest__.py +++ b/__manifest__.py @@ -1,9 +1,9 @@ { - "name": "AGAP - Sale / Stock", - "summary": "Vente et stocks", + "name": "AGAP - Sale", + "summary": "Ajout stock disponible sur ligne de vente", "author": "Le Filament", "website": "https://le-filament.com", - "version": "16.0.1.0.0", + "version": "16.0.1.1.0", "license": "AGPL-3", "depends": ["sale", "stock"], "data": [ @@ -13,13 +13,6 @@ # views menu # wizard ], - "assets": { - "web._assets_primary_variables": [], - "web._assets_frontend_helpers": [], - "web.assets_frontend": [], - "web.assets_tests": [], - "web.assets_qweb": [], - }, "installable": True, "auto_install": False, } diff --git a/controllers/__init__.py b/controllers/__init__.py deleted file mode 100644 index 457bae27e110665216377e4f2a446924f978019d..0000000000000000000000000000000000000000 --- a/controllers/__init__.py +++ /dev/null @@ -1,3 +0,0 @@ -# -*- coding: utf-8 -*- - -from . import controllers \ No newline at end of file diff --git a/controllers/controllers.py b/controllers/controllers.py deleted file mode 100644 index 5ee72cade7d2ff055e0a051716b7137ccf00eb9c..0000000000000000000000000000000000000000 --- a/controllers/controllers.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- -from odoo import http - -# class Mymodule(http.Controller): -# @http.route('/mymodule/mymodule/', auth='public') -# def index(self, **kw): -# return "Hello, world" - -# @http.route('/mymodule/mymodule/objects/', auth='public') -# def list(self, **kw): -# return http.request.render('mymodule.listing', { -# 'root': '/mymodule/mymodule', -# 'objects': http.request.env['mymodule.mymodule'].search([]), -# }) - -# @http.route('/mymodule/mymodule/objects/<model("mymodule.mymodule"):obj>/', auth='public') -# def object(self, obj, **kw): -# return http.request.render('mymodule.object', { -# 'object': obj -# }) \ No newline at end of file diff --git a/models/__init__.py b/models/__init__.py index 6002934c033e88fedcdbe88ef9b1032c2ed1e6a6..d414a8a28a416aa1dba44d5ad6647b3050309b90 100644 --- a/models/__init__.py +++ b/models/__init__.py @@ -1,4 +1,4 @@ # Copyright 2023 Le Filament (https://le-filament.com) # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) -from . import sale +from . import sale_order_line diff --git a/models/sale.py b/models/sale_order_line.py similarity index 92% rename from models/sale.py rename to models/sale_order_line.py index 8b378f0118e81b9a61e298e92900f4c41327ade5..e2d1d04f57ccfa5e4df1d7c04e577874ac9e6098 100644 --- a/models/sale.py +++ b/models/sale_order_line.py @@ -1,7 +1,7 @@ # Copyright 2023 Le Filament (https://le-filament.com) # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) -from odoo import models, fields +from odoo import fields, models class SaleOrderLine(models.Model): @@ -11,7 +11,8 @@ class SaleOrderLine(models.Model): # Fields declaration # ------------------------------------------------------ virtual_available = fields.Float( - string='Qté Dispo', related='product_id.virtual_available', store=False) + string="Qté Dispo", related="product_id.virtual_available", store=False + ) # ------------------------------------------------------ # SQL Constraints diff --git a/security/ir.model.access.csv b/security/ir.model.access.csv deleted file mode 100644 index 301b7dab167cbcb978ea78e7da9e7f032c40b90e..0000000000000000000000000000000000000000 --- a/security/ir.model.access.csv +++ /dev/null @@ -1 +0,0 @@ -id,name,model_id/id,group_id/id,perm_read,perm_write,perm_create,perm_unlink diff --git a/views/sale_views.xml b/views/sale_views.xml index 14123f08b94550399d8bda452d63684c2d1439ab..fcd508d426d94b6432d7a563cee818847dd61b6b 100644 --- a/views/sale_views.xml +++ b/views/sale_views.xml @@ -1,14 +1,15 @@ -<?xml version="1.0" encoding="utf-8"?> +<?xml version="1.0" encoding="utf-8" ?> <odoo> <data> - + <!-- Copyright 2023 Le Filament (https://le-filament.com) + License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). --> <record id="view_order_form" model="ir.ui.view"> <field name="name">sale.order.form</field> <field name="model">sale.order</field> - <field name="inherit_id" ref="sale.view_order_form"/> + <field name="inherit_id" ref="sale.view_order_form" /> <field name="arch" type="xml"> <xpath position="after" expr="//tree/field[@name='product_uom_qty']"> - <field name="virtual_available"/> + <field name="virtual_available" /> </xpath> </field> </record>