TIP: You can type at any time to perform a new search.
Advanced filters
web_advanced_filters · OCA/web
Security findings
Migration considerations
- Imports from the old `openerp.osv.orm` namespace: renamed to `odoo` since Odoo 10.0. migration-openerp-import · source
- Imports from the old `openerp.osv` namespace: renamed to `odoo` since Odoo 10.0. migration-openerp-import · source
- Imports from the old `openerp.tools.safe_eval` namespace: renamed to `odoo` since Odoo 10.0. migration-openerp-import · source
- Imports from the old `openerp.osv.orm` namespace: renamed to `odoo` since Odoo 10.0. migration-openerp-import · source
- Imports from the old `openerp.osv` namespace: renamed to `odoo` since Odoo 10.0. migration-openerp-import · source
- Imports from the old `openerp.tools.safe_eval` namespace: renamed to `odoo` since Odoo 10.0. migration-openerp-import · source
- Imports from the old `openerp.tools.translate` namespace: renamed to `odoo` since Odoo 10.0. migration-openerp-import · source
- For a target of Odoo 10.0+: use the `__manifest__.py` manifest name instead of `__openerp__.py`. The filename alone does not establish module age or compatibility. migration-openerp-manifest · source
IrFilters— Class 'IrFilters' declares `_columns` as a plain dict: old-style field/default declarations, replace with `fields.X(...)` class attributes and `default=`. migration-old-style-fields · sourceIrFilters— Class 'IrFilters' declares `_defaults` as a plain dict: old-style field/default declarations, replace with `fields.X(...)` class attributes and `default=`. migration-old-style-fields · sourceIrFiltersCombineWithExisting— Class 'IrFiltersCombineWithExisting' declares `_columns` as a plain dict: old-style field/default declarations, replace with `fields.X(...)` class attributes and `default=`. migration-old-style-fields · sourceir_filters_view_form— For a target of Odoo 17.0+: view 'ir_filters_view_form' uses `attrs=`/`states=`, which are no longer supported. Convert modifiers to direct Python boolean expressions in `invisible`/`readonly`/`required`; preserve the original AND/OR logic. migration-view-attrs-states · source- Raw `cr.execute()` INSERT/UPDATE/DELETE bypasses the ORM (no compute/constrains/tracking/mail): `delete from ir_model_data where module='web_advanced_filters'` - re-check the table/column names still match after upgrading. migration-raw-sql-write · source
- Raw `cr.execute()` INSERT/UPDATE/DELETE bypasses the ORM (no compute/constrains/tracking/mail): `update ir_model_data set module='web_advanced_filters' where module='advanced_filters'` - re-check the table/column names still match after upgrading. migration-raw-sql-write · source
- Raw `cr.execute()` INSERT/UPDATE/DELETE bypasses the ORM (no compute/constrains/tracking/mail): `update ir_module_module set state='to remove' where name='advanced_filters' and state not in ('uninstalled', 'to remove')` - re-check the table/column names still match after upgrading. migration-raw-sql-write · source
- Raw `cr.execute()` INSERT/UPDATE/DELETE bypasses the ORM (no compute/constrains/tracking/mail): `delete from ir_filters where not active and id in %s and not exists (select right_filter_id from ir_filters_union_rel where left_filter_id=id) and not exists (select right_filter_id from ir_filters_complement_rel where left_filter_id=id)` - re-check the table/column names still match after upgrading. migration-raw-sql-write · source
Migration review checklist, not a compatibility verdict. No target version is selected: apply version-specific advice only when migrating to that version or later.
- Repository
- OCA/web · module folder · Try on Runboat
- Module version
- 1.0
- Category
- Tools
- Folder size
- 0.47 MB
- License
- AGPL-3
- Application
- No
- Auto-installable
- No
- Website
- None
- Last tracking update
- 2026-08-07 06:56:10
- Authors
- Odoo Community Association (OCA), Therp BV
- Maintainers
- Odoo Community Association (OCA), Therp BV
- Committers
- Alexandre Fayolle, Holger Brunn, Stéphane Bidoul (ACSONE), OCA Transbot, Rudolf Schnapka, Stefan Rijnhart (Therp)
- Odoo dependencies
- Python dependencies
- None
- System dependencies
- None
- Required by
- None
- Description
Introduction ------------ This addon allows users to apply set operations on filters: Remove or add certain ids from/to a selection, but also to remove or add another filter's outcome from/to a filter. This can be stacked, so the filter domain can be arbitrarily complicated. The math is hidden from the user as far as possible, in the hope it's still user friendly. Usage ----- After this addon is installed, every list view shows a new menu 'Advanced filters'. Here the set operations can be applied as necessary. Caution ------- Deinstalling this module will leave you with filters with empty domains. Use this query before uninstalling to avoid that: ``alter table ir_filters rename domain_this to domain``
Code Analysis
Views touched (3)
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
form_ir_filters_combine_with_existing |
ir.filters.combine.with.existing | form | New | |
form_ir_filters_save_new |
ir.filters | form | New | |
ir_filters_view_form |
ir.filters | form | Inherits base.ir_filters_view_form |
HTTP endpoints (0)
No HTTP endpoints found for this module.
Models touched (2)
New fields (0)
No new fields.
Public methods (4)-
button_freeze(self, cr, uid, ids, context=None)evaluate the filter and write a fixed [('id', 'in', [])] domain -
button_save(self, cr, uid, ids, context=None) -
button_test(self, cr, uid, ids, context=None) -
create(self, cr, uid, values, context=None)
New fields (0)
No new fields.
Public methods (1)-
button_save(self, cr, uid, ids, context=None)