diff --git a/.copier-answers.yml b/.copier-answers.yml index 04ff7ead9f0..bb612b5f490 100644 --- a/.copier-answers.yml +++ b/.copier-answers.yml @@ -1,8 +1,8 @@ # Do NOT update manually; changes here will be overwritten by Copier -_commit: v1.31 +_commit: v1.42 _src_path: gh:oca/oca-addons-repo-template -ci: GitHub -convert_readme_fragments_to_markdown: false +additional_ruff_rules: [] +convert_readme_fragments_to_markdown: true enable_checklog_odoo: false generate_requirements_txt: true github_check_license: true @@ -19,10 +19,11 @@ org_slug: OCA rebel_module_groups: - crm_date_deadline_required - crm_partner_required -repo_description: 'TODO: add repo description.' +repo_description: 'Modules to extend and improve Odoo CRM features: opportunities, + leads, sales activities, and related integrations.' repo_name: crm repo_slug: crm repo_website: https://github.com/OCA/crm -use_pyproject_toml: false -use_ruff: false +use_pyproject_toml: true +use_ruff: true diff --git a/.flake8 b/.flake8 deleted file mode 100644 index e397e8ed4e3..00000000000 --- 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/.gitattributes b/.gitattributes new file mode 100644 index 00000000000..e0d56685a95 --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +test-requirements.txt merge=union diff --git a/.github/workflows/pre-commit.yml b/.github/workflows/pre-commit.yml index afd7524ef0d..36e6e44efd6 100644 --- a/.github/workflows/pre-commit.yml +++ b/.github/workflows/pre-commit.yml @@ -1,3 +1,4 @@ + name: pre-commit on: @@ -16,7 +17,9 @@ jobs: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: - python-version: "3.11" + python-version: "3.10" + cache: 'pip' + cache-dependency-path: '.pre-commit-config.yaml' - name: Get python version run: echo "PY=$(python -VV | sha256sum | cut -d' ' -f1)" >> $GITHUB_ENV - uses: actions/cache@v4 diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 84351cc94b2..cff86925cb6 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -58,7 +58,7 @@ jobs: makepot: "true" services: postgres: - image: postgres:12.0 + image: postgres:12 env: POSTGRES_USER: odoo POSTGRES_PASSWORD: odoo @@ -82,6 +82,13 @@ jobs: run: oca_init_test_database - name: Run tests run: oca_run_tests + - name: Upload screenshots from JS tests + uses: actions/upload-artifact@v4 + if: ${{ failure() }} + with: + name: Screenshots of failed JS tests - ${{ matrix.name }}${{ join(matrix.include) }} + path: /tmp/odoo_tests/${{ env.PGDATABASE }} + if-no-files-found: ignore - uses: codecov/codecov-action@v4 with: token: ${{ secrets.CODECOV_TOKEN }} diff --git a/.isort.cfg b/.isort.cfg deleted file mode 100644 index 0ec187efd1b..00000000000 --- 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 4f12aaffee6..4af5d60e484 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -21,7 +21,7 @@ exclude: | # You don't usually want a bot to modify your legal texts (LICENSE.*|COPYING.*) default_language_version: - python: python3 + python: python3.10 node: "16.17.0" repos: - repo: local @@ -38,8 +38,17 @@ repos: entry: found a en.po file language: fail files: '[a-zA-Z0-9_]*/i18n/en\.po$' + - id: obsolete dotfiles + name: obsolete dotfiles + entry: found obsolete files; remove them + files: '^(\.travis\.yml|\.t2d\.yml|CONTRIBUTING\.md)$' + language: fail + - repo: https://github.com/sbidoul/whool + rev: v1.3 + hooks: + - id: whool-init - repo: https://github.com/oca/maintainer-tools - rev: d5fab7ee87fceee858a3d01048c78a548974d935 + rev: f9b919b9868143135a9c9cb03021089cabba8223 hooks: # update the NOT INSTALLABLE ADDONS section above - id: oca-update-pre-commit-excluded-addons @@ -53,6 +62,8 @@ repos: - --repo-name=crm - --if-source-changed - --keep-source-digest + - --convert-fragments-to-markdown + - id: oca-gen-external-dependencies - repo: https://github.com/OCA/odoo-pre-commit-hooks rev: v0.0.25 hooks: @@ -60,21 +71,6 @@ repos: - id: oca-checks-po args: - --disable=po-pretty-format - - repo: https://github.com/myint/autoflake - rev: v1.6.1 - hooks: - - id: autoflake - 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 - hooks: - - id: black - repo: local hooks: - id: prettier @@ -127,35 +123,12 @@ 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.12.0 - hooks: - - id: isort - name: isort except __init__.py - args: - - --settings=. - exclude: /__init__\.py$ - - repo: https://github.com/acsone/setuptools-odoo - rev: 3.1.8 - 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/PyCQA/flake8 - rev: 5.0.0 + - 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: v8.0.19 hooks: diff --git a/.pylintrc b/.pylintrc index 554913276b4..0a521c31ffe 100644 --- a/.pylintrc +++ b/.pylintrc @@ -25,19 +25,25 @@ disable=all enable=anomalous-backslash-in-string, api-one-deprecated, api-one-multi-together, - assignment-from-none, - attribute-deprecated, class-camelcase, - dangerous-default-value, dangerous-view-replace-wo-priority, - development-status-allowed, duplicate-id-csv, - duplicate-key, duplicate-xml-fields, duplicate-xml-record-id, eval-referenced, - eval-used, incoherent-interpreter-exec-perm, + openerp-exception-warning, + redundant-modulename-xml, + relative-import, + rst-syntax-error, + wrong-tabs-instead-of-spaces, + xml-syntax-error, + assignment-from-none, + attribute-deprecated, + dangerous-default-value, + development-status-allowed, + duplicate-key, + eval-used, license-allowed, manifest-author-string, manifest-deprecated-key, @@ -48,73 +54,68 @@ enable=anomalous-backslash-in-string, method-inverse, method-required-super, method-search, - openerp-exception-warning, pointless-statement, pointless-string-statement, print-used, redundant-keyword-arg, - redundant-modulename-xml, reimported, - relative-import, return-in-init, - rst-syntax-error, sql-injection, too-few-format-args, translation-field, translation-required, unreachable, use-vim-comment, - wrong-tabs-instead-of-spaces, - xml-syntax-error, - attribute-string-redundant, character-not-valid-in-resource-link, - consider-merging-classes-inherited, - context-overridden, create-user-wo-reset-password, dangerous-filter-wo-user, dangerous-qweb-replace-wo-priority, deprecated-data-xml-node, deprecated-openerp-xml-node, duplicate-po-message-definition, - except-pass, file-not-used, + missing-newline-extrafiles, + old-api7-method-defined, + po-msgstr-variables, + po-syntax-error, + str-format-used, + unnecessary-utf8-coding-comment, + xml-attribute-translatable, + xml-deprecated-qweb-directive, + xml-deprecated-tree-attribute, + attribute-string-redundant, + consider-merging-classes-inherited, + context-overridden, + except-pass, invalid-commit, manifest-maintainers-list, - missing-newline-extrafiles, missing-readme, missing-return, odoo-addons-relative-import, - old-api7-method-defined, - po-msgstr-variables, - po-syntax-error, renamed-field-parameter, resource-not-exist, - str-format-used, test-folder-imported, translation-contains-variable, translation-positional-used, - unnecessary-utf8-coding-comment, website-manifest-key-not-valid-uri, - xml-attribute-translatable, - xml-deprecated-qweb-directive, - xml-deprecated-tree-attribute, external-request-timeout, - # messages that do not cause the lint step to fail - consider-merging-classes-inherited, + missing-manifest-dependency, + too-complex,, create-user-wo-reset-password, dangerous-filter-wo-user, - deprecated-module, file-not-used, - invalid-commit, - missing-manifest-dependency, missing-newline-extrafiles, - missing-readme, no-utf8-coding-comment, - odoo-addons-relative-import, old-api7-method-defined, + unnecessary-utf8-coding-comment, + # messages that do not cause the lint step to fail + consider-merging-classes-inherited, + deprecated-module, + invalid-commit, + missing-readme, + odoo-addons-relative-import, redefined-builtin, - too-complex, - unnecessary-utf8-coding-comment + manifest-external-assets [REPORTS] diff --git a/.pylintrc-mandatory b/.pylintrc-mandatory index 7a0cd4efefe..098393aadb8 100644 --- a/.pylintrc-mandatory +++ b/.pylintrc-mandatory @@ -17,19 +17,25 @@ disable=all enable=anomalous-backslash-in-string, api-one-deprecated, api-one-multi-together, - assignment-from-none, - attribute-deprecated, class-camelcase, - dangerous-default-value, dangerous-view-replace-wo-priority, - development-status-allowed, duplicate-id-csv, - duplicate-key, duplicate-xml-fields, duplicate-xml-record-id, eval-referenced, - eval-used, incoherent-interpreter-exec-perm, + openerp-exception-warning, + redundant-modulename-xml, + relative-import, + rst-syntax-error, + wrong-tabs-instead-of-spaces, + xml-syntax-error, + assignment-from-none, + attribute-deprecated, + dangerous-default-value, + development-status-allowed, + duplicate-key, + eval-used, license-allowed, manifest-author-string, manifest-deprecated-key, @@ -40,56 +46,50 @@ enable=anomalous-backslash-in-string, method-inverse, method-required-super, method-search, - openerp-exception-warning, pointless-statement, pointless-string-statement, print-used, redundant-keyword-arg, - redundant-modulename-xml, reimported, - relative-import, return-in-init, - rst-syntax-error, sql-injection, too-few-format-args, translation-field, translation-required, unreachable, use-vim-comment, - wrong-tabs-instead-of-spaces, - xml-syntax-error, - attribute-string-redundant, character-not-valid-in-resource-link, - consider-merging-classes-inherited, - context-overridden, create-user-wo-reset-password, dangerous-filter-wo-user, dangerous-qweb-replace-wo-priority, deprecated-data-xml-node, deprecated-openerp-xml-node, duplicate-po-message-definition, - except-pass, file-not-used, + missing-newline-extrafiles, + old-api7-method-defined, + po-msgstr-variables, + po-syntax-error, + str-format-used, + unnecessary-utf8-coding-comment, + xml-attribute-translatable, + xml-deprecated-qweb-directive, + xml-deprecated-tree-attribute, + attribute-string-redundant, + consider-merging-classes-inherited, + context-overridden, + except-pass, invalid-commit, manifest-maintainers-list, - missing-newline-extrafiles, missing-readme, missing-return, odoo-addons-relative-import, - old-api7-method-defined, - po-msgstr-variables, - po-syntax-error, renamed-field-parameter, resource-not-exist, - str-format-used, test-folder-imported, translation-contains-variable, translation-positional-used, - unnecessary-utf8-coding-comment, website-manifest-key-not-valid-uri, - xml-attribute-translatable, - xml-deprecated-qweb-directive, - xml-deprecated-tree-attribute, external-request-timeout [REPORTS] diff --git a/.ruff.toml b/.ruff.toml new file mode 100644 index 00000000000..8e8eccb6d5b --- /dev/null +++ b/.ruff.toml @@ -0,0 +1,31 @@ + +target-version = "py310" +fix = true + +[lint] +extend-select = [ + "B", + "C90", + "E501", # line too long (default 88) + "I", # isort + "UP", # pyupgrade +] +extend-safe-fixes = ["UP008"] +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.md b/README.md index 6a74845fab0..ca6af29c8f0 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,7 @@ +[![Support the OCA](https://odoo-community.org/readme-banner-image)](https://odoo-community.org/get-involved?utm_source=repo-readme) + +# crm [![Runboat](https://img.shields.io/badge/runboat-Try%20me-875A7B.png)](https://runboat.odoo-community.org/builds?repo=OCA/crm&target_branch=16.0) [![Pre-commit Status](https://github.com/OCA/crm/actions/workflows/pre-commit.yml/badge.svg?branch=16.0)](https://github.com/OCA/crm/actions/workflows/pre-commit.yml?query=branch%3A16.0) [![Build Status](https://github.com/OCA/crm/actions/workflows/test.yml/badge.svg?branch=16.0)](https://github.com/OCA/crm/actions/workflows/test.yml?query=branch%3A16.0) @@ -7,9 +10,7 @@ -# crm - -TODO: add repo description. +Modules to extend and improve Odoo CRM features: opportunities, leads, sales activities, and related integrations. diff --git a/crm_claim/README.rst b/crm_claim/README.rst index ffe16a43e20..35e501ec045 100644 --- a/crm_claim/README.rst +++ b/crm_claim/README.rst @@ -1,3 +1,7 @@ +.. image:: https://odoo-community.org/readme-banner-image + :target: https://odoo-community.org/get-involved?utm_source=readme + :alt: Odoo Community Association + ================= Claims Management ================= @@ -13,7 +17,7 @@ Claims Management .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png :target: https://odoo-community.org/page/development-status :alt: Beta -.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png +.. |badge2| image:: https://img.shields.io/badge/license-AGPL--3-blue.png :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fcrm-lightgray.png?logo=github @@ -44,23 +48,23 @@ Configuration To configure this module, you need to: -* Go to new menu **CRM > Configuration > Claim > Categories** and create as - many categories as you need. -* Go to new menú **CRM > Configuration > Claim > Stages** and create stages for - claims. +- Go to new menu **CRM > Configuration > Claim > Categories** and + create as many categories as you need. +- Go to new menú **CRM > Configuration > Claim > Stages** and create + stages for claims. Usage ===== -* Go to new menu **CRM > After Sale > Services > Claims** and create a new - claim. +- Go to new menu **CRM > After Sale > Services > Claims** and create a + new claim. Changelog ========= -**This module is a backport from Odoo SA and as such, it is not included in the -OCA CLA. That means we do not have a copy of the copyright on it like all -other OCA modules.** +**This module is a backport from Odoo SA and as such, it is not included +in the OCA CLA. That means we do not have a copy of the copyright on it +like all other OCA modules.** Bug Tracker =========== @@ -76,25 +80,25 @@ Credits ======= Authors -~~~~~~~ +------- * Odoo S.A. * Tecnativa Contributors -~~~~~~~~~~~~ +------------ -* Odoo S.A. -* Vicent Cubells -* Bhavesh Odedra -* Cristina Martin R. -* Ruchir Shukla -* `Guadaltech `_: +- Odoo S.A. +- Vicent Cubells +- Bhavesh Odedra +- Cristina Martin R. +- Ruchir Shukla +- `Guadaltech `__: - * Fernando La Chica + - Fernando La Chica Maintainers -~~~~~~~~~~~ +----------- This module is maintained by the OCA. diff --git a/crm_claim/models/crm_claim.py b/crm_claim/models/crm_claim.py index 1fd77432a0d..7f12ea55e91 100644 --- a/crm_claim/models/crm_claim.py +++ b/crm_claim/models/crm_claim.py @@ -149,7 +149,7 @@ def copy(self, default=None): stage_id=self._get_default_stage_id(), name=_("%s (copy)") % self.name, ) - return super(CrmClaim, self).copy(default) + return super().copy(default) # ------------------------------------------------------- # Mail gateway @@ -173,4 +173,4 @@ def message_new(self, msg, custom_values=None): if msg.get("priority"): defaults["priority"] = msg.get("priority") defaults.update(custom_values) - return super(CrmClaim, self).message_new(msg, custom_values=defaults) + return super().message_new(msg, custom_values=defaults) diff --git a/crm_claim/pyproject.toml b/crm_claim/pyproject.toml new file mode 100644 index 00000000000..4231d0cccb3 --- /dev/null +++ b/crm_claim/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.buildapi" diff --git a/crm_claim/readme/CONFIGURE.md b/crm_claim/readme/CONFIGURE.md new file mode 100644 index 00000000000..1c9d0a93c0d --- /dev/null +++ b/crm_claim/readme/CONFIGURE.md @@ -0,0 +1,6 @@ +To configure this module, you need to: + +- Go to new menu **CRM \> Configuration \> Claim \> Categories** and + create as many categories as you need. +- Go to new menú **CRM \> Configuration \> Claim \> Stages** and + create stages for claims. diff --git a/crm_claim/readme/CONFIGURE.rst b/crm_claim/readme/CONFIGURE.rst deleted file mode 100644 index 90c4588f449..00000000000 --- a/crm_claim/readme/CONFIGURE.rst +++ /dev/null @@ -1,6 +0,0 @@ -To configure this module, you need to: - -* Go to new menu **CRM > Configuration > Claim > Categories** and create as - many categories as you need. -* Go to new menú **CRM > Configuration > Claim > Stages** and create stages for - claims. diff --git a/crm_claim/readme/CONTRIBUTORS.md b/crm_claim/readme/CONTRIBUTORS.md new file mode 100644 index 00000000000..86879733689 --- /dev/null +++ b/crm_claim/readme/CONTRIBUTORS.md @@ -0,0 +1,7 @@ +- Odoo S.A. +- Vicent Cubells \<\> +- Bhavesh Odedra \<\> +- Cristina Martin R. \<\> +- Ruchir Shukla \<\> +- [Guadaltech](https://www.guadaltech.es): + - Fernando La Chica \<\> diff --git a/crm_claim/readme/CONTRIBUTORS.rst b/crm_claim/readme/CONTRIBUTORS.rst deleted file mode 100644 index 03a2723b518..00000000000 --- a/crm_claim/readme/CONTRIBUTORS.rst +++ /dev/null @@ -1,8 +0,0 @@ -* Odoo S.A. -* Vicent Cubells -* Bhavesh Odedra -* Cristina Martin R. -* Ruchir Shukla -* `Guadaltech `_: - - * Fernando La Chica diff --git a/crm_claim/readme/DESCRIPTION.rst b/crm_claim/readme/DESCRIPTION.md similarity index 100% rename from crm_claim/readme/DESCRIPTION.rst rename to crm_claim/readme/DESCRIPTION.md diff --git a/crm_claim/readme/HISTORY.md b/crm_claim/readme/HISTORY.md new file mode 100644 index 00000000000..63ec2e51add --- /dev/null +++ b/crm_claim/readme/HISTORY.md @@ -0,0 +1,3 @@ +**This module is a backport from Odoo SA and as such, it is not included +in the OCA CLA. That means we do not have a copy of the copyright on it +like all other OCA modules.** diff --git a/crm_claim/readme/HISTORY.rst b/crm_claim/readme/HISTORY.rst deleted file mode 100644 index abfd35581a9..00000000000 --- a/crm_claim/readme/HISTORY.rst +++ /dev/null @@ -1,3 +0,0 @@ -**This module is a backport from Odoo SA and as such, it is not included in the -OCA CLA. That means we do not have a copy of the copyright on it like all -other OCA modules.** diff --git a/crm_claim/readme/USAGE.md b/crm_claim/readme/USAGE.md new file mode 100644 index 00000000000..edf7e338f5d --- /dev/null +++ b/crm_claim/readme/USAGE.md @@ -0,0 +1,2 @@ +- Go to new menu **CRM \> After Sale \> Services \> Claims** and + create a new claim. diff --git a/crm_claim/readme/USAGE.rst b/crm_claim/readme/USAGE.rst deleted file mode 100644 index 1016d424739..00000000000 --- a/crm_claim/readme/USAGE.rst +++ /dev/null @@ -1,2 +0,0 @@ -* Go to new menu **CRM > After Sale > Services > Claims** and create a new - claim. diff --git a/crm_claim/static/description/index.html b/crm_claim/static/description/index.html index e4d674892c9..da408a70607 100644 --- a/crm_claim/static/description/index.html +++ b/crm_claim/static/description/index.html @@ -3,15 +3,16 @@ -Claims Management +README.rst -
-

Claims Management

+
+ + +Odoo Community Association + +
+

Claims Management

-

Beta License: AGPL-3 OCA/crm Translate me on Weblate Try me on Runboat

+

Beta License: AGPL-3 OCA/crm Translate me on Weblate Try me on Runboat

This application allows you to track your customers/vendors claims and grievances.

It is fully integrated with the email gateway so that you can create @@ -389,30 +395,30 @@

Claims Management

-

Configuration

+

Configuration

To configure this module, you need to:

    -
  • Go to new menu CRM > Configuration > Claim > Categories and create as -many categories as you need.
  • -
  • Go to new menú CRM > Configuration > Claim > Stages and create stages for -claims.
  • +
  • Go to new menu CRM > Configuration > Claim > Categories and +create as many categories as you need.
  • +
  • Go to new menú CRM > Configuration > Claim > Stages and create +stages for claims.
-

Usage

+

Usage

    -
  • Go to new menu CRM > After Sale > Services > Claims and create a new -claim.
  • +
  • Go to new menu CRM > After Sale > Services > Claims and create a +new claim.
-

Changelog

-

This module is a backport from Odoo SA and as such, it is not included in the -OCA CLA. That means we do not have a copy of the copyright on it like all -other OCA modules.

+

Changelog

+

This module is a backport from Odoo SA and as such, it is not included +in the OCA CLA. That means we do not have a copy of the copyright on it +like all other OCA modules.

-

Bug Tracker

+

Bug Tracker

Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed @@ -420,16 +426,16 @@

Bug Tracker

Do not contact contributors directly about support or help with technical issues.

-

Credits

+

Credits

-

Authors

+

Authors

  • Odoo S.A.
  • Tecnativa
-

Contributors

+

Contributors

-

Maintainers

+

Maintainers

This module is maintained by the OCA.

-Odoo Community Association + +Odoo Community Association +

OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use.

@@ -454,5 +462,6 @@

Maintainers

+
diff --git a/crm_claim_code/README.rst b/crm_claim_code/README.rst index d28ab4a1fab..9b1f2d7593f 100644 --- a/crm_claim_code/README.rst +++ b/crm_claim_code/README.rst @@ -32,7 +32,7 @@ Sequential Code for Claims |badge1| |badge2| |badge3| |badge4| |badge5| -* This module adds a sequential code for claims. +- This module adds a sequential code for claims. **Table of contents** @@ -44,8 +44,9 @@ Usage To use this module, you need to: -* Go to menu **CRM > After Sale > Claims** and create a new claim. -* Enter claim subject and Save it. You must see a new number for this claim. +- Go to menu **CRM > After Sale > Claims** and create a new claim. +- Enter claim subject and Save it. You must see a new number for this + claim. Bug Tracker =========== @@ -61,27 +62,27 @@ Credits ======= Authors -~~~~~~~ +------- * AvanzOSC * Tecnativa Contributors -~~~~~~~~~~~~ +------------ -* Ana Juaristi -* Iker Coranti -* Oihane Crucelaegui -* Alfredo de la Fuente -* Tharathip Chaweewongphan -* `Tecnativa `_: +- Ana Juaristi +- Iker Coranti +- Oihane Crucelaegui +- Alfredo de la Fuente +- Tharathip Chaweewongphan +- `Tecnativa `__: - * Ernesto Tejeda - * Pedro M. Baeza - * Vicent Cubells + - Ernesto Tejeda + - Pedro M. Baeza + - Vicent Cubells Maintainers -~~~~~~~~~~~ +----------- This module is maintained by the OCA. diff --git a/crm_claim_code/pyproject.toml b/crm_claim_code/pyproject.toml new file mode 100644 index 00000000000..4231d0cccb3 --- /dev/null +++ b/crm_claim_code/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.buildapi" diff --git a/crm_claim_code/readme/CONTRIBUTORS.md b/crm_claim_code/readme/CONTRIBUTORS.md new file mode 100644 index 00000000000..ffa4e012071 --- /dev/null +++ b/crm_claim_code/readme/CONTRIBUTORS.md @@ -0,0 +1,9 @@ +- Ana Juaristi \<\> +- Iker Coranti \<\> +- Oihane Crucelaegui \<\> +- Alfredo de la Fuente \<\> +- Tharathip Chaweewongphan \<\> +- [Tecnativa](https://www.tecnativa.com): + - Ernesto Tejeda + - Pedro M. Baeza + - Vicent Cubells diff --git a/crm_claim_code/readme/CONTRIBUTORS.rst b/crm_claim_code/readme/CONTRIBUTORS.rst deleted file mode 100644 index 2fdb4cf7ba7..00000000000 --- a/crm_claim_code/readme/CONTRIBUTORS.rst +++ /dev/null @@ -1,10 +0,0 @@ -* Ana Juaristi -* Iker Coranti -* Oihane Crucelaegui -* Alfredo de la Fuente -* Tharathip Chaweewongphan -* `Tecnativa `_: - - * Ernesto Tejeda - * Pedro M. Baeza - * Vicent Cubells diff --git a/crm_claim_code/readme/DESCRIPTION.md b/crm_claim_code/readme/DESCRIPTION.md new file mode 100644 index 00000000000..81357012212 --- /dev/null +++ b/crm_claim_code/readme/DESCRIPTION.md @@ -0,0 +1 @@ +- This module adds a sequential code for claims. diff --git a/crm_claim_code/readme/DESCRIPTION.rst b/crm_claim_code/readme/DESCRIPTION.rst deleted file mode 100644 index 0f694e56713..00000000000 --- a/crm_claim_code/readme/DESCRIPTION.rst +++ /dev/null @@ -1 +0,0 @@ -* This module adds a sequential code for claims. diff --git a/crm_claim_code/readme/USAGE.md b/crm_claim_code/readme/USAGE.md new file mode 100644 index 00000000000..337dee3ddaf --- /dev/null +++ b/crm_claim_code/readme/USAGE.md @@ -0,0 +1,5 @@ +To use this module, you need to: + +- Go to menu **CRM \> After Sale \> Claims** and create a new claim. +- Enter claim subject and Save it. You must see a new number for this + claim. diff --git a/crm_claim_code/readme/USAGE.rst b/crm_claim_code/readme/USAGE.rst deleted file mode 100644 index e47ec739ba9..00000000000 --- a/crm_claim_code/readme/USAGE.rst +++ /dev/null @@ -1,4 +0,0 @@ -To use this module, you need to: - -* Go to menu **CRM > After Sale > Claims** and create a new claim. -* Enter claim subject and Save it. You must see a new number for this claim. diff --git a/crm_claim_code/static/description/index.html b/crm_claim_code/static/description/index.html index 83869f89d74..1665e1bda27 100644 --- a/crm_claim_code/static/description/index.html +++ b/crm_claim_code/static/description/index.html @@ -396,7 +396,8 @@

Usage

To use this module, you need to:

  • Go to menu CRM > After Sale > Claims and create a new claim.
  • -
  • Enter claim subject and Save it. You must see a new number for this claim.
  • +
  • Enter claim subject and Save it. You must see a new number for this +claim.
diff --git a/crm_claim_code/tests/test_crm_claim_code.py b/crm_claim_code/tests/test_crm_claim_code.py index e9af4a74333..6ce50560046 100644 --- a/crm_claim_code/tests/test_crm_claim_code.py +++ b/crm_claim_code/tests/test_crm_claim_code.py @@ -9,7 +9,7 @@ class TestCrmClaimCode(common.TransactionCase): @classmethod def setUpClass(cls): - super(TestCrmClaimCode, cls).setUpClass() + super().setUpClass() cls.crm_claim_model = cls.env["crm.claim"] cls.ir_sequence_model = cls.env["ir.sequence"] cls.crm_sequence = cls.env.ref("crm_claim_code.sequence_claim") diff --git a/crm_claim_type/README.rst b/crm_claim_type/README.rst index a0d5b9d2ae8..bc5b4385346 100644 --- a/crm_claim_type/README.rst +++ b/crm_claim_type/README.rst @@ -1,3 +1,7 @@ +.. image:: https://odoo-community.org/readme-banner-image + :target: https://odoo-community.org/get-involved?utm_source=readme + :alt: Odoo Community Association + =============== CRM Claim Types =============== @@ -13,7 +17,7 @@ CRM Claim Types .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png :target: https://odoo-community.org/page/development-status :alt: Beta -.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png +.. |badge2| image:: https://img.shields.io/badge/license-AGPL--3-blue.png :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fcrm-lightgray.png?logo=github @@ -28,10 +32,11 @@ CRM Claim Types |badge1| |badge2| |badge3| |badge4| |badge5| -Provides a way to classify claims by type and to configure claim stages depending on claim types. +Provides a way to classify claims by type and to configure claim stages +depending on claim types. -Includes Customer, Supplier and Other claim types by default, -as well as stages configuration. +Includes Customer, Supplier and Other claim types by default, as well as +stages configuration. **Table of contents** @@ -41,20 +46,20 @@ as well as stages configuration. Configuration ============= -This module does not require any special configuration. -It contains a predefined set of claim types. +This module does not require any special configuration. It contains a +predefined set of claim types. -If you want to add your own claim types, go to **CRM > Configuration > Claim -> Claim Types**. +If you want to add your own claim types, go to **CRM > Configuration > +Claim > Claim Types**. Usage ===== To use this module, you need to: -* Go to **CRM > After Sale > Claims**, create a claim and fill out at least - **Claim Subject** and **Claim Type** fields. -* Or select an existing claim and fill out all relevant information. +- Go to **CRM > After Sale > Claims**, create a claim and fill out at + least **Claim Subject** and **Claim Type** fields. +- Or select an existing claim and fill out all relevant information. Bug Tracker =========== @@ -70,27 +75,26 @@ Credits ======= Authors -~~~~~~~ +------- * Vauxoo * Ursa Information Systems Contributors -~~~~~~~~~~~~ - -* Yanina Aular -* Osval Reyes -* Bhavesh Odedra -* Martin Wilderoth -* Alexandre Díaz -* Manuel Marquez +------------ -* `Pesol `__: +- Yanina Aular +- Osval Reyes +- Bhavesh Odedra +- Martin Wilderoth +- Alexandre Díaz +- Manuel Marquez +- `Pesol `__: - * Jonathan Oscategui Taza + - Jonathan Oscategui Taza Maintainers -~~~~~~~~~~~ +----------- This module is maintained by the OCA. diff --git a/crm_claim_type/models/crm_claim_stage.py b/crm_claim_type/models/crm_claim_stage.py index 7476bda159e..fc4918df25a 100644 --- a/crm_claim_type/models/crm_claim_stage.py +++ b/crm_claim_type/models/crm_claim_stage.py @@ -8,7 +8,6 @@ class CrmClaimStage(models.Model): - _inherit = "crm.claim.stage" claim_type = fields.Many2one("crm.claim.type", help="Claim classification") diff --git a/crm_claim_type/pyproject.toml b/crm_claim_type/pyproject.toml new file mode 100644 index 00000000000..4231d0cccb3 --- /dev/null +++ b/crm_claim_type/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.buildapi" diff --git a/crm_claim_type/readme/CONFIGURE.md b/crm_claim_type/readme/CONFIGURE.md new file mode 100644 index 00000000000..f6f50dbd7e8 --- /dev/null +++ b/crm_claim_type/readme/CONFIGURE.md @@ -0,0 +1,5 @@ +This module does not require any special configuration. It contains a +predefined set of claim types. + +If you want to add your own claim types, go to **CRM \> Configuration \> +Claim \> Claim Types**. diff --git a/crm_claim_type/readme/CONFIGURE.rst b/crm_claim_type/readme/CONFIGURE.rst deleted file mode 100644 index ac02b134eed..00000000000 --- a/crm_claim_type/readme/CONFIGURE.rst +++ /dev/null @@ -1,5 +0,0 @@ -This module does not require any special configuration. -It contains a predefined set of claim types. - -If you want to add your own claim types, go to **CRM > Configuration > Claim -> Claim Types**. diff --git a/crm_claim_type/readme/CONTRIBUTORS.md b/crm_claim_type/readme/CONTRIBUTORS.md new file mode 100644 index 00000000000..655704c680d --- /dev/null +++ b/crm_claim_type/readme/CONTRIBUTORS.md @@ -0,0 +1,8 @@ +- Yanina Aular \<\> +- Osval Reyes \<\> +- Bhavesh Odedra \<\> +- Martin Wilderoth \<\> +- Alexandre Díaz \<\> +- Manuel Marquez \<\> +- [Pesol](https://www.pesol.es): + - Jonathan Oscategui Taza \<\> diff --git a/crm_claim_type/readme/CONTRIBUTORS.rst b/crm_claim_type/readme/CONTRIBUTORS.rst deleted file mode 100644 index c525776f072..00000000000 --- a/crm_claim_type/readme/CONTRIBUTORS.rst +++ /dev/null @@ -1,10 +0,0 @@ -* Yanina Aular -* Osval Reyes -* Bhavesh Odedra -* Martin Wilderoth -* Alexandre Díaz -* Manuel Marquez - -* `Pesol `__: - - * Jonathan Oscategui Taza diff --git a/crm_claim_type/readme/DESCRIPTION.md b/crm_claim_type/readme/DESCRIPTION.md new file mode 100644 index 00000000000..f0b94d97317 --- /dev/null +++ b/crm_claim_type/readme/DESCRIPTION.md @@ -0,0 +1,5 @@ +Provides a way to classify claims by type and to configure claim stages +depending on claim types. + +Includes Customer, Supplier and Other claim types by default, as well as +stages configuration. diff --git a/crm_claim_type/readme/DESCRIPTION.rst b/crm_claim_type/readme/DESCRIPTION.rst deleted file mode 100644 index ede8a3fb4f0..00000000000 --- a/crm_claim_type/readme/DESCRIPTION.rst +++ /dev/null @@ -1,4 +0,0 @@ -Provides a way to classify claims by type and to configure claim stages depending on claim types. - -Includes Customer, Supplier and Other claim types by default, -as well as stages configuration. diff --git a/crm_claim_type/readme/USAGE.md b/crm_claim_type/readme/USAGE.md new file mode 100644 index 00000000000..f189c6f3b29 --- /dev/null +++ b/crm_claim_type/readme/USAGE.md @@ -0,0 +1,5 @@ +To use this module, you need to: + +- Go to **CRM \> After Sale \> Claims**, create a claim and fill out + at least **Claim Subject** and **Claim Type** fields. +- Or select an existing claim and fill out all relevant information. diff --git a/crm_claim_type/readme/USAGE.rst b/crm_claim_type/readme/USAGE.rst deleted file mode 100644 index e5a30a355d1..00000000000 --- a/crm_claim_type/readme/USAGE.rst +++ /dev/null @@ -1,5 +0,0 @@ -To use this module, you need to: - -* Go to **CRM > After Sale > Claims**, create a claim and fill out at least - **Claim Subject** and **Claim Type** fields. -* Or select an existing claim and fill out all relevant information. diff --git a/crm_claim_type/static/description/index.html b/crm_claim_type/static/description/index.html index 38b93afb634..0bdf0995d17 100644 --- a/crm_claim_type/static/description/index.html +++ b/crm_claim_type/static/description/index.html @@ -1,18 +1,18 @@ - -CRM Claim Types +README.rst -
-

