Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
d5641da
[ADD] web_filter_header_button: New module
chienandalu Mar 12, 2024
22420d9
[IMP] web_filter_header_button: show groupBy filters
chienandalu May 24, 2024
6784db9
[IMP] web_filter_header_button: put buttons in their own row
chienandalu May 30, 2024
6b69be4
[FIX] web_filter_header_button: custom view compatibility
chienandalu Jun 18, 2024
b5bbfd7
[IMP] web_filter_header_button: pre-commit auto fixes
chienandalu Mar 24, 2025
2325e22
[MIG] web_filter_header_button: Migration to 18.0
chienandalu Mar 26, 2025
6af3779
[FIX] web_filter_header_button: Exclude field-type filters to avoid e…
May 2, 2025
375c0a5
[UPD] Update web_filter_header_button.pot
May 2, 2025
0010b80
[BOT] post-merge updates
OCA-git-bot May 2, 2025
13fbc12
Added translation using Weblate (Italian)
mymage May 3, 2025
9a86b7d
[MIG] web_filter_header_button: Migration to 19.0
BhaveshHeliconia Oct 17, 2025
6f325ab
[ADD] web_widget_popover
ivantodorovich May 22, 2025
eba8ab5
[IMP] web_widget_popover: pre-commit auto fixes
yankinmax Oct 20, 2025
987ccf6
[18.0][MIG] web_widget_popover: Migration to 18.0
yankinmax Oct 20, 2025
db0e77b
[BOT] post-merge updates
OCA-git-bot Sep 17, 2026
63b1ab1
Translated using Weblate
oca-transbot Sep 17, 2026
6058293
[MIG] web_widget_popover: Migration to 19.0
ivantodorovich Sep 17, 2026
308f8b9
[IMP] web_widget_popover: fit the list column to the icon
ivantodorovich Sep 17, 2026
06ea0fd
Merge PR #3329 into 19.0
OCA-git-bot Oct 13, 2026
89ed697
[UPD] Update web_filter_header_button.pot
Oct 13, 2026
38f20be
[BOT] post-merge updates
OCA-git-bot Oct 13, 2026
1547412
Merge PR #3671 into 19.0
OCA-git-bot Oct 14, 2026
2451c15
[UPD] Update web_widget_popover.pot
Oct 14, 2026
521be37
[BOT] post-merge updates
OCA-git-bot Oct 14, 2026
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
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ addon | version | maintainers | summary
[web_editor_class_selector](web_editor_class_selector/) | 19.0.1.0.0 | <a href='https://github.com/carlos-lopez-tecnativa'><img src='https://github.com/carlos-lopez-tecnativa.png' width='32' height='32' style='border-radius:50%;' alt='carlos-lopez-tecnativa'/></a> | Web editor class selector
[web_environment_ribbon](web_environment_ribbon/) | 19.0.1.0.0 | | Web Environment Ribbon
[web_favicon](web_favicon/) | 19.0.1.0.1 | | Allows to set a custom shortcut icon (aka favicon)
[web_filter_header_button](web_filter_header_button/) | 19.0.1.0.0 | | Show selected filters as buttons in the control panel
[web_form_banner](web_form_banner/) | 19.0.1.0.0 | <a href='https://github.com/yostashiro'><img src='https://github.com/yostashiro.png' width='32' height='32' style='border-radius:50%;' alt='yostashiro'/></a> <a href='https://github.com/aungkokolin1997'><img src='https://github.com/aungkokolin1997.png' width='32' height='32' style='border-radius:50%;' alt='aungkokolin1997'/></a> | Show configurable, rule-based alert banners on backend form views
[web_group_expand](web_group_expand/) | 19.0.1.0.0 | | Group Expand Buttons
[web_ir_actions_act_multi](web_ir_actions_act_multi/) | 19.0.1.0.0 | | Enables triggering of more than one action on ActionManager
Expand All @@ -54,6 +55,7 @@ addon | version | maintainers | summary
[web_widget_dropdown_dynamic](web_widget_dropdown_dynamic/) | 19.0.1.0.0 | | This module adds support for dynamic dropdown widget
[web_widget_numeric_step](web_widget_numeric_step/) | 19.0.1.0.0 | <a href='https://github.com/rafaelbn'><img src='https://github.com/rafaelbn.png' width='32' height='32' style='border-radius:50%;' alt='rafaelbn'/></a> <a href='https://github.com/yajo'><img src='https://github.com/yajo.png' width='32' height='32' style='border-radius:50%;' alt='yajo'/></a> | Web Widget Numeric Step
[web_widget_one2many_tree_line_duplicate](web_widget_one2many_tree_line_duplicate/) | 19.0.1.0.1 | | Web Widget One2many Tree Line Duplicate
[web_widget_popover](web_widget_popover/) | 19.0.1.0.0 | <a href='https://github.com/ivantodorovich'><img src='https://github.com/ivantodorovich.png' width='32' height='32' style='border-radius:50%;' alt='ivantodorovich'/></a> | Render an icon that displays the field content in a popover
[web_widget_product_label_section_and_note_full_label](web_widget_product_label_section_and_note_full_label/) | 19.0.1.0.0 | | Display the full label in the product_label_section_and_note widget.
[web_widget_product_label_section_and_note_name_visibility](web_widget_product_label_section_and_note_name_visibility/) | 19.0.1.0.0 | <a href='https://github.com/carlos-lopez-tecnativa'><img src='https://github.com/carlos-lopez-tecnativa.png' width='32' height='32' style='border-radius:50%;' alt='carlos-lopez-tecnativa'/></a> | Alternate the visibility of the product and description.
[web_widget_section_and_note_text_scrollable](web_widget_section_and_note_text_scrollable/) | 19.0.1.0.0 | <a href='https://github.com/ivantodorovich'><img src='https://github.com/ivantodorovich.png' width='32' height='32' style='border-radius:50%;' alt='ivantodorovich'/></a> | Make the text field of Section and Note widget scrollable
Expand Down
4 changes: 3 additions & 1 deletion setup/_metapackage/pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "odoo-addons-oca-web"
version = "19.0.20261007.1"
version = "19.0.20261014.0"
dependencies = [
"odoo-addon-web_calendar_slot_duration==19.0.*",
"odoo-addon-web_chatter_position==19.0.*",
Expand All @@ -12,6 +12,7 @@ dependencies = [
"odoo-addon-web_editor_class_selector==19.0.*",
"odoo-addon-web_environment_ribbon==19.0.*",
"odoo-addon-web_favicon==19.0.*",
"odoo-addon-web_filter_header_button==19.0.*",
"odoo-addon-web_form_banner==19.0.*",
"odoo-addon-web_group_expand==19.0.*",
"odoo-addon-web_ir_actions_act_multi==19.0.*",
Expand All @@ -35,6 +36,7 @@ dependencies = [
"odoo-addon-web_widget_dropdown_dynamic==19.0.*",
"odoo-addon-web_widget_numeric_step==19.0.*",
"odoo-addon-web_widget_one2many_tree_line_duplicate==19.0.*",
"odoo-addon-web_widget_popover==19.0.*",
"odoo-addon-web_widget_product_label_section_and_note_full_label==19.0.*",
"odoo-addon-web_widget_product_label_section_and_note_name_visibility==19.0.*",
"odoo-addon-web_widget_section_and_note_text_scrollable==19.0.*",
Expand Down
154 changes: 154 additions & 0 deletions web_filter_header_button/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,154 @@
.. image:: https://odoo-community.org/readme-banner-image
:target: https://odoo-community.org/get-involved?utm_source=readme
:alt: Odoo Community Association

=============
Filter Button
=============

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

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

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

This module allows to add some selected filters as buttons in the header
control panel.

**Table of contents**

.. contents::
:local:

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

This developement is aimed to ease the filter access for touch screens
users.

Configuration
=============

To show a filter in the header of the views, it should have the a
``context`` attribute with the key ``shown_in_panel``.

.. code:: xml

<filter
string="My filter"
name="my_filter"
domain="[('active', '!=', False)]"
context="{'shown_in_panel': True}"
>

This will show the filter in the header with its name. You can customize
the button adding an icon or with a custom name passing an object to
that key:

.. code:: python

{'shown_in_panel': {'icon': 'fa-thumbs-up', 'name': 'Ok'}}

You might be interested in leaving just the icon. In that case, set an
empty string on the ``name`` property:

.. code:: python

{'shown_in_panel': {'icon': 'fa-thumbs-up', 'name': ''}}

You could also want to add a hotkey. In such case add the ``hotkey``
property:

.. code:: python

{'shown_in_panel': {'icon': 'fa-thumbs-up', 'hotkey': 'F'}}

You can show filter, groups or even favorites.

Usage
=====

In a search view with header filter buttons, you'll see a filter icon
(funnel). Use it to unfold the filters.

There's a demo implementation in ``Apps`` and you can play around
following the *Configure* section.

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

- Group filters by kind
- As we use the ``context`` attribute, the inheritance could be limiting
in some cases. Keep it in mind or use
``base_view_inheritance_extension`` if you want to use proper context
inheritance.
- Another nice to have would be to be able to hide the filters in the
filter list to be able to show them just in the header, although
there's not a straigh forward way to do it and it could lead to side
effects.

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_filter_header_button%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
-------

* Tecnativa

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

- `Tecnativa <https://tecnativa.com>`__

- David Vidal

- `Heliconia Solutions Pvt. Ltd. <https://www.heliconia.io>`__

- Bhavesh Heliconia

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/19.0/web_filter_header_button>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
Empty file.
19 changes: 19 additions & 0 deletions web_filter_header_button/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# Copyright 2024 Tecnativa - David Vidal
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
{
"name": "Filter Button",
"version": "19.0.1.0.0",
"summary": "Show selected filters as buttons in the control panel",
"author": "Tecnativa, Odoo Community Association (OCA)",
"license": "AGPL-3",
"category": "Server UX",
"website": "https://github.com/OCA/web",
"depends": ["web"],
"data": [],
"demo": [
"demo/ir_module_module_view.xml",
],
"assets": {
"web.assets_backend": ["web_filter_header_button/static/src/**/*"],
},
}
24 changes: 24 additions & 0 deletions web_filter_header_button/demo/ir_module_module_view.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<record id="view_module_filter" model="ir.ui.view">
<field name="model">ir.module.module</field>
<field name="inherit_id" ref="base.view_module_filter" />
<field name="arch" type="xml">
<filter name="installed" position="attributes">
<attribute
name="context"
>{'shown_in_panel': {'icon': 'fa-toggle-on', 'hotkey': 'i'}}</attribute>
</filter>
<filter name="not_installed" position="attributes">
<attribute
name="context"
>{'shown_in_panel': {'icon': 'fa-toggle-off', 'hotkey': 'u'}}</attribute>
</filter>
<filter name="state" position="attributes">
<attribute
name="context"
>{'group_by':'state', 'shown_in_panel': {'icon': 'fa-th-list', 'hotkey': 's'}}</attribute>
</filter>
</field>
</record>
</odoo>
14 changes: 14 additions & 0 deletions web_filter_header_button/i18n/it.po
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 18.0\n"
"Report-Msgid-Bugs-To: \n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: it\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"
1 change: 1 addition & 0 deletions web_filter_header_button/i18n/web_filter_header_button.pot
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# No translations.
3 changes: 3 additions & 0 deletions web_filter_header_button/pyproject.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[build-system]
requires = ["whool"]
build-backend = "whool.buildapi"
32 changes: 32 additions & 0 deletions web_filter_header_button/readme/CONFIGURE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
To show a filter in the header of the views, it should have the a `context` attribute with the key `shown_in_panel`.

```xml
<filter
string="My filter"
name="my_filter"
domain="[('active', '!=', False)]"
context="{'shown_in_panel': True}"
>
```

This will show the filter in the header with its name. You can customize the button
adding an icon or with a custom name passing an object to that key:

```python
{'shown_in_panel': {'icon': 'fa-thumbs-up', 'name': 'Ok'}}
```

You might be interested in leaving just the icon. In that case, set an empty string on
the `name` property:

```python
{'shown_in_panel': {'icon': 'fa-thumbs-up', 'name': ''}}
```

You could also want to add a hotkey. In such case add the `hotkey` property:

```python
{'shown_in_panel': {'icon': 'fa-thumbs-up', 'hotkey': 'F'}}
```

You can show filter, groups or even favorites.
1 change: 1 addition & 0 deletions web_filter_header_button/readme/CONTEXT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
This developement is aimed to ease the filter access for touch screens users.
5 changes: 5 additions & 0 deletions web_filter_header_button/readme/CONTRIBUTORS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
- [Tecnativa](https://tecnativa.com)
- David Vidal

- [Heliconia Solutions Pvt. Ltd.](https://www.heliconia.io)
- Bhavesh Heliconia
1 change: 1 addition & 0 deletions web_filter_header_button/readme/DESCRIPTION.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
This module allows to add some selected filters as buttons in the header control panel.
5 changes: 5 additions & 0 deletions web_filter_header_button/readme/ROADMAP.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
- Group filters by kind
- As we use the `context` attribute, the inheritance could be limiting in some cases. Keep it in mind or use `base_view_inheritance_extension` if you want to use proper context inheritance.
- Another nice to have would be to be able to hide the filters in the filter list to be
able to show them just in the header, although there's not a straigh forward way to
do it and it could lead to side effects.
5 changes: 5 additions & 0 deletions web_filter_header_button/readme/USAGE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
In a search view with header filter buttons, you'll see a filter icon (funnel). Use it
to unfold the filters.

There's a demo implementation in `Apps` and you can play around following the *Configure*
section.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Loading