Skip to content

Commit

Permalink
Merge pull request #307 from OCA/15.0
Browse files Browse the repository at this point in the history
Syncing from upstream OCA/product-variant (15.0)
  • Loading branch information
bt-admin authored Mar 16, 2024
2 parents f757db1 + b632eb2 commit 5679c70
Show file tree
Hide file tree
Showing 12 changed files with 69 additions and 29 deletions.
9 changes: 5 additions & 4 deletions .copier-answers.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# Do NOT update manually; changes here will be overwritten by Copier
_commit: v1.14.2
_commit: v1.20
_src_path: gh:oca/oca-addons-repo-template
ci: GitHub
dependency_installation_mode: PIP
convert_readme_fragments_to_markdown: false
generate_requirements_txt: true
github_check_license: true
github_ci_extra_env: {}
Expand All @@ -11,6 +11,7 @@ github_enable_makepot: true
github_enable_stale_action: true
github_enforce_dev_status_compatibility: true
include_wkhtmltopdf: false
odoo_test_flavor: Both
odoo_version: 15.0
org_name: Odoo Community Association (OCA)
org_slug: OCA
Expand All @@ -19,6 +20,6 @@ repo_description: 'TODO: add repo description.'
repo_name: product-variant
repo_slug: product-variant
repo_website: https://github.com/OCA/product-variant
travis_apt_packages: []
travis_apt_sources: []
use_pyproject_toml: false
use_ruff: false

1 change: 1 addition & 0 deletions .eslintrc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
13 changes: 12 additions & 1 deletion .github/workflows/pre-commit.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,10 @@ jobs:
pre-commit:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v2
- 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
Expand All @@ -25,6 +27,15 @@ jobs:
run: pip install pre-commit
- name: Run pre-commit
run: pre-commit run --all-files --show-diff-on-failure --color=always
env:
# Consider valid a PR that changes README fragments but doesn't
# change the README.rst file itself. It's not really a problem
# because the bot will update it anyway after merge. This way, we
# lower the barrier for functional contributors that want to fix the
# readme fragments, while still letting developers get README
# auto-generated (which also helps functionals when using runboat).
# DOCS https://pre-commit.com/#temporarily-disabling-hooks
SKIP: oca-gen-addon-readme
- name: Check that all files generated by pre-commit are in git
run: |
newfiles="$(git ls-files --others --exclude-from=.gitignore)"
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ jobs:
runs-on: ubuntu-latest
name: Detect unreleased dependencies
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- run: |
for reqfile in requirements.txt test-requirements.txt ; do
if [ -f ${reqfile} ] ; then
Expand All @@ -36,10 +36,10 @@ jobs:
matrix:
include:
- container: ghcr.io/oca/oca-ci/py3.8-odoo15.0:latest
makepot: "true"
name: test with Odoo
- container: ghcr.io/oca/oca-ci/py3.8-ocb15.0:latest
name: test with OCB
makepot: "true"
services:
postgres:
image: postgres:9.6
Expand All @@ -50,7 +50,7 @@ jobs:
ports:
- 5432:5432
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
with:
persist-credentials: false
- name: Install addons and dependencies
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ __pycache__/
*.py[cod]
/.venv
/.pytest_cache
/.ruff_cache

