===================
Web Custom Modifier
===================

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

.. |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
    :target: http://www.gnu.org/licenses/lgpl-3.0-standalone.html
    :alt: License: LGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fweb-lightgray.png?logo=github
    :target: https://github.com/OCA/web/tree/14.0/web_custom_modifier
    :alt: OCA/web
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
    :target: https://translation.odoo-community.org/projects/web-14-0/web-14-0-web_custom_modifier
    :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/web&target_branch=14.0
    :alt: Try me on Runboat

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

This module allows to customize modifiers on form and tree view nodes.

For example, it allows to make a field readonly, invisible or required.

**Table of contents**

.. contents::
   :local:

Use Cases / Context
===================

In Odoo, when you want to customize some fields or views such as hiding
a field, changing the number of line of a list view or make a field
mandatory, you need to have technical knowledge.

This module allows functional people to apply some customizations
without having to code.

Usage
=====

Access to the module
--------------------

As system administrator, I go to *Settings / Technical / User Interface
/ Custom Modifiers*. |Custom Modifier Menu|

Requiered Field
---------------

I create a new custom modifier. |New Modifier|

The modifier is configured to make the field ``default_code`` of a
product required.

After refreshing my screen, I go to the form view of a product.

I notice that the field ``default_code`` is required. |Product form|

Hide selection item
-------------------

The module allows to hide an item (option) of a selection field. |Hide
Selction Item Modifier|

The above example hides the type of address ``Other``. |Contact Form
Witout Selection Item|

Beware that if the hidden option is already selected on a record, it
will look as it was never set. |Contact Form Type not Selected|

Therefore, this feature should only be used to hide options that are
never used.

Force Save
----------

A new option ``Force Save`` is available. |Force Save Modifier|

This modifier may be used along with the ``Readonly`` modifier so that
the field value is saved to the server.

Custom Widget
-------------

It is possible to customize the widget used for a given field. |Custom
Widget| |Task Form with Custom Widget|

Number of lines per page (List Views)
-------------------------------------

A new modifier is added to set the number of lines per page in list
view.

In the following example, we set a limit of 20 sale order lines per page
on a sale order form view.

|Number of lines per Page Modifier| |Sale Order with Limited SOL per
Page|

Advanced Usage
--------------

In the field ``Type``, I can select ``Xpath``. This allows to set a
modifier for a specific view node, such as a button. |Button Modifier|
The example above hides the a button in the form view of a product.

Excluded Groups
---------------

A new field ``Excluded Groups`` is available. |Excluded Groups|

If at least one group of users is selected, the modifier is not applied
for users that are member of any of these groups.

This is useful when rendering an element readonly or invisible only for
a subset of users.

Optional
--------

Since the version **14.0.2.0.1**, it is possible to customize the
optional of a given field on a tree view.

The ``Optional`` modifier takes 2 possible keys:

-  show : To make the field displayed by default in the tree view.
-  hide : To make the field hidden by default in the 3 dots of a tree
   view.

.. important::

   The field must be present by default on the tree view and displayed.

Example:

As system administrator, I go to
``Settings / Technical / User Interface / Custom Modifiers``.

I add the field name (labelled as ``Number`` in Quotation List View) of
the model ``sale.order``.

I select the modifier ``Optional`` and then set the key ``show``.
|Optional Modifier|

I go to the Quotation List View and notice that the field is now shown
by default and that it is possible to hide it. |Optional Modifier
Applied|

.. |Custom Modifier Menu| image:: https://raw.githubusercontent.com/OCA/web/14.0/web_custom_modifier/static/description/custom_modifier_menu.png
.. |New Modifier| image:: https://raw.githubusercontent.com/OCA/web/14.0/web_custom_modifier/static/description/new_custom_modifier.png
.. |Product form| image:: https://raw.githubusercontent.com/OCA/web/14.0/web_custom_modifier/static/description/product_form.png
.. |Hide Selction Item Modifier| image:: https://raw.githubusercontent.com/OCA/web/14.0/web_custom_modifier/static/description/hide_selection_item_modifier.png
.. |Contact Form Witout Selection Item| image:: https://raw.githubusercontent.com/OCA/web/14.0/web_custom_modifier/static/description/contact_form_without_selection_item.png
.. |Contact Form Type not Selected| image:: https://raw.githubusercontent.com/OCA/web/14.0/web_custom_modifier/static/description/contact_form_type_not_selected.png
.. |Force Save Modifier| image:: https://raw.githubusercontent.com/OCA/web/14.0/web_custom_modifier/static/description/force_save_modifier.png
.. |Custom Widget| image:: https://raw.githubusercontent.com/OCA/web/14.0/web_custom_modifier/static/description/custom_widget.png
.. |Task Form with Custom Widget| image:: https://raw.githubusercontent.com/OCA/web/14.0/web_custom_modifier/static/description/task_form_with_custom_widget.png
.. |Number of lines per Page Modifier| image:: https://raw.githubusercontent.com/OCA/web/14.0/web_custom_modifier/static/description/number_lines_per_page_modifier.png
.. |Sale Order with Limited SOL per Page| image:: https://raw.githubusercontent.com/OCA/web/14.0/web_custom_modifier/static/description/sale_order_with_limited_sol_per_page.png
.. |Button Modifier| image:: https://raw.githubusercontent.com/OCA/web/14.0/web_custom_modifier/static/description/button_modifier.png
.. |Excluded Groups| image:: https://raw.githubusercontent.com/OCA/web/14.0/web_custom_modifier/static/description/excluded_groups.png
.. |Optional Modifier| image:: https://raw.githubusercontent.com/OCA/web/14.0/web_custom_modifier/static/description/optional_modifier.png
.. |Optional Modifier Applied| image:: https://raw.githubusercontent.com/OCA/web/14.0/web_custom_modifier/static/description/optional_modifier_applied.png

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

-  Set a default value on a field for all users.

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

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

* Numigi

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/web <https://github.com/OCA/web/tree/14.0/web_custom_modifier>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
