diff --git a/.copier-answers.yml b/.copier-answers.yml new file mode 100644 index 000000000..c42d812fe --- /dev/null +++ b/.copier-answers.yml @@ -0,0 +1,23 @@ +# Do NOT update manually; changes here will be overwritten by Copier +_commit: v1.11.0 +_src_path: git+https://github.com/oca/oca-addons-repo-template +ci: GitHub +dependency_installation_mode: PIP +generate_requirements_txt: true +github_check_license: false +github_enable_codecov: true +github_enable_makepot: true +github_enable_stale_action: true +github_enforce_dev_status_compatibility: false +include_wkhtmltopdf: false +odoo_version: 12.0 +org_name: Odoo Community Association (OCA) +org_slug: OCA +rebel_module_groups: [] +repo_description: Odoo modules related to Manufacturing +repo_name: Odoo Manufacturing Modules +repo_slug: manufacture +repo_website: https://github.com/OCA/manufacture +travis_apt_packages: [] +travis_apt_sources: [] + diff --git a/.editorconfig b/.editorconfig index 62276b0d5..bfd7ac53d 100644 --- a/.editorconfig +++ b/.editorconfig @@ -7,11 +7,11 @@ indent_style = space insert_final_newline = true trim_trailing_whitespace = true -[.eslintrc,*.{json,yml,yaml,rst,md}] +[*.{json,yml,yaml,rst,md}] indent_size = 2 # Do not configure editor for libs and autogenerated content -[*/static/{lib,src/lib}/**,*/static/description/index.html,*/readme/../README.rst] +[{*/static/{lib,src/lib}/**,*/static/description/index.html,*/readme/../README.rst}] charset = unset end_of_line = unset indent_size = unset diff --git a/.flake8 b/.flake8 new file mode 100644 index 000000000..6363964b5 --- /dev/null +++ b/.flake8 @@ -0,0 +1,11 @@ +[flake8] +# E123,E133,E226,E241,E242 are ignored by default by pep8 and flake8 +# F811 is legal in odoo 8 when we implement 2 interfaces for a method +# F601 pylint support this case with expected tests +# W503 changed by W504 and OCA prefers allow both +# E203: whitespace before ':' (black behaviour and not pep8 compliant) +ignore = E123,E133,E226,E241,E242,F811,F601,W503,W504,E203 +max-line-length = 88 +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 000000000..5bc28e074 --- /dev/null +++ b/.github/workflows/pre-commit.yml @@ -0,0 +1,37 @@ +name: pre-commit + +on: + pull_request: + branches: + - "12.0*" + push: + branches: + - "12.0" + - "12.0-ocabot-*" + +jobs: + pre-commit: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-python@v2 + with: + python-version: "3.6" + - 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/.github/workflows/stale.yml b/.github/workflows/stale.yml new file mode 100644 index 000000000..1693a1253 --- /dev/null +++ b/.github/workflows/stale.yml @@ -0,0 +1,69 @@ +name: Mark stale issues and pull requests + +on: + schedule: + - cron: "0 12 * * 0" + +jobs: + stale: + runs-on: ubuntu-latest + steps: + - name: Stale PRs and issues policy + uses: actions/stale@v4 + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} + # General settings. + ascending: true + remove-stale-when-updated: true + # Pull Requests settings. + # 120+30 day stale policy for PRs + # * Except PRs marked as "no stale" + days-before-pr-stale: 120 + days-before-pr-close: 30 + exempt-pr-labels: "no stale" + stale-pr-label: "stale" + stale-pr-message: > + There hasn't been any activity on this pull request in the past 4 months, so + it has been marked as stale and it will be closed automatically if no + further activity occurs in the next 30 days. + + If you want this PR to never become stale, please ask a PSC member to apply + the "no stale" label. + # Issues settings. + # 180+30 day stale policy for open issues + # * Except Issues marked as "no stale" + days-before-issue-stale: 180 + days-before-issue-close: 30 + exempt-issue-labels: "no stale,needs more information" + stale-issue-label: "stale" + stale-issue-message: > + There hasn't been any activity on this issue in the past 6 months, so it has + been marked as stale and it will be closed automatically if no further + activity occurs in the next 30 days. + + If you want this issue to never become stale, please ask a PSC member to + apply the "no stale" label. + + # 15+30 day stale policy for issues pending more information + # * Issues that are pending more information + # * Except Issues marked as "no stale" + - name: Needs more information stale issues policy + uses: actions/stale@v4 + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} + ascending: true + only-labels: "needs more information" + exempt-issue-labels: "no stale" + days-before-stale: 15 + days-before-close: 30 + days-before-pr-stale: -1 + days-before-pr-close: -1 + remove-stale-when-updated: true + stale-issue-label: "stale" + stale-issue-message: > + This issue needs more information and there hasn't been any activity + recently, so it has been marked as stale and it will be closed automatically + if no further activity occurs in the next 30 days. + + If you think this is a mistake, please ask a PSC member to remove the "needs + more information" label. diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 000000000..2c32351cf --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,71 @@ +name: tests + +on: + pull_request: + branches: + - "12.0*" + push: + branches: + - "12.0" + - "12.0-ocabot-*" + +jobs: + unreleased-deps: + runs-on: ubuntu-latest + name: Detect unreleased dependencies + steps: + - uses: actions/checkout@v2 + - run: | + for reqfile in requirements.txt test-requirements.txt ; do + if [ -f ${reqfile} ] ; then + result=0 + # reject non-comment lines that contain a / (i.e. URLs, relative paths) + grep "^[^#].*/" ${reqfile} || result=$? + if [ $result -eq 0 ] ; then + echo "Unreleased dependencies found in ${reqfile}." + exit 1 + fi + fi + done + test: + runs-on: ubuntu-latest + container: ${{ matrix.container }} + name: ${{ matrix.name }} + strategy: + fail-fast: false + matrix: + include: + - container: ghcr.io/oca/oca-ci/py3.6-odoo12.0:latest + makepot: "true" + name: test with Odoo + - container: ghcr.io/oca/oca-ci/py3.6-ocb12.0:latest + name: test with OCB + services: + postgres: + image: postgres:9.6 + env: + POSTGRES_USER: odoo + POSTGRES_PASSWORD: odoo + POSTGRES_DB: odoo + ports: + - 5432:5432 + steps: + - uses: actions/checkout@v2 + with: + persist-credentials: false + - name: Install addons and dependencies + run: oca_install_addons + - name: Check licenses + run: manifestoo -d . check-licenses + continue-on-error: true + - name: Check development status + run: manifestoo -d . check-dev-status --default-dev-status=Beta + continue-on-error: true + - name: Initialize test db + run: oca_init_test_database + - name: Run tests + run: oca_run_tests + - uses: codecov/codecov-action@v1 + - name: Update .pot files + run: oca_export_and_push_pot https://x-access-token:${{ secrets.GIT_PUSH_TOKEN }}@github.com/${{ github.repository }} + if: ${{ matrix.makepot == 'true' && github.event_name == 'push' && github.repository_owner == 'OCA' }} diff --git a/.gitignore b/.gitignore index 890ff0109..9c283fd41 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,8 @@ # Byte-compiled / optimized / DLL files __pycache__/ *.py[cod] +/.venv +/.pytest_cache # C extensions *.so @@ -13,7 +15,6 @@ build/ develop-eggs/ dist/ eggs/ -lib/ lib64/ parts/ sdist/ @@ -21,6 +22,7 @@ var/ *.egg-info/ .installed.cfg *.egg +*.eggs # Installer logs pip-log.txt @@ -40,6 +42,19 @@ coverage.xml # Pycharm .idea +# Eclipse +.settings + +# Visual Studio cache/options directory +.vs/ +.vscode + +# OSX Files +.DS_Store + +# Django stuff: +*.log + # Mr Developer .mr.developer.cfg .project @@ -54,3 +69,6 @@ docs/_build/ # Backup files *~ *.swp + +# OCA rules +!static/lib/ diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 000000000..8521d0009 --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,60 @@ +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$| + # You don't usually want a bot to modify your legal texts + (LICENSE.*|COPYING.*) +default_language_version: + python: python3 +repos: + - repo: https://github.com/oca/maintainer-tools + rev: ab1d7f6 + 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/manufacture"] + - repo: https://github.com/acsone/setuptools-odoo + rev: 3.0.6 + hooks: + - id: setuptools-odoo-make-default + - id: setuptools-odoo-get-requirements + args: + - --output + - requirements.txt + - --header + - "# generated from manifests external_dependencies" + - repo: https://github.com/OCA/mirrors-flake8 + rev: v3.4.1 + hooks: + - id: flake8 + language_version: python3.6 + name: flake8 excluding __init__.py + exclude: __init__\.py + - repo: https://github.com/pre-commit/mirrors-pylint + rev: v2.5.3 + hooks: + - id: pylint + name: pylint with optional checks + args: + - --rcfile=.pylintrc + - --exit-zero + verbose: true + additional_dependencies: &pylint_deps + - pylint-odoo==3.5.0 + - id: pylint + name: pylint with mandatory checks + args: + - --rcfile=.pylintrc-mandatory + additional_dependencies: *pylint_deps + diff --git a/.pylintrc b/.pylintrc new file mode 100644 index 000000000..d8abd7129 --- /dev/null +++ b/.pylintrc @@ -0,0 +1,156 @@ +[MASTER] +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=Odoo Community Association (OCA) +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=12.0 + +[MESSAGES CONTROL] +disable=all + +# Enable message and code: +# anomalous-backslash-in-string - W1401 +# assignment-from-none - W1111 +# dangerous-default-value - W0102 +# duplicate-key - W0109 +# missing-import-error - W7935 +# missing-manifest-dependency - W7936 +# pointless-statement - W0104 +# pointless-string-statement - W0105 +# print-statement - E1601 +# redundant-keyword-arg - E1124 +# reimported - W0404 +# relative-import - W0403 +# return-in-init - E0101 +# rst-syntax-error - E7901 +# too-few-format-args - E1306 +# unreachable - W0101 + + +# This .pylintrc contains optional AND mandatory checks and is meant to be +# loaded in an IDE to have it check everything, in the hope this will make +# optional checks more visible to contributors who otherwise never look at a +# green travis to see optional checks that failed. +# .pylintrc-mandatory containing only mandatory checks is used the pre-commit +# config as a blocking check. + +# Beta message and code: +# api-one-deprecated - W8104 +# api-one-multi-together - W8101 +# attribute-deprecated - W8105 +# class-camelcase - C8104 +# create-user-wo-reset-password - W7905 +# consider-merging-classes-inherited - R7980 +# copy-wo-api-one - W8102 +# dangerous-filter-wo-user - W7901 +# dangerous-view-replace-wo-priority - W7940 +# deprecated-module - W0402 +# duplicate-id-csv - W7906 +# duplicate-xml-fields - W7907 +# duplicate-xml-record-id - W7902 +# file-not-used - W7930 +# incoherent-interpreter-exec-perm - W8201 +# invalid-commit - E8102 +# javascript-lint - W7903 +# manifest-deprecated-key - C8103 +# method-compute - C8108 +# method-inverse - C8110 +# method-required-super - W8106 +# method-search - C8109 +# missing-newline-extrafiles - W7908 +# missing-readme - C7902 +# no-utf8-coding-comment - C8201 +# unnecessary-utf8-coding-comment - C8202 +# odoo-addons-relative-import - W7950 +# old-api7-method-defined - R8110 +# openerp-exception-warning - R8101 +# redundant-modulename-xml - W7909 +# sql-injection - E8103 +# too-complex - C0901 +# translation-field - W8103 +# translation-required - C8107 +# use-vim-comment - W8202 +# wrong-tabs-instead-of-spaces - W7910 +# xml-syntax-error - E7902 + + +enable=anomalous-backslash-in-string, + assignment-from-none, + dangerous-default-value, + development-status-allowed, + duplicate-key, + duplicate-po-message-definition, + missing-import-error, + missing-manifest-dependency, + po-msgstr-variables, + po-syntax-error, + pointless-statement, + pointless-string-statement, + print-used, + redundant-keyword-arg, + reimported, + relative-import, + return-in-init, + rst-syntax-error, + too-few-format-args, + unreachable, + eval-used, + eval-referenced, + license-allowed, + manifest-author-string, + manifest-required-author, + manifest-required-key, + manifest-version-format, + api-one-deprecated, + api-one-multi-together, + attribute-deprecated, + class-camelcase, + create-user-wo-reset-password, + consider-merging-classes-inherited, + copy-wo-api-one, + dangerous-filter-wo-user, + dangerous-view-replace-wo-priority, + deprecated-module, + duplicate-id-csv, + duplicate-po-message-definition, + duplicate-xml-fields, + duplicate-xml-record-id, + file-not-used, + incoherent-interpreter-exec-perm, + invalid-commit, + javascript-lint, + manifest-deprecated-key, + method-compute, + method-inverse, + method-required-super, + method-search, + missing-newline-extrafiles, + missing-readme, + po-msgstr-variables, + po-syntax-error, + no-utf8-coding-comment, + unnecessary-utf8-coding-comment, + odoo-addons-relative-import, + old-api7-method-defined, + openerp-exception-warning, + redefined-builtin, + redundant-modulename-xml, + sql-injection, + too-complex, + translation-field, + translation-required, + use-vim-comment, + wrong-tabs-instead-of-spaces, + xml-syntax-error, + + +[REPORTS] +msg-template={path}:{line}: [{msg_id}({symbol}), {obj}] {msg} +output-format=colorized +reports=no + diff --git a/.pylintrc-mandatory b/.pylintrc-mandatory new file mode 100644 index 000000000..9b44956f4 --- /dev/null +++ b/.pylintrc-mandatory @@ -0,0 +1,68 @@ +[MASTER] +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=Odoo Community Association (OCA) +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=12.0 + +[MESSAGES CONTROL] +disable=all + +# Enable message and code: +# anomalous-backslash-in-string - W1401 +# assignment-from-none - W1111 +# dangerous-default-value - W0102 +# duplicate-key - W0109 +# missing-import-error - W7935 +# missing-manifest-dependency - W7936 +# pointless-statement - W0104 +# pointless-string-statement - W0105 +# print-statement - E1601 +# redundant-keyword-arg - E1124 +# reimported - W0404 +# relative-import - W0403 +# return-in-init - E0101 +# rst-syntax-error - E7901 +# too-few-format-args - E1306 +# unreachable - W0101 + + + +enable=anomalous-backslash-in-string, + assignment-from-none, + dangerous-default-value, + development-status-allowed, + duplicate-key, + duplicate-po-message-definition, + missing-import-error, + missing-manifest-dependency, + po-msgstr-variables, + po-syntax-error, + pointless-statement, + pointless-string-statement, + print-used, + redundant-keyword-arg, + reimported, + relative-import, + return-in-init, + rst-syntax-error, + too-few-format-args, + unreachable, + eval-used, + eval-referenced, + license-allowed, + manifest-author-string, + manifest-required-author, + manifest-required-key, + manifest-version-format + +[REPORTS] +msg-template={path}:{line}: [{msg_id}({symbol}), {obj}] {msg} +output-format=colorized +reports=no + diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index b871430cd..000000000 --- a/.travis.yml +++ /dev/null @@ -1,47 +0,0 @@ -language: python -sudo: false -cache: pip - -python: - - "3.5" - -addons: - postgresql: "9.6" - apt: - packages: - - expect-dev # provides unbuffer utility - - python-lxml # because pip installation is slow - - python-simplejson - - python-serial - - python-yaml - -stages: - - linting - - test - -jobs: - include: - - stage: linting - env: - - LINT_CHECK="1" - - stage: test - env: - - TESTS="1" ODOO_REPO="odoo/odoo" MAKEPOT="1" - - stage: test - env: - - TESTS="1" ODOO_REPO="OCA/OCB" - -env: - global: - - VERSION="12.0" TESTS="0" LINT_CHECK="0" MAKEPOT="0" WKHTMLTOPDF_VERSION="0.12.4" - -install: - - git clone --depth=1 https://github.com/OCA/maintainer-quality-tools.git ${HOME}/maintainer-quality-tools - - export PATH=${HOME}/maintainer-quality-tools/travis:${PATH} - - travis_install_nightly - -script: - - travis_run_tests - -after_success: - - travis_after_tests_success diff --git a/LICENSE b/LICENSE index 3ffc56789..be3f7b28e 100644 --- a/LICENSE +++ b/LICENSE @@ -1,7 +1,7 @@ -GNU AFFERO GENERAL PUBLIC LICENSE + GNU AFFERO GENERAL PUBLIC LICENSE Version 3, 19 November 2007 - Copyright (C) 2007 Free Software Foundation, Inc. + Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. @@ -633,8 +633,8 @@ the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software: you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License as published - by the Free Software Foundation, either version 3 of the License, or + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, @@ -643,7 +643,7 @@ the "copyright" line and a pointer to where the full notice is found. GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License - along with this program. If not, see . + along with this program. If not, see . Also add information on how to contact you by electronic and paper mail. @@ -658,4 +658,4 @@ specific requirements. You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU AGPL, see -. \ No newline at end of file +. diff --git a/README.md b/README.md index c69103d55..7b9d6f9a0 100644 --- a/README.md +++ b/README.md @@ -1,80 +1,37 @@ -[![Runbot Status](https://runbot.odoo-community.org/runbot/badge/flat/129/12.0.svg)](https://runbot.odoo-community.org/runbot/repo/github-com-oca-manufacture-129) -[![Build Status](https://travis-ci.org/OCA/manufacture.svg?branch=12.0)](https://travis-ci.org/OCA/manufacture) -[![codecov](https://codecov.io/gh/OCA/manufacture/branch/12.0/graph/badge.svg)](https://codecov.io/gh/OCA/manufacture) -Odoo Manufacturing Modules -========================== +[![Runboat](https://img.shields.io/badge/runboat-Try%20me-875A7B.png)](https://runboat.odoo-community.org/builds?repo=OCA/manufacture&target_branch=12.0) +[![Pre-commit Status](https://github.com/OCA/manufacture/actions/workflows/pre-commit.yml/badge.svg?branch=12.0)](https://github.com/OCA/manufacture/actions/workflows/pre-commit.yml?query=branch%3A12.0) +[![Build Status](https://github.com/OCA/manufacture/actions/workflows/test.yml/badge.svg?branch=12.0)](https://github.com/OCA/manufacture/actions/workflows/test.yml?query=branch%3A12.0) +[![codecov](https://codecov.io/gh/OCA/manufacture/branch/12.0/graph/badge.svg)](https://codecov.io/gh/OCA/manufacture) +[![Translation Status](https://translation.odoo-community.org/widgets/manufacture-12-0/-/svg-badge.svg)](https://translation.odoo-community.org/engage/manufacture-12-0/?utm_source=widget) + + + +# Odoo Manufacturing Modules Odoo modules related to Manufacturing + + + + [//]: # (addons) -Available addons ----------------- -addon | version | maintainers | summary ---- | --- | --- | --- -[account_move_line_manufacture_info](account_move_line_manufacture_info/) | 12.0.1.0.0 | | Account Move Line Manufacture Information -[base_repair](base_repair/) | 12.0.1.1.0 | [![marcelsavegnago](https://github.com/marcelsavegnago.png?size=30px)](https://github.com/marcelsavegnago) | This module extends the functionality of Odoo Repair module to add some basic features. -[base_repair_config](base_repair_config/) | 12.0.1.0.1 | [![marcelsavegnago](https://github.com/marcelsavegnago.png?size=30px)](https://github.com/marcelsavegnago) | Provides general settings for the Repair App -[mrp_auto_assign](mrp_auto_assign/) | 12.0.1.0.0 | | Make MO automatically reserve raw material moves at creation -[mrp_auto_create_lot](mrp_auto_create_lot/) | 12.0.1.0.1 | [![ps-tubtim](https://github.com/ps-tubtim.png?size=30px)](https://github.com/ps-tubtim) | Auto create lots for work orders -[mrp_bom_comparison](mrp_bom_comparison/) | 12.0.1.0.0 | | Compare two Bill of Materials to view the differences -[mrp_bom_component_menu](mrp_bom_component_menu/) | 12.0.1.0.0 | | MRP BOM Component Menu -[mrp_bom_line_sequence](mrp_bom_line_sequence/) | 12.0.1.0.0 | | Manages the order of BOM lines by displaying its sequence -[mrp_bom_location](mrp_bom_location/) | 12.0.1.0.2 | | Adds location field to Bill of Materials and its components. -[mrp_bom_multi_company](mrp_bom_multi_company/) | 12.0.1.0.0 | | Multi Company Bill of Materials -[mrp_bom_note](mrp_bom_note/) | 12.0.1.0.0 | | Notes in Bill of Materials -[mrp_bom_tracking](mrp_bom_tracking/) | 12.0.1.0.1 | | Logs any change to a BoM in the chatter -[mrp_mto_with_stock](mrp_mto_with_stock/) | 12.0.1.0.0 | | Fix Manufacturing orders to pull from stock until qty is zero, and then create a procurement for them. -[mrp_multi_level](mrp_multi_level/) | 12.0.2.4.0 | [![JordiBForgeFlow](https://github.com/JordiBForgeFlow.png?size=30px)](https://github.com/JordiBForgeFlow) [![LoisRForgeFlow](https://github.com/LoisRForgeFlow.png?size=30px)](https://github.com/LoisRForgeFlow) | Adds an MRP Scheduler -[mrp_multi_level_estimate](mrp_multi_level_estimate/) | 12.0.1.1.0 | [![LoisRForgeFlow](https://github.com/LoisRForgeFlow.png?size=30px)](https://github.com/LoisRForgeFlow) | Allows to consider demand estimates using MRP multi level. -[mrp_planned_order_matrix](mrp_planned_order_matrix/) | 12.0.1.0.1 | | Allows to create fixed planned orders on a grid view. -[mrp_production_auto_post_inventory](mrp_production_auto_post_inventory/) | 12.0.1.1.0 | | Production Auto Post-Inventory -[mrp_production_filter_lot](mrp_production_filter_lot/) | 12.0.1.0.0 | | In production order production popup, filter lots based on their location and availability -[mrp_production_grouped_by_product](mrp_production_grouped_by_product/) | 12.0.1.0.0 | | Production Grouped By Product -[mrp_production_hierarchy](mrp_production_hierarchy/) | 12.0.1.0.0 | | View the hierarchy of generated production orders -[mrp_production_note](mrp_production_note/) | 12.0.1.0.0 | | Notes in production orders -[mrp_production_putaway_strategy](mrp_production_putaway_strategy/) | 12.0.1.0.1 | | Applies putaway strategies to manufacturing orders for finished products. -[mrp_production_quant_manual_assign](mrp_production_quant_manual_assign/) | 12.0.1.0.0 | | Production - Manual Quant Assignment -[mrp_production_request](mrp_production_request/) | 12.0.1.0.1 | [![lreficent](https://github.com/lreficent.png?size=30px)](https://github.com/lreficent) | Allows you to use Manufacturing Request as a previous step to Manufacturing Orders for better manufacture planification. -[mrp_production_show_post_inventory](mrp_production_show_post_inventory/) | 12.0.1.0.1 | | Production Show Post Inventory -[mrp_progress_button](mrp_progress_button/) | 12.0.1.0.0 | | Add a button on MO to make the MO state 'In Progress' -[mrp_request_bom_structure](mrp_request_bom_structure/) | 12.0.1.0.0 | | Shortcut between Manufacturing Request and Bom report -[mrp_request_workcenter_cycle](mrp_request_workcenter_cycle/) | 12.0.1.0.0 | [![bealdav](https://github.com/bealdav.png?size=30px)](https://github.com/bealdav) | MRP Request Workcenter Cycle -[mrp_sale_info](mrp_sale_info/) | 12.0.1.0.0 | | Adds sale information to Manufacturing models -[mrp_stock_orderpoint_manual_procurement](mrp_stock_orderpoint_manual_procurement/) | 12.0.1.0.0 | | Updates the value of MO Responsible and keeps trackof changes regarding this field -[mrp_subcontracting](mrp_subcontracting/) | 12.0.1.0.5 | | Subcontract Productions -[mrp_subcontracting_purchase_link](mrp_subcontracting_purchase_link/) | 12.0.1.0.0 | | Link Purchase Order to Subcontract Productions -[mrp_unbuild_tracked_raw_material](mrp_unbuild_tracked_raw_material/) | 12.0.1.0.0 | [![bealdav](https://github.com/bealdav.png?size=30px)](https://github.com/bealdav) | Allow to unbuild tracked purchased products -[mrp_warehouse_calendar](mrp_warehouse_calendar/) | 12.0.1.0.1 | [![jbeficent](https://github.com/jbeficent.png?size=30px)](https://github.com/jbeficent) | Considers the warehouse calendars in manufacturing -[mrp_workorder_sequence](mrp_workorder_sequence/) | 12.0.1.0.0 | [![lreficent](https://github.com/lreficent.png?size=30px)](https://github.com/lreficent) | adds sequence to production work orders. -[product_mrp_info](product_mrp_info/) | 12.0.1.0.0 | [![lreficent](https://github.com/lreficent.png?size=30px)](https://github.com/lreficent) | Adds smart button in product form view linking to manufacturing order list. -[product_quick_bom](product_quick_bom/) | 12.0.1.0.0 | [![sebastienbeau](https://github.com/sebastienbeau.png?size=30px)](https://github.com/sebastienbeau) [![kevinkhao](https://github.com/kevinkhao.png?size=30px)](https://github.com/kevinkhao) | Create the bom directly from the product -[quality_control](quality_control/) | 12.0.1.5.0 | | Generic infrastructure for quality tests. -[quality_control_issue](quality_control_issue/) | 12.0.1.0.0 | [![lreficent](https://github.com/lreficent.png?size=30px)](https://github.com/lreficent) | Allow to manage and report Quality Control Issues. -[quality_control_mrp](quality_control_mrp/) | 12.0.1.0.0 | | MRP extension for quality control -[quality_control_stock](quality_control_stock/) | 12.0.1.0.2 | | Quality control - Stock -[quality_control_team](quality_control_team/) | 12.0.1.1.0 | [![lreficent](https://github.com/lreficent.png?size=30px)](https://github.com/lreficent) | Adds quality control teams to handle different quality control workflows -[repair_calendar_view](repair_calendar_view/) | 12.0.1.1.0 | | Repair Calendar View -[repair_default_terms_conditions](repair_default_terms_conditions/) | 12.0.1.0.0 | [![marcelsavegnago](https://github.com/marcelsavegnago.png?size=30px)](https://github.com/marcelsavegnago) | This module allows repair default terms & conditions -[repair_discount](repair_discount/) | 12.0.1.0.0 | | Repair Discount -[repair_payment_term](repair_payment_term/) | 12.0.1.0.0 | [![mileo](https://github.com/mileo.png?size=30px)](https://github.com/mileo) | This module add to Repair Orders the *Payment Term* field -[repair_quality_control_issue](repair_quality_control_issue/) | 12.0.1.0.0 | [![cubells](https://github.com/cubells.png?size=30px)](https://github.com/cubells) | Add the possibility to create repairs orders from quality control issues. -[repair_refurbish](repair_refurbish/) | 12.0.1.1.3 | | Create refurbished products during repair -[repair_timeline](repair_timeline/) | 12.0.1.0.1 | [![marcelsavegnago](https://github.com/marcelsavegnago.png?size=30px)](https://github.com/marcelsavegnago) | Add timeline view -[stock_mts_mto_rule_mrp](stock_mts_mto_rule_mrp/) | 12.0.1.0.0 | | Add support for MTS+MTO route on manufacturing -[stock_picking_product_kit_helper](stock_picking_product_kit_helper/) | 12.0.1.0.0 | [![kittiu](https://github.com/kittiu.png?size=30px)](https://github.com/kittiu) | Set quanity in picking line based on product kit quantity -[stock_whole_kit_constraint](stock_whole_kit_constraint/) | 12.0.1.0.0 | | Avoid to deliver a kit partially +This part will be replaced when running the oca-gen-addons-table script from OCA/maintainer-tools. [//]: # (end addons) + -Translation status ------------------- +## Licenses -[![Translation status](https://translation.odoo-community.org/widgets/manufacture-12-0/-/multi-auto.svg)](https://translation.odoo-community.org/engage/manufacture-12-0/?utm_source=widget) +This repository is licensed under [AGPL-3.0](LICENSE). + +However, each module can have a totally different license, as long as they adhere to Odoo Community Association (OCA) +policy. Consult each module's `__manifest__.py` file, which contains a `license` key +that explains its license. ---- -OCA, or the [Odoo Community Association](http://odoo-community.org/), is a nonprofit organization whose -mission is to support the collaborative development of Odoo features and -promote its widespread use. +OCA, or the [Odoo Community Association](http://odoo-community.org/), is a nonprofit +organization whose mission is to support the collaborative development of Odoo features +and promote its widespread use.