Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
19064bf
[REF] rename modules based on attribute_set and pim
clementmbr May 18, 2020
dac02a6
[FIX] when including native field not present in form
clementmbr May 18, 2020
4a42000
[REF] rename 'attribute_nature' field into 'nature'
clementmbr May 18, 2020
ec4032b
[IMP] Add REAME to the 4 modules
clementmbr May 19, 2020
76e0733
[FIX] propagate readonly attribute for included native attributes
clementmbr May 19, 2020
f823e64
[IMP] base.user_admin in Attribute Set and PIM Manager group
clementmbr May 27, 2020
f251052
[IMP] remove class in super() and other misc improvements
clementmbr May 27, 2020
7a9f7b4
[IMP] remove attribute_set access rights for group_no_one
clementmbr May 27, 2020
de6f7ac
[REF] remove @api.multi
clementmbr Jun 3, 2020
5129494
[IMP] Add test write on partner's attributes
clementmbr Jun 3, 2020
ab5f2a8
[IMP] Rename "Advanced Attribute Set settings" group
clementmbr Jun 3, 2020
db0e829
[13.0] Set modules to installable False
rousseldenis Jun 12, 2020
f7ae25e
[13.0] Set modules version to 13
rousseldenis Jun 12, 2020
eda1dbc
[13.0][MIG] attribute_set
rousseldenis Jun 12, 2020
bc960b1
[13.0][FIX] attribute_set: Reintroduce deprecated functions
rousseldenis Jun 12, 2020
121a1ca
[FIX] required properties in fields_view_get must be linked to relate…
Jun 18, 2020
16bac14
[MIG] make all modules uninstallable
Feb 18, 2021
0709dfa
[MIG] update pre-commit conf from copier
Feb 18, 2021
334e973
[IMP] attribute_set: black, isort, prettier
Feb 22, 2021
c142898
[IMP] Add attribute widget field
qgroulard Nov 12, 2020
7cb4fe9
[MIG] attribute_set: Migration to 15.0
JasminSForgeFlow Aug 29, 2022
7f1e5d0
[FIX] attribute_set: fix create options w/ rel model
kevinkhao Dec 2, 2022
8ee7a85
[16.0][MIG] - attribute_set
sbejaoui Feb 28, 2023
3be5916
[IMP] attribute_set: set ctx for native fields
sbejaoui Feb 28, 2023
3afbabe
[FIX] attribute_set: fix menu position
sbejaoui Mar 2, 2023
976ebeb
[IMP] attribute_set: add group menu item
sbejaoui Mar 3, 2023
11f5fa8
[IMP] attribute_set: misc improvement
sbejaoui Aug 15, 2023
d25eb61
[IMP] attibute_set: Use get_view() to insert attribute to retrieve le…
rousseldenis Oct 23, 2023
1379642
[FIX] attribute_set: Hide attribute.option's value_ref field
rousseldenis Oct 23, 2023
60d1ae2
[FIX] attribute_set: Force load of attributes
lmignon Aug 28, 2023
5e1b7a9
[FIX] avoid ir.model accessError
sbejaoui Oct 2, 2023
7f53cb2
[FIX] attribute_set: Set model name on attribute.set
rousseldenis Oct 23, 2023
107d0d0
[FIX] attribute_set: Build attribute eview with sudo
rousseldenis Oct 23, 2023
a8afc0b
Added translation using Weblate (Spanish)
Ivorra78 Nov 26, 2023
13150b2
Translated using Weblate (Spanish)
Ivorra78 Nov 26, 2023
061ac3f
[IMP] attribute_set: pre-commit auto fixes
damcar Dec 4, 2023
32ce252
[MIG] attribute_set: Migration to 17.0
damcar Dec 5, 2023
3857e29
[IMP] lint
dnplkndll Feb 5, 2025
9f5581d
[IMP] attribute_set: pre-commit auto fixes
dnplkndll Feb 5, 2025
6cf1c56
[MIG] attribute_set: Migration to 18.0
dnplkndll Feb 5, 2025
49043dd
[MIG] attribute_set: Migration to 19.0
Nov 16, 2025
0c462f0
attribute_set: [FIX] Update attribute view visibility and logic
Nov 16, 2025
474ea47
[REF] attribute_set: remove odoo-test-helper
Nov 16, 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
151 changes: 151 additions & 0 deletions attribute_set/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,151 @@
.. image:: https://odoo-community.org/readme-banner-image
:target: https://odoo-community.org/get-involved?utm_source=readme
:alt: Odoo Community Association

