Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
66 commits
Select commit Hold shift + click to select a range
44b899f
[10.0][ADD] product_assortment
rousseldenis Aug 27, 2018
f4bfc39
[FIX][10.0] product_assortment travis warning
tbaden May 4, 2019
bf87ad0
[12.0][MIG] product_assortment
rousseldenis Jun 3, 2019
d86134d
[IMP] product_assortment: black, isort
Oct 18, 2019
cae87a6
[MIG] product_assortment: Migration to 13.0
Oct 21, 2019
79443f0
[FIX] avoid errors when trying to open assortment products
benwillig Jul 23, 2020
8461b9e
[FIX] product_assortment: development_status
sbidoul Oct 18, 2020
626b33e
[IMP] product_assortment: added partners to products assortments
CarlosRoca13 Dec 23, 2020
863c274
[FIX] product_assortment: Avoid errors on invalid models
pedrobaeza Jan 13, 2021
822c118
Added translation using Weblate (Catalan)
claudiagn Feb 23, 2021
7b511b8
Translated using Weblate (Catalan)
claudiagn Feb 23, 2021
9ebe2bc
[14.0][MIG] product_assortment
xavier-bouquiaux Mar 24, 2021
876819e
[14.0][IMP] product_assortment: Fallback to create() for model_id
rousseldenis May 18, 2021
fdc9ea8
fix ir_filters
Kev-Roche Jun 17, 2021
9d7fca0
[FIX] remove useless depends on domain leading to orm crash
Nov 10, 2021
270ac5e
[IMP] product_assortment: Allow to use assortment based on partner do…
sergio-teruel Jul 7, 2021
16f72ed
[IMP] product_assortment: add icon to menu
CarlosRoca13 Aug 5, 2021
f6b3cd9
[FIX] product_assortment: use safe_eval.datetime
hailangvn Nov 23, 2021
159b78e
[FIX] Fix access right issues when using actions
sebalix Jan 29, 2022
8e9467b
Translated using Weblate (Catalan)
Noel000 Mar 22, 2022
7ad23fd
Added translation using Weblate (Italian)
SicurSam Apr 21, 2022
1250ea8
Translated using Weblate (Italian)
SicurSam Apr 21, 2022
95298de
Translated using Weblate (Italian)
SicurSam Apr 21, 2022
2422ee0
Translated using Weblate (Italian)
francesco-ooops Apr 21, 2022
6f6af86
[MIG] product_assortment: Migration to 15.0
CarlosRoca13 May 24, 2022
437d765
[IMP] product_assortment: Add blacklist product domain to exclude som…
sergio-teruel May 24, 2022
1ac0da6
[MIG] product_assortment: Migration to 16.0
marielejeune Sep 15, 2022
ee2bfaf
[MIG] product_assortment: Fix form view
lmignon Oct 19, 2022
8a47639
[UPD] Update product_assortment.pot
Oct 19, 2022
9c6009d
[UPD] README.rst
OCA-git-bot Oct 19, 2022
51a8e8a
product_assortment 16.0.1.0.1
OCA-git-bot Oct 19, 2022
5939fd2
Update translation files
weblate Oct 19, 2022
f765906
Added translation using Weblate (German)
marylla Nov 4, 2022
d98ab37
Translated using Weblate (German)
marylla Nov 4, 2022
c450412
[FIX] product_assortment unit tests: invalidate_cache() is deprecated
marielejeune Nov 14, 2022
313e7d9
product_assortment 16.0.1.0.2
OCA-git-bot Nov 15, 2022
8fee17b
[UPD] Update product_assortment.pot
Nov 21, 2022
e9c05a7
Update translation files
weblate Nov 21, 2022
aec9e13
Translated using Weblate (Italian)
francesco-ooops Dec 29, 2022
1647fc7
Translated using Weblate (Italian)
PicchiSeba Apr 27, 2023
ff11c28
Translated using Weblate (Italian)
PicchiSeba Apr 27, 2023
1980933
Translated using Weblate (Italian)
francesco-ooops Jul 10, 2023
4768cd0
Translated using Weblate (Italian)
francesco-ooops Jul 12, 2023
33d4d7a
Translated using Weblate (Spanish)
Ivorra78 Aug 22, 2023
4b26815
[UPD] README.rst
OCA-git-bot Sep 3, 2023
f6c4567
Update translation files
weblate Oct 9, 2023
5213e91
Translated using Weblate (Italian)
mymage Oct 30, 2023
aab03ec
Translated using Weblate (Italian)
mymage Nov 6, 2023
7aef5d5
Translated using Weblate (Italian)
mymage Nov 6, 2023
7c7c61c
[FIX] product_assortment: Product black_list_domain invalidates white…
carlosdauden Feb 20, 2023
87e6fd8
[IMP] product_assortment: Add new methods to improve performance usin…
carlosdauden Feb 20, 2023
e40dcd3
[IMP] product_assortment: New field applied_assortments_ids to avoid …
carlosdauden Jun 5, 2023
c9b5cf1
[UPD] Update product_assortment.pot
Jul 11, 2024
d3a267d
[BOT] post-merge updates
OCA-git-bot Jul 11, 2024
0773d12
Update translation files
weblate Jul 11, 2024
ac7316a
Translated using Weblate (Italian)
mymage Jul 15, 2024
91d1098
Added translation using Weblate (French)
samibc2c Nov 7, 2024
ee771a2
Translated using Weblate (French)
samibc2c Nov 7, 2024
7103ada
Added translation using Weblate (Dutch)
bosd Feb 2, 2025
38ffe68
Translated using Weblate (Dutch)
bosd Feb 2, 2025
50246d5
[FIX] product_assortment ir_filters create vals_list
santostelmo Feb 12, 2025
b0a6074
[BOT] post-merge updates
OCA-git-bot Feb 13, 2025
64932ea
[IMP] product_assortment: pre-commit auto fixes
dalonsod Mar 30, 2025
7fabbfe
[MIG] product_assortment: Migration to 17.0
dalonsod Mar 30, 2025
d54357c
[IMP] product_assortment: basic management security support
PieterPaulussen Mar 30, 2025
d2bd52e
[IMP] product_assortment: Add test for assortment update
rlimaeco Mar 30, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
119 changes: 119 additions & 0 deletions product_assortment/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,119 @@
==================
Product Assortment
==================