CRM Claim Types

+
+ + +Odoo Community Association + +
+

CRM Claim Types

-

Beta License: AGPL-3 OCA/crm Translate me on Weblate Try me on Runboat

-

Provides a way to classify claims by type and to configure claim stages depending on claim types.

-

Includes Customer, Supplier and Other claim types by default, -as well as stages configuration.

+

Beta License: AGPL-3 OCA/crm Translate me on Weblate Try me on Runboat

+

Provides a way to classify claims by type and to configure claim stages +depending on claim types.

+

Includes Customer, Supplier and Other claim types by default, as well as +stages configuration.

Table of contents

    @@ -388,23 +394,23 @@

    CRM Claim Types

-

Configuration

-

This module does not require any special configuration. -It contains a predefined set of claim types.

-

If you want to add your own claim types, go to CRM > Configuration > Claim -> Claim Types.

+

Configuration

+

This module does not require any special configuration. It contains a +predefined set of claim types.

+

If you want to add your own claim types, go to CRM > Configuration > +Claim > Claim Types.

-

Usage

+

Usage

To use this module, you need to:

    -
  • Go to CRM > After Sale > Claims, create a claim and fill out at least -Claim Subject and Claim Type fields.
  • +
  • Go to CRM > After Sale > Claims, create a claim and fill out at +least Claim Subject and Claim Type fields.
  • Or select an existing claim and fill out all relevant information.
-

Bug Tracker

+

Bug Tracker

Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed @@ -412,16 +418,16 @@

Bug Tracker

Do not contact contributors directly about support or help with technical issues.

-

Credits

+

Credits

-

Authors

+

Authors

  • Vauxoo
  • Ursa Information Systems
-

Contributors

+

Contributors

-

Maintainers

+

Maintainers

This module is maintained by the OCA.

-Odoo Community Association + +Odoo Community Association +

OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use.

@@ -447,5 +455,6 @@

Maintainers