=============
Attribute Set
=============

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

.. |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/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%2Fodoo--pim-lightgray.png?logo=github
:target: https://github.com/OCA/odoo-pim/tree/19.0/attribute_set
:alt: OCA/odoo-pim
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/odoo-pim-19-0/odoo-pim-19-0-attribute_set
: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/odoo-pim&target_branch=19.0
:alt: Try me on Runboat

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

This module allows the user to create Attributes to any model. This is a
basic module in the way that **it does not provide views to display
these new Attributes.**

Each Attribute created will be related to an **existing field** (in case
of a *"native"* Attribute) or to a newly **created field** (in case of a
*"custom"* Attribute).

A *"custom"* Attribute can be of any type : Char, Text, Boolean, Date,
Binary... but also Many2one or Many2many.

In case of m2o or m2m, these attributes can be related to **custom
options** created for the Attribute, or to **existing Odoo objects**
from other models.

Last but not least an Attribute can be **serialized** using the Odoo SA
module
`base_sparse_field <https://github.com/odoo/odoo/tree/16.0/addons/base_sparse_field>`__
. It means that all the serialized attributes will be stored in a single
"JSON serialization field" and will not create new columns in the
database (and better, it will not create new SQL tables in case of
Many2many Attributes), **increasing significantly the requests speed**
when dealing with thousands of Attributes.

**Table of contents**

.. contents::
:local:

Usage
=====

Even if this module does not provide views to display some model's
Attributes, it provides however a Technical menu in *Settings >
Technical > Database Structure > Attributes* to **create new
Attributes**.

An Attribute is related to both an Attribute Group and an Attribute Set
:

- The **Attribute Set** is related to the *"model's category"*, i.e. all
the model's instances which will display the same Attributes.

- The **Attribute Group** is related to the *"attribute's category"*.
All the attributes from the same Attribute Set and Attribute Group
will be displayed under the same field's Group in the model's view.

🔎 In order to create a custom Attribute many2one or many2many
related to **other Odoo model**, you need to activate the Technical
Setting **"Advanced Attribute Set settings"**
(``group_advanced_attribute_set``).

--------------

If you want to create a module displaying some specific model's
Attributes :

1. Your model must **\_inherit the mixin**
``"attribute.set.owner.mixin"``
2. You need to **add a placeholder**
``<separator name="attributes_placeholder" />`` at the desired
location in the model's form view.
3. Finally, **add a context**
``{"include_native_attribute_view_ref": True}`` on the action leading
to this form view if the model's view needs to display attributes
related to native fields together with the other "custom" attributes.

Known issues / Roadmap
======================



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

Bugs are tracked on `GitHub Issues <https://github.com/OCA/odoo-pim/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/odoo-pim/issues/new?body=module:%20attribute_set%0Aversion:%2019.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
-------

* Akretion

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

- Sébastien BEAU <[email protected]>
- Clément Mombereau <[email protected]>
- Benoît Guillot <[email protected]>
- Akretion Raphaël VALYI <[email protected]>
- David Dufresne <[email protected]>
- Denis Roussel <[email protected]>
- Mohamed Alkobrosli <[email protected]>

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/odoo-pim <https://github.com/OCA/odoo-pim/tree/19.0/attribute_set>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
3 changes: 3 additions & 0 deletions attribute_set/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
from . import models
from . import wizard
from . import utils
21 changes: 21 additions & 0 deletions attribute_set/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
{
"name": "Attribute Set",
"version": "19.0.1.0.0",
"category": "Generic Modules/Others",
"license": "AGPL-3",
"author": "Akretion,Odoo Community Association (OCA)",
"website": "https://github.com/OCA/odoo-pim",
"depends": ["base", "base_sparse_field"],
"data": [
"security/ir.model.access.csv",
"security/attribute_security.xml",
"views/menu_view.xml",
"views/attribute_attribute_view.xml",
"views/attribute_group_view.xml",
"views/attribute_option_view.xml",
"views/attribute_set_view.xml",
"wizard/attribute_option_wizard_view.xml",
],
"external_dependencies": {"python": ["unidecode"]},
"installable": True,
}
Loading