# C extensions
*.so
Expand Down
21 changes: 19 additions & 2 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand All @@ -33,12 +37,25 @@ repos:
language: fail
files: '[a-zA-Z0-9_]*/i18n/en\.po$'
- repo: https://github.com/oca/maintainer-tools
rev: dfba427ba03900b69e0a7f2c65890dc48921d36a
rev: 9a170331575a265c092ee6b24b845ec508e8ef75
hooks:
# update the NOT INSTALLABLE ADDONS section above
- id: oca-update-pre-commit-excluded-addons
- id: oca-fix-manifest-website
args: ["https://github.com/OCA/product-variant"]
- id: oca-gen-addon-readme
args:
- --addons-dir=.
- --branch=15.0
- --org-name=OCA
- --repo-name=product-variant
- --if-source-changed
- --keep-source-digest
- repo: https://github.com/OCA/odoo-pre-commit-hooks
rev: v0.0.25
hooks:
- id: oca-checks-odoo-module
- id: oca-checks-po
- repo: https://github.com/myint/autoflake
rev: v1.4
hooks:
Expand Down Expand Up @@ -125,7 +142,7 @@ repos:
name: flake8
additional_dependencies: ["flake8-bugbear==21.9.2"]
- repo: https://github.com/OCA/pylint-odoo
rev: 7.0.2
rev: 7.0.5
hooks:
- id: pylint_odoo
name: pylint with optional checks
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ addon | version | maintainers | summary
--- | --- | --- | ---
[product_variant_configurator](product_variant_configurator/) | 15.0.1.0.0 | | Provides an abstract model for product variant configuration.
[product_variant_configurator_manual_creation](product_variant_configurator_manual_creation/) | 15.0.1.0.0 | [![ChrisOForgeFlow](https://github.com/ChrisOForgeFlow.png?size=30px)](https://github.com/ChrisOForgeFlow) | Provides a wizards to make variants on demand
[product_variant_default_code](product_variant_default_code/) | 15.0.1.0.0 | [![Kev-Roche](https://github.com/Kev-Roche.png?size=30px)](https://github.com/Kev-Roche) | Product Variant Default Code
[product_variant_default_code](product_variant_default_code/) | 15.0.1.0.1 | [![Kev-Roche](https://github.com/Kev-Roche.png?size=30px)](https://github.com/Kev-Roche) | Product Variant Default Code
[product_variant_sale_price](product_variant_sale_price/) | 15.0.1.0.0 | | Allows to write fixed prices in product variants
[sale_order_line_variant_description](sale_order_line_variant_description/) | 15.0.2.0.0 | | Sale order line variant description

Expand Down
2 changes: 1 addition & 1 deletion product_variant_default_code/README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ Product Variant Default Code
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:c5bc987b9ee1845b73370e495be88344ab78d396cf4715f96ea54153ece415c7
!! source digest: sha256:d4fd4a37a3d029a3333468ed24f7289cd75aa355cc34584c24f4751b944e46e0
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
Expand Down
2 changes: 1 addition & 1 deletion product_variant_default_code/__manifest__.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
{
"name": "Product Variant Default Code",
"version": "15.0.1.0.0",
"version": "15.0.1.0.1",
"author": "AvancOSC, Shine IT, Tecnativa, Akretion, Odoo Community Association (OCA)",
"website": "https://github.com/OCA/product-variant",
"license": "AGPL-3",
Expand Down
8 changes: 7 additions & 1 deletion product_variant_default_code/models/product.py
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,13 @@ def _compute_reference_mask(self):
if automask or not rec.reference_mask:
rec.reference_mask = rec._get_default_mask()
elif not automask and rec.code_prefix:
rec.reference_mask = rec.code_prefix + rec.reference_mask
reference_mask = rec.reference_mask
# Avoid prefixing the mask twice (or more).
# TODO: This needs a better design with a third field that sums both
# or using the sum of them in the variant default code computation
if reference_mask.startswith(rec.code_prefix):
reference_mask = reference_mask.lstrip(rec.code_prefix)
rec.reference_mask = rec.code_prefix + reference_mask

def _inverse_reference_mask(self):
self._compute_reference_mask()
Expand Down
3 changes: 1 addition & 2 deletions product_variant_default_code/static/description/index.html
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
Expand Down Expand Up @@ -367,7 +366,7 @@ <h1 class="title">Product Variant Default Code</h1>
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:c5bc987b9ee1845b73370e495be88344ab78d396cf4715f96ea54153ece415c7
!! source digest: sha256:d4fd4a37a3d029a3333468ed24f7289cd75aa355cc34584c24f4751b944e46e0
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
<p><a class="reference external image-reference" href="https://odoo-community.org/page/development-status"><img alt="Beta" src="https://img.shields.io/badge/maturity-Beta-yellow.png" /></a> <a class="reference external image-reference" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/licence-AGPL--3-blue.png" /></a> <a class="reference external image-reference" href="https://github.com/OCA/product-variant/tree/15.0/product_variant_default_code"><img alt="OCA/product-variant" src="https://img.shields.io/badge/github-OCA%2Fproduct--variant-lightgray.png?logo=github" /></a> <a class="reference external image-reference" href="https://translation.odoo-community.org/projects/product-variant-15-0/product-variant-15-0-product_variant_default_code"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external image-reference" href="https://runboat.odoo-community.org/builds?repo=OCA/product-variant&amp;target_branch=15.0"><img alt="Try me on Runboat" src="https://img.shields.io/badge/runboat-Try%20me-875A7B.png" /></a></p>
<p>This module automatically generate Product Reference (default_code)
Expand Down
30 changes: 17 additions & 13 deletions product_variant_default_code/tests/test_variant_default_code.py
Original file line number Diff line number Diff line change
Expand Up @@ -368,17 +368,21 @@ def test_18_both_prefix_and_mask_changing(self):
"reference_mask": "fix-[TColor]/[TSize]",
}
)

for product in self.template1.mapped("product_variant_ids"):
expected_code = (
self.template1.code_prefix
+ "fix-"
+ product.product_template_attribute_value_ids.filtered(
lambda x: x.product_attribute_value_id.attribute_id == self.attr2
).name[0:2]
+ "/"
+ product.product_template_attribute_value_ids.filtered(
lambda x: x.product_attribute_value_id.attribute_id == self.attr1
).name[0:2]
)
self.assertEqual(product.default_code, expected_code)
attr1 = product.product_template_attribute_value_ids.filtered(
lambda x: x.product_attribute_value_id.attribute_id == self.attr2
).name[0:2]
attr2 = product.product_template_attribute_value_ids.filtered(
lambda x: x.product_attribute_value_id.attribute_id == self.attr1
).name[0:2]
self.assertEqual(product.default_code, f"pre/fix-{attr1}/{attr2}")
# The reference_mask stays the same even if recomputed
self.template1._compute_reference_mask()
for product in self.template1.mapped("product_variant_ids"):
attr1 = product.product_template_attribute_value_ids.filtered(
lambda x: x.product_attribute_value_id.attribute_id == self.attr2
).name[0:2]
attr2 = product.product_template_attribute_value_ids.filtered(
lambda x: x.product_attribute_value_id.attribute_id == self.attr1
).name[0:2]
self.assertEqual(product.default_code, f"pre/fix-{attr1}/{attr2}")

0 comments on commit 5679c70

Please sign in to comment.