..
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:d6a41e8eb60ae14e641778ae346f917d1fce31a834dff76a21ef4e2780129b5e
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

.. |badge1| image:: https://img.shields.io/badge/maturity-Production%2FStable-green.png
:target: https://odoo-community.org/page/development-status
:alt: Production/Stable
.. |badge2| image:: https://img.shields.io/badge/licence-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%2Fproduct--attribute-lightgray.png?logo=github
:target: https://github.com/OCA/product-attribute/tree/17.0/product_assortment
:alt: OCA/product-attribute
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/product-attribute-17-0/product-attribute-17-0-product_assortment
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
:target: https://runboat.odoo-community.org/builds?repo=OCA/product-attribute&target_branch=17.0
:alt: Try me on Runboat

|badge1| |badge2| |badge3| |badge4| |badge5|

This addon intends to manage product assortment. In Odoo you can only
define some filters defined by a domain but it can be sometimes really
complicated. With this addon you will be able to define a domain but
also add some products to include or to exclude through a allowed list
and a restricted list. This is done by overriding ir.capability but
without influencing its standard behaviour.

**Table of contents**

.. contents::
:local:

Usage
=====

To use this module, you need to:

1. Enter the menu through Product Assortment Icon
2. Create a new filter where you can define your domain and add allowed
and restricted products

Changelog
=========

10.0.1.0.0 (2018-08-27)
-----------------------

- [10.0][ADD] product_assortment

12.0.1.0.0 (2019-06-03)
-----------------------

- [12.0][MIG] product_assortment

14.0.1.0.0 (2019-06-03)
-----------------------

- [14.0][MIG] product_assortment

16.0.1.0.0 (2022-09-15)
-----------------------

- [16.0][MIG] product_assortment

Bug Tracker
===========

Bugs are tracked on `GitHub Issues <https://github.com/OCA/product-attribute/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
`feedback <https://github.com/OCA/product-attribute/issues/new?body=module:%20product_assortment%0Aversion:%2017.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.

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

Credits
=======

Authors
-------

* ACSONE SA/NV

Contributors
------------

- Denis Roussel <denis.roussel@acsone.eu>
- Cédric Pigeon <cedric.pigeon@acsone.eu>
- Xavier Bouquiaux <xavier.bouquiaux@acsone.eu>
- `Tecnativa <https://www.tecnativa.com>`__:

- Carlos Roca
- Sergio Teruel

Maintainers
-----------

This module is maintained by the OCA.

.. image:: https://odoo-community.org/logo.png
:alt: Odoo Community Association
:target: https://odoo-community.org

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.