+
diff --git a/crm_date_deadline_required/pyproject.toml b/crm_date_deadline_required/pyproject.toml new file mode 100644 index 00000000000..4231d0cccb3 --- /dev/null +++ b/crm_date_deadline_required/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.buildapi" diff --git a/crm_exception/README.rst b/crm_exception/README.rst index e8adda9f607..d13b2e1152f 100644 --- a/crm_exception/README.rst +++ b/crm_exception/README.rst @@ -1,3 +1,7 @@ +.. image:: https://odoo-community.org/readme-banner-image + :target: https://odoo-community.org/get-involved?utm_source=readme + :alt: Odoo Community Association + ============= CRM Exception ============= @@ -13,7 +17,7 @@ CRM Exception .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png :target: https://odoo-community.org/page/development-status :alt: Beta -.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png +.. |badge2| image:: https://img.shields.io/badge/license-AGPL--3-blue.png :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fcrm-lightgray.png?logo=github @@ -28,8 +32,9 @@ CRM Exception |badge1| |badge2| |badge3| |badge4| |badge5| -This module allows you to attach several customizable exceptions to your opportunities. -You can also define an exception rule to be applied to specific CRM stages. +This module allows you to attach several customizable exceptions to your +opportunities. You can also define an exception rule to be applied to +specific CRM stages. **Table of contents** @@ -41,22 +46,25 @@ Configuration **To configure CRM exception rule:** -#. Create a new exception rule. -#. Select "Lead" in the "Apply On" field (the 'stage_ids' field will be displayed). -#. Choose the CRM stage to which you want to apply the exception rule. -#. Specify the exception type and define the condition, then save the rule. +1. Create a new exception rule. +2. Select "Lead" in the "Apply On" field (the 'stage_ids' field will be + displayed). +3. Choose the CRM stage to which you want to apply the exception rule. +4. Specify the exception type and define the condition, then save the + rule. -**Note:** -If you don't specify a CRM stage for stage_ids (leave it blank), the rule will be checked at every stage. +**Note:** If you don't specify a CRM stage for stage_ids (leave it +blank), the rule will be checked at every stage. Known issues / Roadmap ====================== **No Exception checking in the create function.** -Adding exception checking to the create function would trigger an Odoo Client Error -related to JavaScript (Error: Component is destroyed) when attempting to create a new opportunity -in the pipeline's kanban view and clicking the edit button. +Adding exception checking to the create function would trigger an Odoo +Client Error related to JavaScript (Error: Component is destroyed) when +attempting to create a new opportunity in the pipeline's kanban view and +clicking the edit button. Bug Tracker =========== @@ -72,19 +80,19 @@ Credits ======= Authors -~~~~~~~ +------- * Quartile Limited Contributors -~~~~~~~~~~~~ +------------ -* `Quartile `__: +- `Quartile `__: - * Aung Ko Ko Lin + - Aung Ko Ko Lin Maintainers -~~~~~~~~~~~ +----------- This module is maintained by the OCA. diff --git a/crm_exception/pyproject.toml b/crm_exception/pyproject.toml new file mode 100644 index 00000000000..4231d0cccb3 --- /dev/null +++ b/crm_exception/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.buildapi" diff --git a/crm_exception/readme/CONFIGURE.md b/crm_exception/readme/CONFIGURE.md new file mode 100644 index 00000000000..37d86266c7c --- /dev/null +++ b/crm_exception/readme/CONFIGURE.md @@ -0,0 +1,11 @@ +**To configure CRM exception rule:** + +1. Create a new exception rule. +2. Select "Lead" in the "Apply On" field (the 'stage_ids' field will be + displayed). +3. Choose the CRM stage to which you want to apply the exception rule. +4. Specify the exception type and define the condition, then save the + rule. + +**Note:** If you don't specify a CRM stage for stage_ids (leave it +blank), the rule will be checked at every stage. diff --git a/crm_exception/readme/CONFIGURE.rst b/crm_exception/readme/CONFIGURE.rst deleted file mode 100644 index 60afb2d3c55..00000000000 --- a/crm_exception/readme/CONFIGURE.rst +++ /dev/null @@ -1,9 +0,0 @@ -**To configure CRM exception rule:** - -#. Create a new exception rule. -#. Select "Lead" in the "Apply On" field (the 'stage_ids' field will be displayed). -#. Choose the CRM stage to which you want to apply the exception rule. -#. Specify the exception type and define the condition, then save the rule. - -**Note:** -If you don't specify a CRM stage for stage_ids (leave it blank), the rule will be checked at every stage. diff --git a/crm_exception/readme/CONTRIBUTORS.md b/crm_exception/readme/CONTRIBUTORS.md new file mode 100644 index 00000000000..1e8327cd225 --- /dev/null +++ b/crm_exception/readme/CONTRIBUTORS.md @@ -0,0 +1,2 @@ +- [Quartile](https://www.quartile.co): + - Aung Ko Ko Lin diff --git a/crm_exception/readme/CONTRIBUTORS.rst b/crm_exception/readme/CONTRIBUTORS.rst deleted file mode 100644 index cd4e44ca98b..00000000000 --- a/crm_exception/readme/CONTRIBUTORS.rst +++ /dev/null @@ -1,3 +0,0 @@ -* `Quartile `__: - - * Aung Ko Ko Lin diff --git a/crm_exception/readme/DESCRIPTION.md b/crm_exception/readme/DESCRIPTION.md new file mode 100644 index 00000000000..3b546ca262a --- /dev/null +++ b/crm_exception/readme/DESCRIPTION.md @@ -0,0 +1,3 @@ +This module allows you to attach several customizable exceptions to your +opportunities. You can also define an exception rule to be applied to +specific CRM stages. diff --git a/crm_exception/readme/DESCRIPTION.rst b/crm_exception/readme/DESCRIPTION.rst deleted file mode 100644 index 330a13cce7c..00000000000 --- a/crm_exception/readme/DESCRIPTION.rst +++ /dev/null @@ -1,2 +0,0 @@ -This module allows you to attach several customizable exceptions to your opportunities. -You can also define an exception rule to be applied to specific CRM stages. diff --git a/crm_exception/readme/ROADMAP.md b/crm_exception/readme/ROADMAP.md new file mode 100644 index 00000000000..69912a58cd2 --- /dev/null +++ b/crm_exception/readme/ROADMAP.md @@ -0,0 +1,6 @@ +**No Exception checking in the create function.** + +Adding exception checking to the create function would trigger an Odoo +Client Error related to JavaScript (Error: Component is destroyed) when +attempting to create a new opportunity in the pipeline's kanban view and +clicking the edit button. diff --git a/crm_exception/readme/ROADMAP.rst b/crm_exception/readme/ROADMAP.rst deleted file mode 100644 index 2eaf611d933..00000000000 --- a/crm_exception/readme/ROADMAP.rst +++ /dev/null @@ -1,5 +0,0 @@ -**No Exception checking in the create function.** - -Adding exception checking to the create function would trigger an Odoo Client Error -related to JavaScript (Error: Component is destroyed) when attempting to create a new opportunity -in the pipeline's kanban view and clicking the edit button. diff --git a/crm_exception/static/description/index.html b/crm_exception/static/description/index.html index bba5a603253..6aebf383087 100644 --- a/crm_exception/static/description/index.html +++ b/crm_exception/static/description/index.html @@ -1,18 +1,18 @@ - -CRM Exception +README.rst -
-

CRM Exception

+
+ + +Odoo Community Association + +
+

CRM Exception

-

Beta License: AGPL-3 OCA/crm Translate me on Weblate Try me on Runboat

-

This module allows you to attach several customizable exceptions to your opportunities. -You can also define an exception rule to be applied to specific CRM stages.

+

Beta License: AGPL-3 OCA/crm Translate me on Weblate Try me on Runboat

+

This module allows you to attach several customizable exceptions to your +opportunities. You can also define an exception rule to be applied to +specific CRM stages.

Table of contents

    @@ -387,26 +393,29 @@

    CRM Exception

-

Configuration

+

Configuration

To configure CRM exception rule:

  1. Create a new exception rule.
  2. -
  3. Select “Lead” in the “Apply On” field (the ‘stage_ids’ field will be displayed).
  4. +
  5. Select “Lead” in the “Apply On” field (the ‘stage_ids’ field will be +displayed).
  6. Choose the CRM stage to which you want to apply the exception rule.
  7. -
  8. Specify the exception type and define the condition, then save the rule.
  9. +
  10. Specify the exception type and define the condition, then save the +rule.
-

Note: -If you don’t specify a CRM stage for stage_ids (leave it blank), the rule will be checked at every stage.

+

Note: If you don’t specify a CRM stage for stage_ids (leave it +blank), the rule will be checked at every stage.

-

Known issues / Roadmap

+

Known issues / Roadmap

No Exception checking in the create function.

-

Adding exception checking to the create function would trigger an Odoo Client Error -related to JavaScript (Error: Component is destroyed) when attempting to create a new opportunity -in the pipeline’s kanban view and clicking the edit button.

+

Adding exception checking to the create function would trigger an Odoo +Client Error related to JavaScript (Error: Component is destroyed) when +attempting to create a new opportunity in the pipeline’s kanban view and +clicking the edit button.

-

Bug Tracker

+

Bug Tracker

Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed @@ -414,15 +423,15 @@

Bug Tracker

Do not contact contributors directly about support or help with technical issues.

-

Credits

+

Credits

-

Authors

+

Authors

  • Quartile Limited
-

Contributors

+

Contributors

-

Maintainers

+

Maintainers

This module is maintained by the OCA.

-Odoo Community Association + +Odoo Community Association +

OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use.

@@ -442,5 +453,6 @@

Maintainers

+
diff --git a/crm_industry/README.rst b/crm_industry/README.rst index 76a70172e80..517f29cae67 100644 --- a/crm_industry/README.rst +++ b/crm_industry/README.rst @@ -1,3 +1,7 @@ +.. image:: https://odoo-community.org/readme-banner-image + :target: https://odoo-community.org/get-involved?utm_source=readme + :alt: Odoo Community Association + ============ CRM Industry ============ @@ -13,7 +17,7 @@ CRM Industry .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png :target: https://odoo-community.org/page/development-status :alt: Beta -.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png +.. |badge2| image:: https://img.shields.io/badge/license-AGPL--3-blue.png :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fcrm-lightgray.png?logo=github @@ -49,27 +53,26 @@ Credits ======= Authors -~~~~~~~ +------- * Tecnativa Contributors -~~~~~~~~~~~~ - -* Rafael Blasco -* Antonio Espinosa -* Javier Iniesta -* Luis M. Ontalba -* Miquel Raïch -* Alexandre Díaz -* Manuel Marquez +------------ -* `Pesol `__: +- Rafael Blasco +- Antonio Espinosa +- Javier Iniesta +- Luis M. Ontalba +- Miquel Raïch +- Alexandre Díaz +- Manuel Marquez +- `Pesol `__: - * Jonathan Oscategui Taza + - Jonathan Oscategui Taza Maintainers -~~~~~~~~~~~ +----------- This module is maintained by the OCA. diff --git a/crm_industry/pyproject.toml b/crm_industry/pyproject.toml new file mode 100644 index 00000000000..4231d0cccb3 --- /dev/null +++ b/crm_industry/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.buildapi" diff --git a/crm_industry/readme/CONTRIBUTORS.md b/crm_industry/readme/CONTRIBUTORS.md new file mode 100644 index 00000000000..71850d98ba8 --- /dev/null +++ b/crm_industry/readme/CONTRIBUTORS.md @@ -0,0 +1,9 @@ +- Rafael Blasco \<\> +- Antonio Espinosa \<\> +- Javier Iniesta \<\> +- Luis M. Ontalba \<\> +- Miquel Raïch \<\> +- Alexandre Díaz \<\> +- Manuel Marquez \<\> +- [Pesol](https://www.pesol.es): + - Jonathan Oscategui Taza \<\> diff --git a/crm_industry/readme/CONTRIBUTORS.rst b/crm_industry/readme/CONTRIBUTORS.rst deleted file mode 100644 index 2415cc6128f..00000000000 --- a/crm_industry/readme/CONTRIBUTORS.rst +++ /dev/null @@ -1,11 +0,0 @@ -* Rafael Blasco -* Antonio Espinosa -* Javier Iniesta -* Luis M. Ontalba -* Miquel Raïch -* Alexandre Díaz -* Manuel Marquez - -* `Pesol `__: - - * Jonathan Oscategui Taza diff --git a/crm_industry/readme/DESCRIPTION.rst b/crm_industry/readme/DESCRIPTION.md similarity index 100% rename from crm_industry/readme/DESCRIPTION.rst rename to crm_industry/readme/DESCRIPTION.md diff --git a/crm_industry/static/description/index.html b/crm_industry/static/description/index.html index ae1a0974bd9..ea3d300c5b2 100644 --- a/crm_industry/static/description/index.html +++ b/crm_industry/static/description/index.html @@ -3,15 +3,16 @@ -CRM Industry +README.rst -
-

CRM Industry

+
+ + +Odoo Community Association + +
+

CRM Industry

-

Beta License: AGPL-3 OCA/crm Translate me on Weblate Try me on Runboat

+

Beta License: AGPL-3 OCA/crm Translate me on Weblate Try me on Runboat

This module adds industries for leads and opportunities.

Table of contents

@@ -383,7 +389,7 @@

CRM Industry

-

Bug Tracker

+

Bug Tracker

Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed @@ -391,15 +397,15 @@

Bug Tracker

Do not contact contributors directly about support or help with technical issues.

-

Credits

+

Credits

-

Authors

+

Authors

  • Tecnativa
-

Contributors

+

Contributors

-

Maintainers

+

Maintainers

This module is maintained by the OCA.

-Odoo Community Association + +Odoo Community Association +

OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use.

@@ -426,5 +434,6 @@

Maintainers

+
diff --git a/crm_lead_code/README.rst b/crm_lead_code/README.rst index 4b909bedace..8244dcfb3ca 100644 --- a/crm_lead_code/README.rst +++ b/crm_lead_code/README.rst @@ -1,3 +1,7 @@ +.. image:: https://odoo-community.org/readme-banner-image + :target: https://odoo-community.org/get-involved?utm_source=readme + :alt: Odoo Community Association + ========================================= Sequential Code for Leads / Opportunities ========================================= @@ -13,7 +17,7 @@ Sequential Code for Leads / Opportunities .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png :target: https://odoo-community.org/page/development-status :alt: Beta -.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png +.. |badge2| image:: https://img.shields.io/badge/license-AGPL--3-blue.png :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fcrm-lightgray.png?logo=github @@ -49,24 +53,24 @@ Credits ======= Authors -~~~~~~~ +------- * Tecnativa * AvanzOSC Contributors -~~~~~~~~~~~~ +------------ -* Oihane Crucelaegui -* Pedro M. Baeza -* Ana Juaristi -* Nicol??s Ramos -* Mathias Markl -* Serpent Consulting Services Pvt. Ltd. -* Tharathip Chaweewongphan +- Oihane Crucelaegui +- Pedro M. Baeza +- Ana Juaristi +- Nicol??s Ramos +- Mathias Markl +- Serpent Consulting Services Pvt. Ltd. +- Tharathip Chaweewongphan Maintainers -~~~~~~~~~~~ +----------- This module is maintained by the OCA. diff --git a/crm_lead_code/pyproject.toml b/crm_lead_code/pyproject.toml new file mode 100644 index 00000000000..4231d0cccb3 --- /dev/null +++ b/crm_lead_code/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.buildapi" diff --git a/crm_lead_code/readme/CONTRIBUTORS.md b/crm_lead_code/readme/CONTRIBUTORS.md new file mode 100644 index 00000000000..7919628b7b4 --- /dev/null +++ b/crm_lead_code/readme/CONTRIBUTORS.md @@ -0,0 +1,7 @@ +- Oihane Crucelaegui \<\> +- Pedro M. Baeza \<\> +- Ana Juaristi \<\> +- Nicol??s Ramos \<\> +- Mathias Markl \<\> +- Serpent Consulting Services Pvt. Ltd. \<\> +- Tharathip Chaweewongphan \<\> diff --git a/crm_lead_code/readme/CONTRIBUTORS.rst b/crm_lead_code/readme/CONTRIBUTORS.rst deleted file mode 100644 index 14f295c4a7b..00000000000 --- a/crm_lead_code/readme/CONTRIBUTORS.rst +++ /dev/null @@ -1,7 +0,0 @@ -* Oihane Crucelaegui -* Pedro M. Baeza -* Ana Juaristi -* Nicol??s Ramos -* Mathias Markl -* Serpent Consulting Services Pvt. Ltd. -* Tharathip Chaweewongphan diff --git a/crm_lead_code/readme/DESCRIPTION.rst b/crm_lead_code/readme/DESCRIPTION.md similarity index 100% rename from crm_lead_code/readme/DESCRIPTION.rst rename to crm_lead_code/readme/DESCRIPTION.md diff --git a/crm_lead_code/static/description/index.html b/crm_lead_code/static/description/index.html index ef0118daa35..e6a5b2af5bf 100644 --- a/crm_lead_code/static/description/index.html +++ b/crm_lead_code/static/description/index.html @@ -1,18 +1,18 @@ - -Sequential Code for Leads / Opportunities +README.rst -
-

Sequential Code for Leads / Opportunities

+
+ + +Odoo Community Association + +
+

Sequential Code for Leads / Opportunities

-

Beta License: AGPL-3 OCA/crm Translate me on Weblate Try me on Runboat

+

Beta License: AGPL-3 OCA/crm Translate me on Weblate Try me on Runboat

This module adds a sequential code for leads / opportunities.

Table of contents

@@ -384,7 +389,7 @@

Sequential Code for Leads / Opportunities

-

Bug Tracker

+

Bug Tracker

Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed @@ -392,16 +397,16 @@

Bug Tracker

Do not contact contributors directly about support or help with technical issues.

-

Credits

+

Credits

-

Authors

+

Authors

  • Tecnativa
  • AvanzOSC
-

Contributors

+

Contributors

-

Maintainers

+

Maintainers

This module is maintained by the OCA.

-Odoo Community Association + +Odoo Community Association +

OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use.

@@ -424,5 +431,6 @@

Maintainers

+
diff --git a/crm_lead_code/tests/test_crm_lead_code.py b/crm_lead_code/tests/test_crm_lead_code.py index 24fcdd7d364..da1aad70863 100644 --- a/crm_lead_code/tests/test_crm_lead_code.py +++ b/crm_lead_code/tests/test_crm_lead_code.py @@ -7,7 +7,7 @@ class TestCrmLeadCode(TransactionCase): def setUp(self): - super(TestCrmLeadCode, self).setUp() + super().setUp() self.crm_lead_model = self.env["crm.lead"] self.ir_sequence_model = self.env["ir.sequence"] self.crm_sequence = self.env.ref("crm_lead_code.sequence_lead") diff --git a/crm_lead_currency/README.rst b/crm_lead_currency/README.rst index db1b8a8d1d2..69a7c4366fb 100644 --- a/crm_lead_currency/README.rst +++ b/crm_lead_currency/README.rst @@ -1,3 +1,7 @@ +.. image:: https://odoo-community.org/readme-banner-image + :target: https://odoo-community.org/get-involved?utm_source=readme + :alt: Odoo Community Association + ================= CRM Lead Currency ================= @@ -13,7 +17,7 @@ CRM Lead Currency .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png :target: https://odoo-community.org/page/development-status :alt: Beta -.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png +.. |badge2| image:: https://img.shields.io/badge/license-AGPL--3-blue.png :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fcrm-lightgray.png?logo=github @@ -28,11 +32,12 @@ CRM Lead Currency |badge1| |badge2| |badge3| |badge4| |badge5| -This module allows to select a specific currency for a lead or an opportunity. -If the selected currency is different to the company currency, an amount in the customer -currency can be set and the expected revenue of the opportunity will automatically be -computed in the company currency. The default rate used for the computation is the rate -of the day. +This module allows to select a specific currency for a lead or an +opportunity. If the selected currency is different to the company +currency, an amount in the customer currency can be set and the expected +revenue of the opportunity will automatically be computed in the company +currency. The default rate used for the computation is the rate of the +day. **Table of contents** @@ -47,15 +52,16 @@ Just install the module. Configuration ============= -No specific configuration is needed but multi-currency should be enabled for the module -to make sense. +No specific configuration is needed but multi-currency should be enabled +for the module to make sense. Usage ===== To use this module, you need to: -#. Created a new opportunity in the CRM and set a customer currency on it. +1. Created a new opportunity in the CRM and set a customer currency on + it. Bug Tracker =========== @@ -71,18 +77,18 @@ Credits ======= Authors -~~~~~~~ +------- * Camptocamp SA * Vauxoo Contributors -~~~~~~~~~~~~ +------------ -* Thierry Ducrest +- Thierry Ducrest Maintainers -~~~~~~~~~~~ +----------- This module is maintained by the OCA. diff --git a/crm_lead_currency/pyproject.toml b/crm_lead_currency/pyproject.toml new file mode 100644 index 00000000000..4231d0cccb3 --- /dev/null +++ b/crm_lead_currency/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.buildapi" diff --git a/crm_lead_currency/readme/CONFIGURE.rst b/crm_lead_currency/readme/CONFIGURE.md similarity index 62% rename from crm_lead_currency/readme/CONFIGURE.rst rename to crm_lead_currency/readme/CONFIGURE.md index e40f4836408..2634129665e 100644 --- a/crm_lead_currency/readme/CONFIGURE.rst +++ b/crm_lead_currency/readme/CONFIGURE.md @@ -1,2 +1,2 @@ -No specific configuration is needed but multi-currency should be enabled for the module -to make sense. +No specific configuration is needed but multi-currency should be enabled +for the module to make sense. diff --git a/crm_lead_currency/readme/CONTRIBUTORS.md b/crm_lead_currency/readme/CONTRIBUTORS.md new file mode 100644 index 00000000000..fb781461808 --- /dev/null +++ b/crm_lead_currency/readme/CONTRIBUTORS.md @@ -0,0 +1 @@ +- Thierry Ducrest \<\> diff --git a/crm_lead_currency/readme/CONTRIBUTORS.rst b/crm_lead_currency/readme/CONTRIBUTORS.rst deleted file mode 100644 index 0dd376faecb..00000000000 --- a/crm_lead_currency/readme/CONTRIBUTORS.rst +++ /dev/null @@ -1 +0,0 @@ -* Thierry Ducrest diff --git a/crm_lead_currency/readme/DESCRIPTION.md b/crm_lead_currency/readme/DESCRIPTION.md new file mode 100644 index 00000000000..eaedbb31130 --- /dev/null +++ b/crm_lead_currency/readme/DESCRIPTION.md @@ -0,0 +1,6 @@ +This module allows to select a specific currency for a lead or an +opportunity. If the selected currency is different to the company +currency, an amount in the customer currency can be set and the expected +revenue of the opportunity will automatically be computed in the company +currency. The default rate used for the computation is the rate of the +day. diff --git a/crm_lead_currency/readme/DESCRIPTION.rst b/crm_lead_currency/readme/DESCRIPTION.rst deleted file mode 100644 index 3aca0a8678a..00000000000 --- a/crm_lead_currency/readme/DESCRIPTION.rst +++ /dev/null @@ -1,5 +0,0 @@ -This module allows to select a specific currency for a lead or an opportunity. -If the selected currency is different to the company currency, an amount in the customer -currency can be set and the expected revenue of the opportunity will automatically be -computed in the company currency. The default rate used for the computation is the rate -of the day. diff --git a/crm_lead_currency/readme/INSTALL.rst b/crm_lead_currency/readme/INSTALL.md similarity index 100% rename from crm_lead_currency/readme/INSTALL.rst rename to crm_lead_currency/readme/INSTALL.md diff --git a/crm_lead_currency/readme/USAGE.md b/crm_lead_currency/readme/USAGE.md new file mode 100644 index 00000000000..c0e69bc8b42 --- /dev/null +++ b/crm_lead_currency/readme/USAGE.md @@ -0,0 +1,4 @@ +To use this module, you need to: + +1. Created a new opportunity in the CRM and set a customer currency on + it. diff --git a/crm_lead_currency/readme/USAGE.rst b/crm_lead_currency/readme/USAGE.rst deleted file mode 100644 index 7f0e5e70387..00000000000 --- a/crm_lead_currency/readme/USAGE.rst +++ /dev/null @@ -1,3 +0,0 @@ -To use this module, you need to: - -#. Created a new opportunity in the CRM and set a customer currency on it. diff --git a/crm_lead_currency/static/description/index.html b/crm_lead_currency/static/description/index.html index 35e9651b2a7..71f93d2cf69 100644 --- a/crm_lead_currency/static/description/index.html +++ b/crm_lead_currency/static/description/index.html @@ -1,18 +1,18 @@ - -CRM Lead Currency +README.rst -
-

CRM Lead Currency

+
+ + +Odoo Community Association + +
+

CRM Lead Currency

-

Beta License: AGPL-3 OCA/crm Translate me on Weblate Try me on Runboat

-

This module allows to select a specific currency for a lead or an opportunity. -If the selected currency is different to the company currency, an amount in the customer -currency can be set and the expected revenue of the opportunity will automatically be -computed in the company currency. The default rate used for the computation is the rate -of the day.

+

Beta License: AGPL-3 OCA/crm Translate me on Weblate Try me on Runboat

+

This module allows to select a specific currency for a lead or an +opportunity. If the selected currency is different to the company +currency, an amount in the customer currency can be set and the expected +revenue of the opportunity will automatically be computed in the company +currency. The default rate used for the computation is the rate of the +day.

Table of contents

    @@ -391,23 +397,24 @@

    CRM Lead Currency

-

Installation

+

Installation

Just install the module.

-

Configuration

-

No specific configuration is needed but multi-currency should be enabled for the module -to make sense.

+

Configuration

+

No specific configuration is needed but multi-currency should be enabled +for the module to make sense.

-

Usage

+

Usage

To use this module, you need to:

    -
  1. Created a new opportunity in the CRM and set a customer currency on it.
  2. +
  3. Created a new opportunity in the CRM and set a customer currency on +it.
-

Bug Tracker

+

Bug Tracker

Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed @@ -415,24 +422,26 @@

Bug Tracker

Do not contact contributors directly about support or help with technical issues.

-

Credits

+

Credits

-

Authors

+

Authors

  • Camptocamp SA
  • Vauxoo
-

Maintainers

+

Maintainers

This module is maintained by the OCA.

-Odoo Community Association + +Odoo Community Association +

OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use.

@@ -443,5 +452,6 @@

Maintainers

+
diff --git a/crm_lead_firstname/README.rst b/crm_lead_firstname/README.rst index e49a1bc03d7..2e4652d3d75 100644 --- a/crm_lead_firstname/README.rst +++ b/crm_lead_firstname/README.rst @@ -1,3 +1,7 @@ +.. image:: https://odoo-community.org/readme-banner-image + :target: https://odoo-community.org/get-involved?utm_source=readme + :alt: Odoo Community Association + =============================== Firstname and Lastname in Leads =============================== @@ -13,7 +17,7 @@ Firstname and Lastname in Leads .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png :target: https://odoo-community.org/page/development-status :alt: Beta -.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png +.. |badge2| image:: https://img.shields.io/badge/license-AGPL--3-blue.png :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fcrm-lightgray.png?logo=github @@ -28,13 +32,13 @@ Firstname and Lastname in Leads |badge1| |badge2| |badge3| |badge4| |badge5| -This module extends the functionality of CRM leads to support split first and -last name fields for contacts and allow you to port that information to and -from partners. -Since leads are expected to create partners only when needed and after -information is correctly set up, in leads there is no inverse logic to -transform the old single name in the new split names automatically. The old -single name will simply be the firstname now. +This module extends the functionality of CRM leads to support split +first and last name fields for contacts and allow you to port that +information to and from partners. Since leads are expected to create +partners only when needed and after information is correctly set up, in +leads there is no inverse logic to transform the old single name in the +new split names automatically. The old single name will simply be the +firstname now. **Table of contents** @@ -46,21 +50,24 @@ Installation To install this module, you need to: -* Install `OCA/partner-contact `_ repo. +- Install + `OCA/partner-contact `__ + repo. Usage ===== To use this module, you need to: -* Go to *CRM > Leads > Leads > Create*. -* You have the new split fields *Firstname* and *Lastname*. Fill them. -* Press *Convert to Opportunity*. -* In *Related Customer* choose *Create a new customer*. -* Press *Create Opportunity*. -* In the new opportunity, go to *Followup* tab. There are the new fields too. -* If you go to the partner you just created, you will see that its first and - last names match those in the lead. +- Go to *CRM > Leads > Leads > Create*. +- You have the new split fields *Firstname* and *Lastname*. Fill them. +- Press *Convert to Opportunity*. +- In *Related Customer* choose *Create a new customer*. +- Press *Create Opportunity*. +- In the new opportunity, go to *Followup* tab. There are the new + fields too. +- If you go to the partner you just created, you will see that its + first and last names match those in the lead. Bug Tracker =========== @@ -76,20 +83,20 @@ Credits ======= Authors -~~~~~~~ +------- * Tecnativa Contributors -~~~~~~~~~~~~ +------------ -* Rafael Blasco -* Jairo Llopis -* Raf Ven -* Nikos Tsirintanis +- Rafael Blasco +- Jairo Llopis +- Raf Ven +- Nikos Tsirintanis Maintainers -~~~~~~~~~~~ +----------- This module is maintained by the OCA. diff --git a/crm_lead_firstname/models/crm_lead.py b/crm_lead_firstname/models/crm_lead.py index 94b4c748822..8cf7862c53d 100644 --- a/crm_lead_firstname/models/crm_lead.py +++ b/crm_lead_firstname/models/crm_lead.py @@ -12,7 +12,7 @@ class CrmLead(models.Model): def _prepare_customer_values(self, partner_name, is_company, parent_id=False): """Ensure first and last names of contact match those in lead.""" - lead_partner_data = super(CrmLead, self)._prepare_customer_values( + lead_partner_data = super()._prepare_customer_values( partner_name, is_company, parent_id ) if not is_company: @@ -28,7 +28,7 @@ def _prepare_customer_values(self, partner_name, is_company, parent_id=False): def _prepare_values_from_partner(self, partner): """Recover first and last names from partner if available.""" - result = super(CrmLead, self)._prepare_values_from_partner(partner) + result = super()._prepare_values_from_partner(partner) if partner: if not partner.is_company: diff --git a/crm_lead_firstname/pyproject.toml b/crm_lead_firstname/pyproject.toml new file mode 100644 index 00000000000..4231d0cccb3 --- /dev/null +++ b/crm_lead_firstname/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.buildapi" diff --git a/crm_lead_firstname/readme/CONTRIBUTORS.md b/crm_lead_firstname/readme/CONTRIBUTORS.md new file mode 100644 index 00000000000..5b317091e2c --- /dev/null +++ b/crm_lead_firstname/readme/CONTRIBUTORS.md @@ -0,0 +1,4 @@ +- Rafael Blasco +- Jairo Llopis +- Raf Ven \<\> +- Nikos Tsirintanis \<\> diff --git a/crm_lead_firstname/readme/CONTRIBUTORS.rst b/crm_lead_firstname/readme/CONTRIBUTORS.rst deleted file mode 100644 index 72e64124b50..00000000000 --- a/crm_lead_firstname/readme/CONTRIBUTORS.rst +++ /dev/null @@ -1,4 +0,0 @@ -* Rafael Blasco -* Jairo Llopis -* Raf Ven -* Nikos Tsirintanis diff --git a/crm_lead_firstname/readme/DESCRIPTION.md b/crm_lead_firstname/readme/DESCRIPTION.md new file mode 100644 index 00000000000..639f371cb1b --- /dev/null +++ b/crm_lead_firstname/readme/DESCRIPTION.md @@ -0,0 +1,7 @@ +This module extends the functionality of CRM leads to support split +first and last name fields for contacts and allow you to port that +information to and from partners. Since leads are expected to create +partners only when needed and after information is correctly set up, in +leads there is no inverse logic to transform the old single name in the +new split names automatically. The old single name will simply be the +firstname now. diff --git a/crm_lead_firstname/readme/DESCRIPTION.rst b/crm_lead_firstname/readme/DESCRIPTION.rst deleted file mode 100644 index 7e3a4d6e7d1..00000000000 --- a/crm_lead_firstname/readme/DESCRIPTION.rst +++ /dev/null @@ -1,7 +0,0 @@ -This module extends the functionality of CRM leads to support split first and -last name fields for contacts and allow you to port that information to and -from partners. -Since leads are expected to create partners only when needed and after -information is correctly set up, in leads there is no inverse logic to -transform the old single name in the new split names automatically. The old -single name will simply be the firstname now. diff --git a/crm_lead_firstname/readme/INSTALL.md b/crm_lead_firstname/readme/INSTALL.md new file mode 100644 index 00000000000..15da058a8f9 --- /dev/null +++ b/crm_lead_firstname/readme/INSTALL.md @@ -0,0 +1,4 @@ +To install this module, you need to: + +- Install + [OCA/partner-contact](https://github.com/OCA/partner-contact) repo. diff --git a/crm_lead_firstname/readme/INSTALL.rst b/crm_lead_firstname/readme/INSTALL.rst deleted file mode 100644 index 0cbfe9c472b..00000000000 --- a/crm_lead_firstname/readme/INSTALL.rst +++ /dev/null @@ -1,3 +0,0 @@ -To install this module, you need to: - -* Install `OCA/partner-contact `_ repo. diff --git a/crm_lead_firstname/readme/USAGE.md b/crm_lead_firstname/readme/USAGE.md new file mode 100644 index 00000000000..ad92f7c1004 --- /dev/null +++ b/crm_lead_firstname/readme/USAGE.md @@ -0,0 +1,11 @@ +To use this module, you need to: + +- Go to *CRM \> Leads \> Leads \> Create*. +- You have the new split fields *Firstname* and *Lastname*. Fill them. +- Press *Convert to Opportunity*. +- In *Related Customer* choose *Create a new customer*. +- Press *Create Opportunity*. +- In the new opportunity, go to *Followup* tab. There are the new + fields too. +- If you go to the partner you just created, you will see that its + first and last names match those in the lead. diff --git a/crm_lead_firstname/readme/USAGE.rst b/crm_lead_firstname/readme/USAGE.rst deleted file mode 100644 index 6930c1e4aed..00000000000 --- a/crm_lead_firstname/readme/USAGE.rst +++ /dev/null @@ -1,10 +0,0 @@ -To use this module, you need to: - -* Go to *CRM > Leads > Leads > Create*. -* You have the new split fields *Firstname* and *Lastname*. Fill them. -* Press *Convert to Opportunity*. -* In *Related Customer* choose *Create a new customer*. -* Press *Create Opportunity*. -* In the new opportunity, go to *Followup* tab. There are the new fields too. -* If you go to the partner you just created, you will see that its first and - last names match those in the lead. diff --git a/crm_lead_firstname/static/description/index.html b/crm_lead_firstname/static/description/index.html index 40862304501..b4f38b1b5b6 100644 --- a/crm_lead_firstname/static/description/index.html +++ b/crm_lead_firstname/static/description/index.html @@ -1,18 +1,18 @@ - -Firstname and Lastname in Leads +README.rst -
-

Firstname and Lastname in Leads

+
+ + +Odoo Community Association + +
+

Firstname and Lastname in Leads

-

Beta License: AGPL-3 OCA/crm Translate me on Weblate Try me on Runboat

-

This module extends the functionality of CRM leads to support split first and -last name fields for contacts and allow you to port that information to and -from partners. -Since leads are expected to create partners only when needed and after -information is correctly set up, in leads there is no inverse logic to -transform the old single name in the new split names automatically. The old -single name will simply be the firstname now.

+

Beta License: AGPL-3 OCA/crm Translate me on Weblate Try me on Runboat

+

This module extends the functionality of CRM leads to support split +first and last name fields for contacts and allow you to port that +information to and from partners. Since leads are expected to create +partners only when needed and after information is correctly set up, in +leads there is no inverse logic to transform the old single name in the +new split names automatically. The old single name will simply be the +firstname now.

Table of contents

    @@ -392,14 +397,16 @@

    Firstname and Lastname in Leads

-

Installation

+

Installation

To install this module, you need to:

-

Usage

+

Usage

To use this module, you need to:

  • Go to CRM > Leads > Leads > Create.
  • @@ -407,13 +414,14 @@

    Usage

  • Press Convert to Opportunity.
  • In Related Customer choose Create a new customer.
  • Press Create Opportunity.
  • -
  • In the new opportunity, go to Followup tab. There are the new fields too.
  • -
  • If you go to the partner you just created, you will see that its first and -last names match those in the lead.
  • +
  • In the new opportunity, go to Followup tab. There are the new +fields too.
  • +
  • If you go to the partner you just created, you will see that its +first and last names match those in the lead.
-

Bug Tracker

+

Bug Tracker

Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed @@ -421,15 +429,15 @@

Bug Tracker

Do not contact contributors directly about support or help with technical issues.

-

Credits

+

Credits

-

Authors

+

Authors

  • Tecnativa
-

Contributors

+

Contributors

  • Rafael Blasco
  • Jairo Llopis
  • @@ -438,9 +446,11 @@

    Contributors

-

Maintainers

+

Maintainers

This module is maintained by the OCA.

-Odoo Community Association + +Odoo Community Association +

OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use.

@@ -449,5 +459,6 @@

Maintainers

+
diff --git a/crm_lead_firstname/tests/test_crm_lead.py b/crm_lead_firstname/tests/test_crm_lead.py index 2ef120225b7..b1b4026c585 100644 --- a/crm_lead_firstname/tests/test_crm_lead.py +++ b/crm_lead_firstname/tests/test_crm_lead.py @@ -7,7 +7,7 @@ class FirstNameCase(TransactionCase): @classmethod def setUpClass(cls): - super(FirstNameCase, cls).setUpClass() + super().setUpClass() cls.env = cls.env(context=dict(cls.env.context, tracking_disable=True)) cls.lead_model = cls.env["crm.lead"] cls.partner_model = cls.env["res.partner"] diff --git a/crm_lead_product/README.rst b/crm_lead_product/README.rst index 10df9f0af76..5b342acaa94 100644 --- a/crm_lead_product/README.rst +++ b/crm_lead_product/README.rst @@ -32,15 +32,20 @@ Lead Line Product |badge1| |badge2| |badge3| |badge4| |badge5| - -This module allows the user to link multiple products, product categories or product templates to a lead or an opportunity -in order to be able to do a product demand forecasting taking into account the leads and opportunities defined in odoo. -Included in the product line there are two computed fields, the planned revenue and expected revenue. On one hand, the -planned revenue is computed as the selling price times the quantity. On the other hand, the expected revenue takes into account -the probability of the opportunity and is computed as the planned revenue times the probability. - -The module also includes a reporting section where the user can easily see in a pivot and graph view the relationship -between products, stage of the lead/opportunity and the planned or expected revenue for that product. +This module allows the user to link multiple products, product +categories or product templates to a lead or an opportunity in order to +be able to do a product demand forecasting taking into account the leads +and opportunities defined in odoo. Included in the product line there +are two computed fields, the planned revenue and expected revenue. On +one hand, the planned revenue is computed as the selling price times the +quantity. On the other hand, the expected revenue takes into account the +probability of the opportunity and is computed as the planned revenue +times the probability. + +The module also includes a reporting section where the user can easily +see in a pivot and graph view the relationship between products, stage +of the lead/opportunity and the planned or expected revenue for that +product. **Table of contents** @@ -50,16 +55,18 @@ between products, stage of the lead/opportunity and the planned or expected reve Configuration ============= - -To configure this module to be available for the Leads the user needs to activate the Leads option in CRM settings +To configure this module to be available for the Leads the user needs to +activate the Leads option in CRM settings Usage ===== - -* Go to menu **CRM > Lead** and create or edit a Lead adding all the products associated to it. -* Go to menu **CRM > My Pipeline** and create or edit an Opportunity adding all the products associated to it. -* Go to menu **CRM > Reporting > Pipeline by Product** to run the report that relates product to planned and expected revenue per stage +- Go to menu **CRM > Lead** and create or edit a Lead adding all the + products associated to it. +- Go to menu **CRM > My Pipeline** and create or edit an Opportunity + adding all the products associated to it. +- Go to menu **CRM > Reporting > Pipeline by Product** to run the + report that relates product to planned and expected revenue per stage Bug Tracker =========== @@ -75,19 +82,18 @@ Credits ======= Authors -~~~~~~~ +------- * ForgeFlow Contributors -~~~~~~~~~~~~ - +------------ -* Adria Gil Sorribes -* Adria Palleja Bove +- Adria Gil Sorribes +- Adria Palleja Bove Maintainers -~~~~~~~~~~~ +----------- This module is maintained by the OCA. diff --git a/crm_lead_product/models/crm_lead.py b/crm_lead_product/models/crm_lead.py index 536e8e6b267..b631be753c1 100644 --- a/crm_lead_product/models/crm_lead.py +++ b/crm_lead_product/models/crm_lead.py @@ -20,7 +20,7 @@ def _onchange_lead_line_ids(self): self.expected_revenue = planned_revenue def _convert_opportunity_data(self, customer, team_id=False): - res = super(CrmLead, self)._convert_opportunity_data(customer, team_id) + res = super()._convert_opportunity_data(customer, team_id) # Update planned_revenue planned_revenue = 0 diff --git a/crm_lead_product/pyproject.toml b/crm_lead_product/pyproject.toml new file mode 100644 index 00000000000..4231d0cccb3 --- /dev/null +++ b/crm_lead_product/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.buildapi" diff --git a/crm_lead_product/readme/CONFIGURE.rst b/crm_lead_product/readme/CONFIGURE.md similarity index 55% rename from crm_lead_product/readme/CONFIGURE.rst rename to crm_lead_product/readme/CONFIGURE.md index f62459d620f..92df568efa4 100644 --- a/crm_lead_product/readme/CONFIGURE.rst +++ b/crm_lead_product/readme/CONFIGURE.md @@ -1,2 +1,2 @@ - -To configure this module to be available for the Leads the user needs to activate the Leads option in CRM settings +To configure this module to be available for the Leads the user needs to +activate the Leads option in CRM settings diff --git a/crm_lead_product/readme/CONTRIBUTORS.md b/crm_lead_product/readme/CONTRIBUTORS.md new file mode 100644 index 00000000000..5f07d513be0 --- /dev/null +++ b/crm_lead_product/readme/CONTRIBUTORS.md @@ -0,0 +1,2 @@ +- Adria Gil Sorribes \<\> +- Adria Palleja Bove \<\> diff --git a/crm_lead_product/readme/CONTRIBUTORS.rst b/crm_lead_product/readme/CONTRIBUTORS.rst deleted file mode 100644 index 8bf70b667b3..00000000000 --- a/crm_lead_product/readme/CONTRIBUTORS.rst +++ /dev/null @@ -1,3 +0,0 @@ - -* Adria Gil Sorribes -* Adria Palleja Bove diff --git a/crm_lead_product/readme/DESCRIPTION.md b/crm_lead_product/readme/DESCRIPTION.md new file mode 100644 index 00000000000..12c7e638e07 --- /dev/null +++ b/crm_lead_product/readme/DESCRIPTION.md @@ -0,0 +1,14 @@ +This module allows the user to link multiple products, product +categories or product templates to a lead or an opportunity in order to +be able to do a product demand forecasting taking into account the leads +and opportunities defined in odoo. Included in the product line there +are two computed fields, the planned revenue and expected revenue. On +one hand, the planned revenue is computed as the selling price times the +quantity. On the other hand, the expected revenue takes into account the +probability of the opportunity and is computed as the planned revenue +times the probability. + +The module also includes a reporting section where the user can easily +see in a pivot and graph view the relationship between products, stage +of the lead/opportunity and the planned or expected revenue for that +product. diff --git a/crm_lead_product/readme/DESCRIPTION.rst b/crm_lead_product/readme/DESCRIPTION.rst deleted file mode 100644 index f249dfb756a..00000000000 --- a/crm_lead_product/readme/DESCRIPTION.rst +++ /dev/null @@ -1,9 +0,0 @@ - -This module allows the user to link multiple products, product categories or product templates to a lead or an opportunity -in order to be able to do a product demand forecasting taking into account the leads and opportunities defined in odoo. -Included in the product line there are two computed fields, the planned revenue and expected revenue. On one hand, the -planned revenue is computed as the selling price times the quantity. On the other hand, the expected revenue takes into account -the probability of the opportunity and is computed as the planned revenue times the probability. - -The module also includes a reporting section where the user can easily see in a pivot and graph view the relationship -between products, stage of the lead/opportunity and the planned or expected revenue for that product. diff --git a/crm_lead_product/readme/USAGE.md b/crm_lead_product/readme/USAGE.md new file mode 100644 index 00000000000..639ab9957fb --- /dev/null +++ b/crm_lead_product/readme/USAGE.md @@ -0,0 +1,7 @@ +- Go to menu **CRM \> Lead** and create or edit a Lead adding all the + products associated to it. +- Go to menu **CRM \> My Pipeline** and create or edit an Opportunity + adding all the products associated to it. +- Go to menu **CRM \> Reporting \> Pipeline by Product** to run the + report that relates product to planned and expected revenue per + stage diff --git a/crm_lead_product/readme/USAGE.rst b/crm_lead_product/readme/USAGE.rst deleted file mode 100644 index 3a3ada4eb18..00000000000 --- a/crm_lead_product/readme/USAGE.rst +++ /dev/null @@ -1,4 +0,0 @@ - -* Go to menu **CRM > Lead** and create or edit a Lead adding all the products associated to it. -* Go to menu **CRM > My Pipeline** and create or edit an Opportunity adding all the products associated to it. -* Go to menu **CRM > Reporting > Pipeline by Product** to run the report that relates product to planned and expected revenue per stage diff --git a/crm_lead_product/static/description/index.html b/crm_lead_product/static/description/index.html index b9d68fd9c05..ed950b2ee99 100644 --- a/crm_lead_product/static/description/index.html +++ b/crm_lead_product/static/description/index.html @@ -375,13 +375,19 @@

Lead Line Product

!! source digest: sha256:073a15253b5be2d34a56f392ffd7344952fb867bf9d311c83fe734ee87cbd465 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->

Beta License: LGPL-3 OCA/crm Translate me on Weblate Try me on Runboat

-

This module allows the user to link multiple products, product categories or product templates to a lead or an opportunity -in order to be able to do a product demand forecasting taking into account the leads and opportunities defined in odoo. -Included in the product line there are two computed fields, the planned revenue and expected revenue. On one hand, the -planned revenue is computed as the selling price times the quantity. On the other hand, the expected revenue takes into account -the probability of the opportunity and is computed as the planned revenue times the probability.

-

The module also includes a reporting section where the user can easily see in a pivot and graph view the relationship -between products, stage of the lead/opportunity and the planned or expected revenue for that product.

+

This module allows the user to link multiple products, product +categories or product templates to a lead or an opportunity in order to +be able to do a product demand forecasting taking into account the leads +and opportunities defined in odoo. Included in the product line there +are two computed fields, the planned revenue and expected revenue. On +one hand, the planned revenue is computed as the selling price times the +quantity. On the other hand, the expected revenue takes into account the +probability of the opportunity and is computed as the planned revenue +times the probability.

+

The module also includes a reporting section where the user can easily +see in a pivot and graph view the relationship between products, stage +of the lead/opportunity and the planned or expected revenue for that +product.

Table of contents

    @@ -398,14 +404,18 @@

    Lead Line Product

Configuration

-

To configure this module to be available for the Leads the user needs to activate the Leads option in CRM settings

+

To configure this module to be available for the Leads the user needs to +activate the Leads option in CRM settings

Usage

    -
  • Go to menu CRM > Lead and create or edit a Lead adding all the products associated to it.
  • -
  • Go to menu CRM > My Pipeline and create or edit an Opportunity adding all the products associated to it.
  • -
  • Go to menu CRM > Reporting > Pipeline by Product to run the report that relates product to planned and expected revenue per stage
  • +
  • Go to menu CRM > Lead and create or edit a Lead adding all the +products associated to it.
  • +
  • Go to menu CRM > My Pipeline and create or edit an Opportunity +adding all the products associated to it.
  • +
  • Go to menu CRM > Reporting > Pipeline by Product to run the +report that relates product to planned and expected revenue per stage
diff --git a/crm_lead_search_archive/README.rst b/crm_lead_search_archive/README.rst index 31f0050760e..7e06b53f43e 100644 --- a/crm_lead_search_archive/README.rst +++ b/crm_lead_search_archive/README.rst @@ -1,3 +1,7 @@ +.. image:: https://odoo-community.org/readme-banner-image + :target: https://odoo-community.org/get-involved?utm_source=readme + :alt: Odoo Community Association + ========================== Crm Lead Search in Archive ========================== @@ -13,7 +17,7 @@ Crm Lead Search in Archive .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png :target: https://odoo-community.org/page/development-status :alt: Beta -.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png +.. |badge2| image:: https://img.shields.io/badge/license-AGPL--3-blue.png :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fcrm-lightgray.png?logo=github @@ -49,18 +53,19 @@ Credits ======= Authors -~~~~~~~ +------- * Akretion Contributors -~~~~~~~~~~~~ +------------ -* Akretion - * David Béal +- Akretion + + - David Béal Maintainers -~~~~~~~~~~~ +----------- This module is maintained by the OCA. diff --git a/crm_lead_search_archive/pyproject.toml b/crm_lead_search_archive/pyproject.toml new file mode 100644 index 00000000000..4231d0cccb3 --- /dev/null +++ b/crm_lead_search_archive/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.buildapi" diff --git a/crm_lead_search_archive/readme/CONTRIBUTORS.md b/crm_lead_search_archive/readme/CONTRIBUTORS.md new file mode 100644 index 00000000000..79a429325e0 --- /dev/null +++ b/crm_lead_search_archive/readme/CONTRIBUTORS.md @@ -0,0 +1,2 @@ +- Akretion + - David Béal \<\> diff --git a/crm_lead_search_archive/readme/CONTRIBUTORS.rst b/crm_lead_search_archive/readme/CONTRIBUTORS.rst deleted file mode 100644 index 53f3e6822d2..00000000000 --- a/crm_lead_search_archive/readme/CONTRIBUTORS.rst +++ /dev/null @@ -1,2 +0,0 @@ -* Akretion - * David Béal diff --git a/crm_lead_search_archive/readme/DESCRIPTION.rst b/crm_lead_search_archive/readme/DESCRIPTION.md similarity index 100% rename from crm_lead_search_archive/readme/DESCRIPTION.rst rename to crm_lead_search_archive/readme/DESCRIPTION.md diff --git a/crm_lead_search_archive/static/description/index.html b/crm_lead_search_archive/static/description/index.html index d6f2d4bccd8..7967e98b1ef 100644 --- a/crm_lead_search_archive/static/description/index.html +++ b/crm_lead_search_archive/static/description/index.html @@ -1,18 +1,18 @@ - -Crm Lead Search in Archive +README.rst -
-

Crm Lead Search in Archive

+
+ + +Odoo Community Association + +
+

Crm Lead Search in Archive

-

Beta License: AGPL-3 OCA/crm Translate me on Weblate Try me on Runboat

+

Beta License: AGPL-3 OCA/crm Translate me on Weblate Try me on Runboat

Add a filter to search both in active/archive lead

Table of contents

@@ -384,7 +389,7 @@

Crm Lead Search in Archive

-

Bug Tracker

+

Bug Tracker

Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed @@ -392,30 +397,28 @@

Bug Tracker

Do not contact contributors directly about support or help with technical issues.

-

Credits

+

Credits

-

Authors

+

Authors

  • Akretion
-

Contributors

+

Contributors

-

Maintainers

+

Maintainers

This module is maintained by the OCA.

-Odoo Community Association + +Odoo Community Association +

OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use.

@@ -426,5 +429,6 @@

Maintainers

+
diff --git a/crm_lead_to_task/README.rst b/crm_lead_to_task/README.rst index 6c2f1c151b8..348c9cf23d6 100644 --- a/crm_lead_to_task/README.rst +++ b/crm_lead_to_task/README.rst @@ -1,3 +1,7 @@ +.. image:: https://odoo-community.org/readme-banner-image + :target: https://odoo-community.org/get-involved?utm_source=readme + :alt: Odoo Community Association + ============ Lead to Task ============ @@ -13,7 +17,7 @@ Lead to Task .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png :target: https://odoo-community.org/page/development-status :alt: Beta -.. |badge2| image:: https://img.shields.io/badge/licence-LGPL--3-blue.png +.. |badge2| image:: https://img.shields.io/badge/license-LGPL--3-blue.png :target: http://www.gnu.org/licenses/lgpl-3.0-standalone.html :alt: License: LGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fcrm-lightgray.png?logo=github @@ -30,9 +34,9 @@ Lead to Task This module allows to convert leads/opportunities to tasks. -**DISCLAIMER:** This module is a forward-port of a module from Odoo S.A. and as -such, it is not included in the OCA CLA. That means we do not have a copy of the -copyright on it like all other OCA modules. +**DISCLAIMER:** This module is a forward-port of a module from Odoo S.A. +and as such, it is not included in the OCA CLA. That means we do not +have a copy of the copyright on it like all other OCA modules. **Table of contents** @@ -42,19 +46,20 @@ copyright on it like all other OCA modules. Configuration ============= -#. You need to have at least "Project User" and "Salesman" permissions to be - able to convert leads to tasks. +1. You need to have at least "Project User" and "Salesman" permissions + to be able to convert leads to tasks. Usage ===== -#. Go to *CRM > Sales > My pipeline*. -#. Open one of the existing leads or create one. -#. Click on the button "Convert to Task". -#. A popup will appear asking you for a possible project for the task. -#. Click on "Create Task" button. -#. You will be redirected to the recently created task, that contains all the - information from the lead, including attachments and messages. +1. Go to *CRM > Sales > My pipeline*. +2. Open one of the existing leads or create one. +3. Click on the button "Convert to Task". +4. A popup will appear asking you for a possible project for the task. +5. Click on "Create Task" button. +6. You will be redirected to the recently created task, that contains + all the information from the lead, including attachments and + messages. Bug Tracker =========== @@ -70,22 +75,23 @@ Credits ======= Authors -~~~~~~~ +------- * Odoo S.A. * Tecnativa Contributors -~~~~~~~~~~~~ +------------ + +- `Tecnativa `__: -* `Tecnativa `__: + - Pedro M. Baeza + - Carolina Fernandez - * Pedro M. Baeza - * Carolina Fernandez -* Ruchir Shukla +- Ruchir Shukla Maintainers -~~~~~~~~~~~ +----------- This module is maintained by the OCA. diff --git a/crm_lead_to_task/pyproject.toml b/crm_lead_to_task/pyproject.toml new file mode 100644 index 00000000000..4231d0cccb3 --- /dev/null +++ b/crm_lead_to_task/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.buildapi" diff --git a/crm_lead_to_task/readme/CONFIGURE.md b/crm_lead_to_task/readme/CONFIGURE.md new file mode 100644 index 00000000000..292f4c5189c --- /dev/null +++ b/crm_lead_to_task/readme/CONFIGURE.md @@ -0,0 +1,2 @@ +1. You need to have at least "Project User" and "Salesman" permissions + to be able to convert leads to tasks. diff --git a/crm_lead_to_task/readme/CONFIGURE.rst b/crm_lead_to_task/readme/CONFIGURE.rst deleted file mode 100644 index 44c69a136ee..00000000000 --- a/crm_lead_to_task/readme/CONFIGURE.rst +++ /dev/null @@ -1,2 +0,0 @@ -#. You need to have at least "Project User" and "Salesman" permissions to be - able to convert leads to tasks. diff --git a/crm_lead_to_task/readme/CONTRIBUTORS.md b/crm_lead_to_task/readme/CONTRIBUTORS.md new file mode 100644 index 00000000000..45fa2731bbe --- /dev/null +++ b/crm_lead_to_task/readme/CONTRIBUTORS.md @@ -0,0 +1,4 @@ +- [Tecnativa](https://www.tecnativa.com): + - Pedro M. Baeza + - Carolina Fernandez +- Ruchir Shukla \<\> diff --git a/crm_lead_to_task/readme/CONTRIBUTORS.rst b/crm_lead_to_task/readme/CONTRIBUTORS.rst deleted file mode 100644 index d6243affa65..00000000000 --- a/crm_lead_to_task/readme/CONTRIBUTORS.rst +++ /dev/null @@ -1,5 +0,0 @@ -* `Tecnativa `__: - - * Pedro M. Baeza - * Carolina Fernandez -* Ruchir Shukla diff --git a/crm_lead_to_task/readme/DESCRIPTION.md b/crm_lead_to_task/readme/DESCRIPTION.md new file mode 100644 index 00000000000..032759264c1 --- /dev/null +++ b/crm_lead_to_task/readme/DESCRIPTION.md @@ -0,0 +1,5 @@ +This module allows to convert leads/opportunities to tasks. + +**DISCLAIMER:** This module is a forward-port of a module from Odoo S.A. +and as such, it is not included in the OCA CLA. That means we do not +have a copy of the copyright on it like all other OCA modules. diff --git a/crm_lead_to_task/readme/DESCRIPTION.rst b/crm_lead_to_task/readme/DESCRIPTION.rst deleted file mode 100644 index 7a072d20159..00000000000 --- a/crm_lead_to_task/readme/DESCRIPTION.rst +++ /dev/null @@ -1,5 +0,0 @@ -This module allows to convert leads/opportunities to tasks. - -**DISCLAIMER:** This module is a forward-port of a module from Odoo S.A. and as -such, it is not included in the OCA CLA. That means we do not have a copy of the -copyright on it like all other OCA modules. diff --git a/crm_lead_to_task/readme/USAGE.md b/crm_lead_to_task/readme/USAGE.md new file mode 100644 index 00000000000..c05ac14bdff --- /dev/null +++ b/crm_lead_to_task/readme/USAGE.md @@ -0,0 +1,8 @@ +1. Go to *CRM \> Sales \> My pipeline*. +2. Open one of the existing leads or create one. +3. Click on the button "Convert to Task". +4. A popup will appear asking you for a possible project for the task. +5. Click on "Create Task" button. +6. You will be redirected to the recently created task, that contains + all the information from the lead, including attachments and + messages. diff --git a/crm_lead_to_task/readme/USAGE.rst b/crm_lead_to_task/readme/USAGE.rst deleted file mode 100644 index 40d03e45d00..00000000000 --- a/crm_lead_to_task/readme/USAGE.rst +++ /dev/null @@ -1,7 +0,0 @@ -#. Go to *CRM > Sales > My pipeline*. -#. Open one of the existing leads or create one. -#. Click on the button "Convert to Task". -#. A popup will appear asking you for a possible project for the task. -#. Click on "Create Task" button. -#. You will be redirected to the recently created task, that contains all the - information from the lead, including attachments and messages. diff --git a/crm_lead_to_task/static/description/index.html b/crm_lead_to_task/static/description/index.html index 91f45792724..3056f75f698 100644 --- a/crm_lead_to_task/static/description/index.html +++ b/crm_lead_to_task/static/description/index.html @@ -1,18 +1,18 @@ - -Lead to Task +README.rst -
-

Lead to Task

+
+ + +Odoo Community Association + +
+

Lead to Task

-

Beta License: LGPL-3 OCA/crm Translate me on Weblate Try me on Runboat

+

Beta License: LGPL-3 OCA/crm Translate me on Weblate Try me on Runboat

This module allows to convert leads/opportunities to tasks.

-

DISCLAIMER: This module is a forward-port of a module from Odoo S.A. and as -such, it is not included in the OCA CLA. That means we do not have a copy of the -copyright on it like all other OCA modules.

+

DISCLAIMER: This module is a forward-port of a module from Odoo S.A. +and as such, it is not included in the OCA CLA. That means we do not +have a copy of the copyright on it like all other OCA modules.

Table of contents

    @@ -389,26 +394,27 @@

    Lead to Task

-

Configuration

+

Configuration

    -
  1. You need to have at least “Project User” and “Salesman” permissions to be -able to convert leads to tasks.
  2. +
  3. You need to have at least “Project User” and “Salesman” permissions +to be able to convert leads to tasks.
-

Usage

+

Usage

  1. Go to CRM > Sales > My pipeline.
  2. Open one of the existing leads or create one.
  3. Click on the button “Convert to Task”.
  4. A popup will appear asking you for a possible project for the task.
  5. Click on “Create Task” button.
  6. -
  7. You will be redirected to the recently created task, that contains all the -information from the lead, including attachments and messages.
  8. +
  9. You will be redirected to the recently created task, that contains +all the information from the lead, including attachments and +messages.
-

Bug Tracker

+

Bug Tracker

Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed @@ -416,16 +422,16 @@

Bug Tracker

Do not contact contributors directly about support or help with technical issues.

-

Credits

+

Credits

-

Authors

+

Authors

  • Odoo S.A.
  • Tecnativa
-

Contributors

+

Contributors

-

Maintainers

+

Maintainers

This module is maintained by the OCA.

-Odoo Community Association + +Odoo Community Association +

OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use.

@@ -447,5 +455,6 @@

Maintainers

+
diff --git a/crm_lead_vat/README.rst b/crm_lead_vat/README.rst index 503c6c903b0..a4f2a3c7a09 100644 --- a/crm_lead_vat/README.rst +++ b/crm_lead_vat/README.rst @@ -1,3 +1,7 @@ +.. image:: https://odoo-community.org/readme-banner-image + :target: https://odoo-community.org/get-involved?utm_source=readme + :alt: Odoo Community Association + ============ VAT in leads ============ @@ -13,7 +17,7 @@ VAT in leads .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png :target: https://odoo-community.org/page/development-status :alt: Beta -.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png +.. |badge2| image:: https://img.shields.io/badge/license-AGPL--3-blue.png :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fcrm-lightgray.png?logo=github @@ -28,8 +32,9 @@ VAT in leads |badge1| |badge2| |badge3| |badge4| |badge5| -This module was written to extend the functionality of CRM leads to support -setting the VAT identification number (https://en.wikipedia.org/wiki/VAT_identification_number). +This module was written to extend the functionality of CRM leads to +support setting the VAT identification number +(https://en.wikipedia.org/wiki/VAT_identification_number). **Table of contents** @@ -41,11 +46,12 @@ Usage To use this module, you need to: -* Go to *CRM > Leads*. -* Open a lead. -* You will see the new field. -* If you change vat in partner, it change in lead. -* If you change vat in lead, a warning will show informing you that if you save, vat change in partner. +- Go to *CRM > Leads*. +- Open a lead. +- You will see the new field. +- If you change vat in partner, it change in lead. +- If you change vat in lead, a warning will show informing you that if + you save, vat change in partner. Bug Tracker =========== @@ -61,25 +67,24 @@ Credits ======= Authors -~~~~~~~ +------- * Antiun Ingeniería S.L. Contributors -~~~~~~~~~~~~ - -* Rafael Blasco -* Jairo Llopis -* Tharathip Chaweewongphan +------------ -* `Tecnativa `_: +- Rafael Blasco +- Jairo Llopis +- Tharathip Chaweewongphan +- `Tecnativa `__: - * Stefan Ungureanu + - Stefan Ungureanu -* Emilio Pascual (`Moduon `__) +- Emilio Pascual (`Moduon `__) Maintainers -~~~~~~~~~~~ +----------- This module is maintained by the OCA. diff --git a/crm_lead_vat/models/crm_lead.py b/crm_lead_vat/models/crm_lead.py index 988a86fb676..468cb20037e 100644 --- a/crm_lead_vat/models/crm_lead.py +++ b/crm_lead_vat/models/crm_lead.py @@ -64,9 +64,7 @@ def _get_partner_vat_update(self): def _prepare_customer_values(self, partner_name, is_company=False, parent_id=False): """Add VAT to partner.""" - res = super(Lead, self)._prepare_customer_values( - partner_name, is_company, parent_id - ) + res = super()._prepare_customer_values(partner_name, is_company, parent_id) res.update( { "vat": self.vat, @@ -76,7 +74,7 @@ def _prepare_customer_values(self, partner_name, is_company=False, parent_id=Fal def _prepare_values_from_partner(self, partner): """Recover VAT from partner if available.""" - result = super(Lead, self)._prepare_values_from_partner(partner) + result = super()._prepare_values_from_partner(partner) if not partner: return result if partner.vat: diff --git a/crm_lead_vat/pyproject.toml b/crm_lead_vat/pyproject.toml new file mode 100644 index 00000000000..4231d0cccb3 --- /dev/null +++ b/crm_lead_vat/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.buildapi" diff --git a/crm_lead_vat/readme/CONTRIBUTORS.md b/crm_lead_vat/readme/CONTRIBUTORS.md new file mode 100644 index 00000000000..9ead2fb5fbc --- /dev/null +++ b/crm_lead_vat/readme/CONTRIBUTORS.md @@ -0,0 +1,6 @@ +- Rafael Blasco \<\> +- Jairo Llopis \<\> +- Tharathip Chaweewongphan \<\> +- [Tecnativa](https://www.tecnativa.com): + - Stefan Ungureanu +- Emilio Pascual ([Moduon](https://www.moduon.team/)) diff --git a/crm_lead_vat/readme/CONTRIBUTORS.rst b/crm_lead_vat/readme/CONTRIBUTORS.rst deleted file mode 100644 index 42a50e801fb..00000000000 --- a/crm_lead_vat/readme/CONTRIBUTORS.rst +++ /dev/null @@ -1,9 +0,0 @@ -* Rafael Blasco -* Jairo Llopis -* Tharathip Chaweewongphan - -* `Tecnativa `_: - - * Stefan Ungureanu - -* Emilio Pascual (`Moduon `__) diff --git a/crm_lead_vat/readme/DESCRIPTION.md b/crm_lead_vat/readme/DESCRIPTION.md new file mode 100644 index 00000000000..817bbe8fb5d --- /dev/null +++ b/crm_lead_vat/readme/DESCRIPTION.md @@ -0,0 +1,3 @@ +This module was written to extend the functionality of CRM leads to +support setting the VAT identification number +(). diff --git a/crm_lead_vat/readme/DESCRIPTION.rst b/crm_lead_vat/readme/DESCRIPTION.rst deleted file mode 100644 index ac79a5e9bc0..00000000000 --- a/crm_lead_vat/readme/DESCRIPTION.rst +++ /dev/null @@ -1,2 +0,0 @@ -This module was written to extend the functionality of CRM leads to support -setting the VAT identification number (https://en.wikipedia.org/wiki/VAT_identification_number). diff --git a/crm_lead_vat/readme/USAGE.md b/crm_lead_vat/readme/USAGE.md new file mode 100644 index 00000000000..3153638df8b --- /dev/null +++ b/crm_lead_vat/readme/USAGE.md @@ -0,0 +1,8 @@ +To use this module, you need to: + +- Go to *CRM \> Leads*. +- Open a lead. +- You will see the new field. +- If you change vat in partner, it change in lead. +- If you change vat in lead, a warning will show informing you that if + you save, vat change in partner. diff --git a/crm_lead_vat/readme/USAGE.rst b/crm_lead_vat/readme/USAGE.rst deleted file mode 100644 index f2c935f8ad5..00000000000 --- a/crm_lead_vat/readme/USAGE.rst +++ /dev/null @@ -1,7 +0,0 @@ -To use this module, you need to: - -* Go to *CRM > Leads*. -* Open a lead. -* You will see the new field. -* If you change vat in partner, it change in lead. -* If you change vat in lead, a warning will show informing you that if you save, vat change in partner. diff --git a/crm_lead_vat/static/description/index.html b/crm_lead_vat/static/description/index.html index 603bc0de100..64b020231f4 100644 --- a/crm_lead_vat/static/description/index.html +++ b/crm_lead_vat/static/description/index.html @@ -1,18 +1,18 @@ - -VAT in leads +README.rst -
-

VAT in leads

+
+ + +Odoo Community Association + +
+

VAT in leads

-

Beta License: AGPL-3 OCA/crm Translate me on Weblate Try me on Runboat

-

This module was written to extend the functionality of CRM leads to support -setting the VAT identification number (https://en.wikipedia.org/wiki/VAT_identification_number).

+

Beta License: AGPL-3 OCA/crm Translate me on Weblate Try me on Runboat

+

This module was written to extend the functionality of CRM leads to +support setting the VAT identification number +(https://en.wikipedia.org/wiki/VAT_identification_number).

Table of contents

    @@ -386,18 +392,19 @@

    VAT in leads

-

Usage

+

Usage

To use this module, you need to:

  • Go to CRM > Leads.
  • Open a lead.
  • You will see the new field.
  • If you change vat in partner, it change in lead.
  • -
  • If you change vat in lead, a warning will show informing you that if you save, vat change in partner.
  • +
  • If you change vat in lead, a warning will show informing you that if +you save, vat change in partner.
-

Bug Tracker

+

Bug Tracker

Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed @@ -405,15 +412,15 @@

Bug Tracker

Do not contact contributors directly about support or help with technical issues.

-

Credits

+

Credits

-

Authors

+

Authors

  • Antiun Ingeniería S.L.
-

Contributors

+

Contributors

-

Maintainers

+

Maintainers

This module is maintained by the OCA.

-Odoo Community Association + +Odoo Community Association +

OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use.

@@ -439,5 +448,6 @@

Maintainers

+
diff --git a/crm_lead_vat/tests/test_lead.py b/crm_lead_vat/tests/test_lead.py index eb8af085f4f..a083e4199e6 100644 --- a/crm_lead_vat/tests/test_lead.py +++ b/crm_lead_vat/tests/test_lead.py @@ -6,7 +6,7 @@ class LeadCase(TransactionCase): def setUp(self): - super(LeadCase, self).setUp() + super().setUp() self.lead = self.env["crm.lead"].create( {"name": __file__, "partner_name": "HÎ"} ) diff --git a/crm_location/README.rst b/crm_location/README.rst index 9305fd7e943..5302bc25bdf 100644 --- a/crm_location/README.rst +++ b/crm_location/README.rst @@ -1,3 +1,7 @@ +.. image:: https://odoo-community.org/readme-banner-image + :target: https://odoo-community.org/get-involved?utm_source=readme + :alt: Odoo Community Association + ============ CRM location ============ @@ -13,7 +17,7 @@ CRM location .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png :target: https://odoo-community.org/page/development-status :alt: Beta -.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png +.. |badge2| image:: https://img.shields.io/badge/license-AGPL--3-blue.png :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fcrm-lightgray.png?logo=github @@ -42,8 +46,8 @@ Installation To install this module, you need: -* crm -* base_location located in OCA/partner-contact repo +- crm +- base_location located in OCA/partner-contact repo Bug Tracker =========== @@ -59,22 +63,22 @@ Credits ======= Authors -~~~~~~~ +------- * Tecnativa Contributors -~~~~~~~~~~~~ +------------ -* Endika Iglesias -* Rafael Blasco -* Luis M. Ontalba -* Alexandre Díaz -* Tharathip Chaweewongphan -* Ruchir Shukla +- Endika Iglesias +- Rafael Blasco +- Luis M. Ontalba +- Alexandre Díaz +- Tharathip Chaweewongphan +- Ruchir Shukla Maintainers -~~~~~~~~~~~ +----------- This module is maintained by the OCA. diff --git a/crm_location/pyproject.toml b/crm_location/pyproject.toml new file mode 100644 index 00000000000..4231d0cccb3 --- /dev/null +++ b/crm_location/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.buildapi" diff --git a/crm_location/readme/CONTRIBUTORS.md b/crm_location/readme/CONTRIBUTORS.md new file mode 100644 index 00000000000..a2da4e240a6 --- /dev/null +++ b/crm_location/readme/CONTRIBUTORS.md @@ -0,0 +1,6 @@ +- Endika Iglesias \<\> +- Rafael Blasco \<\> +- Luis M. Ontalba \<\> +- Alexandre Díaz \<\> +- Tharathip Chaweewongphan \<\> +- Ruchir Shukla \<\> diff --git a/crm_location/readme/CONTRIBUTORS.rst b/crm_location/readme/CONTRIBUTORS.rst deleted file mode 100644 index 59609d17adb..00000000000 --- a/crm_location/readme/CONTRIBUTORS.rst +++ /dev/null @@ -1,6 +0,0 @@ -* Endika Iglesias -* Rafael Blasco -* Luis M. Ontalba -* Alexandre Díaz -* Tharathip Chaweewongphan -* Ruchir Shukla diff --git a/crm_location/readme/DESCRIPTION.rst b/crm_location/readme/DESCRIPTION.md similarity index 100% rename from crm_location/readme/DESCRIPTION.rst rename to crm_location/readme/DESCRIPTION.md diff --git a/crm_location/readme/INSTALL.md b/crm_location/readme/INSTALL.md new file mode 100644 index 00000000000..3e7f7119eb3 --- /dev/null +++ b/crm_location/readme/INSTALL.md @@ -0,0 +1,4 @@ +To install this module, you need: + +- crm +- base_location located in OCA/partner-contact repo diff --git a/crm_location/readme/INSTALL.rst b/crm_location/readme/INSTALL.rst deleted file mode 100644 index 5eafcba0994..00000000000 --- a/crm_location/readme/INSTALL.rst +++ /dev/null @@ -1,4 +0,0 @@ -To install this module, you need: - -* crm -* base_location located in OCA/partner-contact repo diff --git a/crm_location/static/description/index.html b/crm_location/static/description/index.html index e6965972c0f..c8bfdcb41e9 100644 --- a/crm_location/static/description/index.html +++ b/crm_location/static/description/index.html @@ -1,18 +1,18 @@ - -CRM location +README.rst -
-

CRM location

+
+ + +Odoo Community Association + +
+

CRM location

-

Beta License: AGPL-3 OCA/crm Translate me on Weblate Try me on Runboat

+

Beta License: AGPL-3 OCA/crm Translate me on Weblate Try me on Runboat

This module introduces a better zip.

It enables zip, city, state and country auto-completion on lead.

Table of contents

@@ -386,7 +391,7 @@

CRM location

-

Installation

+

Installation

To install this module, you need:

-

Bug Tracker

+

Bug Tracker

Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed @@ -402,15 +407,15 @@

Bug Tracker

Do not contact contributors directly about support or help with technical issues.

-

Credits

+

Credits

-

Authors

+

Authors

  • Tecnativa
-

Contributors

+

Contributors

-

Maintainers

+

Maintainers

This module is maintained by the OCA.

-Odoo Community Association + +Odoo Community Association +

OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use.

@@ -432,5 +439,6 @@

Maintainers

+
diff --git a/crm_location_nuts/README.rst b/crm_location_nuts/README.rst index b30a67df5bc..ddf6cc1ca73 100644 --- a/crm_location_nuts/README.rst +++ b/crm_location_nuts/README.rst @@ -1,3 +1,7 @@ +.. image:: https://odoo-community.org/readme-banner-image + :target: https://odoo-community.org/get-involved?utm_source=readme + :alt: Odoo Community Association + =================== NUTS Regions in CRM =================== @@ -13,7 +17,7 @@ NUTS Regions in CRM .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png :target: https://odoo-community.org/page/development-status :alt: Beta -.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png +.. |badge2| image:: https://img.shields.io/badge/license-AGPL--3-blue.png :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fcrm-lightgray.png?logo=github @@ -28,8 +32,8 @@ NUTS Regions in CRM |badge1| |badge2| |badge3| |badge4| |badge5| -This module adds the concept of NUTS region to the CRM main objects (lead, -opportunity), and propagate them through the workflow. +This module adds the concept of NUTS region to the CRM main objects +(lead, opportunity), and propagate them through the workflow. **Table of contents** @@ -39,19 +43,20 @@ opportunity), and propagate them through the workflow. Usage ===== -- Go to CRM configuration and enable "Leads" -- Create a new Lead (or edit an existing one): -- Set a contact name or a company name. -- Set NUTS values as desired. -- Save it an convert to opportunity. -- In the dialog, choose **Create a new customer** and click create. -- If you browse the new customer, the NUTS values should have been propagated. +- Go to CRM configuration and enable "Leads" +- Create a new Lead (or edit an existing one): +- Set a contact name or a company name. +- Set NUTS values as desired. +- Save it an convert to opportunity. +- In the dialog, choose **Create a new customer** and click create. +- If you browse the new customer, the NUTS values should have been + propagated. Known issues / Roadmap ====================== -- It would be cleaner an more reusable to put the repeated methods and fields - into an abstract model. +- It would be cleaner an more reusable to put the repeated methods and + fields into an abstract model. Bug Tracker =========== @@ -67,31 +72,31 @@ Credits ======= Authors -~~~~~~~ +------- * Tecnativa Contributors -~~~~~~~~~~~~ +------------ -* `Tecnativa `_: +- `Tecnativa `__: - * Antonio Espinosa - * David Vidal - * Alexandre Díaz - * Ernesto Tejeda + - Antonio Espinosa + - David Vidal + - Alexandre Díaz + - Ernesto Tejeda -* `Moduon `_: +- `Moduon `__: - * Eduardo López + - Eduardo López Other credits -~~~~~~~~~~~~~ +------------- -* Icon park: `Icon http://icon-park.com/icon/location-map-pin-orange3/` +- Icon park: Icon http://icon-park.com/icon/location-map-pin-orange3/ Maintainers -~~~~~~~~~~~ +----------- This module is maintained by the OCA. diff --git a/crm_location_nuts/pyproject.toml b/crm_location_nuts/pyproject.toml new file mode 100644 index 00000000000..4231d0cccb3 --- /dev/null +++ b/crm_location_nuts/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.buildapi" diff --git a/crm_location_nuts/readme/CONTRIBUTORS.md b/crm_location_nuts/readme/CONTRIBUTORS.md new file mode 100644 index 00000000000..a59fbad34ff --- /dev/null +++ b/crm_location_nuts/readme/CONTRIBUTORS.md @@ -0,0 +1,7 @@ +- [Tecnativa](https://www.tecnativa.com): + - Antonio Espinosa + - David Vidal + - Alexandre Díaz + - Ernesto Tejeda +- [Moduon](https://www.moduon.es/): + - Eduardo López diff --git a/crm_location_nuts/readme/CONTRIBUTORS.rst b/crm_location_nuts/readme/CONTRIBUTORS.rst deleted file mode 100644 index deef96bcd50..00000000000 --- a/crm_location_nuts/readme/CONTRIBUTORS.rst +++ /dev/null @@ -1,10 +0,0 @@ -* `Tecnativa `_: - - * Antonio Espinosa - * David Vidal - * Alexandre Díaz - * Ernesto Tejeda - -* `Moduon `_: - - * Eduardo López diff --git a/crm_location_nuts/readme/CREDITS.md b/crm_location_nuts/readme/CREDITS.md new file mode 100644 index 00000000000..1fc70ceec80 --- /dev/null +++ b/crm_location_nuts/readme/CREDITS.md @@ -0,0 +1 @@ +- Icon park: Icon http://icon-park.com/icon/location-map-pin-orange3/ diff --git a/crm_location_nuts/readme/CREDITS.rst b/crm_location_nuts/readme/CREDITS.rst deleted file mode 100644 index e84ac4aede2..00000000000 --- a/crm_location_nuts/readme/CREDITS.rst +++ /dev/null @@ -1 +0,0 @@ -* Icon park: `Icon http://icon-park.com/icon/location-map-pin-orange3/` diff --git a/crm_location_nuts/readme/DESCRIPTION.md b/crm_location_nuts/readme/DESCRIPTION.md new file mode 100644 index 00000000000..6861f1caae9 --- /dev/null +++ b/crm_location_nuts/readme/DESCRIPTION.md @@ -0,0 +1,2 @@ +This module adds the concept of NUTS region to the CRM main objects +(lead, opportunity), and propagate them through the workflow. diff --git a/crm_location_nuts/readme/DESCRIPTION.rst b/crm_location_nuts/readme/DESCRIPTION.rst deleted file mode 100644 index 98f9f0c058f..00000000000 --- a/crm_location_nuts/readme/DESCRIPTION.rst +++ /dev/null @@ -1,2 +0,0 @@ -This module adds the concept of NUTS region to the CRM main objects (lead, -opportunity), and propagate them through the workflow. diff --git a/crm_location_nuts/readme/ROADMAP.md b/crm_location_nuts/readme/ROADMAP.md new file mode 100644 index 00000000000..3f845aa3412 --- /dev/null +++ b/crm_location_nuts/readme/ROADMAP.md @@ -0,0 +1,2 @@ +- It would be cleaner an more reusable to put the repeated methods and + fields into an abstract model. diff --git a/crm_location_nuts/readme/ROADMAP.rst b/crm_location_nuts/readme/ROADMAP.rst deleted file mode 100644 index 5a120ec7f3a..00000000000 --- a/crm_location_nuts/readme/ROADMAP.rst +++ /dev/null @@ -1,2 +0,0 @@ -- It would be cleaner an more reusable to put the repeated methods and fields - into an abstract model. diff --git a/crm_location_nuts/readme/USAGE.md b/crm_location_nuts/readme/USAGE.md new file mode 100644 index 00000000000..9cc3a9b6d98 --- /dev/null +++ b/crm_location_nuts/readme/USAGE.md @@ -0,0 +1,8 @@ +- Go to CRM configuration and enable "Leads" +- Create a new Lead (or edit an existing one): +- Set a contact name or a company name. +- Set NUTS values as desired. +- Save it an convert to opportunity. +- In the dialog, choose **Create a new customer** and click create. +- If you browse the new customer, the NUTS values should have been + propagated. diff --git a/crm_location_nuts/readme/USAGE.rst b/crm_location_nuts/readme/USAGE.rst deleted file mode 100644 index 0052f993181..00000000000 --- a/crm_location_nuts/readme/USAGE.rst +++ /dev/null @@ -1,7 +0,0 @@ -- Go to CRM configuration and enable "Leads" -- Create a new Lead (or edit an existing one): -- Set a contact name or a company name. -- Set NUTS values as desired. -- Save it an convert to opportunity. -- In the dialog, choose **Create a new customer** and click create. -- If you browse the new customer, the NUTS values should have been propagated. diff --git a/crm_location_nuts/static/description/index.html b/crm_location_nuts/static/description/index.html index 1dd3a9f8b14..9be04277ddc 100644 --- a/crm_location_nuts/static/description/index.html +++ b/crm_location_nuts/static/description/index.html @@ -3,15 +3,16 @@ -NUTS Regions in CRM +README.rst -
-

NUTS Regions in CRM

+
+ + +Odoo Community Association + +
+

NUTS Regions in CRM

-

Beta License: AGPL-3 OCA/crm Translate me on Weblate Try me on Runboat

-

This module adds the concept of NUTS region to the CRM main objects (lead, -opportunity), and propagate them through the workflow.

+

Beta License: AGPL-3 OCA/crm Translate me on Weblate Try me on Runboat

+

This module adds the concept of NUTS region to the CRM main objects +(lead, opportunity), and propagate them through the workflow.

Table of contents

    @@ -387,7 +393,7 @@

    NUTS Regions in CRM

-

Usage

+

Usage

  • Go to CRM configuration and enable “Leads”
  • Create a new Lead (or edit an existing one):
  • @@ -395,18 +401,19 @@

    Usage

  • Set NUTS values as desired.
  • Save it an convert to opportunity.
  • In the dialog, choose Create a new customer and click create.
  • -
  • If you browse the new customer, the NUTS values should have been propagated.
  • +
  • If you browse the new customer, the NUTS values should have been +propagated.
-

Known issues / Roadmap

+

Known issues / Roadmap

    -
  • It would be cleaner an more reusable to put the repeated methods and fields -into an abstract model.
  • +
  • It would be cleaner an more reusable to put the repeated methods and +fields into an abstract model.
-

Bug Tracker

+

Bug Tracker

Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed @@ -414,15 +421,15 @@

Bug Tracker

Do not contact contributors directly about support or help with technical issues.

-

Credits

+

Credits

-

Authors

+

Authors

  • Tecnativa
-

Contributors

+

Contributors

-

Other credits

+

Other credits

-

Maintainers

+

Maintainers

This module is maintained by the OCA.

-Odoo Community Association + +Odoo Community Association +

OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use.

@@ -457,5 +466,6 @@

Maintainers

+
diff --git a/crm_location_nuts/tests/test_crm_location_nuts.py b/crm_location_nuts/tests/test_crm_location_nuts.py index 98ada2b440e..7061a32d8d6 100644 --- a/crm_location_nuts/tests/test_crm_location_nuts.py +++ b/crm_location_nuts/tests/test_crm_location_nuts.py @@ -9,7 +9,7 @@ class TestCrmNuts(TestBaseLocationNuts): @classmethod def setUpClass(cls): - super(TestCrmNuts, cls).setUpClass() + super().setUpClass() cls.nuts1_1 = cls.env["res.partner.nuts"].search([("code", "=", "ES")]) cls.lead = cls.env["crm.lead"].create( { diff --git a/crm_partner_assign/README.rst b/crm_partner_assign/README.rst index b2c0a6dc636..0519f4ff6e4 100644 --- a/crm_partner_assign/README.rst +++ b/crm_partner_assign/README.rst @@ -1,3 +1,7 @@ +.. image:: https://odoo-community.org/readme-banner-image + :target: https://odoo-community.org/get-involved?utm_source=readme + :alt: Odoo Community Association + ================== CRM Partner Assign ================== @@ -13,7 +17,7 @@ CRM Partner Assign .. |badge1| image:: https://img.shields.io/badge/maturity-Alpha-red.png :target: https://odoo-community.org/page/development-status :alt: Alpha -.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png +.. |badge2| image:: https://img.shields.io/badge/license-AGPL--3-blue.png :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fcrm-lightgray.png?logo=github @@ -28,9 +32,10 @@ CRM Partner Assign |badge1| |badge2| |badge3| |badge4| |badge5| -This module extends the functionality of CRM Leads to support assigning an associate partner to leads -and to allow you to check if a Lead is being worked on by an associate partner. -Also you can link a Partner to another Partner as an implementation partner. +This module extends the functionality of CRM Leads to support assigning +an associate partner to leads and to allow you to check if a Lead is +being worked on by an associate partner. Also you can link a Partner to +another Partner as an implementation partner. .. IMPORTANT:: This is an alpha version, the data model and design can change at any time without warning. @@ -45,19 +50,25 @@ Also you can link a Partner to another Partner as an implementation partner. Installation ============ -This module is the minimum viable product of the *website_crm_partner_assign* module. -If you have the *website* module installed and you want a more complete module, take a look at the *website_crm_partner_assign* module. -This module uses the same field names as the *website_crm_partner_assign* module, so if you want to use *website_crm_partner_assign* and don't lose data, you must install *website_crm_partner_assign* and then uninstall this module (in this order). +This module is the minimum viable product of the +*website_crm_partner_assign* module. If you have the *website* module +installed and you want a more complete module, take a look at the +*website_crm_partner_assign* module. This module uses the same field +names as the *website_crm_partner_assign* module, so if you want to use +*website_crm_partner_assign* and don't lose data, you must install +*website_crm_partner_assign* and then uninstall this module (in this +order). Usage ===== To use this module, you need to: -#. Go to Lead and assign a partner to it. You can assign a partner contact too. -#. You can filter the leads by assigned partner. -#. Go to Partner form and assign an partner to it. -#. You can group Partners by assigned partner. +1. Go to Lead and assign a partner to it. You can assign a partner + contact too. +2. You can filter the leads by assigned partner. +3. Go to Partner form and assign an partner to it. +4. You can group Partners by assigned partner. Bug Tracker =========== @@ -73,25 +84,25 @@ Credits ======= Authors -~~~~~~~ +------- * Moduon Contributors -~~~~~~~~~~~~ +------------ -* Eduardo de Miguel (`Moduon `__) -* Rafael Blasco (`Moduon `__) +- Eduardo de Miguel (`Moduon `__) +- Rafael Blasco (`Moduon `__) Other credits -~~~~~~~~~~~~~ +------------- The development of this module has been financially supported by: -* Moduon Team S.L. +- Moduon Team S.L. Maintainers -~~~~~~~~~~~ +----------- This module is maintained by the OCA. diff --git a/crm_partner_assign/__manifest__.py b/crm_partner_assign/__manifest__.py index 3fb73047bfe..bc9d35fb804 100644 --- a/crm_partner_assign/__manifest__.py +++ b/crm_partner_assign/__manifest__.py @@ -3,7 +3,8 @@ { "name": "CRM Partner Assign", - "summary": "Assign a Partner to an Opportunity/Lead/Partner to indicate Partnership", + "summary": "Assign a Partner to an Opportunity/Lead/Partner to indicate" + " Partnership", "version": "16.0.0.1.2", "development_status": "Alpha", "category": "Sales/CRM", diff --git a/crm_partner_assign/pyproject.toml b/crm_partner_assign/pyproject.toml new file mode 100644 index 00000000000..4231d0cccb3 --- /dev/null +++ b/crm_partner_assign/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.buildapi" diff --git a/crm_partner_assign/readme/CONTRIBUTORS.md b/crm_partner_assign/readme/CONTRIBUTORS.md new file mode 100644 index 00000000000..0ca1be35b55 --- /dev/null +++ b/crm_partner_assign/readme/CONTRIBUTORS.md @@ -0,0 +1,2 @@ +- Eduardo de Miguel ([Moduon](https://www.moduon.team/)) +- Rafael Blasco ([Moduon](https://www.moduon.team/)) diff --git a/crm_partner_assign/readme/CONTRIBUTORS.rst b/crm_partner_assign/readme/CONTRIBUTORS.rst deleted file mode 100644 index 249b6b1dae9..00000000000 --- a/crm_partner_assign/readme/CONTRIBUTORS.rst +++ /dev/null @@ -1,2 +0,0 @@ -* Eduardo de Miguel (`Moduon `__) -* Rafael Blasco (`Moduon `__) diff --git a/crm_partner_assign/readme/CREDITS.rst b/crm_partner_assign/readme/CREDITS.md similarity index 76% rename from crm_partner_assign/readme/CREDITS.rst rename to crm_partner_assign/readme/CREDITS.md index 9128243f5bb..c0a4d7040f2 100644 --- a/crm_partner_assign/readme/CREDITS.rst +++ b/crm_partner_assign/readme/CREDITS.md @@ -1,3 +1,3 @@ The development of this module has been financially supported by: -* Moduon Team S.L. +- Moduon Team S.L. diff --git a/crm_partner_assign/readme/DESCRIPTION.md b/crm_partner_assign/readme/DESCRIPTION.md new file mode 100644 index 00000000000..24128610cf2 --- /dev/null +++ b/crm_partner_assign/readme/DESCRIPTION.md @@ -0,0 +1,4 @@ +This module extends the functionality of CRM Leads to support assigning +an associate partner to leads and to allow you to check if a Lead is +being worked on by an associate partner. Also you can link a Partner to +another Partner as an implementation partner. diff --git a/crm_partner_assign/readme/DESCRIPTION.rst b/crm_partner_assign/readme/DESCRIPTION.rst deleted file mode 100644 index b8a5cad4aad..00000000000 --- a/crm_partner_assign/readme/DESCRIPTION.rst +++ /dev/null @@ -1,3 +0,0 @@ -This module extends the functionality of CRM Leads to support assigning an associate partner to leads -and to allow you to check if a Lead is being worked on by an associate partner. -Also you can link a Partner to another Partner as an implementation partner. diff --git a/crm_partner_assign/readme/INSTALL.md b/crm_partner_assign/readme/INSTALL.md new file mode 100644 index 00000000000..19f7b38f582 --- /dev/null +++ b/crm_partner_assign/readme/INSTALL.md @@ -0,0 +1,8 @@ +This module is the minimum viable product of the +*website_crm_partner_assign* module. If you have the *website* module +installed and you want a more complete module, take a look at the +*website_crm_partner_assign* module. This module uses the same field +names as the *website_crm_partner_assign* module, so if you want to use +*website_crm_partner_assign* and don't lose data, you must install +*website_crm_partner_assign* and then uninstall this module (in this +order). diff --git a/crm_partner_assign/readme/INSTALL.rst b/crm_partner_assign/readme/INSTALL.rst deleted file mode 100644 index f7d25c7a54d..00000000000 --- a/crm_partner_assign/readme/INSTALL.rst +++ /dev/null @@ -1,3 +0,0 @@ -This module is the minimum viable product of the *website_crm_partner_assign* module. -If you have the *website* module installed and you want a more complete module, take a look at the *website_crm_partner_assign* module. -This module uses the same field names as the *website_crm_partner_assign* module, so if you want to use *website_crm_partner_assign* and don't lose data, you must install *website_crm_partner_assign* and then uninstall this module (in this order). diff --git a/crm_partner_assign/readme/USAGE.md b/crm_partner_assign/readme/USAGE.md new file mode 100644 index 00000000000..bc847bb1baa --- /dev/null +++ b/crm_partner_assign/readme/USAGE.md @@ -0,0 +1,7 @@ +To use this module, you need to: + +1. Go to Lead and assign a partner to it. You can assign a partner + contact too. +2. You can filter the leads by assigned partner. +3. Go to Partner form and assign an partner to it. +4. You can group Partners by assigned partner. diff --git a/crm_partner_assign/readme/USAGE.rst b/crm_partner_assign/readme/USAGE.rst deleted file mode 100644 index c943ede7c46..00000000000 --- a/crm_partner_assign/readme/USAGE.rst +++ /dev/null @@ -1,6 +0,0 @@ -To use this module, you need to: - -#. Go to Lead and assign a partner to it. You can assign a partner contact too. -#. You can filter the leads by assigned partner. -#. Go to Partner form and assign an partner to it. -#. You can group Partners by assigned partner. diff --git a/crm_partner_assign/static/description/index.html b/crm_partner_assign/static/description/index.html index 0b5c0c31570..5d25fe399a2 100644 --- a/crm_partner_assign/static/description/index.html +++ b/crm_partner_assign/static/description/index.html @@ -1,18 +1,18 @@ - -CRM Partner Assign +README.rst -
-

CRM Partner Assign

+
+ + +Odoo Community Association + +
+

CRM Partner Assign

-

Alpha License: AGPL-3 OCA/crm Translate me on Weblate Try me on Runboat

-

This module extends the functionality of CRM Leads to support assigning an associate partner to leads -and to allow you to check if a Lead is being worked on by an associate partner. -Also you can link a Partner to another Partner as an implementation partner.

+

Alpha License: AGPL-3 OCA/crm Translate me on Weblate Try me on Runboat

+

This module extends the functionality of CRM Leads to support assigning +an associate partner to leads and to allow you to check if a Lead is +being worked on by an associate partner. Also you can link a Partner to +another Partner as an implementation partner.

Important

This is an alpha version, the data model and design can change at any time without warning. @@ -395,23 +401,29 @@

CRM Partner Assign

-

Installation

-

This module is the minimum viable product of the website_crm_partner_assign module. -If you have the website module installed and you want a more complete module, take a look at the website_crm_partner_assign module. -This module uses the same field names as the website_crm_partner_assign module, so if you want to use website_crm_partner_assign and don’t lose data, you must install website_crm_partner_assign and then uninstall this module (in this order).

+

Installation

+

This module is the minimum viable product of the +website_crm_partner_assign module. If you have the website module +installed and you want a more complete module, take a look at the +website_crm_partner_assign module. This module uses the same field +names as the website_crm_partner_assign module, so if you want to use +website_crm_partner_assign and don’t lose data, you must install +website_crm_partner_assign and then uninstall this module (in this +order).

-

Usage

+

Usage

To use this module, you need to:

    -
  1. Go to Lead and assign a partner to it. You can assign a partner contact too.
  2. +
  3. Go to Lead and assign a partner to it. You can assign a partner +contact too.
  4. You can filter the leads by assigned partner.
  5. Go to Partner form and assign an partner to it.
  6. You can group Partners by assigned partner.
-

Bug Tracker

+

Bug Tracker

Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed @@ -419,31 +431,33 @@

Bug Tracker

Do not contact contributors directly about support or help with technical issues.

-

Credits

+

Credits

-

Authors

+

Authors

  • Moduon
-

Contributors

+

Contributors

-

Other credits

+

Other credits

The development of this module has been financially supported by:

  • Moduon Team S.L.
-

Maintainers

+

Maintainers

This module is maintained by the OCA.

-Odoo Community Association + +Odoo Community Association +

OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use.

@@ -454,5 +468,6 @@

Maintainers

+
diff --git a/crm_partner_required/pyproject.toml b/crm_partner_required/pyproject.toml new file mode 100644 index 00000000000..4231d0cccb3 --- /dev/null +++ b/crm_partner_required/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.buildapi" diff --git a/crm_phonecall/README.rst b/crm_phonecall/README.rst index eebecfd4014..6e15bed4a8a 100644 --- a/crm_phonecall/README.rst +++ b/crm_phonecall/README.rst @@ -1,3 +1,7 @@ +.. image:: https://odoo-community.org/readme-banner-image + :target: https://odoo-community.org/get-involved?utm_source=readme + :alt: Odoo Community Association + =============== CRM Phone Calls =============== @@ -13,7 +17,7 @@ CRM Phone Calls .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png :target: https://odoo-community.org/page/development-status :alt: Beta -.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png +.. |badge2| image:: https://img.shields.io/badge/license-AGPL--3-blue.png :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fcrm-lightgray.png?logo=github @@ -40,19 +44,20 @@ Usage To use this module, you need to: -#. Go to *CRM > Phone Calls > Logged Calls > New*. -#. If your user has *Show Scheduled Calls Menu* permission, you will see +1. Go to *CRM > Phone Calls > Logged Calls > New*. +2. If your user has *Show Scheduled Calls Menu* permission, you will see scheduled calls menu too. -#. In any moment you can schedule another call, schedule a meeting or convert - call contact to opportunity. -#. Calls can be categorized and you can manage categories in *CRM > +3. In any moment you can schedule another call, schedule a meeting or + convert call contact to opportunity. +4. Calls can be categorized and you can manage categories in *CRM > Configuration > Phone Calls > Categories*. -#. Calls can be analyzed in *CRM > Reporting > Phone Calls Analysis*. +5. Calls can be analyzed in *CRM > Reporting > Phone Calls Analysis*. Known issues / Roadmap ====================== -* Simplify the function schedule_another_phonecall returning always a recordset +- Simplify the function schedule_another_phonecall returning always a + recordset Bug Tracker =========== @@ -68,36 +73,34 @@ Credits ======= Authors -~~~~~~~ +------- * Odoo S.A. * Tecnativa Contributors -~~~~~~~~~~~~ - -* Odoo S.A. -* `Tecnativa `_ - - * Vicent Cubells - * Jairo Llopis - * David Vidal - * Alexandre Díaz - * Stefan Ungureanu +------------ -* RIDA YAHLA +- Odoo S.A. +- `Tecnativa `__ -* Anand Kansagra + - Vicent Cubells + - Jairo Llopis + - David Vidal + - Alexandre Díaz + - Stefan Ungureanu -* `Druidoo `_ +- RIDA YAHLA +- Anand Kansagra +- `Druidoo `__ - * Iván Todorovich - * Manuel Marquez + - Iván Todorovich + - Manuel Marquez -* Ruchir Shukla +- Ruchir Shukla Maintainers -~~~~~~~~~~~ +----------- This module is maintained by the OCA. diff --git a/crm_phonecall/models/crm_phonecall.py b/crm_phonecall/models/crm_phonecall.py index 5a703509ebf..e83035bc726 100644 --- a/crm_phonecall/models/crm_phonecall.py +++ b/crm_phonecall/models/crm_phonecall.py @@ -219,8 +219,9 @@ def action_button_convert2opportunity(self): return opportunity_id.redirect_lead_opportunity_view() def _get_view(self, view_id=None, view_type="form", **options): - """Inject group check to make the tree editable or not. Apparently it can't be done - by pure view inheritance and attribute overriding""" + """Inject group check to make the tree editable or not. + + Apparently it can't be done by pure view inheritance and attribute overriding""" arch, view = super()._get_view(view_id, view_type, **options) if view_type == "tree" and self.env.user.has_group( "crm_phonecall.group_show_form_view" diff --git a/crm_phonecall/pyproject.toml b/crm_phonecall/pyproject.toml new file mode 100644 index 00000000000..4231d0cccb3 --- /dev/null +++ b/crm_phonecall/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.buildapi" diff --git a/crm_phonecall/readme/CONTRIBUTORS.md b/crm_phonecall/readme/CONTRIBUTORS.md new file mode 100644 index 00000000000..4bbdbe8f49e --- /dev/null +++ b/crm_phonecall/readme/CONTRIBUTORS.md @@ -0,0 +1,13 @@ +- Odoo S.A. +- [Tecnativa](https://www.tecnativa.com) + - Vicent Cubells + - Jairo Llopis + - David Vidal + - Alexandre Díaz + - Stefan Ungureanu +- RIDA YAHLA \<\> +- Anand Kansagra \<\> +- [Druidoo](https://www.druidoo.io) + - Iván Todorovich \<\> + - Manuel Marquez \<\> +- Ruchir Shukla \<\> diff --git a/crm_phonecall/readme/CONTRIBUTORS.rst b/crm_phonecall/readme/CONTRIBUTORS.rst deleted file mode 100644 index 7367a520a9b..00000000000 --- a/crm_phonecall/readme/CONTRIBUTORS.rst +++ /dev/null @@ -1,19 +0,0 @@ -* Odoo S.A. -* `Tecnativa `_ - - * Vicent Cubells - * Jairo Llopis - * David Vidal - * Alexandre Díaz - * Stefan Ungureanu - -* RIDA YAHLA - -* Anand Kansagra - -* `Druidoo `_ - - * Iván Todorovich - * Manuel Marquez - -* Ruchir Shukla diff --git a/crm_phonecall/readme/DESCRIPTION.rst b/crm_phonecall/readme/DESCRIPTION.md similarity index 100% rename from crm_phonecall/readme/DESCRIPTION.rst rename to crm_phonecall/readme/DESCRIPTION.md diff --git a/crm_phonecall/readme/ROADMAP.md b/crm_phonecall/readme/ROADMAP.md new file mode 100644 index 00000000000..b0a284cd8b3 --- /dev/null +++ b/crm_phonecall/readme/ROADMAP.md @@ -0,0 +1,2 @@ +- Simplify the function schedule_another_phonecall returning always a + recordset diff --git a/crm_phonecall/readme/ROADMAP.rst b/crm_phonecall/readme/ROADMAP.rst deleted file mode 100644 index 9f54bdd8754..00000000000 --- a/crm_phonecall/readme/ROADMAP.rst +++ /dev/null @@ -1 +0,0 @@ -* Simplify the function schedule_another_phonecall returning always a recordset diff --git a/crm_phonecall/readme/USAGE.md b/crm_phonecall/readme/USAGE.md new file mode 100644 index 00000000000..589a4a0fe50 --- /dev/null +++ b/crm_phonecall/readme/USAGE.md @@ -0,0 +1,10 @@ +To use this module, you need to: + +1. Go to *CRM \> Phone Calls \> Logged Calls \> New*. +2. If your user has *Show Scheduled Calls Menu* permission, you will + see scheduled calls menu too. +3. In any moment you can schedule another call, schedule a meeting or + convert call contact to opportunity. +4. Calls can be categorized and you can manage categories in *CRM \> + Configuration \> Phone Calls \> Categories*. +5. Calls can be analyzed in *CRM \> Reporting \> Phone Calls Analysis*. diff --git a/crm_phonecall/readme/USAGE.rst b/crm_phonecall/readme/USAGE.rst deleted file mode 100644 index 6a8170975c4..00000000000 --- a/crm_phonecall/readme/USAGE.rst +++ /dev/null @@ -1,10 +0,0 @@ -To use this module, you need to: - -#. Go to *CRM > Phone Calls > Logged Calls > New*. -#. If your user has *Show Scheduled Calls Menu* permission, you will see - scheduled calls menu too. -#. In any moment you can schedule another call, schedule a meeting or convert - call contact to opportunity. -#. Calls can be categorized and you can manage categories in *CRM > - Configuration > Phone Calls > Categories*. -#. Calls can be analyzed in *CRM > Reporting > Phone Calls Analysis*. diff --git a/crm_phonecall/static/description/index.html b/crm_phonecall/static/description/index.html index 87596390733..3763f65d689 100755 --- a/crm_phonecall/static/description/index.html +++ b/crm_phonecall/static/description/index.html @@ -1,18 +1,18 @@ - -CRM Phone Calls +README.rst -
-

CRM Phone Calls

+
+ + +Odoo Community Association + +
+

CRM Phone Calls

-

Beta License: AGPL-3 OCA/crm Translate me on Weblate Try me on Runboat

+

Beta License: AGPL-3 OCA/crm Translate me on Weblate Try me on Runboat

This module allows to manage phone calls in order to analyze them.

Table of contents

@@ -386,27 +391,28 @@

CRM Phone Calls

-

Usage

+

Usage

To use this module, you need to:

  1. Go to CRM > Phone Calls > Logged Calls > New.
  2. If your user has Show Scheduled Calls Menu permission, you will see scheduled calls menu too.
  3. -
  4. In any moment you can schedule another call, schedule a meeting or convert -call contact to opportunity.
  5. +
  6. In any moment you can schedule another call, schedule a meeting or +convert call contact to opportunity.
  7. Calls can be categorized and you can manage categories in CRM > Configuration > Phone Calls > Categories.
  8. Calls can be analyzed in CRM > Reporting > Phone Calls Analysis.
-

Known issues / Roadmap

+

Known issues / Roadmap

    -
  • Simplify the function schedule_another_phonecall returning always a recordset
  • +
  • Simplify the function schedule_another_phonecall returning always a +recordset
-

Bug Tracker

+

Bug Tracker

Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed @@ -414,16 +420,16 @@

Bug Tracker

Do not contact contributors directly about support or help with technical issues.

-

Credits

+

Credits

-

Authors

+

Authors

  • Odoo S.A.
  • Tecnativa
-

Contributors

+

Contributors

-

Maintainers

+

Maintainers

This module is maintained by the OCA.

-Odoo Community Association + +Odoo Community Association +

OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use.

@@ -456,5 +464,6 @@

Maintainers

+
diff --git a/crm_project_create/models/crm_lead.py b/crm_project_create/models/crm_lead.py index c7e9cb9233b..9f37cd78868 100644 --- a/crm_project_create/models/crm_lead.py +++ b/crm_project_create/models/crm_lead.py @@ -10,9 +10,10 @@ class CrmLead(models.Model): project_id = fields.Many2one("project.project", string="Project") def toggle_active(self): - """Archive or reactivate the project and their analytic account on lead toggle.""" + """Archive or reactivate the project and their analytic account + on lead toggle.""" res = super().toggle_active() - for lead in self.filtered(lambda l: l.project_id): + for lead in self.filtered(lambda lead: lead.project_id): lead.sudo().project_id.active = lead.active lead.sudo().project_id.analytic_account_id.active = lead.active return res diff --git a/crm_project_create/pyproject.toml b/crm_project_create/pyproject.toml new file mode 100644 index 00000000000..4231d0cccb3 --- /dev/null +++ b/crm_project_create/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.buildapi" diff --git a/crm_project_task/README.rst b/crm_project_task/README.rst index 421ed68652b..455fa04b92d 100644 --- a/crm_project_task/README.rst +++ b/crm_project_task/README.rst @@ -1,3 +1,7 @@ +.. image:: https://odoo-community.org/readme-banner-image + :target: https://odoo-community.org/get-involved?utm_source=readme + :alt: Odoo Community Association + ================ CRM Project Task ================ @@ -13,7 +17,7 @@ CRM Project Task .. |badge1| image:: https://img.shields.io/badge/maturity-Alpha-red.png :target: https://odoo-community.org/page/development-status :alt: Alpha -.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png +.. |badge2| image:: https://img.shields.io/badge/license-AGPL--3-blue.png :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fcrm-lightgray.png?logo=github @@ -45,21 +49,24 @@ Configuration To configure this module, you need to: -* Go to Project -* Create a project with right configuration in order that all salesman have access (usually all employees) -* Go to CRM > Configuration > Project -* Set crm default project +- Go to Project +- Create a project with right configuration in order that all salesman + have access (usually all employees) +- Go to CRM > Configuration > Project +- Set crm default project Usage ===== -#. Go to *CRM > Sales > My pipeline*. -#. Open one of the existing leads or create one. -#. Click on the button "Create Task". -#. A popup will appear asking you name and description for create task. -#. Click on "Create Task" button. -#. A task will be created with project in settings. -#. A message chatter will be created in task with link for lead/opportunity. Also, a message chatter will be creat in lead/opportunity with link for task. +1. Go to *CRM > Sales > My pipeline*. +2. Open one of the existing leads or create one. +3. Click on the button "Create Task". +4. A popup will appear asking you name and description for create task. +5. Click on "Create Task" button. +6. A task will be created with project in settings. +7. A message chatter will be created in task with link for + lead/opportunity. Also, a message chatter will be creat in + lead/opportunity with link for task. Bug Tracker =========== @@ -75,18 +82,18 @@ Credits ======= Authors -~~~~~~~ +------- * Moduon Contributors -~~~~~~~~~~~~ +------------ -* Emilio Pascual (`Moduon `__) -* Rafael Blasco (`Moduon `__) +- Emilio Pascual (`Moduon `__) +- Rafael Blasco (`Moduon `__) Maintainers -~~~~~~~~~~~ +----------- This module is maintained by the OCA. diff --git a/crm_project_task/pyproject.toml b/crm_project_task/pyproject.toml new file mode 100644 index 00000000000..4231d0cccb3 --- /dev/null +++ b/crm_project_task/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.buildapi" diff --git a/crm_project_task/readme/CONFIGURE.md b/crm_project_task/readme/CONFIGURE.md new file mode 100644 index 00000000000..3c79f0521ba --- /dev/null +++ b/crm_project_task/readme/CONFIGURE.md @@ -0,0 +1,7 @@ +To configure this module, you need to: + +- Go to Project +- Create a project with right configuration in order that all salesman + have access (usually all employees) +- Go to CRM \> Configuration \> Project +- Set crm default project diff --git a/crm_project_task/readme/CONFIGURE.rst b/crm_project_task/readme/CONFIGURE.rst deleted file mode 100644 index 41b94a74234..00000000000 --- a/crm_project_task/readme/CONFIGURE.rst +++ /dev/null @@ -1,6 +0,0 @@ -To configure this module, you need to: - -* Go to Project -* Create a project with right configuration in order that all salesman have access (usually all employees) -* Go to CRM > Configuration > Project -* Set crm default project diff --git a/crm_project_task/readme/CONTRIBUTORS.md b/crm_project_task/readme/CONTRIBUTORS.md new file mode 100644 index 00000000000..dce7667b274 --- /dev/null +++ b/crm_project_task/readme/CONTRIBUTORS.md @@ -0,0 +1,2 @@ +- Emilio Pascual ([Moduon](https://www.moduon.team/)) +- Rafael Blasco ([Moduon](https://www.moduon.team/)) diff --git a/crm_project_task/readme/CONTRIBUTORS.rst b/crm_project_task/readme/CONTRIBUTORS.rst deleted file mode 100644 index 281e09d04ce..00000000000 --- a/crm_project_task/readme/CONTRIBUTORS.rst +++ /dev/null @@ -1,2 +0,0 @@ -* Emilio Pascual (`Moduon `__) -* Rafael Blasco (`Moduon `__) diff --git a/crm_project_task/readme/DESCRIPTION.rst b/crm_project_task/readme/DESCRIPTION.md similarity index 100% rename from crm_project_task/readme/DESCRIPTION.rst rename to crm_project_task/readme/DESCRIPTION.md diff --git a/crm_project_task/readme/USAGE.md b/crm_project_task/readme/USAGE.md new file mode 100644 index 00000000000..de629fac5c7 --- /dev/null +++ b/crm_project_task/readme/USAGE.md @@ -0,0 +1,9 @@ +1. Go to *CRM \> Sales \> My pipeline*. +2. Open one of the existing leads or create one. +3. Click on the button "Create Task". +4. A popup will appear asking you name and description for create task. +5. Click on "Create Task" button. +6. A task will be created with project in settings. +7. A message chatter will be created in task with link for + lead/opportunity. Also, a message chatter will be creat in + lead/opportunity with link for task. diff --git a/crm_project_task/readme/USAGE.rst b/crm_project_task/readme/USAGE.rst deleted file mode 100644 index ba3747c4eab..00000000000 --- a/crm_project_task/readme/USAGE.rst +++ /dev/null @@ -1,7 +0,0 @@ -#. Go to *CRM > Sales > My pipeline*. -#. Open one of the existing leads or create one. -#. Click on the button "Create Task". -#. A popup will appear asking you name and description for create task. -#. Click on "Create Task" button. -#. A task will be created with project in settings. -#. A message chatter will be created in task with link for lead/opportunity. Also, a message chatter will be creat in lead/opportunity with link for task. diff --git a/crm_project_task/static/description/index.html b/crm_project_task/static/description/index.html index 1a9a46e2e6b..475247d3bf3 100644 --- a/crm_project_task/static/description/index.html +++ b/crm_project_task/static/description/index.html @@ -3,15 +3,16 @@ -CRM Project Task +README.rst -
-

CRM Project Task

+
+ + +Odoo Community Association + +
+

CRM Project Task

-

Alpha License: AGPL-3 OCA/crm Translate me on Weblate Try me on Runboat

+

Alpha License: AGPL-3 OCA/crm Translate me on Weblate Try me on Runboat

This module allow create task from leads/opportunities

Important

@@ -391,17 +397,18 @@

CRM Project Task

-

Configuration

+

Configuration

To configure this module, you need to:

  • Go to Project
  • -
  • Create a project with right configuration in order that all salesman have access (usually all employees)
  • +
  • Create a project with right configuration in order that all salesman +have access (usually all employees)
  • Go to CRM > Configuration > Project
  • Set crm default project
-

Usage

+

Usage

  1. Go to CRM > Sales > My pipeline.
  2. Open one of the existing leads or create one.
  3. @@ -409,11 +416,13 @@

    Usage

  4. A popup will appear asking you name and description for create task.
  5. Click on “Create Task” button.
  6. A task will be created with project in settings.
  7. -
  8. A message chatter will be created in task with link for lead/opportunity. Also, a message chatter will be creat in lead/opportunity with link for task.
  9. +
  10. A message chatter will be created in task with link for +lead/opportunity. Also, a message chatter will be creat in +lead/opportunity with link for task.
-

Bug Tracker

+

Bug Tracker

Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed @@ -421,24 +430,26 @@

Bug Tracker

Do not contact contributors directly about support or help with technical issues.

-

Credits

+

Credits

-

Authors

+

Authors

  • Moduon
-

Contributors

+

Contributors

-

Maintainers

+

Maintainers

This module is maintained by the OCA.

-Odoo Community Association + +Odoo Community Association +

OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use.

@@ -449,5 +460,6 @@

Maintainers

+
diff --git a/crm_project_task/wizards/crm_create_task.py b/crm_project_task/wizards/crm_create_task.py index 60776855e05..cfe9c53bd7c 100644 --- a/crm_project_task/wizards/crm_create_task.py +++ b/crm_project_task/wizards/crm_create_task.py @@ -31,7 +31,8 @@ def create_task(self): if not lead: raise UserError( _( - "Lead/Opportunity not found. Please, create task from lead/opportunity." + "Lead/Opportunity not found. " + "Please, create task from lead/opportunity." ) ) diff --git a/crm_salesperson_planner/README.rst b/crm_salesperson_planner/README.rst index 2a3f61e5969..eb401b38df3 100644 --- a/crm_salesperson_planner/README.rst +++ b/crm_salesperson_planner/README.rst @@ -32,9 +32,16 @@ Crm Salesperson Planner |badge1| |badge2| |badge3| |badge4| |badge5| -This application allows you to track and schedule salespeople visits to your customers, allowing you to determine which opportunities are going to be dealt on each visit. Visits create an all day event in calendar, and they can be easily rescheduled. -Visits can be automatically created from a template, in which it is possible to select the frequency of visits, as well as the start and end dates. The last visit can also be calculated by selecting the total number of repetitions. -This module creates a cron that generates visits from templates, but an option to create them manually is available from the template form view when the template is validated. +This application allows you to track and schedule salespeople visits to +your customers, allowing you to determine which opportunities are going +to be dealt on each visit. Visits create an all day event in calendar, +and they can be easily rescheduled. Visits can be automatically created +from a template, in which it is possible to select the frequency of +visits, as well as the start and end dates. The last visit can also be +calculated by selecting the total number of repetitions. This module +creates a cron that generates visits from templates, but an option to +create them manually is available from the template form view when the +template is validated. **Table of contents** @@ -46,17 +53,22 @@ Configuration To configure this module, you need to: -* Go to new menu **CRM > Configuration > Salesperson Planner > Close Reasons** and create a close reason for 'Cancel' and 'Incident' types. +- Go to new menu **CRM > Configuration > Salesperson Planner > Close + Reasons** and create a close reason for 'Cancel' and 'Incident' + types. Usage ===== -Go to new menu **CRM > Salesperson Planner > My Visits or All Visits** and create a new visit. -or -Go to **CRM > Salesperson Planner > Visit Templates** and create a new recurring template for create periodical visits. In this case, it is necessary to select a start date. The date of the last repetition can be calculated by selection the total number of repetitions or an end date. -There are two options available to reschedule visits that is already validated: -* Change the date from the visit. -* Change the date straight from the event automatically created in the calendar. +Go to new menu **CRM > Salesperson Planner > My Visits or All Visits** +and create a new visit. or Go to **CRM > Salesperson Planner > Visit +Templates** and create a new recurring template for create periodical +visits. In this case, it is necessary to select a start date. The date +of the last repetition can be calculated by selection the total number +of repetitions or an end date. There are two options available to +reschedule visits that is already validated: \* Change the date from the +visit. \* Change the date straight from the event automatically created +in the calendar. Bug Tracker =========== @@ -72,28 +84,28 @@ Credits ======= Authors -~~~~~~~ +------- * Sygel Technology Contributors -~~~~~~~~~~~~ +------------ -* `Sygel `__: +- `Sygel `__: - * Valentin Vinagre - * Manuel Regidor + - Valentin Vinagre + - Manuel Regidor -* `Pesol `__: +- `Pesol `__: - * Gerardo Marin Parra + - Gerardo Marin Parra -* `Tecnativa `_: +- `Tecnativa `__: - * Víctor Martínez + - Víctor Martínez Maintainers -~~~~~~~~~~~ +----------- This module is maintained by the OCA. diff --git a/crm_salesperson_planner/pyproject.toml b/crm_salesperson_planner/pyproject.toml new file mode 100644 index 00000000000..4231d0cccb3 --- /dev/null +++ b/crm_salesperson_planner/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.buildapi" diff --git a/crm_salesperson_planner/readme/CONFIGURE.md b/crm_salesperson_planner/readme/CONFIGURE.md new file mode 100644 index 00000000000..157be4cf228 --- /dev/null +++ b/crm_salesperson_planner/readme/CONFIGURE.md @@ -0,0 +1,5 @@ +To configure this module, you need to: + +- Go to new menu **CRM \> Configuration \> Salesperson Planner \> + Close Reasons** and create a close reason for 'Cancel' and + 'Incident' types. diff --git a/crm_salesperson_planner/readme/CONFIGURE.rst b/crm_salesperson_planner/readme/CONFIGURE.rst deleted file mode 100644 index b21e85f5692..00000000000 --- a/crm_salesperson_planner/readme/CONFIGURE.rst +++ /dev/null @@ -1,3 +0,0 @@ -To configure this module, you need to: - -* Go to new menu **CRM > Configuration > Salesperson Planner > Close Reasons** and create a close reason for 'Cancel' and 'Incident' types. diff --git a/crm_salesperson_planner/readme/CONTRIBUTORS.md b/crm_salesperson_planner/readme/CONTRIBUTORS.md new file mode 100644 index 00000000000..747f2a49aeb --- /dev/null +++ b/crm_salesperson_planner/readme/CONTRIBUTORS.md @@ -0,0 +1,7 @@ +- [Sygel](https://www.sygel.es): + - Valentin Vinagre + - Manuel Regidor +- [Pesol](https://www.pesol.es): + - Gerardo Marin Parra \<\> +- [Tecnativa](https://www.tecnativa.com): + - Víctor Martínez diff --git a/crm_salesperson_planner/readme/CONTRIBUTORS.rst b/crm_salesperson_planner/readme/CONTRIBUTORS.rst deleted file mode 100644 index a9cb60f5f45..00000000000 --- a/crm_salesperson_planner/readme/CONTRIBUTORS.rst +++ /dev/null @@ -1,12 +0,0 @@ -* `Sygel `__: - - * Valentin Vinagre - * Manuel Regidor - -* `Pesol `__: - - * Gerardo Marin Parra - -* `Tecnativa `_: - - * Víctor Martínez diff --git a/crm_salesperson_planner/readme/DESCRIPTION.md b/crm_salesperson_planner/readme/DESCRIPTION.md new file mode 100644 index 00000000000..46c87119e85 --- /dev/null +++ b/crm_salesperson_planner/readme/DESCRIPTION.md @@ -0,0 +1,10 @@ +This application allows you to track and schedule salespeople visits to +your customers, allowing you to determine which opportunities are going +to be dealt on each visit. Visits create an all day event in calendar, +and they can be easily rescheduled. Visits can be automatically created +from a template, in which it is possible to select the frequency of +visits, as well as the start and end dates. The last visit can also be +calculated by selecting the total number of repetitions. This module +creates a cron that generates visits from templates, but an option to +create them manually is available from the template form view when the +template is validated. diff --git a/crm_salesperson_planner/readme/DESCRIPTION.rst b/crm_salesperson_planner/readme/DESCRIPTION.rst deleted file mode 100644 index 7f40eb8e8cc..00000000000 --- a/crm_salesperson_planner/readme/DESCRIPTION.rst +++ /dev/null @@ -1,3 +0,0 @@ -This application allows you to track and schedule salespeople visits to your customers, allowing you to determine which opportunities are going to be dealt on each visit. Visits create an all day event in calendar, and they can be easily rescheduled. -Visits can be automatically created from a template, in which it is possible to select the frequency of visits, as well as the start and end dates. The last visit can also be calculated by selecting the total number of repetitions. -This module creates a cron that generates visits from templates, but an option to create them manually is available from the template form view when the template is validated. diff --git a/crm_salesperson_planner/readme/USAGE.md b/crm_salesperson_planner/readme/USAGE.md new file mode 100644 index 00000000000..19238180b3c --- /dev/null +++ b/crm_salesperson_planner/readme/USAGE.md @@ -0,0 +1,9 @@ +Go to new menu **CRM \> Salesperson Planner \> My Visits or All Visits** +and create a new visit. or Go to **CRM \> Salesperson Planner \> Visit +Templates** and create a new recurring template for create periodical +visits. In this case, it is necessary to select a start date. The date +of the last repetition can be calculated by selection the total number +of repetitions or an end date. There are two options available to +reschedule visits that is already validated: \* Change the date from the +visit. \* Change the date straight from the event automatically created +in the calendar. diff --git a/crm_salesperson_planner/readme/USAGE.rst b/crm_salesperson_planner/readme/USAGE.rst deleted file mode 100644 index cc440b32e2e..00000000000 --- a/crm_salesperson_planner/readme/USAGE.rst +++ /dev/null @@ -1,6 +0,0 @@ -Go to new menu **CRM > Salesperson Planner > My Visits or All Visits** and create a new visit. -or -Go to **CRM > Salesperson Planner > Visit Templates** and create a new recurring template for create periodical visits. In this case, it is necessary to select a start date. The date of the last repetition can be calculated by selection the total number of repetitions or an end date. -There are two options available to reschedule visits that is already validated: -* Change the date from the visit. -* Change the date straight from the event automatically created in the calendar. diff --git a/crm_salesperson_planner/static/description/index.html b/crm_salesperson_planner/static/description/index.html index 5f967709aed..d124146ff65 100644 --- a/crm_salesperson_planner/static/description/index.html +++ b/crm_salesperson_planner/static/description/index.html @@ -375,9 +375,16 @@

Crm Salesperson Planner

!! source digest: sha256:56aef251cf05ca82344a0f8ed8707f8e96f6396e6083dfca4bc58cce79ceb3e6 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->

Beta License: AGPL-3 OCA/crm Translate me on Weblate Try me on Runboat

-

This application allows you to track and schedule salespeople visits to your customers, allowing you to determine which opportunities are going to be dealt on each visit. Visits create an all day event in calendar, and they can be easily rescheduled. -Visits can be automatically created from a template, in which it is possible to select the frequency of visits, as well as the start and end dates. The last visit can also be calculated by selecting the total number of repetitions. -This module creates a cron that generates visits from templates, but an option to create them manually is available from the template form view when the template is validated.

+

This application allows you to track and schedule salespeople visits to +your customers, allowing you to determine which opportunities are going +to be dealt on each visit. Visits create an all day event in calendar, +and they can be easily rescheduled. Visits can be automatically created +from a template, in which it is possible to select the frequency of +visits, as well as the start and end dates. The last visit can also be +calculated by selecting the total number of repetitions. This module +creates a cron that generates visits from templates, but an option to +create them manually is available from the template form view when the +template is validated.

Table of contents

    @@ -396,17 +403,22 @@

    Crm Salesperson Planner

    Configuration

    To configure this module, you need to:

      -
    • Go to new menu CRM > Configuration > Salesperson Planner > Close Reasons and create a close reason for ‘Cancel’ and ‘Incident’ types.
    • +
    • Go to new menu CRM > Configuration > Salesperson Planner > Close +Reasons and create a close reason for ‘Cancel’ and ‘Incident’ +types.

Usage

-

Go to new menu CRM > Salesperson Planner > My Visits or All Visits and create a new visit. -or -Go to CRM > Salesperson Planner > Visit Templates and create a new recurring template for create periodical visits. In this case, it is necessary to select a start date. The date of the last repetition can be calculated by selection the total number of repetitions or an end date. -There are two options available to reschedule visits that is already validated: -* Change the date from the visit. -* Change the date straight from the event automatically created in the calendar.

+

Go to new menu CRM > Salesperson Planner > My Visits or All Visits +and create a new visit. or Go to CRM > Salesperson Planner > Visit +Templates and create a new recurring template for create periodical +visits. In this case, it is necessary to select a start date. The date +of the last repetition can be calculated by selection the total number +of repetitions or an end date. There are two options available to +reschedule visits that is already validated: * Change the date from the +visit. * Change the date straight from the event automatically created +in the calendar.

Bug Tracker

diff --git a/crm_salesperson_planner_sale/README.rst b/crm_salesperson_planner_sale/README.rst index 9cd7f59e7cb..98928bd9d5e 100644 --- a/crm_salesperson_planner_sale/README.rst +++ b/crm_salesperson_planner_sale/README.rst @@ -1,3 +1,7 @@ +.. image:: https://odoo-community.org/readme-banner-image + :target: https://odoo-community.org/get-involved?utm_source=readme + :alt: Odoo Community Association + ============================ Crm Salesperson Planner Sale ============================ @@ -13,7 +17,7 @@ Crm Salesperson Planner Sale .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png :target: https://odoo-community.org/page/development-status :alt: Beta -.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png +.. |badge2| image:: https://img.shields.io/badge/license-AGPL--3-blue.png :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fcrm-lightgray.png?logo=github @@ -28,8 +32,8 @@ Crm Salesperson Planner Sale |badge1| |badge2| |badge3| |badge4| |badge5| -This module allows you to manage sales from commercial visits. -You can create Sales Quotations from visits and check the related ones. +This module allows you to manage sales from commercial visits. You can +create Sales Quotations from visits and check the related ones. **Table of contents** @@ -39,10 +43,12 @@ You can create Sales Quotations from visits and check the related ones. Usage ===== -* Go to any "Validated" or "Visited" visit. -* Click "New Quotation" button or click in the smart button "Quotation" and create a quotation. +- Go to any "Validated" or "Visited" visit. +- Click "New Quotation" button or click in the smart button "Quotation" + and create a quotation. -In the Quotation or Sale Order you will have a new field that is related to the salesperson visit. +In the Quotation or Sale Order you will have a new field that is related +to the salesperson visit. Bug Tracker =========== @@ -58,28 +64,28 @@ Credits ======= Authors -~~~~~~~ +------- * Sygel Technology * Tecnativa Contributors -~~~~~~~~~~~~ +------------ -* `Sygel `__: +- `Sygel `__: - * Valentin Vinagre + - Valentin Vinagre -* `Tecnativa `_: +- `Tecnativa `__: - * Víctor Martínez + - Víctor Martínez -* `Pesol `__: +- `Pesol `__: - * Gerardo Marin Parra + - Gerardo Marin Parra Maintainers -~~~~~~~~~~~ +----------- This module is maintained by the OCA. diff --git a/crm_salesperson_planner_sale/models/crm_salesperson_planner_visit.py b/crm_salesperson_planner_sale/models/crm_salesperson_planner_visit.py index cf0d9c6f384..18d0f6d60be 100644 --- a/crm_salesperson_planner_sale/models/crm_salesperson_planner_visit.py +++ b/crm_salesperson_planner_sale/models/crm_salesperson_planner_visit.py @@ -70,7 +70,7 @@ def action_view_sale_quotation(self): ] if self.quotation_count == 1: action["views"] = [(self.env.ref("sale.view_order_form").id, "form")] - quotation = self.order_ids.filtered(lambda l: l.state in ("draft", "sent")) + quotation = self.order_ids.filtered(lambda o: o.state in ("draft", "sent")) action["res_id"] = quotation.id return action @@ -84,7 +84,7 @@ def action_view_sale_order(self): if self.sale_order_count == 1: action["views"] = [(self.env.ref("sale.view_order_form").id, "form")] order = self.order_ids.filtered( - lambda l: l.state not in ("draft", "sent", "cancel") + lambda o: o.state not in ("draft", "sent", "cancel") ) action["res_id"] = order.id return action diff --git a/crm_salesperson_planner_sale/pyproject.toml b/crm_salesperson_planner_sale/pyproject.toml new file mode 100644 index 00000000000..4231d0cccb3 --- /dev/null +++ b/crm_salesperson_planner_sale/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.buildapi" diff --git a/crm_salesperson_planner_sale/readme/CONTRIBUTORS.md b/crm_salesperson_planner_sale/readme/CONTRIBUTORS.md new file mode 100644 index 00000000000..cca13ea415b --- /dev/null +++ b/crm_salesperson_planner_sale/readme/CONTRIBUTORS.md @@ -0,0 +1,6 @@ +- [Sygel](https://www.sygel.es): + - Valentin Vinagre +- [Tecnativa](https://www.tecnativa.com): + - Víctor Martínez +- [Pesol](https://www.pesol.es): + - Gerardo Marin Parra \<\> diff --git a/crm_salesperson_planner_sale/readme/CONTRIBUTORS.rst b/crm_salesperson_planner_sale/readme/CONTRIBUTORS.rst deleted file mode 100644 index a3926a4ed47..00000000000 --- a/crm_salesperson_planner_sale/readme/CONTRIBUTORS.rst +++ /dev/null @@ -1,11 +0,0 @@ -* `Sygel `__: - - * Valentin Vinagre - -* `Tecnativa `_: - - * Víctor Martínez - -* `Pesol `__: - - * Gerardo Marin Parra diff --git a/crm_salesperson_planner_sale/readme/DESCRIPTION.md b/crm_salesperson_planner_sale/readme/DESCRIPTION.md new file mode 100644 index 00000000000..3ed291ab2e0 --- /dev/null +++ b/crm_salesperson_planner_sale/readme/DESCRIPTION.md @@ -0,0 +1,2 @@ +This module allows you to manage sales from commercial visits. You can +create Sales Quotations from visits and check the related ones. diff --git a/crm_salesperson_planner_sale/readme/DESCRIPTION.rst b/crm_salesperson_planner_sale/readme/DESCRIPTION.rst deleted file mode 100644 index f5bdb9a1704..00000000000 --- a/crm_salesperson_planner_sale/readme/DESCRIPTION.rst +++ /dev/null @@ -1,2 +0,0 @@ -This module allows you to manage sales from commercial visits. -You can create Sales Quotations from visits and check the related ones. diff --git a/crm_salesperson_planner_sale/readme/USAGE.md b/crm_salesperson_planner_sale/readme/USAGE.md new file mode 100644 index 00000000000..8399980cfc2 --- /dev/null +++ b/crm_salesperson_planner_sale/readme/USAGE.md @@ -0,0 +1,6 @@ +- Go to any "Validated" or "Visited" visit. +- Click "New Quotation" button or click in the smart button + "Quotation" and create a quotation. + +In the Quotation or Sale Order you will have a new field that is related +to the salesperson visit. diff --git a/crm_salesperson_planner_sale/readme/USAGE.rst b/crm_salesperson_planner_sale/readme/USAGE.rst deleted file mode 100644 index 4d4afa6bdd9..00000000000 --- a/crm_salesperson_planner_sale/readme/USAGE.rst +++ /dev/null @@ -1,4 +0,0 @@ -* Go to any "Validated" or "Visited" visit. -* Click "New Quotation" button or click in the smart button "Quotation" and create a quotation. - -In the Quotation or Sale Order you will have a new field that is related to the salesperson visit. diff --git a/crm_salesperson_planner_sale/static/description/index.html b/crm_salesperson_planner_sale/static/description/index.html index 769bc9283f6..626adc6c270 100644 --- a/crm_salesperson_planner_sale/static/description/index.html +++ b/crm_salesperson_planner_sale/static/description/index.html @@ -1,20 +1,20 @@ - - -Crm Salesperson Planner Sale + +README.rst -
-

Crm Salesperson Planner Sale

+
+ + +Odoo Community Association + +
+

Crm Salesperson Planner Sale

-

Beta License: AGPL-3 OCA/crm Translate me on Weblate Try me on Runboat

-

This module allows you to manage sales from commercial visits. -You can create Sales Quotations from visits and check the related ones.

+

Beta License: AGPL-3 OCA/crm Translate me on Weblate Try me on Runboat

+

This module allows you to manage sales from commercial visits. You can +create Sales Quotations from visits and check the related ones.

Table of contents

-

Usage

+

Usage

  • Go to any “Validated” or “Visited” visit.
  • -
  • Click “New Quotation” button or click in the smart button “Quotation” and create a quotation.
  • +
  • Click “New Quotation” button or click in the smart button “Quotation” +and create a quotation.
-

In the Quotation or Sale Order you will have a new field that is related to the salesperson visit.

+

In the Quotation or Sale Order you will have a new field that is related +to the salesperson visit.

-

Bug Tracker

+

Bug Tracker

Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed @@ -402,16 +409,16 @@

Bug Tracker

Do not contact contributors directly about support or help with technical issues.

-

Credits

+

Credits

-

Authors

+

Authors

  • Sygel Technology
  • Tecnativa
-

Contributors

+

Contributors

-

Maintainers

+

Maintainers

This module is maintained by the OCA.

-Odoo Community Association + +Odoo Community Association +

OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use.

@@ -439,5 +448,6 @@

Maintainers

+
diff --git a/crm_salesperson_planner_sale/tests/test_crm_salesperson_planner_sale.py b/crm_salesperson_planner_sale/tests/test_crm_salesperson_planner_sale.py index 213e97919f2..4967413d26e 100644 --- a/crm_salesperson_planner_sale/tests/test_crm_salesperson_planner_sale.py +++ b/crm_salesperson_planner_sale/tests/test_crm_salesperson_planner_sale.py @@ -3,7 +3,7 @@ from odoo.tests import Form -from odoo.addons.crm_salesperson_planner.tests.test_crm_salesperson_planner_visit import ( +from odoo.addons.crm_salesperson_planner.tests.test_crm_salesperson_planner_visit import ( # noqa: E501 TestCrmSalespersonPlannerVisitBase, ) diff --git a/crm_security_group/README.rst b/crm_security_group/README.rst index 7dc0226a9cb..e65462e1b3f 100644 --- a/crm_security_group/README.rst +++ b/crm_security_group/README.rst @@ -32,7 +32,9 @@ CRM Only Security Groups |badge1| |badge2| |badge3| |badge4| |badge5| -This module adds new security options to CRM by creating 4 groups (Own Documents Only, Team Documents Only, All Documents and Administrator) to separate Sales and CRM apps permissions +This module adds new security options to CRM by creating 4 groups (Own +Documents Only, Team Documents Only, All Documents and Administrator) to +separate Sales and CRM apps permissions **Table of contents** @@ -42,7 +44,8 @@ This module adds new security options to CRM by creating 4 groups (Own Documents Known issues / Roadmap ====================== -- Remove sale_crm dependency (now is not possible), maybe split this part in other addon +- Remove sale_crm dependency (now is not possible), maybe split this + part in other addon Bug Tracker =========== @@ -58,19 +61,19 @@ Credits ======= Authors -~~~~~~~ +------- * Tecnativa Contributors -~~~~~~~~~~~~ +------------ -* `Tecnativa `__: +- `Tecnativa `__: - * Víctor Martínez + - Víctor Martínez Maintainers -~~~~~~~~~~~ +----------- This module is maintained by the OCA. diff --git a/crm_security_group/pyproject.toml b/crm_security_group/pyproject.toml new file mode 100644 index 00000000000..4231d0cccb3 --- /dev/null +++ b/crm_security_group/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.buildapi" diff --git a/crm_security_group/readme/CONTRIBUTORS.md b/crm_security_group/readme/CONTRIBUTORS.md new file mode 100644 index 00000000000..c62d78415af --- /dev/null +++ b/crm_security_group/readme/CONTRIBUTORS.md @@ -0,0 +1,2 @@ +- [Tecnativa](https://www.tecnativa.com): + - Víctor Martínez diff --git a/crm_security_group/readme/CONTRIBUTORS.rst b/crm_security_group/readme/CONTRIBUTORS.rst deleted file mode 100644 index ae3b3ea56a3..00000000000 --- a/crm_security_group/readme/CONTRIBUTORS.rst +++ /dev/null @@ -1,3 +0,0 @@ -* `Tecnativa `__: - - * Víctor Martínez diff --git a/crm_security_group/readme/DESCRIPTION.md b/crm_security_group/readme/DESCRIPTION.md new file mode 100644 index 00000000000..2fa636aa790 --- /dev/null +++ b/crm_security_group/readme/DESCRIPTION.md @@ -0,0 +1,3 @@ +This module adds new security options to CRM by creating 4 groups (Own +Documents Only, Team Documents Only, All Documents and Administrator) to +separate Sales and CRM apps permissions diff --git a/crm_security_group/readme/DESCRIPTION.rst b/crm_security_group/readme/DESCRIPTION.rst deleted file mode 100644 index e4905889a62..00000000000 --- a/crm_security_group/readme/DESCRIPTION.rst +++ /dev/null @@ -1 +0,0 @@ -This module adds new security options to CRM by creating 4 groups (Own Documents Only, Team Documents Only, All Documents and Administrator) to separate Sales and CRM apps permissions diff --git a/crm_security_group/readme/ROADMAP.md b/crm_security_group/readme/ROADMAP.md new file mode 100644 index 00000000000..0f684c9d21b --- /dev/null +++ b/crm_security_group/readme/ROADMAP.md @@ -0,0 +1,2 @@ +- Remove sale_crm dependency (now is not possible), maybe split this + part in other addon diff --git a/crm_security_group/readme/ROADMAP.rst b/crm_security_group/readme/ROADMAP.rst deleted file mode 100644 index 8a223582a92..00000000000 --- a/crm_security_group/readme/ROADMAP.rst +++ /dev/null @@ -1 +0,0 @@ -- Remove sale_crm dependency (now is not possible), maybe split this part in other addon diff --git a/crm_security_group/static/description/index.html b/crm_security_group/static/description/index.html index cfc8f9e0edd..ddc550c2376 100644 --- a/crm_security_group/static/description/index.html +++ b/crm_security_group/static/description/index.html @@ -375,7 +375,9 @@

CRM Only Security Groups

!! source digest: sha256:ba7811daacfe6a9fd446b96858f42c97e90e7b8f99261242d99dafaac3e07b1d !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->

Beta License: AGPL-3 OCA/crm Translate me on Weblate Try me on Runboat

-

This module adds new security options to CRM by creating 4 groups (Own Documents Only, Team Documents Only, All Documents and Administrator) to separate Sales and CRM apps permissions

+

This module adds new security options to CRM by creating 4 groups (Own +Documents Only, Team Documents Only, All Documents and Administrator) to +separate Sales and CRM apps permissions

Table of contents

    @@ -392,7 +394,8 @@

    CRM Only Security Groups

    Known issues / Roadmap

      -
    • Remove sale_crm dependency (now is not possible), maybe split this part in other addon
    • +
    • Remove sale_crm dependency (now is not possible), maybe split this +part in other addon
    diff --git a/crm_security_group/tests/test_crm_security.py b/crm_security_group/tests/test_crm_security.py index 280ccdb6e4b..4d5bd2ff74f 100644 --- a/crm_security_group/tests/test_crm_security.py +++ b/crm_security_group/tests/test_crm_security.py @@ -28,7 +28,7 @@ def setUpClass(cls): new_test_user( cls.env, login="crm_sale_user", - groups="%s,%s" % (group_crm_all_leads, group_sale_salesman_all_leads), + groups=f"{group_crm_all_leads},{group_sale_salesman_all_leads}", ) cls.crm_menu = cls.env.ref("crm.crm_menu_root") cls.sale_menu = cls.env.ref("sale.sale_menu_root") diff --git a/crm_stage_mail/README.rst b/crm_stage_mail/README.rst index 0884e08a927..361cfcf8f5d 100644 --- a/crm_stage_mail/README.rst +++ b/crm_stage_mail/README.rst @@ -32,7 +32,8 @@ Crm Stage Mail |badge1| |badge2| |badge3| |badge4| |badge5| -This module allows you to specify an email template for each stage so that when you change stages, an email is sent using that template. +This module allows you to specify an email template for each stage so +that when you change stages, an email is sent using that template. **Table of contents** @@ -42,9 +43,10 @@ This module allows you to specify an email template for each stage so that when Usage ===== -- Define a template (Welcome Demo, for example) in a stage (Qualified, for example). -- Change a lead to the stage defined in the previous point. -- An email will be sent to the lead's partner. +- Define a template (Welcome Demo, for example) in a stage (Qualified, + for example). +- Change a lead to the stage defined in the previous point. +- An email will be sent to the lead's partner. Bug Tracker =========== @@ -60,19 +62,19 @@ Credits ======= Authors -~~~~~~~ +------- * Tecnativa Contributors -~~~~~~~~~~~~ +------------ -* `Tecnativa `__: +- `Tecnativa `__: - * Víctor Martínez + - Víctor Martínez Maintainers -~~~~~~~~~~~ +----------- This module is maintained by the OCA. diff --git a/crm_stage_mail/pyproject.toml b/crm_stage_mail/pyproject.toml new file mode 100644 index 00000000000..4231d0cccb3 --- /dev/null +++ b/crm_stage_mail/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.buildapi" diff --git a/crm_stage_mail/readme/CONTRIBUTORS.md b/crm_stage_mail/readme/CONTRIBUTORS.md new file mode 100644 index 00000000000..c62d78415af --- /dev/null +++ b/crm_stage_mail/readme/CONTRIBUTORS.md @@ -0,0 +1,2 @@ +- [Tecnativa](https://www.tecnativa.com): + - Víctor Martínez diff --git a/crm_stage_mail/readme/CONTRIBUTORS.rst b/crm_stage_mail/readme/CONTRIBUTORS.rst deleted file mode 100644 index ae3b3ea56a3..00000000000 --- a/crm_stage_mail/readme/CONTRIBUTORS.rst +++ /dev/null @@ -1,3 +0,0 @@ -* `Tecnativa `__: - - * Víctor Martínez diff --git a/crm_stage_mail/readme/DESCRIPTION.md b/crm_stage_mail/readme/DESCRIPTION.md new file mode 100644 index 00000000000..c5d784e1b9d --- /dev/null +++ b/crm_stage_mail/readme/DESCRIPTION.md @@ -0,0 +1,2 @@ +This module allows you to specify an email template for each stage so +that when you change stages, an email is sent using that template. diff --git a/crm_stage_mail/readme/DESCRIPTION.rst b/crm_stage_mail/readme/DESCRIPTION.rst deleted file mode 100644 index b2509b66011..00000000000 --- a/crm_stage_mail/readme/DESCRIPTION.rst +++ /dev/null @@ -1 +0,0 @@ -This module allows you to specify an email template for each stage so that when you change stages, an email is sent using that template. \ No newline at end of file diff --git a/crm_stage_mail/readme/USAGE.md b/crm_stage_mail/readme/USAGE.md new file mode 100644 index 00000000000..6cbbc431643 --- /dev/null +++ b/crm_stage_mail/readme/USAGE.md @@ -0,0 +1,4 @@ +- Define a template (Welcome Demo, for example) in a stage (Qualified, + for example). +- Change a lead to the stage defined in the previous point. +- An email will be sent to the lead's partner. diff --git a/crm_stage_mail/readme/USAGE.rst b/crm_stage_mail/readme/USAGE.rst deleted file mode 100644 index 6e27e6dceca..00000000000 --- a/crm_stage_mail/readme/USAGE.rst +++ /dev/null @@ -1,3 +0,0 @@ -- Define a template (Welcome Demo, for example) in a stage (Qualified, for example). -- Change a lead to the stage defined in the previous point. -- An email will be sent to the lead's partner. \ No newline at end of file diff --git a/crm_stage_mail/static/description/index.html b/crm_stage_mail/static/description/index.html index ec63fe2ec2c..4c83a922520 100644 --- a/crm_stage_mail/static/description/index.html +++ b/crm_stage_mail/static/description/index.html @@ -375,7 +375,8 @@

    Crm Stage Mail

    !! source digest: sha256:1e0923d38e2c8dd5f2e0c7847bb7a295d2515d99c3ca933b823da7f61a948cdc !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->

    Beta License: AGPL-3 OCA/crm Translate me on Weblate Try me on Runboat

    -

    This module allows you to specify an email template for each stage so that when you change stages, an email is sent using that template.

    +

    This module allows you to specify an email template for each stage so +that when you change stages, an email is sent using that template.

    Table of contents

      @@ -392,7 +393,8 @@

      Crm Stage Mail

      Usage

        -
      • Define a template (Welcome Demo, for example) in a stage (Qualified, for example).
      • +
      • Define a template (Welcome Demo, for example) in a stage (Qualified, +for example).
      • Change a lead to the stage defined in the previous point.
      • An email will be sent to the lead’s partner.
      diff --git a/crm_stage_multi_team/README.rst b/crm_stage_multi_team/README.rst index bc1b3468dab..d8778af1d99 100644 --- a/crm_stage_multi_team/README.rst +++ b/crm_stage_multi_team/README.rst @@ -32,17 +32,18 @@ CRM stage multiple teams |badge1| |badge2| |badge3| |badge4| |badge5| -This module extends the CRM functionality to support **multi-team stages**. +This module extends the CRM functionality to support **multi-team +stages**. **Features:** -- Adds a many2many field ``team_ids`` on CRM stages, allowing a stage to be shared - by multiple sales teams. +- Adds a many2many field ``team_ids`` on CRM stages, allowing a stage + to be shared by multiple sales teams. **Use cases:** -- A company with multiple sales teams sharing some stages but also having - exclusive ones. +- A company with multiple sales teams sharing some stages but also + having exclusive ones. - Cleaner kanban views per team, avoiding irrelevant stages. .. IMPORTANT:: @@ -58,15 +59,17 @@ This module extends the CRM functionality to support **multi-team stages**. Configuration ============= -- Assign one or more teams to each stage in CRM > Configuration > Stages. -- Global stages (with no teams) are visible for all teams. +- Assign one or more teams to each stage in CRM > Configuration > + Stages. +- Global stages (with no teams) are visible for all teams. Usage ===== -- When creating or moving a lead/opportunity, the stage list will be filtered - according to the team of the lead or the context ``default_team_id``. -- In kanban view, only relevant stages will be shown. +- When creating or moving a lead/opportunity, the stage list will be + filtered according to the team of the lead or the context + ``default_team_id``. +- In kanban view, only relevant stages will be shown. Bug Tracker =========== @@ -82,19 +85,20 @@ Credits ======= Authors -~~~~~~~ +------- * Tecnativa * Odoo SA Contributors -~~~~~~~~~~~~ +------------ -- [Tecnativa](https://www.tecnativa.com): - - Eduardo Ezerouali +- [Tecnativa](https://www.tecnativa.com): + + - Eduardo Ezerouali Maintainers -~~~~~~~~~~~ +----------- This module is maintained by the OCA. diff --git a/crm_stage_multi_team/models/crm_stage.py b/crm_stage_multi_team/models/crm_stage.py index bc3f509d4e5..b8868b8a1e4 100644 --- a/crm_stage_multi_team/models/crm_stage.py +++ b/crm_stage_multi_team/models/crm_stage.py @@ -12,5 +12,5 @@ def write(self, vals): for record in self: if record.team_id and record.team_id not in record.team_ids: vals["team_ids"] = [(6, 0, [record.team_id.id])] - res = super(CrmStage, self).write(vals) + res = super().write(vals) return res diff --git a/crm_stage_multi_team/pyproject.toml b/crm_stage_multi_team/pyproject.toml new file mode 100644 index 00000000000..4231d0cccb3 --- /dev/null +++ b/crm_stage_multi_team/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.buildapi" diff --git a/crm_stage_multi_team/readme/CONFIGURE.md b/crm_stage_multi_team/readme/CONFIGURE.md new file mode 100644 index 00000000000..ed97d112cf0 --- /dev/null +++ b/crm_stage_multi_team/readme/CONFIGURE.md @@ -0,0 +1,3 @@ +- Assign one or more teams to each stage in CRM \> Configuration \> + Stages. +- Global stages (with no teams) are visible for all teams. diff --git a/crm_stage_multi_team/readme/CONFIGURE.rst b/crm_stage_multi_team/readme/CONFIGURE.rst deleted file mode 100644 index 8aa168a9e0d..00000000000 --- a/crm_stage_multi_team/readme/CONFIGURE.rst +++ /dev/null @@ -1,2 +0,0 @@ -- Assign one or more teams to each stage in CRM > Configuration > Stages. -- Global stages (with no teams) are visible for all teams. \ No newline at end of file diff --git a/crm_stage_multi_team/readme/CONTRIBUTORS.md b/crm_stage_multi_team/readme/CONTRIBUTORS.md new file mode 100644 index 00000000000..e9370af4b94 --- /dev/null +++ b/crm_stage_multi_team/readme/CONTRIBUTORS.md @@ -0,0 +1,2 @@ +- \[Tecnativa\](): + - Eduardo Ezerouali diff --git a/crm_stage_multi_team/readme/CONTRIBUTORS.rst b/crm_stage_multi_team/readme/CONTRIBUTORS.rst deleted file mode 100644 index 2fb8129fce3..00000000000 --- a/crm_stage_multi_team/readme/CONTRIBUTORS.rst +++ /dev/null @@ -1,2 +0,0 @@ -- [Tecnativa](https://www.tecnativa.com): - - Eduardo Ezerouali \ No newline at end of file diff --git a/crm_stage_multi_team/readme/DESCRIPTION.md b/crm_stage_multi_team/readme/DESCRIPTION.md new file mode 100644 index 00000000000..4a68cb0804b --- /dev/null +++ b/crm_stage_multi_team/readme/DESCRIPTION.md @@ -0,0 +1,13 @@ +This module extends the CRM functionality to support **multi-team +stages**. + +**Features:** + +- Adds a many2many field `team_ids` on CRM stages, allowing a stage to + be shared by multiple sales teams. + +**Use cases:** + +- A company with multiple sales teams sharing some stages but also + having exclusive ones. +- Cleaner kanban views per team, avoiding irrelevant stages. diff --git a/crm_stage_multi_team/readme/DESCRIPTION.rst b/crm_stage_multi_team/readme/DESCRIPTION.rst deleted file mode 100644 index a8a38e40537..00000000000 --- a/crm_stage_multi_team/readme/DESCRIPTION.rst +++ /dev/null @@ -1,12 +0,0 @@ -This module extends the CRM functionality to support **multi-team stages**. - -**Features:** - -- Adds a many2many field ``team_ids`` on CRM stages, allowing a stage to be shared - by multiple sales teams. - -**Use cases:** - -- A company with multiple sales teams sharing some stages but also having - exclusive ones. -- Cleaner kanban views per team, avoiding irrelevant stages. \ No newline at end of file diff --git a/crm_stage_multi_team/readme/USAGE.md b/crm_stage_multi_team/readme/USAGE.md new file mode 100644 index 00000000000..71d538a3868 --- /dev/null +++ b/crm_stage_multi_team/readme/USAGE.md @@ -0,0 +1,4 @@ +- When creating or moving a lead/opportunity, the stage list will be + filtered according to the team of the lead or the context + `default_team_id`. +- In kanban view, only relevant stages will be shown. diff --git a/crm_stage_multi_team/readme/USAGE.rst b/crm_stage_multi_team/readme/USAGE.rst deleted file mode 100644 index 618fd255311..00000000000 --- a/crm_stage_multi_team/readme/USAGE.rst +++ /dev/null @@ -1,3 +0,0 @@ -- When creating or moving a lead/opportunity, the stage list will be filtered - according to the team of the lead or the context ``default_team_id``. -- In kanban view, only relevant stages will be shown. \ No newline at end of file diff --git a/crm_stage_multi_team/static/description/index.html b/crm_stage_multi_team/static/description/index.html index 556db5c0c85..ab146485057 100644 --- a/crm_stage_multi_team/static/description/index.html +++ b/crm_stage_multi_team/static/description/index.html @@ -375,16 +375,17 @@

      CRM stage multiple teams

      !! source digest: sha256:71b3ae1e88bb3514f7339bba1fa943c41e18927b2725e7b3fe103e7d9d3220a2 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->

      Alpha License: AGPL-3 OCA/crm Translate me on Weblate Try me on Runboat

      -

      This module extends the CRM functionality to support multi-team stages.

      +

      This module extends the CRM functionality to support multi-team +stages.

      Features:

        -
      • Adds a many2many field team_ids on CRM stages, allowing a stage to be shared -by multiple sales teams.
      • +
      • Adds a many2many field team_ids on CRM stages, allowing a stage +to be shared by multiple sales teams.

      Use cases:

        -
      • A company with multiple sales teams sharing some stages but also having -exclusive ones.
      • +
      • A company with multiple sales teams sharing some stages but also +having exclusive ones.
      • Cleaner kanban views per team, avoiding irrelevant stages.
      @@ -410,15 +411,17 @@

      CRM stage multiple teams

      Configuration

        -
      • Assign one or more teams to each stage in CRM > Configuration > Stages.
      • +
      • Assign one or more teams to each stage in CRM > Configuration > +Stages.
      • Global stages (with no teams) are visible for all teams.

      Usage

        -
      • When creating or moving a lead/opportunity, the stage list will be filtered -according to the team of the lead or the context default_team_id.
      • +
      • When creating or moving a lead/opportunity, the stage list will be +filtered according to the team of the lead or the context +default_team_id.
      • In kanban view, only relevant stages will be shown.
      @@ -442,8 +445,10 @@

      Authors

      Contributors

      diff --git a/crm_stage_probability/README.rst b/crm_stage_probability/README.rst index 0f6e0898d92..9e63ef24d98 100644 --- a/crm_stage_probability/README.rst +++ b/crm_stage_probability/README.rst @@ -1,3 +1,7 @@ +.. image:: https://odoo-community.org/readme-banner-image + :target: https://odoo-community.org/get-involved?utm_source=readme + :alt: Odoo Community Association + ===================== CRM stage probability ===================== @@ -13,7 +17,7 @@ CRM stage probability .. |badge1| image:: https://img.shields.io/badge/maturity-Alpha-red.png :target: https://odoo-community.org/page/development-status :alt: Alpha -.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png +.. |badge2| image:: https://img.shields.io/badge/license-AGPL--3-blue.png :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fcrm-lightgray.png?logo=github @@ -28,8 +32,8 @@ CRM stage probability |badge1| |badge2| |badge3| |badge4| |badge5| -This module restore the CRM feature from Odoo <= 12.0 with lead probability -according to its stage. +This module restore the CRM feature from Odoo <= 12.0 with lead +probability according to its stage. .. IMPORTANT:: This is an alpha version, the data model and design can change at any time without warning. @@ -63,20 +67,20 @@ Credits ======= Authors -~~~~~~~ +------- * Camptocamp * Odoo SA Contributors -~~~~~~~~~~~~ +------------ -* Odoo SA -* Akim Juillerat -* Robin Goots +- Odoo SA +- Akim Juillerat +- Robin Goots Maintainers -~~~~~~~~~~~ +----------- This module is maintained by the OCA. diff --git a/crm_stage_probability/models/crm_lead.py b/crm_stage_probability/models/crm_lead.py index af95a094362..6fbb3782841 100644 --- a/crm_stage_probability/models/crm_lead.py +++ b/crm_stage_probability/models/crm_lead.py @@ -4,7 +4,6 @@ class CrmLead(models.Model): - _inherit = "crm.lead" is_stage_probability = fields.Boolean( diff --git a/crm_stage_probability/models/crm_stage.py b/crm_stage_probability/models/crm_stage.py index 9a3b0efa311..ef0465867ab 100644 --- a/crm_stage_probability/models/crm_stage.py +++ b/crm_stage_probability/models/crm_stage.py @@ -4,7 +4,6 @@ class CrmStage(models.Model): - _inherit = "crm.stage" probability = fields.Float( diff --git a/crm_stage_probability/pyproject.toml b/crm_stage_probability/pyproject.toml new file mode 100644 index 00000000000..4231d0cccb3 --- /dev/null +++ b/crm_stage_probability/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.buildapi" diff --git a/crm_stage_probability/readme/CONFIGURE.md b/crm_stage_probability/readme/CONFIGURE.md new file mode 100644 index 00000000000..7ca918e5e68 --- /dev/null +++ b/crm_stage_probability/readme/CONFIGURE.md @@ -0,0 +1,4 @@ +To configure this module, you need to: + +1. Set the probabilities on the stages +2. Run the "Update leads probability" wizard on the stages to update diff --git a/crm_stage_probability/readme/CONFIGURE.rst b/crm_stage_probability/readme/CONFIGURE.rst deleted file mode 100644 index 0c87436bbe1..00000000000 --- a/crm_stage_probability/readme/CONFIGURE.rst +++ /dev/null @@ -1,4 +0,0 @@ -To configure this module, you need to: - -1. Set the probabilities on the stages -2. Run the "Update leads probability" wizard on the stages to update diff --git a/crm_stage_probability/readme/CONTRIBUTORS.md b/crm_stage_probability/readme/CONTRIBUTORS.md new file mode 100644 index 00000000000..bb15e03955d --- /dev/null +++ b/crm_stage_probability/readme/CONTRIBUTORS.md @@ -0,0 +1,3 @@ +- Odoo SA +- Akim Juillerat \<\> +- Robin Goots \<\> diff --git a/crm_stage_probability/readme/CONTRIBUTORS.rst b/crm_stage_probability/readme/CONTRIBUTORS.rst deleted file mode 100644 index e1f374961d6..00000000000 --- a/crm_stage_probability/readme/CONTRIBUTORS.rst +++ /dev/null @@ -1,3 +0,0 @@ -* Odoo SA -* Akim Juillerat -* Robin Goots diff --git a/crm_stage_probability/readme/DESCRIPTION.md b/crm_stage_probability/readme/DESCRIPTION.md new file mode 100644 index 00000000000..6d418c4a12b --- /dev/null +++ b/crm_stage_probability/readme/DESCRIPTION.md @@ -0,0 +1,2 @@ +This module restore the CRM feature from Odoo \<= 12.0 with lead +probability according to its stage. diff --git a/crm_stage_probability/readme/DESCRIPTION.rst b/crm_stage_probability/readme/DESCRIPTION.rst deleted file mode 100644 index c56ab982ccc..00000000000 --- a/crm_stage_probability/readme/DESCRIPTION.rst +++ /dev/null @@ -1,2 +0,0 @@ -This module restore the CRM feature from Odoo <= 12.0 with lead probability -according to its stage. diff --git a/crm_stage_probability/static/description/index.html b/crm_stage_probability/static/description/index.html index 5a51e1fe282..e4308f5bcbf 100644 --- a/crm_stage_probability/static/description/index.html +++ b/crm_stage_probability/static/description/index.html @@ -1,18 +1,18 @@ - -CRM stage probability +README.rst -
      -

      CRM stage probability

      +
      + + +Odoo Community Association + +
      +

      CRM stage probability

      -

      Alpha License: AGPL-3 OCA/crm Translate me on Weblate Try me on Runboat

      -

      This module restore the CRM feature from Odoo <= 12.0 with lead probability -according to its stage.

      +

      Alpha License: AGPL-3 OCA/crm Translate me on Weblate Try me on Runboat

      +

      This module restore the CRM feature from Odoo <= 12.0 with lead +probability according to its stage.

      Important

      This is an alpha version, the data model and design can change at any time without warning. @@ -392,7 +397,7 @@

      CRM stage probability

    -

    Configuration

    +

    Configuration

    To configure this module, you need to:

    1. Set the probabilities on the stages
    2. @@ -400,7 +405,7 @@

      Configuration

    -

    Bug Tracker

    +

    Bug Tracker

    Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed @@ -408,16 +413,16 @@

    Bug Tracker

    Do not contact contributors directly about support or help with technical issues.

    -

    Credits

    +

    Credits

    -

    Authors

    +

    Authors

    • Camptocamp
    • Odoo SA
    -

    Contributors

    +

    Contributors

    -

    Maintainers

    +

    Maintainers

    This module is maintained by the OCA.

    -Odoo Community Association + +Odoo Community Association +

    OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use.

    @@ -436,5 +443,6 @@

    Maintainers

    +
diff --git a/crm_stage_probability/wizard/crm_lead_stage_probability_update.py b/crm_stage_probability/wizard/crm_lead_stage_probability_update.py index a0263a3c030..02416c97710 100644 --- a/crm_stage_probability/wizard/crm_lead_stage_probability_update.py +++ b/crm_stage_probability/wizard/crm_lead_stage_probability_update.py @@ -5,7 +5,6 @@ class CrmLeadStageProbabilityUpdate(models.TransientModel): - _name = "crm.lead.stage.probability.update" _description = "Mass update of crm lead probability according to stage" @@ -58,7 +57,6 @@ def execute(self): class CrmLeadStageProbabilityUpdateStage(models.TransientModel): - _name = "crm.lead.stage.probability.update.line" _description = "CRM leads stages to updates" diff --git a/crm_team_zip_assign/README.rst b/crm_team_zip_assign/README.rst index 7161f404ff9..108b4e2ac1c 100644 --- a/crm_team_zip_assign/README.rst +++ b/crm_team_zip_assign/README.rst @@ -32,32 +32,44 @@ CRM Team ZIP Assignment |badge1| |badge2| |badge3| |badge4| |badge5| -Auto-assign CRM teams to partners based on ZIP code patterns using regular expressions. +Auto-assign CRM teams to partners based on ZIP code patterns using +regular expressions. .. image:: https://raw.githubusercontent.com/OCA/crm/16.0/crm_team_zip_assign/static/description/crm_team_form_view.png + :alt: image Features -------- -- Auto-assign CRM teams to partners based on ZIP code patterns -- Support for Python regular expressions with validation constraints -- Multi-company support -- Geographic filtering by countries and states -- Priority-based assignment when multiple teams match -- Exclusion flag for partners who should not be auto-assigned -- Real-time regex pattern validation prevents invalid patterns -- Contextual action for manual assignment from partner views -- Conditional assignment using pre-zip match conditions: teams can specify a domain expression (Odoo domain syntax) that must be satisfied by the partner before ZIP regex matching is performed. This allows for advanced filtering, e.g., only assign if the partner is a company or meets other criteria. +- Auto-assign CRM teams to partners based on ZIP code patterns +- Support for Python regular expressions with validation constraints +- Multi-company support +- Geographic filtering by countries and states +- Priority-based assignment when multiple teams match +- Exclusion flag for partners who should not be auto-assigned +- Real-time regex pattern validation prevents invalid patterns +- Contextual action for manual assignment from partner views +- Conditional assignment using pre-zip match conditions: teams can + specify a domain expression (Odoo domain syntax) that must be + satisfied by the partner before ZIP regex matching is performed. This + allows for advanced filtering, e.g., only assign if the partner is a + company or meets other criteria. Assignment Logic ~~~~~~~~~~~~~~~~ -The assignment is triggered on partner create/write when ZIP, company, country, state, or exclusion flag changes. A contextual action is also available from partner views for manual assignment. The system: +The assignment is triggered on partner create/write when ZIP, company, +country, state, or exclusion flag changes. A contextual action is also +available from partner views for manual assignment. The system: -1. Finds all active teams with ZIP assignment enabled in the partner's company +1. Finds all active teams with ZIP assignment enabled in the partner's + company 2. Filters teams by matching countries and states (if specified) -3. For each eligible team, evaluates the optional pre-zip match condition (Odoo domain expression). If the partner does not satisfy the condition, the team is skipped. -4. Tests each remaining team's regex patterns against the partner's ZIP code +3. For each eligible team, evaluates the optional pre-zip match + condition (Odoo domain expression). If the partner does not satisfy + the condition, the team is skipped. +4. Tests each remaining team's regex patterns against the partner's ZIP + code 5. Selects the team with highest priority if multiple matches exist 6. Logs assignment activity for audit purposes @@ -66,13 +78,19 @@ Assignment Rules 1. Only active teams with "Active ZIP Assignment" enabled are considered 2. Only teams in the same company as the partner are considered -3. Teams must have matching countries (partner's country must be in team's countries) -4. Teams must have matching states (partner's state must be in team's states, if team has states defined) -5. If a team has a pre-zip match condition, the partner must satisfy the condition (Odoo domain) before ZIP regex matching is performed. If not set, all partners are considered. -6. Partners without a company, ZIP code, country, or state are not assigned +3. Teams must have matching countries (partner's country must be in + team's countries) +4. Teams must have matching states (partner's state must be in team's + states, if team has states defined) +5. If a team has a pre-zip match condition, the partner must satisfy the + condition (Odoo domain) before ZIP regex matching is performed. If + not set, all partners are considered. +6. Partners without a company, ZIP code, country, or state are not + assigned 7. Partners with "Exclude from ZIP Assignment" checked are not assigned 8. When multiple teams match, the team with highest priority is selected -9. Invalid regex patterns are prevented by validation constraints at input time +9. Invalid regex patterns are prevented by validation constraints at + input time **Table of contents** @@ -83,68 +101,86 @@ Usage ===== Setting up CRM Teams ---------------------- +-------------------- 1. Go to CRM → Configuration → Sales Teams 2. Edit or create a CRM team 3. Enable "Active ZIP Assignment" checkbox 4. Set "ZIP Assignment Priority" (higher number = higher priority) 5. Configure geographic coverage: - - Select "Countries" where this team operates (required) - - Select "States" within those countries (required) + + - Select "Countries" where this team operates (required) + - Select "States" within those countries (required) + 6. Add ZIP patterns in the "ZIP Patterns" tab -7. (Optional) Set a "Pre-Zip Match Condition" using Odoo domain syntax to restrict assignment to partners matching specific criteria (e.g., only companies, only certain types, etc.) +7. (Optional) Set a "Pre-Zip Match Condition" using Odoo domain syntax + to restrict assignment to partners matching specific criteria (e.g., + only companies, only certain types, etc.) Geographic Coverage ~~~~~~~~~~~~~~~~~~~ -- **Countries**: Teams will only be considered for partners located in the selected countries -- **States**: Teams will only be considered for partners in the selected states -- **Domain Filtering**: State selection is automatically filtered based on selected countries +- **Countries**: Teams will only be considered for partners located in + the selected countries +- **States**: Teams will only be considered for partners in the + selected states +- **Domain Filtering**: State selection is automatically filtered based + on selected countries Pre-Zip Match Condition ~~~~~~~~~~~~~~~~~~~~~~~ -You can further restrict team assignment by specifying a domain condition in the "Pre-Zip Match Condition" field. This uses Odoo's domain syntax (e.g., `[('is_company', '=', True)]`). Only partners matching this condition will be considered for ZIP pattern matching for this team. +You can further restrict team assignment by specifying a domain +condition in the "Pre-Zip Match Condition" field. This uses Odoo's +domain syntax (e.g., [('is_company', '=', True)]). Only partners +matching this condition will be considered for ZIP pattern matching for +this team. Pre-Zip Match Condition Examples ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Some example domain conditions: -- `[('is_company', '=', True)]` — Only assign to partners that are companies -- `[('type', '=', 'contact')]` — Only assign to contacts -- `[('industry_id', '!=', False)]` — Only assign to partners with an industry set +- [('is_company', '=', True)] — Only assign to partners that are + companies +- [('type', '=', 'contact')] — Only assign to contacts +- [('industry_id', '!=', False)] — Only assign to partners with an + industry set -You can combine multiple conditions, e.g. `[('is_company', '=', True), ('country_id', '=', ref('base.us'))]` +You can combine multiple conditions, e.g. [('is_company', '=', True), +('country_id', '=', ref('base.us'))] ZIP Pattern Examples ~~~~~~~~~~~~~~~~~~~~ -All patterns are validated in real-time to ensure they are valid Python regular expressions: +All patterns are validated in real-time to ensure they are valid Python +regular expressions: -- ``^1[0-5].*`` - ZIP codes starting with 10-15 -- ``^2[0-9].*`` - ZIP codes starting with 20-29 -- ``^751.*`` - ZIP codes starting with 751 -- ``.*123$`` - ZIP codes ending with 123 -- ``^[1-3].*`` - ZIP codes starting with 1, 2, or 3 -- ``^(10|20|30).*`` - ZIP codes starting with 10, 20, or 30 +- ``^1[0-5].*`` - ZIP codes starting with 10-15 +- ``^2[0-9].*`` - ZIP codes starting with 20-29 +- ``^751.*`` - ZIP codes starting with 751 +- ``.*123$`` - ZIP codes ending with 123 +- ``^[1-3].*`` - ZIP codes starting with 1, 2, or 3 +- ``^(10|20|30).*`` - ZIP codes starting with 10, 20, or 30 Pattern Validation ~~~~~~~~~~~~~~~~~~ The system validates regex patterns when they are entered: -- Invalid patterns will show an error message immediately -- Error messages include the specific regex error for debugging -- Only valid patterns can be saved to the database +- Invalid patterns will show an error message immediately +- Error messages include the specific regex error for debugging +- Only valid patterns can be saved to the database Partner Configuration --------------------- -Partners have an "Exclude from ZIP Assignment" checkbox to prevent automatic assignment. +Partners have an "Exclude from ZIP Assignment" checkbox to prevent +automatic assignment. -Teams can have a "Pre-Zip Match Condition" to restrict assignment to partners matching specific criteria before ZIP pattern matching is performed. +Teams can have a "Pre-Zip Match Condition" to restrict assignment to +partners matching specific criteria before ZIP pattern matching is +performed. Usage ----- @@ -152,35 +188,38 @@ Usage Automatic Assignment ~~~~~~~~~~~~~~~~~~~~ - Partners are automatically assigned to CRM teams when: -- A partner is created with complete geographic information (ZIP, country, state) -- A partner's ZIP code is modified -- A partner's country or state is changed -- A partner's company is changed -- The exclusion flag is modified +- A partner is created with complete geographic information (ZIP, + country, state) +- A partner's ZIP code is modified +- A partner's country or state is changed +- A partner's company is changed +- The exclusion flag is modified -For each team, if a "Pre-Zip Match Condition" is set, the partner must match this condition before ZIP pattern matching is performed. If not set, all partners are considered for ZIP matching. +For each team, if a "Pre-Zip Match Condition" is set, the partner must +match this condition before ZIP pattern matching is performed. If not +set, all partners are considered for ZIP matching. Manual Assignment ~~~~~~~~~~~~~~~~~ You can also trigger assignment manually: -- Use the contextual action available in partner views -- This is useful for reassigning existing partners after updating team configurations or after addon installation +- Use the contextual action available in partner views +- This is useful for reassigning existing partners after updating team + configurations or after addon installation Assignment Requirements ~~~~~~~~~~~~~~~~~~~~~~~ For automatic assignment to work, partners must have: -- A ZIP code -- A country -- A state -- A company -- "Exclude from ZIP Assignment" must be unchecked +- A ZIP code +- A country +- A state +- A company +- "Exclude from ZIP Assignment" must be unchecked Bug Tracker =========== @@ -196,18 +235,18 @@ Credits ======= Authors -~~~~~~~ +------- * Binhex Contributors -~~~~~~~~~~~~ +------------ -* Adasat Torres de León -* Rolando Pérez Rebollo +- Adasat Torres de León +- Rolando Pérez Rebollo Maintainers -~~~~~~~~~~~ +----------- This module is maintained by the OCA. diff --git a/crm_team_zip_assign/pyproject.toml b/crm_team_zip_assign/pyproject.toml new file mode 100644 index 00000000000..4231d0cccb3 --- /dev/null +++ b/crm_team_zip_assign/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.buildapi" diff --git a/crm_team_zip_assign/readme/CONTRIBUTORS.md b/crm_team_zip_assign/readme/CONTRIBUTORS.md new file mode 100644 index 00000000000..41539ef1c0f --- /dev/null +++ b/crm_team_zip_assign/readme/CONTRIBUTORS.md @@ -0,0 +1,2 @@ +- Adasat Torres de León \<\> +- Rolando Pérez Rebollo \<\> diff --git a/crm_team_zip_assign/readme/CONTRIBUTORS.rst b/crm_team_zip_assign/readme/CONTRIBUTORS.rst deleted file mode 100644 index 7bf434767cb..00000000000 --- a/crm_team_zip_assign/readme/CONTRIBUTORS.rst +++ /dev/null @@ -1,2 +0,0 @@ -* Adasat Torres de León -* Rolando Pérez Rebollo diff --git a/crm_team_zip_assign/readme/DESCRIPTION.md b/crm_team_zip_assign/readme/DESCRIPTION.md new file mode 100644 index 00000000000..bf516128899 --- /dev/null +++ b/crm_team_zip_assign/readme/DESCRIPTION.md @@ -0,0 +1,57 @@ +Auto-assign CRM teams to partners based on ZIP code patterns using +regular expressions. + +![image](../static/description/crm_team_form_view.png) + +## Features + +- Auto-assign CRM teams to partners based on ZIP code patterns +- Support for Python regular expressions with validation constraints +- Multi-company support +- Geographic filtering by countries and states +- Priority-based assignment when multiple teams match +- Exclusion flag for partners who should not be auto-assigned +- Real-time regex pattern validation prevents invalid patterns +- Contextual action for manual assignment from partner views +- Conditional assignment using pre-zip match conditions: teams can + specify a domain expression (Odoo domain syntax) that must be + satisfied by the partner before ZIP regex matching is performed. + This allows for advanced filtering, e.g., only assign if the partner + is a company or meets other criteria. + +### Assignment Logic + +The assignment is triggered on partner create/write when ZIP, company, +country, state, or exclusion flag changes. A contextual action is also +available from partner views for manual assignment. The system: + +1. Finds all active teams with ZIP assignment enabled in the partner's + company +2. Filters teams by matching countries and states (if specified) +3. For each eligible team, evaluates the optional pre-zip match + condition (Odoo domain expression). If the partner does not satisfy + the condition, the team is skipped. +4. Tests each remaining team's regex patterns against the partner's ZIP + code +5. Selects the team with highest priority if multiple matches exist +6. Logs assignment activity for audit purposes + +### Assignment Rules + +1. Only active teams with "Active ZIP Assignment" enabled are + considered +2. Only teams in the same company as the partner are considered +3. Teams must have matching countries (partner's country must be in + team's countries) +4. Teams must have matching states (partner's state must be in team's + states, if team has states defined) +5. If a team has a pre-zip match condition, the partner must satisfy + the condition (Odoo domain) before ZIP regex matching is performed. + If not set, all partners are considered. +6. Partners without a company, ZIP code, country, or state are not + assigned +7. Partners with "Exclude from ZIP Assignment" checked are not assigned +8. When multiple teams match, the team with highest priority is + selected +9. Invalid regex patterns are prevented by validation constraints at + input time diff --git a/crm_team_zip_assign/readme/DESCRIPTION.rst b/crm_team_zip_assign/readme/DESCRIPTION.rst deleted file mode 100644 index 091211d19ae..00000000000 --- a/crm_team_zip_assign/readme/DESCRIPTION.rst +++ /dev/null @@ -1,41 +0,0 @@ -Auto-assign CRM teams to partners based on ZIP code patterns using regular expressions. - -.. image:: ../static/description/crm_team_form_view.png - -Features --------- - -- Auto-assign CRM teams to partners based on ZIP code patterns -- Support for Python regular expressions with validation constraints -- Multi-company support -- Geographic filtering by countries and states -- Priority-based assignment when multiple teams match -- Exclusion flag for partners who should not be auto-assigned -- Real-time regex pattern validation prevents invalid patterns -- Contextual action for manual assignment from partner views -- Conditional assignment using pre-zip match conditions: teams can specify a domain expression (Odoo domain syntax) that must be satisfied by the partner before ZIP regex matching is performed. This allows for advanced filtering, e.g., only assign if the partner is a company or meets other criteria. - -Assignment Logic -~~~~~~~~~~~~~~~~ - -The assignment is triggered on partner create/write when ZIP, company, country, state, or exclusion flag changes. A contextual action is also available from partner views for manual assignment. The system: - -1. Finds all active teams with ZIP assignment enabled in the partner's company -2. Filters teams by matching countries and states (if specified) -3. For each eligible team, evaluates the optional pre-zip match condition (Odoo domain expression). If the partner does not satisfy the condition, the team is skipped. -4. Tests each remaining team's regex patterns against the partner's ZIP code -5. Selects the team with highest priority if multiple matches exist -6. Logs assignment activity for audit purposes - -Assignment Rules -~~~~~~~~~~~~~~~~ - -1. Only active teams with "Active ZIP Assignment" enabled are considered -2. Only teams in the same company as the partner are considered -3. Teams must have matching countries (partner's country must be in team's countries) -4. Teams must have matching states (partner's state must be in team's states, if team has states defined) -5. If a team has a pre-zip match condition, the partner must satisfy the condition (Odoo domain) before ZIP regex matching is performed. If not set, all partners are considered. -6. Partners without a company, ZIP code, country, or state are not assigned -7. Partners with "Exclude from ZIP Assignment" checked are not assigned -8. When multiple teams match, the team with highest priority is selected -9. Invalid regex patterns are prevented by validation constraints at input time diff --git a/crm_team_zip_assign/readme/USAGE.md b/crm_team_zip_assign/readme/USAGE.md new file mode 100644 index 00000000000..fbe754af6f0 --- /dev/null +++ b/crm_team_zip_assign/readme/USAGE.md @@ -0,0 +1,107 @@ +## Setting up CRM Teams + +1. Go to CRM → Configuration → Sales Teams +2. Edit or create a CRM team +3. Enable "Active ZIP Assignment" checkbox +4. Set "ZIP Assignment Priority" (higher number = higher priority) +5. Configure geographic coverage: + - Select "Countries" where this team operates (required) + - Select "States" within those countries (required) +6. Add ZIP patterns in the "ZIP Patterns" tab +7. (Optional) Set a "Pre-Zip Match Condition" using Odoo domain syntax + to restrict assignment to partners matching specific criteria (e.g., + only companies, only certain types, etc.) + +### Geographic Coverage + +- **Countries**: Teams will only be considered for partners located in + the selected countries +- **States**: Teams will only be considered for partners in the + selected states +- **Domain Filtering**: State selection is automatically filtered + based on selected countries + +### Pre-Zip Match Condition + +You can further restrict team assignment by specifying a domain +condition in the "Pre-Zip Match Condition" field. This uses Odoo's +domain syntax (e.g., \[('is_company', '=', True)\]). Only partners +matching this condition will be considered for ZIP pattern matching for +this team. + +### Pre-Zip Match Condition Examples + +Some example domain conditions: + +- \[('is_company', '=', True)\] — Only assign to partners that are + companies +- \[('type', '=', 'contact')\] — Only assign to contacts +- \[('industry_id', '!=', False)\] — Only assign to partners with an + industry set + +You can combine multiple conditions, e.g. \[('is_company', '=', True), +('country_id', '=', ref('base.us'))\] + +### ZIP Pattern Examples + +All patterns are validated in real-time to ensure they are valid Python +regular expressions: + +- `^1[0-5].*` - ZIP codes starting with 10-15 +- `^2[0-9].*` - ZIP codes starting with 20-29 +- `^751.*` - ZIP codes starting with 751 +- `.*123$` - ZIP codes ending with 123 +- `^[1-3].*` - ZIP codes starting with 1, 2, or 3 +- `^(10|20|30).*` - ZIP codes starting with 10, 20, or 30 + +### Pattern Validation + +The system validates regex patterns when they are entered: + +- Invalid patterns will show an error message immediately +- Error messages include the specific regex error for debugging +- Only valid patterns can be saved to the database + +## Partner Configuration + +Partners have an "Exclude from ZIP Assignment" checkbox to prevent +automatic assignment. + +Teams can have a "Pre-Zip Match Condition" to restrict assignment to +partners matching specific criteria before ZIP pattern matching is +performed. + +## Usage + +### Automatic Assignment + +Partners are automatically assigned to CRM teams when: + +- A partner is created with complete geographic information (ZIP, + country, state) +- A partner's ZIP code is modified +- A partner's country or state is changed +- A partner's company is changed +- The exclusion flag is modified + +For each team, if a "Pre-Zip Match Condition" is set, the partner must +match this condition before ZIP pattern matching is performed. If not +set, all partners are considered for ZIP matching. + +### Manual Assignment + +You can also trigger assignment manually: + +- Use the contextual action available in partner views +- This is useful for reassigning existing partners after updating team + configurations or after addon installation + +### Assignment Requirements + +For automatic assignment to work, partners must have: + +- A ZIP code +- A country +- A state +- A company +- "Exclude from ZIP Assignment" must be unchecked diff --git a/crm_team_zip_assign/readme/USAGE.rst b/crm_team_zip_assign/readme/USAGE.rst deleted file mode 100644 index 68286690c29..00000000000 --- a/crm_team_zip_assign/readme/USAGE.rst +++ /dev/null @@ -1,99 +0,0 @@ -Setting up CRM Teams ---------------------- - -1. Go to CRM → Configuration → Sales Teams -2. Edit or create a CRM team -3. Enable "Active ZIP Assignment" checkbox -4. Set "ZIP Assignment Priority" (higher number = higher priority) -5. Configure geographic coverage: - - Select "Countries" where this team operates (required) - - Select "States" within those countries (required) -6. Add ZIP patterns in the "ZIP Patterns" tab -7. (Optional) Set a "Pre-Zip Match Condition" using Odoo domain syntax to restrict assignment to partners matching specific criteria (e.g., only companies, only certain types, etc.) - -Geographic Coverage -~~~~~~~~~~~~~~~~~~~ - -- **Countries**: Teams will only be considered for partners located in the selected countries -- **States**: Teams will only be considered for partners in the selected states -- **Domain Filtering**: State selection is automatically filtered based on selected countries - -Pre-Zip Match Condition -~~~~~~~~~~~~~~~~~~~~~~~ - -You can further restrict team assignment by specifying a domain condition in the "Pre-Zip Match Condition" field. This uses Odoo's domain syntax (e.g., `[('is_company', '=', True)]`). Only partners matching this condition will be considered for ZIP pattern matching for this team. - -Pre-Zip Match Condition Examples -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Some example domain conditions: - -- `[('is_company', '=', True)]` — Only assign to partners that are companies -- `[('type', '=', 'contact')]` — Only assign to contacts -- `[('industry_id', '!=', False)]` — Only assign to partners with an industry set - -You can combine multiple conditions, e.g. `[('is_company', '=', True), ('country_id', '=', ref('base.us'))]` - -ZIP Pattern Examples -~~~~~~~~~~~~~~~~~~~~ - -All patterns are validated in real-time to ensure they are valid Python regular expressions: - -- ``^1[0-5].*`` - ZIP codes starting with 10-15 -- ``^2[0-9].*`` - ZIP codes starting with 20-29 -- ``^751.*`` - ZIP codes starting with 751 -- ``.*123$`` - ZIP codes ending with 123 -- ``^[1-3].*`` - ZIP codes starting with 1, 2, or 3 -- ``^(10|20|30).*`` - ZIP codes starting with 10, 20, or 30 - -Pattern Validation -~~~~~~~~~~~~~~~~~~ - -The system validates regex patterns when they are entered: - -- Invalid patterns will show an error message immediately -- Error messages include the specific regex error for debugging -- Only valid patterns can be saved to the database - -Partner Configuration ---------------------- - -Partners have an "Exclude from ZIP Assignment" checkbox to prevent automatic assignment. - -Teams can have a "Pre-Zip Match Condition" to restrict assignment to partners matching specific criteria before ZIP pattern matching is performed. - -Usage ------ - -Automatic Assignment -~~~~~~~~~~~~~~~~~~~~ - - -Partners are automatically assigned to CRM teams when: - -- A partner is created with complete geographic information (ZIP, country, state) -- A partner's ZIP code is modified -- A partner's country or state is changed -- A partner's company is changed -- The exclusion flag is modified - -For each team, if a "Pre-Zip Match Condition" is set, the partner must match this condition before ZIP pattern matching is performed. If not set, all partners are considered for ZIP matching. - -Manual Assignment -~~~~~~~~~~~~~~~~~ - -You can also trigger assignment manually: - -- Use the contextual action available in partner views -- This is useful for reassigning existing partners after updating team configurations or after addon installation - -Assignment Requirements -~~~~~~~~~~~~~~~~~~~~~~~ - -For automatic assignment to work, partners must have: - -- A ZIP code -- A country -- A state -- A company -- "Exclude from ZIP Assignment" must be unchecked diff --git a/crm_team_zip_assign/static/description/index.html b/crm_team_zip_assign/static/description/index.html index 51c71d3d851..f1e665e7011 100644 --- a/crm_team_zip_assign/static/description/index.html +++ b/crm_team_zip_assign/static/description/index.html @@ -375,8 +375,9 @@

CRM Team ZIP Assignment

!! source digest: sha256:7d92fa09d6fca0fc8ba878f732b19349d772af0ea5136d7a4a4fa8c79b66564d !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->

Beta License: AGPL-3 OCA/crm Translate me on Weblate Try me on Runboat

-

Auto-assign CRM teams to partners based on ZIP code patterns using regular expressions.

-https://raw.githubusercontent.com/OCA/crm/16.0/crm_team_zip_assign/static/description/crm_team_form_view.png +

Auto-assign CRM teams to partners based on ZIP code patterns using +regular expressions.

+image

Features

    @@ -388,16 +389,26 @@

    Features

  • Exclusion flag for partners who should not be auto-assigned
  • Real-time regex pattern validation prevents invalid patterns
  • Contextual action for manual assignment from partner views
  • -
  • Conditional assignment using pre-zip match conditions: teams can specify a domain expression (Odoo domain syntax) that must be satisfied by the partner before ZIP regex matching is performed. This allows for advanced filtering, e.g., only assign if the partner is a company or meets other criteria.
  • +
  • Conditional assignment using pre-zip match conditions: teams can +specify a domain expression (Odoo domain syntax) that must be +satisfied by the partner before ZIP regex matching is performed. This +allows for advanced filtering, e.g., only assign if the partner is a +company or meets other criteria.

Assignment Logic

-

The assignment is triggered on partner create/write when ZIP, company, country, state, or exclusion flag changes. A contextual action is also available from partner views for manual assignment. The system:

+

The assignment is triggered on partner create/write when ZIP, company, +country, state, or exclusion flag changes. A contextual action is also +available from partner views for manual assignment. The system:

    -
  1. Finds all active teams with ZIP assignment enabled in the partner’s company
  2. +
  3. Finds all active teams with ZIP assignment enabled in the partner’s +company
  4. Filters teams by matching countries and states (if specified)
  5. -
  6. For each eligible team, evaluates the optional pre-zip match condition (Odoo domain expression). If the partner does not satisfy the condition, the team is skipped.
  7. -
  8. Tests each remaining team’s regex patterns against the partner’s ZIP code
  9. +
  10. For each eligible team, evaluates the optional pre-zip match +condition (Odoo domain expression). If the partner does not satisfy +the condition, the team is skipped.
  11. +
  12. Tests each remaining team’s regex patterns against the partner’s ZIP +code
  13. Selects the team with highest priority if multiple matches exist
  14. Logs assignment activity for audit purposes
@@ -407,13 +418,19 @@

Assignment Rules

  1. Only active teams with “Active ZIP Assignment” enabled are considered
  2. Only teams in the same company as the partner are considered
  3. -
  4. Teams must have matching countries (partner’s country must be in team’s countries)
  5. -
  6. Teams must have matching states (partner’s state must be in team’s states, if team has states defined)
  7. -
  8. If a team has a pre-zip match condition, the partner must satisfy the condition (Odoo domain) before ZIP regex matching is performed. If not set, all partners are considered.
  9. -
  10. Partners without a company, ZIP code, country, or state are not assigned
  11. +
  12. Teams must have matching countries (partner’s country must be in +team’s countries)
  13. +
  14. Teams must have matching states (partner’s state must be in team’s +states, if team has states defined)
  15. +
  16. If a team has a pre-zip match condition, the partner must satisfy the +condition (Odoo domain) before ZIP regex matching is performed. If +not set, all partners are considered.
  17. +
  18. Partners without a company, ZIP code, country, or state are not +assigned
  19. Partners with “Exclude from ZIP Assignment” checked are not assigned
  20. When multiple teams match, the team with highest priority is selected
  21. -
  22. Invalid regex patterns are prevented by validation constraints at input time
  23. +
  24. Invalid regex patterns are prevented by validation constraints at +input time

Table of contents

@@ -433,37 +450,52 @@

Setting up CRM Teams

  • Edit or create a CRM team
  • Enable “Active ZIP Assignment” checkbox
  • Set “ZIP Assignment Priority” (higher number = higher priority)
  • -
  • Configure geographic coverage: -- Select “Countries” where this team operates (required) -- Select “States” within those countries (required)
  • +
  • Configure geographic coverage:
      +
    • Select “Countries” where this team operates (required)
    • +
    • Select “States” within those countries (required)
    • +
    +
  • Add ZIP patterns in the “ZIP Patterns” tab
  • -
  • (Optional) Set a “Pre-Zip Match Condition” using Odoo domain syntax to restrict assignment to partners matching specific criteria (e.g., only companies, only certain types, etc.)
  • +
  • (Optional) Set a “Pre-Zip Match Condition” using Odoo domain syntax +to restrict assignment to partners matching specific criteria (e.g., +only companies, only certain types, etc.)
  • Geographic Coverage

      -
    • Countries: Teams will only be considered for partners located in the selected countries
    • -
    • States: Teams will only be considered for partners in the selected states
    • -
    • Domain Filtering: State selection is automatically filtered based on selected countries
    • +
    • Countries: Teams will only be considered for partners located in +the selected countries
    • +
    • States: Teams will only be considered for partners in the +selected states
    • +
    • Domain Filtering: State selection is automatically filtered based +on selected countries

    Pre-Zip Match Condition

    -

    You can further restrict team assignment by specifying a domain condition in the “Pre-Zip Match Condition” field. This uses Odoo’s domain syntax (e.g., [(‘is_company’, ‘=’, True)]). Only partners matching this condition will be considered for ZIP pattern matching for this team.

    +

    You can further restrict team assignment by specifying a domain +condition in the “Pre-Zip Match Condition” field. This uses Odoo’s +domain syntax (e.g., [(‘is_company’, ‘=’, True)]). Only partners +matching this condition will be considered for ZIP pattern matching for +this team.

    Pre-Zip Match Condition Examples

    Some example domain conditions:

      -
    • [(‘is_company’, ‘=’, True)] — Only assign to partners that are companies
    • -
    • [(‘type’, ‘=’, ‘contact’)] — Only assign to contacts
    • -
    • [(‘industry_id’, ‘!=’, False)] — Only assign to partners with an industry set
    • +
    • [(‘is_company’, ‘=’, True)] — Only assign to partners that are +companies
    • +
    • [(‘type’, ‘=’, ‘contact’)] — Only assign to contacts
    • +
    • [(‘industry_id’, ‘!=’, False)] — Only assign to partners with an +industry set
    -

    You can combine multiple conditions, e.g. [(‘is_company’, ‘=’, True), (‘country_id’, ‘=’, ref(‘base.us’))]

    +

    You can combine multiple conditions, e.g. [(‘is_company’, ‘=’, True), +(‘country_id’, ‘=’, ref(‘base.us’))]

    ZIP Pattern Examples

    -

    All patterns are validated in real-time to ensure they are valid Python regular expressions:

    +

    All patterns are validated in real-time to ensure they are valid Python +regular expressions:

    • ^1[0-5].* - ZIP codes starting with 10-15
    • ^2[0-9].* - ZIP codes starting with 20-29
    • @@ -485,8 +517,11 @@

      Pattern Validation

    Partner Configuration

    -

    Partners have an “Exclude from ZIP Assignment” checkbox to prevent automatic assignment.

    -

    Teams can have a “Pre-Zip Match Condition” to restrict assignment to partners matching specific criteria before ZIP pattern matching is performed.

    +

    Partners have an “Exclude from ZIP Assignment” checkbox to prevent +automatic assignment.

    +

    Teams can have a “Pre-Zip Match Condition” to restrict assignment to +partners matching specific criteria before ZIP pattern matching is +performed.

    Usage

    @@ -494,20 +529,24 @@

    Usage

    Automatic Assignment

    Partners are automatically assigned to CRM teams when:

      -
    • A partner is created with complete geographic information (ZIP, country, state)
    • +
    • A partner is created with complete geographic information (ZIP, +country, state)
    • A partner’s ZIP code is modified
    • A partner’s country or state is changed
    • A partner’s company is changed
    • The exclusion flag is modified
    -

    For each team, if a “Pre-Zip Match Condition” is set, the partner must match this condition before ZIP pattern matching is performed. If not set, all partners are considered for ZIP matching.

    +

    For each team, if a “Pre-Zip Match Condition” is set, the partner must +match this condition before ZIP pattern matching is performed. If not +set, all partners are considered for ZIP matching.

    Manual Assignment

    You can also trigger assignment manually:

    • Use the contextual action available in partner views
    • -
    • This is useful for reassigning existing partners after updating team configurations or after addon installation
    • +
    • This is useful for reassigning existing partners after updating team +configurations or after addon installation
    @@ -532,21 +571,22 @@

    Bug Tracker

    Credits

    +
    -

    Authors

    +

    Authors

    • Binhex
    -

    Contributors

    +

    Contributors

    -

    Maintainers

    +

    Maintainers

    This module is maintained by the OCA.

    Odoo Community Association @@ -559,6 +599,5 @@

    Maintainers

    -
    diff --git a/crm_team_zip_assign/tests/test_zip_assignment.py b/crm_team_zip_assign/tests/test_zip_assignment.py index eb2cc5fe997..1e7b26251bd 100644 --- a/crm_team_zip_assign/tests/test_zip_assignment.py +++ b/crm_team_zip_assign/tests/test_zip_assignment.py @@ -431,7 +431,8 @@ def test_write_exclusion_flag(self): def test_pre_zip_match_condition(self): """Test that pre_zip_match_condition filters partners as expected.""" - # Setup: two teams, same country/state/zip/priority, different pre_zip_match_condition + # Setup: two teams, same country/state/zip/priority, + # different pre_zip_match_condition # Partner is a company partner_company = self.env["res.partner"].create( { diff --git a/crm_won_restrict_per_stage/README.rst b/crm_won_restrict_per_stage/README.rst index d968bcc1247..988c2e47477 100644 --- a/crm_won_restrict_per_stage/README.rst +++ b/crm_won_restrict_per_stage/README.rst @@ -1,3 +1,7 @@ +.. image:: https://odoo-community.org/readme-banner-image + :target: https://odoo-community.org/get-involved?utm_source=readme + :alt: Odoo Community Association + ========================== CRM Won Restrict Per Stage ========================== @@ -13,7 +17,7 @@ CRM Won Restrict Per Stage .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png :target: https://odoo-community.org/page/development-status :alt: Beta -.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png +.. |badge2| image:: https://img.shields.io/badge/license-AGPL--3-blue.png :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fcrm-lightgray.png?logo=github @@ -28,10 +32,10 @@ CRM Won Restrict Per Stage |badge1| |badge2| |badge3| |badge4| |badge5| -This module adds the possibility to set CRM stages that are being able to see the won -button (hiding it for the rest). -It also restricts to change to a won stage won from an stage that doesn't have this -check marked. +This module adds the possibility to set CRM stages that are being able +to see the won button (hiding it for the rest). It also restricts to +change to a won stage won from an stage that doesn't have this check +marked. **Table of contents** @@ -47,9 +51,11 @@ To configure this module, you need to: 2. Check or uncheck "Show Won Button". If you unchecked "Show Won Button", on that stage disappears Won Button. -Additionally, you won't be able to change to won stage from a stage with this configuration. +Additionally, you won't be able to change to won stage from a stage with +this configuration. -When installing the module, all CRM stages created are set by default to "Show Won Button". +When installing the module, all CRM stages created are set by default to +"Show Won Button". Bug Tracker =========== @@ -65,20 +71,20 @@ Credits ======= Authors -~~~~~~~ +------- * Tecnativa Contributors -~~~~~~~~~~~~ +------------ -* `Tecnativa `_: +- `Tecnativa `__: - * Carolina Fernandez - * Pedro M. Baeza + - Carolina Fernandez + - Pedro M. Baeza Maintainers -~~~~~~~~~~~ +----------- This module is maintained by the OCA. diff --git a/crm_won_restrict_per_stage/pyproject.toml b/crm_won_restrict_per_stage/pyproject.toml new file mode 100644 index 00000000000..4231d0cccb3 --- /dev/null +++ b/crm_won_restrict_per_stage/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.buildapi" diff --git a/crm_won_restrict_per_stage/readme/CONFIGURE.rst b/crm_won_restrict_per_stage/readme/CONFIGURE.md similarity index 60% rename from crm_won_restrict_per_stage/readme/CONFIGURE.rst rename to crm_won_restrict_per_stage/readme/CONFIGURE.md index b7ce0eb4533..0f68bccb836 100644 --- a/crm_won_restrict_per_stage/readme/CONFIGURE.rst +++ b/crm_won_restrict_per_stage/readme/CONFIGURE.md @@ -1,9 +1,11 @@ To configure this module, you need to: -1. Go to CRM --> Configuration --> Pipelines--> Stages -2. Check or uncheck "Show Won Button". +1. Go to CRM --\> Configuration --\> Pipelines--\> Stages +2. Check or uncheck "Show Won Button". If you unchecked "Show Won Button", on that stage disappears Won Button. -Additionally, you won't be able to change to won stage from a stage with this configuration. +Additionally, you won't be able to change to won stage from a stage with +this configuration. -When installing the module, all CRM stages created are set by default to "Show Won Button". +When installing the module, all CRM stages created are set by default to +"Show Won Button". diff --git a/crm_won_restrict_per_stage/readme/CONTRIBUTORS.md b/crm_won_restrict_per_stage/readme/CONTRIBUTORS.md new file mode 100644 index 00000000000..68b31ba88c5 --- /dev/null +++ b/crm_won_restrict_per_stage/readme/CONTRIBUTORS.md @@ -0,0 +1,4 @@ +- [Tecnativa](https://www.tecnativa.com): + + > - Carolina Fernandez + > - Pedro M. Baeza diff --git a/crm_won_restrict_per_stage/readme/CONTRIBUTORS.rst b/crm_won_restrict_per_stage/readme/CONTRIBUTORS.rst deleted file mode 100644 index 7d431b589ad..00000000000 --- a/crm_won_restrict_per_stage/readme/CONTRIBUTORS.rst +++ /dev/null @@ -1,4 +0,0 @@ -* `Tecnativa `_: - - * Carolina Fernandez - * Pedro M. Baeza diff --git a/crm_won_restrict_per_stage/readme/DESCRIPTION.md b/crm_won_restrict_per_stage/readme/DESCRIPTION.md new file mode 100644 index 00000000000..2481f564464 --- /dev/null +++ b/crm_won_restrict_per_stage/readme/DESCRIPTION.md @@ -0,0 +1,4 @@ +This module adds the possibility to set CRM stages that are being able +to see the won button (hiding it for the rest). It also restricts to +change to a won stage won from an stage that doesn't have this check +marked. diff --git a/crm_won_restrict_per_stage/readme/DESCRIPTION.rst b/crm_won_restrict_per_stage/readme/DESCRIPTION.rst deleted file mode 100644 index cf4bbaa6cb6..00000000000 --- a/crm_won_restrict_per_stage/readme/DESCRIPTION.rst +++ /dev/null @@ -1,4 +0,0 @@ -This module adds the possibility to set CRM stages that are being able to see the won -button (hiding it for the rest). -It also restricts to change to a won stage won from an stage that doesn't have this -check marked. diff --git a/crm_won_restrict_per_stage/static/description/index.html b/crm_won_restrict_per_stage/static/description/index.html index 0a4cfe1c513..6e24827da76 100644 --- a/crm_won_restrict_per_stage/static/description/index.html +++ b/crm_won_restrict_per_stage/static/description/index.html @@ -3,15 +3,16 @@ -CRM Won Restrict Per Stage +README.rst -
    -

    CRM Won Restrict Per Stage

    +
    + + +Odoo Community Association + +
    +

    CRM Won Restrict Per Stage

    -

    Beta License: AGPL-3 OCA/crm Translate me on Weblate Try me on Runboat

    -

    This module adds the possibility to set CRM stages that are being able to see the won -button (hiding it for the rest). -It also restricts to change to a won stage won from an stage that doesn’t have this -check marked.

    +

    Beta License: AGPL-3 OCA/crm Translate me on Weblate Try me on Runboat

    +

    This module adds the possibility to set CRM stages that are being able +to see the won button (hiding it for the rest). It also restricts to +change to a won stage won from an stage that doesn’t have this check +marked.

    Table of contents

      @@ -387,18 +393,20 @@

      CRM Won Restrict Per Stage

    -

    Configuration

    +

    Configuration

    To configure this module, you need to:

    1. Go to CRM –> Configuration –> Pipelines–> Stages
    2. Check or uncheck “Show Won Button”.

    If you unchecked “Show Won Button”, on that stage disappears Won Button. -Additionally, you won’t be able to change to won stage from a stage with this configuration.

    -

    When installing the module, all CRM stages created are set by default to “Show Won Button”.

    +Additionally, you won’t be able to change to won stage from a stage with +this configuration.

    +

    When installing the module, all CRM stages created are set by default to +“Show Won Button”.

    -

    Bug Tracker

    +

    Bug Tracker

    Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed @@ -406,15 +414,15 @@

    Bug Tracker

    Do not contact contributors directly about support or help with technical issues.

    -

    Credits

    +

    Credits

    -

    Authors

    +

    Authors

    • Tecnativa
    -

    Maintainers

    +

    Maintainers

    This module is maintained by the OCA.

    -Odoo Community Association + +Odoo Community Association +

    OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use.

    @@ -440,5 +450,6 @@

    Maintainers

    +
    diff --git a/marketing_crm_partner/README.rst b/marketing_crm_partner/README.rst index 8079b2f4187..e902701822b 100644 --- a/marketing_crm_partner/README.rst +++ b/marketing_crm_partner/README.rst @@ -1,3 +1,7 @@ +.. image:: https://odoo-community.org/readme-banner-image + :target: https://odoo-community.org/get-involved?utm_source=readme + :alt: Odoo Community Association + =========================== Tracking Fields in Partners =========================== @@ -13,7 +17,7 @@ Tracking Fields in Partners .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png :target: https://odoo-community.org/page/development-status :alt: Beta -.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png +.. |badge2| image:: https://img.shields.io/badge/license-AGPL--3-blue.png :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fcrm-lightgray.png?logo=github @@ -28,9 +32,9 @@ Tracking Fields in Partners |badge1| |badge2| |badge3| |badge4| |badge5| -This module extends the functionality of the CRM to support having the tracking -fields available in the partner and copy them there automatically when the -partner is created from a lead/opportunity. +This module extends the functionality of the CRM to support having the +tracking fields available in the partner and copy them there +automatically when the partner is created from a lead/opportunity. **Table of contents** @@ -42,16 +46,16 @@ Usage To use this module, you need to: -#. Go to **CRM > Leads > Create**. -#. Fill the required fields. -#. Go to **Extra Info > Tracking** and fill those 3 fields. -#. **Save**. -#. **Convert to Opportunity**. -#. Choose the option **Customer > Create a new customer**. -#. **Create Opportunity**. -#. Click on the name of the newly linked partner. -#. Go to tab **Sales & Purchases**. -#. There you have the new fulfilled fields. +1. Go to **CRM > Leads > Create**. +2. Fill the required fields. +3. Go to **Extra Info > Tracking** and fill those 3 fields. +4. **Save**. +5. **Convert to Opportunity**. +6. Choose the option **Customer > Create a new customer**. +7. **Create Opportunity**. +8. Click on the name of the newly linked partner. +9. Go to tab **Sales & Purchases**. +10. There you have the new fulfilled fields. Bug Tracker =========== @@ -67,25 +71,25 @@ Credits ======= Authors -~~~~~~~ +------- * Tecnativa Contributors -~~~~~~~~~~~~ +------------ -* `Tecnativa `__: +- `Tecnativa `__: - * Rafael Blasco - * Jairo Llopis - * Vicent Cubells - * David Vidal - * Cristina Martin R. - * Marcel Savegnago - * Ahmet Yiğit Budak + - Rafael Blasco + - Jairo Llopis + - Vicent Cubells + - David Vidal + - Cristina Martin R. + - Marcel Savegnago + - Ahmet Yiğit Budak Maintainers -~~~~~~~~~~~ +----------- This module is maintained by the OCA. diff --git a/marketing_crm_partner/pyproject.toml b/marketing_crm_partner/pyproject.toml new file mode 100644 index 00000000000..4231d0cccb3 --- /dev/null +++ b/marketing_crm_partner/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.buildapi" diff --git a/marketing_crm_partner/readme/CONTRIBUTORS.md b/marketing_crm_partner/readme/CONTRIBUTORS.md new file mode 100644 index 00000000000..015f0e4e28c --- /dev/null +++ b/marketing_crm_partner/readme/CONTRIBUTORS.md @@ -0,0 +1,8 @@ +- [Tecnativa](https://www.tecnativa.com): + - Rafael Blasco \<\> + - Jairo Llopis \<\> + - Vicent Cubells \<\> + - David Vidal \<\> + - Cristina Martin R. \<\> + - Marcel Savegnago \<\> + - Ahmet Yiğit Budak \<\> diff --git a/marketing_crm_partner/readme/CONTRIBUTORS.rst b/marketing_crm_partner/readme/CONTRIBUTORS.rst deleted file mode 100644 index 71ccb5ff2e5..00000000000 --- a/marketing_crm_partner/readme/CONTRIBUTORS.rst +++ /dev/null @@ -1,9 +0,0 @@ -* `Tecnativa `__: - - * Rafael Blasco - * Jairo Llopis - * Vicent Cubells - * David Vidal - * Cristina Martin R. - * Marcel Savegnago - * Ahmet Yiğit Budak diff --git a/marketing_crm_partner/readme/DESCRIPTION.md b/marketing_crm_partner/readme/DESCRIPTION.md new file mode 100644 index 00000000000..625d8bf7c83 --- /dev/null +++ b/marketing_crm_partner/readme/DESCRIPTION.md @@ -0,0 +1,3 @@ +This module extends the functionality of the CRM to support having the +tracking fields available in the partner and copy them there +automatically when the partner is created from a lead/opportunity. diff --git a/marketing_crm_partner/readme/DESCRIPTION.rst b/marketing_crm_partner/readme/DESCRIPTION.rst deleted file mode 100644 index b3191cc2509..00000000000 --- a/marketing_crm_partner/readme/DESCRIPTION.rst +++ /dev/null @@ -1,3 +0,0 @@ -This module extends the functionality of the CRM to support having the tracking -fields available in the partner and copy them there automatically when the -partner is created from a lead/opportunity. diff --git a/marketing_crm_partner/readme/USAGE.md b/marketing_crm_partner/readme/USAGE.md new file mode 100644 index 00000000000..70c6887e11c --- /dev/null +++ b/marketing_crm_partner/readme/USAGE.md @@ -0,0 +1,12 @@ +To use this module, you need to: + +1. Go to **CRM \> Leads \> Create**. +2. Fill the required fields. +3. Go to **Extra Info \> Tracking** and fill those 3 fields. +4. **Save**. +5. **Convert to Opportunity**. +6. Choose the option **Customer \> Create a new customer**. +7. **Create Opportunity**. +8. Click on the name of the newly linked partner. +9. Go to tab **Sales & Purchases**. +10. There you have the new fulfilled fields. diff --git a/marketing_crm_partner/readme/USAGE.rst b/marketing_crm_partner/readme/USAGE.rst deleted file mode 100644 index 2435453a79d..00000000000 --- a/marketing_crm_partner/readme/USAGE.rst +++ /dev/null @@ -1,12 +0,0 @@ -To use this module, you need to: - -#. Go to **CRM > Leads > Create**. -#. Fill the required fields. -#. Go to **Extra Info > Tracking** and fill those 3 fields. -#. **Save**. -#. **Convert to Opportunity**. -#. Choose the option **Customer > Create a new customer**. -#. **Create Opportunity**. -#. Click on the name of the newly linked partner. -#. Go to tab **Sales & Purchases**. -#. There you have the new fulfilled fields. diff --git a/marketing_crm_partner/static/description/index.html b/marketing_crm_partner/static/description/index.html index 4972eaa0562..a1a660358e2 100644 --- a/marketing_crm_partner/static/description/index.html +++ b/marketing_crm_partner/static/description/index.html @@ -1,20 +1,20 @@ - - -Tracking Fields in Partners + +README.rst -
    -

    Tracking Fields in Partners

    +
    + + +Odoo Community Association + +
    +

    Tracking Fields in Partners

    -

    Beta License: AGPL-3 OCA/crm Translate me on Weblate Try me on Runboat

    -

    This module extends the functionality of the CRM to support having the tracking -fields available in the partner and copy them there automatically when the -partner is created from a lead/opportunity.

    +

    Beta License: AGPL-3 OCA/crm Translate me on Weblate Try me on Runboat

    +

    This module extends the functionality of the CRM to support having the +tracking fields available in the partner and copy them there +automatically when the partner is created from a lead/opportunity.

    Table of contents

    -

    Usage

    +

    Usage

    To use this module, you need to:

    1. Go to CRM > Leads > Create.
    2. @@ -403,7 +408,7 @@

      Usage

    -

    Bug Tracker

    +

    Bug Tracker

    Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed @@ -411,15 +416,15 @@

    Bug Tracker

    Do not contact contributors directly about support or help with technical issues.

    -

    Credits

    +

    Credits

    -

    Authors

    +

    Authors

    • Tecnativa
    -

    Maintainers

    +

    Maintainers

    This module is maintained by the OCA.

    -Odoo Community Association + +Odoo Community Association +

    OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use.

    @@ -445,5 +452,6 @@

    Maintainers

    +