===============
Product Profile
===============
.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
.. |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
: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/12.0/product_profile
: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-12-0/product-attribute-12-0-product_profile
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
:target: https://runbot.odoo-community.org/runbot/135/12.0
:alt: Try me on Runbot
|badge1| |badge2| |badge3| |badge4| |badge5|
This module provides easier products configuration (in one click).
It allows to configure a product template with only one field.
.. figure:: https://raw.githubusercontent.com/OCA/product-attribute/12.0/product_profile/static/img/field.png
:alt: profile field on product
:width: 600 px
**Main use case**: a lot of modules are installed (mrp, purchase, sale, pos)
and products configuration becomes harder for end users: too many fields to take care of.
You are concerned that at any time a product might be not configured correctly: this module is your friend.
Thanks to this module, a lot of complexity becomes hidden (default behavior) to the end user and usability is optimal.
It eases as well the data migration by only specifying the profile field instead of all fields which depend on it.
Note: This module is meant to be used by skilled people in database fields creation within the ERP framework.
Additional feature: a default value can be attached to a profile (see § Configuration, part 3)
**Table of contents**
.. contents::
:local:
Configuration
=============
1. Create your own profile here:
Sales > Configuration > Product > Product Profiles
.. figure:: https://raw.githubusercontent.com/OCA/product-attribute/12.0/product_profile/static/img/list.png
:alt: profile list
:width: 600 px
2. Extend "product.profile" model to add fields from product.template, either in normal mode or default mode (see note section below). These fields should be identical to their original fields **(especially "required" field attribute)**.
.. code-block:: python
class ProductProfile(models.Model):
""" Require dependency on sale, purchase and point_of_sale modules
"""
_inherit = 'product.profile'
def _get_types(self):
return [('product', 'Stockable Product'),
('consu', 'Consumable'),
('service', 'Service')]
sale_ok = fields.Boolean(
string='Can be Sold',
help="Specify if the product can be selected in a sales order line.")
purchase_ok = fields.Boolean(
string='Can be Purchased')
available_in_pos = fields.Boolean()
3. Insert data (xml or csv) and define values for each field defined above
for each configuration scenario
Note :
You might want to declare profile fields as defaults. To do this, just prefix the field with "profile_default".
.. code-block:: python
class ProductProfile(models.Model):
profile_default_categ_id = fields.Many2one(
'product.category',
string='Default category')
profile_default_route_ids = fields.Many2many(
'stock.location.route',
string=u'Default Routes',
domain="[('product_selectable', '=', True)]",
help="Depending on the modules installed, this will allow "
"you to define the route of the product: "
"whether it will be bought, manufactured, MTO/MTS,...")
Default fields only influence the records the first time they are set.
- if the profile is modified, changes are not propagated to all the records that have this profile
- if the record previously had another profile, changing profile will not influence default values
Usage
=====
Assign a value to the profile field in the product template form.
Then, all fields which depend on this profile will be set to the right value at once.
If you deselect the profile value, all these fields keep the same value and you can change them manually
(back to standard behavior).
Install **Product Profile Example** module to see a use case in action.
Profiles are also defined as search filter and group.
Known issues / Roadmap
======================
- Streamlined behaviour of default/nondefault fields in every situation
- More robust/less error-prone functionality for required fields or fields implicated in workflows
- More flexible/configurable behaviour for profile fields (instead of only default/nondefault fields)
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 smashing it by providing a detailed and welcomed
`feedback <https://github.com/OCA/product-attribute/issues/new?body=module:%20product_profile%0Aversion:%2012.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
~~~~~~~~~~~~
* David BEAL <david.beal@akretion.com>
* Sébastien BEAU <sebastien.beau@akretion.com>
* Abdessamad HILALI <abdessamad.hilali@akretion.com>
* Kevin Khao <kevin.khao@akretion.com>
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.
.. |maintainer-bealdav| image:: https://github.com/bealdav.png?size=40px
:target: https://github.com/bealdav
:alt: bealdav
.. |maintainer-sebastienbeau| image:: https://github.com/sebastienbeau.png?size=40px
:target: https://github.com/sebastienbeau
:alt: sebastienbeau
.. |maintainer-kevinkhao| image:: https://github.com/kevinkhao.png?size=40px
:target: https://github.com/kevinkhao
:alt: kevinkhao
Current `maintainers <https://odoo-community.org/page/maintainer-role>`__:
|maintainer-bealdav| |maintainer-sebastienbeau| |maintainer-kevinkhao|
This module is part of the `OCA/product-attribute <https://github.com/OCA/product-attribute/tree/12.0/product_profile>`_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
Raw data
{
"_id": null,
"home_page": "https://github.com/oca/product-attribute",
"name": "odoo12-addon-product-profile",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.5",
"maintainer_email": "",
"keywords": "",
"author": "Akretion, Odoo Community Association (OCA)",
"author_email": "support@odoo-community.org",
"download_url": "",
"platform": "",
"description": "===============\nProduct Profile\n===============\n\n.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n !! This file is generated by oca-gen-addon-readme !!\n !! changes will be overwritten. !!\n !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n\n.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png\n :target: https://odoo-community.org/page/development-status\n :alt: Beta\n.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png\n :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html\n :alt: License: AGPL-3\n.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fproduct--attribute-lightgray.png?logo=github\n :target: https://github.com/OCA/product-attribute/tree/12.0/product_profile\n :alt: OCA/product-attribute\n.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png\n :target: https://translation.odoo-community.org/projects/product-attribute-12-0/product-attribute-12-0-product_profile\n :alt: Translate me on Weblate\n.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png\n :target: https://runbot.odoo-community.org/runbot/135/12.0\n :alt: Try me on Runbot\n\n|badge1| |badge2| |badge3| |badge4| |badge5| \n\nThis module provides easier products configuration (in one click).\nIt allows to configure a product template with only one field.\n\n .. figure:: https://raw.githubusercontent.com/OCA/product-attribute/12.0/product_profile/static/img/field.png\n :alt: profile field on product\n :width: 600 px\n\n**Main use case**: a lot of modules are installed (mrp, purchase, sale, pos)\nand products configuration becomes harder for end users: too many fields to take care of.\n\nYou are concerned that at any time a product might be not configured correctly: this module is your friend.\n\nThanks to this module, a lot of complexity becomes hidden (default behavior) to the end user and usability is optimal.\n\nIt eases as well the data migration by only specifying the profile field instead of all fields which depend on it.\n\nNote: This module is meant to be used by skilled people in database fields creation within the ERP framework.\n\nAdditional feature: a default value can be attached to a profile (see \u00a7 Configuration, part 3)\n\n**Table of contents**\n\n.. contents::\n :local:\n\nConfiguration\n=============\n\n1. Create your own profile here:\n Sales > Configuration > Product > Product Profiles\n\n .. figure:: https://raw.githubusercontent.com/OCA/product-attribute/12.0/product_profile/static/img/list.png\n :alt: profile list\n :width: 600 px\n\n2. Extend \"product.profile\" model to add fields from product.template, either in normal mode or default mode (see note section below). These fields should be identical to their original fields **(especially \"required\" field attribute)**.\n\n .. code-block:: python\n\n class ProductProfile(models.Model):\n \"\"\" Require dependency on sale, purchase and point_of_sale modules\n \"\"\"\n\n _inherit = 'product.profile'\n\n def _get_types(self):\n return [('product', 'Stockable Product'),\n ('consu', 'Consumable'),\n ('service', 'Service')]\n\n sale_ok = fields.Boolean(\n string='Can be Sold',\n help=\"Specify if the product can be selected in a sales order line.\")\n purchase_ok = fields.Boolean(\n string='Can be Purchased')\n available_in_pos = fields.Boolean()\n\n3. Insert data (xml or csv) and define values for each field defined above\n for each configuration scenario\n\nNote :\nYou might want to declare profile fields as defaults. To do this, just prefix the field with \"profile_default\".\n\n .. code-block:: python\n\n class ProductProfile(models.Model):\n profile_default_categ_id = fields.Many2one(\n 'product.category',\n string='Default category')\n profile_default_route_ids = fields.Many2many(\n 'stock.location.route',\n string=u'Default Routes',\n domain=\"[('product_selectable', '=', True)]\",\n help=\"Depending on the modules installed, this will allow \"\n \"you to define the route of the product: \"\n \"whether it will be bought, manufactured, MTO/MTS,...\")\n\nDefault fields only influence the records the first time they are set.\n- if the profile is modified, changes are not propagated to all the records that have this profile\n- if the record previously had another profile, changing profile will not influence default values\n\nUsage\n=====\n\nAssign a value to the profile field in the product template form.\nThen, all fields which depend on this profile will be set to the right value at once.\n\nIf you deselect the profile value, all these fields keep the same value and you can change them manually \n(back to standard behavior).\n\nInstall **Product Profile Example** module to see a use case in action.\n\nProfiles are also defined as search filter and group.\n\nKnown issues / Roadmap\n======================\n\n- Streamlined behaviour of default/nondefault fields in every situation\n- More robust/less error-prone functionality for required fields or fields implicated in workflows\n- More flexible/configurable behaviour for profile fields (instead of only default/nondefault fields)\n\nBug Tracker\n===========\n\nBugs are tracked on `GitHub Issues <https://github.com/OCA/product-attribute/issues>`_.\nIn case of trouble, please check there if your issue has already been reported.\nIf you spotted it first, help us smashing it by providing a detailed and welcomed\n`feedback <https://github.com/OCA/product-attribute/issues/new?body=module:%20product_profile%0Aversion:%2012.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.\n\nDo not contact contributors directly about support or help with technical issues.\n\nCredits\n=======\n\nAuthors\n~~~~~~~\n\n* Akretion\n\nContributors\n~~~~~~~~~~~~\n\n* David BEAL <david.beal@akretion.com>\n* S\u00e9bastien BEAU <sebastien.beau@akretion.com>\n* Abdessamad HILALI <abdessamad.hilali@akretion.com>\n* Kevin Khao <kevin.khao@akretion.com>\n\nMaintainers\n~~~~~~~~~~~\n\nThis module is maintained by the OCA.\n\n.. image:: https://odoo-community.org/logo.png\n :alt: Odoo Community Association\n :target: https://odoo-community.org\n\nOCA, or the Odoo Community Association, is a nonprofit organization whose\nmission is to support the collaborative development of Odoo features and\npromote its widespread use.\n\n.. |maintainer-bealdav| image:: https://github.com/bealdav.png?size=40px\n :target: https://github.com/bealdav\n :alt: bealdav\n.. |maintainer-sebastienbeau| image:: https://github.com/sebastienbeau.png?size=40px\n :target: https://github.com/sebastienbeau\n :alt: sebastienbeau\n.. |maintainer-kevinkhao| image:: https://github.com/kevinkhao.png?size=40px\n :target: https://github.com/kevinkhao\n :alt: kevinkhao\n\nCurrent `maintainers <https://odoo-community.org/page/maintainer-role>`__:\n\n|maintainer-bealdav| |maintainer-sebastienbeau| |maintainer-kevinkhao| \n\nThis module is part of the `OCA/product-attribute <https://github.com/OCA/product-attribute/tree/12.0/product_profile>`_ project on GitHub.\n\nYou are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.\n\n\n",
"bugtrack_url": null,
"license": "AGPL-3",
"summary": "Allow to configure a product in 1 click",
"version": "12.0.2.0.0",
"project_urls": {
"Homepage": "https://github.com/oca/product-attribute"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "a3779b855ef865fbc4e0fd1a736b54a58f5e486b55447effc9bc6ccbf0460104",
"md5": "d28ec8c0783a5678cc0ab578b7d3fb97",
"sha256": "03c29cb541cb02dab5e9c0bc6c48cf3702a7c3f801dce714bcbc26c8931099af"
},
"downloads": -1,
"filename": "odoo12_addon_product_profile-12.0.2.0.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "d28ec8c0783a5678cc0ab578b7d3fb97",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.5",
"size": 120567,
"upload_time": "2020-07-18T05:41:25",
"upload_time_iso_8601": "2020-07-18T05:41:25.378035Z",
"url": "https://files.pythonhosted.org/packages/a3/77/9b855ef865fbc4e0fd1a736b54a58f5e486b55447effc9bc6ccbf0460104/odoo12_addon_product_profile-12.0.2.0.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2020-07-18 05:41:25",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "oca",
"github_project": "product-attribute",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [],
"lcname": "odoo12-addon-product-profile"
}