This module is part of the `OCA/product-attribute <https://github.com/OCA/product-attribute/tree/17.0/product_assortment>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
1 change: 1 addition & 0 deletions product_assortment/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from . import models
22 changes: 22 additions & 0 deletions product_assortment/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# Copyright 2021 ACSONE SA/NV
# Copyright 2023 Tecnativa - Carlos Dauden
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).

{
"name": "Product Assortment",
"summary": """
Adds the ability to manage products assortment""",
"version": "17.0.1.0.0",
"license": "AGPL-3",
"development_status": "Production/Stable",
"author": "ACSONE SA/NV,Odoo Community Association (OCA)",
"website": "https://github.com/OCA/product-attribute",
"depends": ["base", "product"],
"data": [
"data/ir_cron.xml",
"security/product_assortment_security.xml",
"views/product_assortment.xml",
"views/res_partner_view.xml",
],
"installable": True,
}
33 changes: 33 additions & 0 deletions product_assortment/data/ir_cron.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo noupdate="1">
<!-- Force to recompute all partners to take into account changes in related partner fields models.
P.E.: Domain includes tag_ids.name contains "**" and user changes tag name from tags view -->
<record
id="action_product_assortment_recompute_all_partners"
model="ir.actions.server"
>
<field name="name">Product assortment recompute all partbers</field>
<field name="model_id" ref="model_ir_filters" />
<field name="binding_model_id" ref="model_ir_filters" />
<field name="state">code</field>
<field name="code">model.search([])._compute_all_partner_ids()</field>
</record>

<!-- Cron to recompute all partners. (Not active by default). -->
<record id="ir_cron_product_assortment_recompute_all_partners" model="ir.cron">
<field
name="ir_actions_server_id"
ref="action_product_assortment_recompute_all_partners"
/>
<field name="interval_number">1</field>
<field name="interval_type">days</field>
<field name="numbercall">-1</field>
<field name="doall" eval="False" />
<field name="active" eval="False" />
<field
name="nextcall"
eval="(DateTime.now().replace(hour=3, minute=0, second=0) + timedelta(days=1)).strftime('%Y-%m-%d %H:%M:%S')"
/>
</record>

</odoo>
197 changes: 197 additions & 0 deletions product_assortment/i18n/ca.po
Original file line number Diff line number Diff line change
@@ -0,0 +1,197 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * product_assortment
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 13.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2022-03-22 13:17+0000\n"
"Last-Translator: Noel estudillo <noelestudilloviera@gmail.com>\n"
"Language-Team: none\n"
"Language: ca\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.3.2\n"

#. module: product_assortment
#: model_terms:ir.ui.view,arch_db:product_assortment.product_assortment_view_form
msgid "&gt;"
msgstr ""

#. module: product_assortment
#: model_terms:ir.ui.view,arch_db:product_assortment.product_assortment_view_form
msgid ""
"<span attrs=\"{'invisible': [('record_count', '&lt;=', 1)]}\">\n"
" Products\n"
" </span>\n"
" <span attrs=\"{'invisible': "
"[('record_count', '&gt;', 1)]}\">\n"
" Product\n"
" </span>"
msgstr ""

#. module: product_assortment
#: model_terms:ir.ui.view,arch_db:product_assortment.view_partner_form
msgid "<span class=\"o_stat_text\">Product Assortments</span>"
msgstr "<span class=\"o_stat_text\">Assortiment de producte</span>"

#. module: product_assortment
#: model:ir.model.fields,field_description:product_assortment.field_ir_filters__all_partner_ids
msgid "All Partner"
msgstr "Tots socis"

#. module: product_assortment
#: model_terms:ir.ui.view,arch_db:product_assortment.product_assortment_view_form
msgid "Allowed product domain"
msgstr ""

#. module: product_assortment
#: model:ir.model.fields,field_description:product_assortment.field_ir_filters__whitelist_product_ids
msgid "Allowed products"
msgstr ""

#. module: product_assortment
#: model:ir.model.fields,field_description:product_assortment.field_res_partner__applied_assortment_ids
#: model:ir.model.fields,field_description:product_assortment.field_res_users__applied_assortment_ids
msgid "Applied Assortment"
msgstr ""

#. module: product_assortment
#: model:ir.model.fields,field_description:product_assortment.field_ir_filters__apply_black_list_product_domain
msgid "Apply restricted product domain"
msgstr ""

#. module: product_assortment
#: model_terms:ir.ui.view,arch_db:product_assortment.product_assortment_view_form
msgid "Archived"
msgstr ""

#. module: product_assortment
#: model_terms:ir.ui.view,arch_db:product_assortment.product_assortment_view_form
#: model_terms:ir.ui.view,arch_db:product_assortment.product_assortment_view_search
msgid "Assortment Name"
msgstr "Nom de l'assortiment"

#. module: product_assortment
#: model_terms:ir.ui.view,arch_db:product_assortment.product_assortment_view_search
msgid "Assortments"
msgstr "Assortiments"

#. module: product_assortment
#: model:ir.model,name:product_assortment.model_res_partner
msgid "Contact"
msgstr "Contacte"

#. module: product_assortment
#: model:ir.model,name:product_assortment.model_ir_filters
#: model_terms:ir.ui.view,arch_db:product_assortment.product_assortment_view_form
msgid "Filters"
msgstr "Filtres"

#. module: product_assortment
#: model:ir.model.fields,field_description:product_assortment.field_ir_filters__is_assortment
msgid "Is Assortment"
msgstr "És Assortiment"

#. module: product_assortment
#: model:ir.model.fields,field_description:product_assortment.field_ir_filters__partner_ids
msgid "Partner"
msgstr "Soci"

#. module: product_assortment
#: model:ir.model.fields,field_description:product_assortment.field_ir_filters__partner_domain
msgid "Partner Domain"
msgstr "Domini del soci"

#. module: product_assortment
#: model_terms:ir.ui.view,arch_db:product_assortment.product_assortment_view_form
msgid "Partner domain"
msgstr ""

#. module: product_assortment
#: model_terms:ir.ui.view,arch_db:product_assortment.product_assortment_view_form
msgid "Partners to apply"
msgstr "Socis a aplicar"

#. module: product_assortment
#: model_terms:ir.ui.view,arch_db:product_assortment.product_product_view_tree
msgid "Product"
msgstr "Producte"

#. module: product_assortment
#: model:ir.ui.menu,name:product_assortment.menu_product_assortments
msgid "Product Assortment"
msgstr "Assortiment de producte"

#. module: product_assortment
#: model:ir.actions.act_window,name:product_assortment.actions_product_assortment_view
msgid "Product assortment"
msgstr "Assortiment de producte"

#. module: product_assortment
#: model:ir.actions.server,name:product_assortment.action_product_assortment_recompute_all_partners
#: model:ir.cron,cron_name:product_assortment.ir_cron_product_assortment_recompute_all_partners
msgid "Product assortment recompute all partbers"
msgstr ""

#. module: product_assortment
#. odoo-python
#: code:addons/product_assortment/models/ir_filters.py:0
#, python-format
msgid "Products"
msgstr "Productes"

#. module: product_assortment
#: model_terms:ir.ui.view,arch_db:product_assortment.product_assortment_view_form
msgid "Products to exclude"
msgstr "Productes a excloure"

#. module: product_assortment
#: model_terms:ir.ui.view,arch_db:product_assortment.product_assortment_view_form
msgid "Products to include"
msgstr "Productes a incloure"

#. module: product_assortment
#: model:ir.model.fields,field_description:product_assortment.field_ir_filters__record_count
msgid "Record Count"
msgstr "Recompte de registres"

#. module: product_assortment
#: model:ir.model.fields,field_description:product_assortment.field_ir_filters__black_list_product_domain
#: model_terms:ir.ui.view,arch_db:product_assortment.product_assortment_view_form
msgid "Restricted product domain"
msgstr ""

#. module: product_assortment
#: model:ir.model.fields,field_description:product_assortment.field_ir_filters__blacklist_product_ids
msgid "Restricted products"
msgstr ""

#. module: product_assortment
#: model:ir.model.fields,help:product_assortment.field_ir_filters__partner_ids
msgid "This field allow to relate a partner to a domain of products"
msgstr "Aquest camp permet relacionar un soci amb un domini de productes"

#~ msgid "<span class=\"o_stat_text\">Products</span>"
#~ msgstr "<span class=\"o_stat_text\">Productes</span>"

#~ msgid "Blacklist Product"
#~ msgstr "Producte de la llista negra"

#~ msgid "Display Name"
#~ msgstr "Nom de visualització"

#~ msgid "ID"
#~ msgstr "ID"

#~ msgid "Last Modified on"
#~ msgstr "Última modificació el"

#~ msgid "Whitelist Product"
#~ msgstr "Producte de la llista blanca"

#~ msgid "Model"
#~ msgstr "Model"
Loading