From fe7ec7c26a4f462814cb64b13af091f59ef9da4e Mon Sep 17 00:00:00 2001 From: JordiMForgeFlow Date: Wed, 22 Dec 2021 11:09:47 +0100 Subject: [PATCH 01/17] [13.0][ADD] base_custom_filter --- base_custom_filter/README.rst | 109 ++++ base_custom_filter/__init__.py | 2 + base_custom_filter/__manifest__.py | 18 + base_custom_filter/models/__init__.py | 4 + base_custom_filter/models/base.py | 113 +++++ base_custom_filter/models/ir_filters.py | 25 + base_custom_filter/models/ir_filters_group.py | 47 ++ base_custom_filter/readme/CONFIGURE.rst | 15 + base_custom_filter/readme/CONTRIBUTORS.rst | 3 + base_custom_filter/readme/DESCRIPTION.rst | 2 + base_custom_filter/readme/USAGE.rst | 2 + .../security/ir.model.access.csv | 3 + .../static/description/icon.png | Bin 0 -> 9455 bytes .../static/description/index.html | 467 ++++++++++++++++++ .../views/ir_filters_group_views.xml | 86 ++++ base_custom_filter/views/ir_filters_views.xml | 111 +++++ 16 files changed, 1007 insertions(+) create mode 100644 base_custom_filter/README.rst create mode 100644 base_custom_filter/__init__.py create mode 100644 base_custom_filter/__manifest__.py create mode 100644 base_custom_filter/models/__init__.py create mode 100644 base_custom_filter/models/base.py create mode 100644 base_custom_filter/models/ir_filters.py create mode 100644 base_custom_filter/models/ir_filters_group.py create mode 100644 base_custom_filter/readme/CONFIGURE.rst create mode 100644 base_custom_filter/readme/CONTRIBUTORS.rst create mode 100644 base_custom_filter/readme/DESCRIPTION.rst create mode 100644 base_custom_filter/readme/USAGE.rst create mode 100644 base_custom_filter/security/ir.model.access.csv create mode 100644 base_custom_filter/static/description/icon.png create mode 100644 base_custom_filter/static/description/index.html create mode 100644 base_custom_filter/views/ir_filters_group_views.xml create mode 100644 base_custom_filter/views/ir_filters_views.xml diff --git a/base_custom_filter/README.rst b/base_custom_filter/README.rst new file mode 100644 index 0000000000..19f32fa5d2 --- /dev/null +++ b/base_custom_filter/README.rst @@ -0,0 +1,109 @@ +======================================= +Add custom filters in filters dropdowns +======================================= + +.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! 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%2Fserver--ux-lightgray.png?logo=github + :target: https://github.com/OCA/server-ux/tree/13.0/base_search_custom_field_filter + :alt: OCA/server-ux +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/server-ux-13-0/server-ux-13-0-base_search_custom_field_filter + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png + :target: https://runbot.odoo-community.org/runbot/250/13.0 + :alt: Try me on Runbot + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This module allows to define custom filters to be shown under the standard +filters and group by menus of a model's search view. + +**Table of contents** + +.. contents:: + :local: + +Configuration +============= + +#. Go to *Settings > Custom Filters*. +#. Create a new Custom Filter, and define following information: + + * The **Model** for which you are defining the filter. + * The **Type** depending on whether you want to add a filter or a grouping by + by a field. + * The **Domain** that will be applied with the filter. + * The **Group By Field** used to perform the group by. + * The **Group** to have filters under the same separator. + +#. You can reorder records from the list view with the arrow handle. This will + determine the order in which they appear in the filters/groupby menu. +#. A separator is added between each custom filter added. You can create Custom + Filter Groups to group filters that you want to have displayed under the same + separator. + +Usage +===== + +#. Go to the model's menu entry for which you have defined the filter. +#. On the filters and group by dropdowns, you will see the configured filters. + +Bug Tracker +=========== + +Bugs are tracked on `GitHub 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 `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Authors +~~~~~~~ + +* ForgeFlow + +Contributors +~~~~~~~~~~~~ + +* `ForgeFlow S.L. `_: + + * Jordi Masvidal + +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-JordiMForgeFlow| image:: https://github.com/JordiMForgeFlow.png?size=40px + :target: https://github.com/JordiMForgeFlow + :alt: JordiMForgeFlow + +Current `maintainer `__: + +|maintainer-JordiMForgeFlow| + +This module is part of the `OCA/server-ux `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/base_custom_filter/__init__.py b/base_custom_filter/__init__.py new file mode 100644 index 0000000000..c32fd62b78 --- /dev/null +++ b/base_custom_filter/__init__.py @@ -0,0 +1,2 @@ +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). +from . import models diff --git a/base_custom_filter/__manifest__.py b/base_custom_filter/__manifest__.py new file mode 100644 index 0000000000..a4bf5877b6 --- /dev/null +++ b/base_custom_filter/__manifest__.py @@ -0,0 +1,18 @@ +# Copyright 2021 ForgeFlow S.L. (https://www.forgeflow.com) +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). +{ + "name": "Add custom filters in standard filters and group by dropdowns", + "version": "13.0.1.0.0", + "category": "Usability", + "website": "https://github.com/OCA/server-ux", + "author": "ForgeFlow, Odoo Community Association (OCA)", + "data": [ + "security/ir.model.access.csv", + "views/ir_filters_views.xml", + "views/ir_filters_group_views.xml", + ], + "depends": ["web"], + "license": "AGPL-3", + "installable": True, + "maintainers": ["JordiMForgeFlow"], +} diff --git a/base_custom_filter/models/__init__.py b/base_custom_filter/models/__init__.py new file mode 100644 index 0000000000..0c10423f0a --- /dev/null +++ b/base_custom_filter/models/__init__.py @@ -0,0 +1,4 @@ +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). +from . import base +from . import ir_filters +from . import ir_filters_group diff --git a/base_custom_filter/models/base.py b/base_custom_filter/models/base.py new file mode 100644 index 0000000000..25c0a580d2 --- /dev/null +++ b/base_custom_filter/models/base.py @@ -0,0 +1,113 @@ +# Copyright 2021 ForgeFlow S.L. (https://www.forgeflow.com) +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from lxml import etree + +from odoo import api, models + + +class Base(models.AbstractModel): + _inherit = "base" + + @api.model + def _add_grouped_filters(self, res, custom_filters): + arch = etree.fromstring(res["arch"]) + node = arch.xpath("//search/filter[last()]") + if node: + node[0].addnext(etree.Element("separator")) + for custom_filter in custom_filters: + node = arch.xpath("//search/separator[last()]") + if node: + elem = etree.Element( + "filter", + { + "name": "ir_custom_filter_%s" % custom_filter.id, + "string": custom_filter.name, + "domain": custom_filter.domain, + }, + ) + node[0].addnext(elem) + res["arch"] = etree.tostring(arch) + return res + + @api.model + def _add_grouped_groupby(self, res, custom_groupbys): + arch = etree.fromstring(res["arch"]) + node = arch.xpath("//group/filter[last()]") + if node: + node[0].addnext(etree.Element("separator")) + for custom_groupby in custom_groupbys: + node = arch.xpath("//group/separator[last()]") + if node: + elem = etree.Element( + "filter", + { + "name": "ir_custom_filter_%s" % custom_groupby.id, + "string": custom_groupby.name, + "context": str( + {"group_by": custom_groupby.groupby_field.name} + ), + }, + ) + node[0].addnext(elem) + res["arch"] = etree.tostring(arch) + return res + + @api.model + def fields_view_get( + self, view_id=None, view_type="form", toolbar=False, submenu=False + ): + """Add filters in search views.""" + res = super().fields_view_get( + view_id=view_id, view_type=view_type, toolbar=toolbar, submenu=submenu + ) + if view_type == "search": + filter_groups = self.env["ir.filters.group"].search( + [ + ("model_id", "=", res.get("model")), + ("filter_ids", "!=", False), + ("type", "=", "filter"), + ] + ) + filters_no_group = self.env["ir.filters"].search( + [ + ("model_id", "=", res.get("model")), + ("group_id", "=", False), + ("type", "=", "filter"), + ], + order="sequence desc", + ) + groupby_groups = self.env["ir.filters.group"].search( + [ + ("model_id", "=", res.get("model")), + ("filter_ids", "!=", False), + ("type", "=", "groupby"), + ] + ) + groupbys_no_group = self.env["ir.filters"].search( + [ + ("model_id", "=", res.get("model")), + ("group_id", "=", False), + ("type", "=", "groupby"), + ], + order="sequence desc", + ) + # Add filter type + if filter_groups: + for filter_group in filter_groups: + res = self._add_grouped_filters( + res, filter_group.filter_ids.sorted("sequence", True) + ) + if filters_no_group: + for filter_no_group in filters_no_group: + res = self._add_grouped_filters(res, filter_no_group) + # Add groupby type + if groupby_groups: + for groupby_group in groupby_groups: + res = self._add_grouped_groupby( + res, groupby_group.filter_ids.sorted("sequence", True) + ) + if groupbys_no_group: + for groupby_no_group in groupbys_no_group: + res = self._add_grouped_groupby(res, groupby_no_group) + return res diff --git a/base_custom_filter/models/ir_filters.py b/base_custom_filter/models/ir_filters.py new file mode 100644 index 0000000000..97aa73089b --- /dev/null +++ b/base_custom_filter/models/ir_filters.py @@ -0,0 +1,25 @@ +# Copyright 2021 ForgeFlow S.L. (https://www.forgeflow.com) +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from odoo import fields, models + + +class IrFilters(models.Model): + _inherit = "ir.filters" + _order = "model_id, sequence, name, id desc" + + def _selection_type(self): + return [ + ("favorite", "Favorite"), + ("filter", "Standard Filter"), + ("groupby", "Standard Group By"), + ] + + sequence = fields.Integer() + type = fields.Selection( + selection="_selection_type", string="Type", required=True, default="favorite", + ) + groupby_field = fields.Many2one( + comodel_name="ir.model.fields", string="Group By Field", ondelete="cascade", + ) + group_id = fields.Many2one(comodel_name="ir.filters.group", string="Filter Group") diff --git a/base_custom_filter/models/ir_filters_group.py b/base_custom_filter/models/ir_filters_group.py new file mode 100644 index 0000000000..113a9cb758 --- /dev/null +++ b/base_custom_filter/models/ir_filters_group.py @@ -0,0 +1,47 @@ +# Copyright 2021 ForgeFlow S.L. (https://www.forgeflow.com) +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from odoo import _, api, fields, models +from odoo.exceptions import ValidationError + + +class IrFiltersGroup(models.Model): + _name = "ir.filters.group" + _description = "Filters Group" + _order = "sequence, name, id" + + def _selection_type(self): + return [("filter", "Filter"), ("groupby", "Group By")] + + sequence = fields.Integer() + model_id = fields.Selection( + selection="_list_all_models", string="Model", required=True + ) + name = fields.Char(required=True, translate=True) + type = fields.Selection( + selection="_selection_type", string="Type", required=True, default="filter", + ) + filter_ids = fields.One2many( + comodel_name="ir.filters", inverse_name="group_id", string="Filters" + ) + + @api.constrains("model_id", "filter_ids") + def _check_filter_group_model(self): + for rec in self: + if any(rec.filter_ids.filtered(lambda f: f.model_id != rec.model_id)): + raise ValidationError( + _("The group contains filters related to different models.") + ) + + @api.constrains("type", "filter_ids") + def _check_filter_group_type(self): + for rec in self: + if any(rec.filter_ids.filtered(lambda f: f.type != rec.type)): + raise ValidationError( + _("The group contains filters of different types.") + ) + + @api.model + def _list_all_models(self): + self._cr.execute("SELECT model, name FROM ir_model ORDER BY name") + return self._cr.fetchall() diff --git a/base_custom_filter/readme/CONFIGURE.rst b/base_custom_filter/readme/CONFIGURE.rst new file mode 100644 index 0000000000..35c7aefa0f --- /dev/null +++ b/base_custom_filter/readme/CONFIGURE.rst @@ -0,0 +1,15 @@ +#. Go to *Settings > Custom Filters*. +#. Create a new Custom Filter, and define following information: + + * The **Model** for which you are defining the filter. + * The **Type** depending on whether you want to add a filter or a grouping by + by a field. + * The **Domain** that will be applied with the filter. + * The **Group By Field** used to perform the group by. + * The **Group** to have filters under the same separator. + +#. You can reorder records from the list view with the arrow handle. This will + determine the order in which they appear in the filters/groupby menu. +#. A separator is added between each custom filter added. You can create Custom + Filter Groups to group filters that you want to have displayed under the same + separator. diff --git a/base_custom_filter/readme/CONTRIBUTORS.rst b/base_custom_filter/readme/CONTRIBUTORS.rst new file mode 100644 index 0000000000..27d65ee034 --- /dev/null +++ b/base_custom_filter/readme/CONTRIBUTORS.rst @@ -0,0 +1,3 @@ +* `ForgeFlow S.L. `_: + + * Jordi Masvidal diff --git a/base_custom_filter/readme/DESCRIPTION.rst b/base_custom_filter/readme/DESCRIPTION.rst new file mode 100644 index 0000000000..5280db8cd0 --- /dev/null +++ b/base_custom_filter/readme/DESCRIPTION.rst @@ -0,0 +1,2 @@ +This module allows to define custom filters to be shown under the standard +filters and group by menus of a model's search view. diff --git a/base_custom_filter/readme/USAGE.rst b/base_custom_filter/readme/USAGE.rst new file mode 100644 index 0000000000..fda3f44d9a --- /dev/null +++ b/base_custom_filter/readme/USAGE.rst @@ -0,0 +1,2 @@ +#. Go to the model's menu entry for which you have defined the filter. +#. On the filters and group by dropdowns, you will see the configured filters. diff --git a/base_custom_filter/security/ir.model.access.csv b/base_custom_filter/security/ir.model.access.csv new file mode 100644 index 0000000000..8aea51cacd --- /dev/null +++ b/base_custom_filter/security/ir.model.access.csv @@ -0,0 +1,3 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_ir_filters_group_user,ir.filters.group,model_ir_filters_group,base.group_user,1,0,0,0 +access_ir_filters_group_system,ir.filters.group,model_ir_filters_group,base.group_system,1,1,1,1 diff --git a/base_custom_filter/static/description/icon.png b/base_custom_filter/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3a0328b516c4980e8e44cdb63fd945757ddd132d GIT binary patch literal 9455 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 z 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 Xviia!U7SGha1wx#SCgwmn*{w2TRX*I literal 0 HcmV?d00001 diff --git a/base_custom_filter/static/description/index.html b/base_custom_filter/static/description/index.html new file mode 100644 index 0000000000..c9a54fcb25 --- /dev/null +++ b/base_custom_filter/static/description/index.html @@ -0,0 +1,467 @@ + + + + + + +Add custom filters for fields via UI + + + +
+

Add custom filters for fields via UI

+ + +

Beta License: AGPL-3 OCA/server-ux Translate me on Weblate Try me on Runbot

+

This module allows to define custom filters in the search views for an specific +field belonging to the document or any other related document.

+

This nature makes the definition quite technical, but once done, it adds the +element in the UI for regular user use.

+

Table of contents

+ +
+

Configuration

+
    +
  1. Go to Settings > Technical > User Interface > Custom Field Filters.
  2. +
  3. Create a new record, and define following information:
      +
    • The Model for which you are defining the filter. It will appear in all +the search views of this model.
    • +
    • The label you want to see on the search line on the Name field. This +field allows translations for proper UI in different languages.
    • +
    • The Expression, which is the field chain string with dot notation. +Examples: product_id, product_id.seller_ids.name, partner_id.lang.
    • +
    • Optionally, you can fill Position After for indicating after which +existing field (technical name) the filter will appear. If empty or not +found, the filter will be added at the end.
    • +
    +
  4. +
  5. You can reorder records for determining sorting for multiple filters for the +same model with the arrow handle in the left part.
  6. +
+
+
+

Usage

+
    +
  1. Go to the menu entry for which you have defined the custom field filter.
  2. +
  3. On the search bar, type anything.
  4. +
  5. In the filter list, you will see the line for the element you have defined.
  6. +
+

As demo data, a custom field filter is included for sample purposes:

+https://raw.githubusercontent.com/OCA/server-ux/13.0/base_search_custom_field_filter/static/src/img/ir_ui_custom_field_filter.png +

Steps for trying this sample:

+
    +
  1. Install contacts module.
  2. +
  3. Go to Contacts.
  4. +
  5. Type “english” and you’ll find the filter “Language” at the end:
  6. +
+https://raw.githubusercontent.com/OCA/server-ux/13.0/base_search_custom_field_filter/static/src/img/contact_search.png +
+
+

Bug Tracker

+

Bugs are tracked on GitHub 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.

+

Do not contact contributors directly about support or help with technical issues.

+
+
+

Credits

+
+

Authors

+
    +
  • Tecnativa
  • +
+
+
+

Contributors

+
    +
  • Tecnativa:
      +
    • Carlos Dauden
    • +
    • Pedro M. Baeza
    • +
    +
  • +
+
+
+

Maintainers

+

This module is maintained by the OCA.

+Odoo Community Association +

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.

+

Current maintainer:

+

pedrobaeza

+

This module is part of the OCA/server-ux project on GitHub.

+

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

+
+
+
+ + diff --git a/base_custom_filter/views/ir_filters_group_views.xml b/base_custom_filter/views/ir_filters_group_views.xml new file mode 100644 index 0000000000..ddaeda5211 --- /dev/null +++ b/base_custom_filter/views/ir_filters_group_views.xml @@ -0,0 +1,86 @@ + + + + + ir.filters.group.form + ir.filters.group + +
+ +
+

+ +

+
+ + + + + + + + + + + + +
+

+ +

+
+ + + + + + +
+ +
+
+
+ +
+
+ + ir.filters.group.tree + ir.filters.group + + + + + + + + + + Custom Filter Groups + ir.filters.group + tree,form + + +
diff --git a/base_custom_filter/views/ir_filters_views.xml b/base_custom_filter/views/ir_filters_views.xml new file mode 100644 index 0000000000..871776a7cc --- /dev/null +++ b/base_custom_filter/views/ir_filters_views.xml @@ -0,0 +1,111 @@ + + + + + ir.filters.form - base_custom_filter + ir.filters + + + + + + + + {'invisible': [('type', '=', 'groupby')]} + + + + + + {'invisible': [('type', '!=', 'favorite')]} + + + {'invisible': [('type', '!=', 'favorite')]} + + + {'invisible': [('type', '!=', 'favorite')]} + + + {'invisible': [('type', '!=', 'favorite')]} + + + {'invisible': [('type', '!=', 'favorite')]} + + + + + ir.filters.tree - base_custom_filter + ir.filters + + + + + + + + + + + + + ir.filters.tree.custom + ir.filters + + + + + + + + + + + + + + Custom Filters + ir.filters + [('type', '!=', 'favorite')] + + {'default_type': 'filter'} + + + + From d90b3b1b8536b4e2786de02602cdc0037a033971 Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Sun, 6 Feb 2022 20:42:06 +0000 Subject: [PATCH 02/17] [UPD] README.rst --- base_custom_filter/README.rst | 10 +-- .../static/description/index.html | 67 ++++++++----------- 2 files changed, 32 insertions(+), 45 deletions(-) diff --git a/base_custom_filter/README.rst b/base_custom_filter/README.rst index 19f32fa5d2..e1f1b1be42 100644 --- a/base_custom_filter/README.rst +++ b/base_custom_filter/README.rst @@ -1,6 +1,6 @@ -======================================= -Add custom filters in filters dropdowns -======================================= +============================================================= +Add custom filters in standard filters and group by dropdowns +============================================================= .. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! This file is generated by oca-gen-addon-readme !! @@ -14,10 +14,10 @@ Add custom filters in filters dropdowns :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fserver--ux-lightgray.png?logo=github - :target: https://github.com/OCA/server-ux/tree/13.0/base_search_custom_field_filter + :target: https://github.com/OCA/server-ux/tree/13.0/base_custom_filter :alt: OCA/server-ux .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/server-ux-13-0/server-ux-13-0-base_search_custom_field_filter + :target: https://translation.odoo-community.org/projects/server-ux-13-0/server-ux-13-0-base_custom_filter :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png :target: https://runbot.odoo-community.org/runbot/250/13.0 diff --git a/base_custom_filter/static/description/index.html b/base_custom_filter/static/description/index.html index c9a54fcb25..650596082c 100644 --- a/base_custom_filter/static/description/index.html +++ b/base_custom_filter/static/description/index.html @@ -4,7 +4,7 @@ -Add custom filters for fields via UI +Add custom filters in standard filters and group by dropdowns -
-

Add custom filters for fields via UI

+
+

Add custom filters in standard filters and group by dropdowns

-

Beta License: AGPL-3 OCA/server-ux Translate me on Weblate Try me on Runbot

-

This module allows to define custom filters in the search views for an specific -field belonging to the document or any other related document.

-

This nature makes the definition quite technical, but once done, it adds the -element in the UI for regular user use.

+

Beta License: AGPL-3 OCA/server-ux Translate me on Weblate Try me on Runbot

+

This module allows to define custom filters to be shown under the standard +filters and group by menus of a model’s search view.

Table of contents

    @@ -389,46 +387,36 @@

    Add custom filters for fields via UI

    Configuration

      -
    1. Go to Settings > Technical > User Interface > Custom Field Filters.
    2. -
    3. Create a new record, and define following information:
        -
      • The Model for which you are defining the filter. It will appear in all -the search views of this model.
      • -
      • The label you want to see on the search line on the Name field. This -field allows translations for proper UI in different languages.
      • -
      • The Expression, which is the field chain string with dot notation. -Examples: product_id, product_id.seller_ids.name, partner_id.lang.
      • -
      • Optionally, you can fill Position After for indicating after which -existing field (technical name) the filter will appear. If empty or not -found, the filter will be added at the end.
      • +
      • Go to Settings > Custom Filters.
      • +
      • Create a new Custom Filter, and define following information:
          +
        • The Model for which you are defining the filter.
        • +
        • The Type depending on whether you want to add a filter or a grouping by +by a field.
        • +
        • The Domain that will be applied with the filter.
        • +
        • The Group By Field used to perform the group by.
        • +
        • The Group to have filters under the same separator.
      • -
      • You can reorder records for determining sorting for multiple filters for the -same model with the arrow handle in the left part.
      • +
      • You can reorder records from the list view with the arrow handle. This will +determine the order in which they appear in the filters/groupby menu.
      • +
      • A separator is added between each custom filter added. You can create Custom +Filter Groups to group filters that you want to have displayed under the same +separator.

    Usage

      -
    1. Go to the menu entry for which you have defined the custom field filter.
    2. -
    3. On the search bar, type anything.
    4. -
    5. In the filter list, you will see the line for the element you have defined.
    6. +
    7. Go to the model’s menu entry for which you have defined the filter.
    8. +
    9. On the filters and group by dropdowns, you will see the configured filters.
    -

    As demo data, a custom field filter is included for sample purposes:

    -https://raw.githubusercontent.com/OCA/server-ux/13.0/base_search_custom_field_filter/static/src/img/ir_ui_custom_field_filter.png -

    Steps for trying this sample:

    -
      -
    1. Install contacts module.
    2. -
    3. Go to Contacts.
    4. -
    5. Type “english” and you’ll find the filter “Language” at the end:
    6. -
    -https://raw.githubusercontent.com/OCA/server-ux/13.0/base_search_custom_field_filter/static/src/img/contact_search.png

    Bug Tracker

    Bugs are tracked on GitHub 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.

    +feedback.

    Do not contact contributors directly about support or help with technical issues.

    @@ -436,15 +424,14 @@

    Credits

    Authors

      -
    • Tecnativa
    • +
    • ForgeFlow

    Contributors

    From 747f746109a5d727808c3507d2b9ba15fd00ee3e Mon Sep 17 00:00:00 2001 From: oca-travis Date: Sun, 6 Feb 2022 19:42:52 +0000 Subject: [PATCH 03/17] [UPD] Update base_custom_filter.pot --- .../i18n/base_custom_filter.pot | 122 ++++++++++++++++++ 1 file changed, 122 insertions(+) create mode 100644 base_custom_filter/i18n/base_custom_filter.pot diff --git a/base_custom_filter/i18n/base_custom_filter.pot b/base_custom_filter/i18n/base_custom_filter.pot new file mode 100644 index 0000000000..fe59a7a1e7 --- /dev/null +++ b/base_custom_filter/i18n/base_custom_filter.pot @@ -0,0 +1,122 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * base_custom_filter +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 13.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: base_custom_filter +#: model:ir.model,name:base_custom_filter.model_base +msgid "Base" +msgstr "" + +#. module: base_custom_filter +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__create_uid +msgid "Created by" +msgstr "" + +#. module: base_custom_filter +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__create_date +msgid "Created on" +msgstr "" + +#. module: base_custom_filter +#: model:ir.actions.act_window,name:base_custom_filter.action_ir_filters_group +#: model:ir.ui.menu,name:base_custom_filter.menu_ir_filters_group +msgid "Custom Filter Groups" +msgstr "" + +#. module: base_custom_filter +#: model:ir.actions.act_window,name:base_custom_filter.action_ir_custom_filter +#: model:ir.ui.menu,name:base_custom_filter.menu_base_custom_filter +#: model:ir.ui.menu,name:base_custom_filter.menu_ir_custom_filter +msgid "Custom Filters" +msgstr "" + +#. module: base_custom_filter +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__display_name +msgid "Display Name" +msgstr "" + +#. module: base_custom_filter +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters__group_id +msgid "Filter Group" +msgstr "" + +#. module: base_custom_filter +#: model:ir.model,name:base_custom_filter.model_ir_filters +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__filter_ids +msgid "Filters" +msgstr "" + +#. module: base_custom_filter +#: model:ir.model,name:base_custom_filter.model_ir_filters_group +msgid "Filters Group" +msgstr "" + +#. module: base_custom_filter +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters__groupby_field +msgid "Group By Field" +msgstr "" + +#. module: base_custom_filter +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__id +msgid "ID" +msgstr "" + +#. module: base_custom_filter +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group____last_update +msgid "Last Modified on" +msgstr "" + +#. module: base_custom_filter +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: base_custom_filter +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__write_date +msgid "Last Updated on" +msgstr "" + +#. module: base_custom_filter +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__model_id +msgid "Model" +msgstr "" + +#. module: base_custom_filter +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__name +msgid "Name" +msgstr "" + +#. module: base_custom_filter +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters__sequence +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__sequence +msgid "Sequence" +msgstr "" + +#. module: base_custom_filter +#: code:addons/base_custom_filter/models/ir_filters_group.py:0 +#, python-format +msgid "The group contains filters of different types." +msgstr "" + +#. module: base_custom_filter +#: code:addons/base_custom_filter/models/ir_filters_group.py:0 +#, python-format +msgid "The group contains filters related to different models." +msgstr "" + +#. module: base_custom_filter +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters__type +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__type +msgid "Type" +msgstr "" From 8c40c907e830119afabdff1e53b9f2b15b7d09cc Mon Sep 17 00:00:00 2001 From: Ashish Hirpara Date: Thu, 24 Feb 2022 15:07:47 +0530 Subject: [PATCH 04/17] [MIG] base_custom_filter: Migration to 14.0 --- base_custom_filter/README.rst | 109 ---------------- base_custom_filter/__manifest__.py | 7 +- .../i18n/base_custom_filter.pot | 122 ------------------ base_custom_filter/i18n/it.po | 0 base_custom_filter/models/base.py | 1 + base_custom_filter/models/ir_filters.py | 10 +- base_custom_filter/models/ir_filters_group.py | 27 ++-- base_custom_filter/readme/CONTRIBUTORS.rst | 2 + .../static/description/index.html | 12 +- base_custom_filter/tests/__init__.py | 1 + base_custom_filter/tests/test_filters.py | 53 ++++++++ .../views/ir_filters_group_views.xml | 32 ++++- .../odoo/addons/base_custom_filter | 1 + setup/base_custom_filter/setup.py | 6 + 14 files changed, 123 insertions(+), 260 deletions(-) create mode 100644 base_custom_filter/i18n/it.po create mode 100644 base_custom_filter/tests/__init__.py create mode 100644 base_custom_filter/tests/test_filters.py create mode 120000 setup/base_custom_filter/odoo/addons/base_custom_filter create mode 100644 setup/base_custom_filter/setup.py diff --git a/base_custom_filter/README.rst b/base_custom_filter/README.rst index e1f1b1be42..e69de29bb2 100644 --- a/base_custom_filter/README.rst +++ b/base_custom_filter/README.rst @@ -1,109 +0,0 @@ -============================================================= -Add custom filters in standard filters and group by dropdowns -============================================================= - -.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! 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%2Fserver--ux-lightgray.png?logo=github - :target: https://github.com/OCA/server-ux/tree/13.0/base_custom_filter - :alt: OCA/server-ux -.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/server-ux-13-0/server-ux-13-0-base_custom_filter - :alt: Translate me on Weblate -.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png - :target: https://runbot.odoo-community.org/runbot/250/13.0 - :alt: Try me on Runbot - -|badge1| |badge2| |badge3| |badge4| |badge5| - -This module allows to define custom filters to be shown under the standard -filters and group by menus of a model's search view. - -**Table of contents** - -.. contents:: - :local: - -Configuration -============= - -#. Go to *Settings > Custom Filters*. -#. Create a new Custom Filter, and define following information: - - * The **Model** for which you are defining the filter. - * The **Type** depending on whether you want to add a filter or a grouping by - by a field. - * The **Domain** that will be applied with the filter. - * The **Group By Field** used to perform the group by. - * The **Group** to have filters under the same separator. - -#. You can reorder records from the list view with the arrow handle. This will - determine the order in which they appear in the filters/groupby menu. -#. A separator is added between each custom filter added. You can create Custom - Filter Groups to group filters that you want to have displayed under the same - separator. - -Usage -===== - -#. Go to the model's menu entry for which you have defined the filter. -#. On the filters and group by dropdowns, you will see the configured filters. - -Bug Tracker -=========== - -Bugs are tracked on `GitHub 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 `_. - -Do not contact contributors directly about support or help with technical issues. - -Credits -======= - -Authors -~~~~~~~ - -* ForgeFlow - -Contributors -~~~~~~~~~~~~ - -* `ForgeFlow S.L. `_: - - * Jordi Masvidal - -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-JordiMForgeFlow| image:: https://github.com/JordiMForgeFlow.png?size=40px - :target: https://github.com/JordiMForgeFlow - :alt: JordiMForgeFlow - -Current `maintainer `__: - -|maintainer-JordiMForgeFlow| - -This module is part of the `OCA/server-ux `_ project on GitHub. - -You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/base_custom_filter/__manifest__.py b/base_custom_filter/__manifest__.py index a4bf5877b6..414be994ba 100644 --- a/base_custom_filter/__manifest__.py +++ b/base_custom_filter/__manifest__.py @@ -1,11 +1,12 @@ +# Migrated to v14.0 by Ashish Hirpara (https://www.ashish-hirpara.com) # Copyright 2021 ForgeFlow S.L. (https://www.forgeflow.com) # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). { "name": "Add custom filters in standard filters and group by dropdowns", - "version": "13.0.1.0.0", + "version": "14.0.1.0.0", "category": "Usability", "website": "https://github.com/OCA/server-ux", - "author": "ForgeFlow, Odoo Community Association (OCA)", + "author": "Ashish Hirpara, ForgeFlow, Odoo Community Association (OCA)", "data": [ "security/ir.model.access.csv", "views/ir_filters_views.xml", @@ -14,5 +15,5 @@ "depends": ["web"], "license": "AGPL-3", "installable": True, - "maintainers": ["JordiMForgeFlow"], + "maintainers": ["AshishHirapara", "ForgeFlow"], } diff --git a/base_custom_filter/i18n/base_custom_filter.pot b/base_custom_filter/i18n/base_custom_filter.pot index fe59a7a1e7..e69de29bb2 100644 --- a/base_custom_filter/i18n/base_custom_filter.pot +++ b/base_custom_filter/i18n/base_custom_filter.pot @@ -1,122 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * base_custom_filter -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 13.0\n" -"Report-Msgid-Bugs-To: \n" -"Last-Translator: \n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" - -#. module: base_custom_filter -#: model:ir.model,name:base_custom_filter.model_base -msgid "Base" -msgstr "" - -#. module: base_custom_filter -#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__create_uid -msgid "Created by" -msgstr "" - -#. module: base_custom_filter -#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__create_date -msgid "Created on" -msgstr "" - -#. module: base_custom_filter -#: model:ir.actions.act_window,name:base_custom_filter.action_ir_filters_group -#: model:ir.ui.menu,name:base_custom_filter.menu_ir_filters_group -msgid "Custom Filter Groups" -msgstr "" - -#. module: base_custom_filter -#: model:ir.actions.act_window,name:base_custom_filter.action_ir_custom_filter -#: model:ir.ui.menu,name:base_custom_filter.menu_base_custom_filter -#: model:ir.ui.menu,name:base_custom_filter.menu_ir_custom_filter -msgid "Custom Filters" -msgstr "" - -#. module: base_custom_filter -#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__display_name -msgid "Display Name" -msgstr "" - -#. module: base_custom_filter -#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters__group_id -msgid "Filter Group" -msgstr "" - -#. module: base_custom_filter -#: model:ir.model,name:base_custom_filter.model_ir_filters -#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__filter_ids -msgid "Filters" -msgstr "" - -#. module: base_custom_filter -#: model:ir.model,name:base_custom_filter.model_ir_filters_group -msgid "Filters Group" -msgstr "" - -#. module: base_custom_filter -#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters__groupby_field -msgid "Group By Field" -msgstr "" - -#. module: base_custom_filter -#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__id -msgid "ID" -msgstr "" - -#. module: base_custom_filter -#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group____last_update -msgid "Last Modified on" -msgstr "" - -#. module: base_custom_filter -#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__write_uid -msgid "Last Updated by" -msgstr "" - -#. module: base_custom_filter -#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__write_date -msgid "Last Updated on" -msgstr "" - -#. module: base_custom_filter -#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__model_id -msgid "Model" -msgstr "" - -#. module: base_custom_filter -#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__name -msgid "Name" -msgstr "" - -#. module: base_custom_filter -#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters__sequence -#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__sequence -msgid "Sequence" -msgstr "" - -#. module: base_custom_filter -#: code:addons/base_custom_filter/models/ir_filters_group.py:0 -#, python-format -msgid "The group contains filters of different types." -msgstr "" - -#. module: base_custom_filter -#: code:addons/base_custom_filter/models/ir_filters_group.py:0 -#, python-format -msgid "The group contains filters related to different models." -msgstr "" - -#. module: base_custom_filter -#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters__type -#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__type -msgid "Type" -msgstr "" diff --git a/base_custom_filter/i18n/it.po b/base_custom_filter/i18n/it.po new file mode 100644 index 0000000000..e69de29bb2 diff --git a/base_custom_filter/models/base.py b/base_custom_filter/models/base.py index 25c0a580d2..58ce8e06e1 100644 --- a/base_custom_filter/models/base.py +++ b/base_custom_filter/models/base.py @@ -1,3 +1,4 @@ +# Migrated to v14.0 by Ashish Hirpara (https://www.ashish-hirpara.com) # Copyright 2021 ForgeFlow S.L. (https://www.forgeflow.com) # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). diff --git a/base_custom_filter/models/ir_filters.py b/base_custom_filter/models/ir_filters.py index 97aa73089b..170f2f676d 100644 --- a/base_custom_filter/models/ir_filters.py +++ b/base_custom_filter/models/ir_filters.py @@ -1,3 +1,4 @@ +# Migrated to v14.0 by Ashish Hirpara (https://www.ashish-hirpara.com) # Copyright 2021 ForgeFlow S.L. (https://www.forgeflow.com) # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). @@ -17,9 +18,14 @@ def _selection_type(self): sequence = fields.Integer() type = fields.Selection( - selection="_selection_type", string="Type", required=True, default="favorite", + selection="_selection_type", + string="Type", + required=True, + default="favorite", ) groupby_field = fields.Many2one( - comodel_name="ir.model.fields", string="Group By Field", ondelete="cascade", + comodel_name="ir.model.fields", + string="Group By Field", + ondelete="cascade", ) group_id = fields.Many2one(comodel_name="ir.filters.group", string="Filter Group") diff --git a/base_custom_filter/models/ir_filters_group.py b/base_custom_filter/models/ir_filters_group.py index 113a9cb758..d545dfacb1 100644 --- a/base_custom_filter/models/ir_filters_group.py +++ b/base_custom_filter/models/ir_filters_group.py @@ -1,8 +1,8 @@ +# Migrated to v14.0 by Ashish Hirpara (https://www.ashish-hirpara.com) # Copyright 2021 ForgeFlow S.L. (https://www.forgeflow.com) # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). -from odoo import _, api, fields, models -from odoo.exceptions import ValidationError +from odoo import api, fields, models class IrFiltersGroup(models.Model): @@ -19,27 +19,18 @@ def _selection_type(self): ) name = fields.Char(required=True, translate=True) type = fields.Selection( - selection="_selection_type", string="Type", required=True, default="filter", + selection="_selection_type", + string="Type", + required=True, + default="filter", ) filter_ids = fields.One2many( comodel_name="ir.filters", inverse_name="group_id", string="Filters" ) - @api.constrains("model_id", "filter_ids") - def _check_filter_group_model(self): - for rec in self: - if any(rec.filter_ids.filtered(lambda f: f.model_id != rec.model_id)): - raise ValidationError( - _("The group contains filters related to different models.") - ) - - @api.constrains("type", "filter_ids") - def _check_filter_group_type(self): - for rec in self: - if any(rec.filter_ids.filtered(lambda f: f.type != rec.type)): - raise ValidationError( - _("The group contains filters of different types.") - ) + def unlink(self): + self.filter_ids.unlink() + return super(IrFiltersGroup, self).unlink() @api.model def _list_all_models(self): diff --git a/base_custom_filter/readme/CONTRIBUTORS.rst b/base_custom_filter/readme/CONTRIBUTORS.rst index 27d65ee034..fca6ff5eb6 100644 --- a/base_custom_filter/readme/CONTRIBUTORS.rst +++ b/base_custom_filter/readme/CONTRIBUTORS.rst @@ -1,3 +1,5 @@ * `ForgeFlow S.L. `_: * Jordi Masvidal + +* `Ashish Hirpara ` diff --git a/base_custom_filter/static/description/index.html b/base_custom_filter/static/description/index.html index 650596082c..51c3aba0dc 100644 --- a/base_custom_filter/static/description/index.html +++ b/base_custom_filter/static/description/index.html @@ -367,7 +367,7 @@

    Add custom filters in standard filters and group by dropdowns< !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

    Beta License: AGPL-3 OCA/server-ux Translate me on Weblate Try me on Runbot

    +

    Beta License: AGPL-3 OCA/server-ux Translate me on Weblate Try me on Runbot

    This module allows to define custom filters to be shown under the standard filters and group by menus of a model’s search view.

    Table of contents

    @@ -416,7 +416,7 @@

    Bug Tracker

    Bugs are tracked on GitHub 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.

    +feedback.

    Do not contact contributors directly about support or help with technical issues.

@@ -425,6 +425,7 @@

Credits

Authors

  • ForgeFlow
  • +
  • Ashish Hirpara
@@ -434,6 +435,9 @@

Contributors

  • Jordi Masvidal
  • + +
  • Ashish Hirpara +
  • @@ -444,8 +448,8 @@

    Maintainers

    mission is to support the collaborative development of Odoo features and promote its widespread use.

    Current maintainer:

    -

    JordiMForgeFlow

    -

    This module is part of the OCA/server-ux project on GitHub.

    +

    ashishhirapara

    +

    This module is part of the OCA/server-ux project on GitHub.

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

    diff --git a/base_custom_filter/tests/__init__.py b/base_custom_filter/tests/__init__.py new file mode 100644 index 0000000000..0a22e05b2c --- /dev/null +++ b/base_custom_filter/tests/__init__.py @@ -0,0 +1 @@ +from . import test_filters diff --git a/base_custom_filter/tests/test_filters.py b/base_custom_filter/tests/test_filters.py new file mode 100644 index 0000000000..42103798ef --- /dev/null +++ b/base_custom_filter/tests/test_filters.py @@ -0,0 +1,53 @@ +from odoo.tests.common import TransactionCase, Form, tagged, SavepointCase +from odoo.http import request + +@tagged('post_install', '-at_install') +class Test(SavepointCase): + + @classmethod + def setUpClass(cls, chart_template_ref=None): + super().setUpClass() + filters_obj = cls.env['ir.filters'] + filters_group = Form(filters_obj) + filters_group.name = 'Test No groupby group' + filters_group.type = 'groupby' + filters_group.model_id = "ir.filters.group" + filters_group.groupby_field = cls.env.ref( + 'base_custom_filter.field_ir_filters_group__name') + filters_group = filters_group.save() + + filters_group = Form(filters_obj) + filters_group.name = 'Test No filters group' + filters_group.type = 'filter' + filters_group.model_id = "ir.filters.group" + filters_group.domain = '[["id","=",1]]' + filters_group = filters_group.save() + + def test_sale_order_line(self): + filters_group_obj = self.env['ir.filters.group'] + filters_obj = self.env['ir.filters'] + filters_obj.unlink() + filters_group_obj.unlink() + with Form(filters_group_obj) as filters_group: + filters_group.name = 'Test filters group' + filters_group.type = 'filter' + filters_group.model_id = "ir.filters.group" + with filters_group.filter_ids.new() as line: + line.name = "Test filter line" + line.domain = '[["id","=",1]]' + + filter_group = filters_group_obj.search( + [('name', '=', 'Test filters group')]) + self.assertEqual(filter_group.name, 'Test filters group') + + with Form(filters_group_obj) as filters_group: + filters_group.name = 'Test groupby group' + filters_group.type = 'groupby' + filters_group.model_id = "ir.filters.group" + with filters_group.filter_ids.new() as line: + line.name = "Test groupby line" + line.groupby_field = self.env.ref( + 'base_custom_filter.field_ir_filters_group__name') + + filters_group_obj.fields_view_get(view_type='search') + filter_group.unlink() diff --git a/base_custom_filter/views/ir_filters_group_views.xml b/base_custom_filter/views/ir_filters_group_views.xml index ddaeda5211..1d382e7b55 100644 --- a/base_custom_filter/views/ir_filters_group_views.xml +++ b/base_custom_filter/views/ir_filters_group_views.xml @@ -35,8 +35,16 @@
    - - + + + + + search.ir.filters.group + ir.filters.group + + + + + + + + + + + + Custom Filter Groups ir.filters.group diff --git a/setup/base_custom_filter/odoo/addons/base_custom_filter b/setup/base_custom_filter/odoo/addons/base_custom_filter new file mode 120000 index 0000000000..ed9cbda28c --- /dev/null +++ b/setup/base_custom_filter/odoo/addons/base_custom_filter @@ -0,0 +1 @@ +../../../../base_custom_filter \ No newline at end of file diff --git a/setup/base_custom_filter/setup.py b/setup/base_custom_filter/setup.py new file mode 100644 index 0000000000..28c57bb640 --- /dev/null +++ b/setup/base_custom_filter/setup.py @@ -0,0 +1,6 @@ +import setuptools + +setuptools.setup( + setup_requires=['setuptools-odoo'], + odoo_addon=True, +) From ef2ccf1458a7696a1c7a9842c8292b21c8b1d577 Mon Sep 17 00:00:00 2001 From: Ashish Hirpara Date: Thu, 24 Feb 2022 15:26:06 +0530 Subject: [PATCH 05/17] [UPD] base_custom_filter: fixed pre-commit issue --- base_custom_filter/tests/test_filters.py | 48 ++++++++++++------------ 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/base_custom_filter/tests/test_filters.py b/base_custom_filter/tests/test_filters.py index 42103798ef..7b0eb5b8be 100644 --- a/base_custom_filter/tests/test_filters.py +++ b/base_custom_filter/tests/test_filters.py @@ -1,53 +1,53 @@ -from odoo.tests.common import TransactionCase, Form, tagged, SavepointCase -from odoo.http import request +from odoo.tests.common import Form, SavepointCase, tagged -@tagged('post_install', '-at_install') -class Test(SavepointCase): +@tagged("post_install", "-at_install") +class Test(SavepointCase): @classmethod def setUpClass(cls, chart_template_ref=None): super().setUpClass() - filters_obj = cls.env['ir.filters'] + filters_obj = cls.env["ir.filters"] filters_group = Form(filters_obj) - filters_group.name = 'Test No groupby group' - filters_group.type = 'groupby' + filters_group.name = "Test No groupby group" + filters_group.type = "groupby" filters_group.model_id = "ir.filters.group" filters_group.groupby_field = cls.env.ref( - 'base_custom_filter.field_ir_filters_group__name') + "base_custom_filter.field_ir_filters_group__name" + ) filters_group = filters_group.save() filters_group = Form(filters_obj) - filters_group.name = 'Test No filters group' - filters_group.type = 'filter' + filters_group.name = "Test No filters group" + filters_group.type = "filter" filters_group.model_id = "ir.filters.group" filters_group.domain = '[["id","=",1]]' filters_group = filters_group.save() def test_sale_order_line(self): - filters_group_obj = self.env['ir.filters.group'] - filters_obj = self.env['ir.filters'] + filters_group_obj = self.env["ir.filters.group"] + filters_obj = self.env["ir.filters"] filters_obj.unlink() filters_group_obj.unlink() with Form(filters_group_obj) as filters_group: - filters_group.name = 'Test filters group' - filters_group.type = 'filter' + filters_group.name = "Test filters group" + filters_group.type = "filter" filters_group.model_id = "ir.filters.group" with filters_group.filter_ids.new() as line: line.name = "Test filter line" line.domain = '[["id","=",1]]' - - filter_group = filters_group_obj.search( - [('name', '=', 'Test filters group')]) - self.assertEqual(filter_group.name, 'Test filters group') - + + filter_group = filters_group_obj.search([("name", "=", "Test filters group")]) + self.assertEqual(filter_group.name, "Test filters group") + with Form(filters_group_obj) as filters_group: - filters_group.name = 'Test groupby group' - filters_group.type = 'groupby' + filters_group.name = "Test groupby group" + filters_group.type = "groupby" filters_group.model_id = "ir.filters.group" with filters_group.filter_ids.new() as line: line.name = "Test groupby line" line.groupby_field = self.env.ref( - 'base_custom_filter.field_ir_filters_group__name') - - filters_group_obj.fields_view_get(view_type='search') + "base_custom_filter.field_ir_filters_group__name" + ) + + filters_group_obj.fields_view_get(view_type="search") filter_group.unlink() From 145bb734b32aae9ba6242b0a0c41e14358b0cf7a Mon Sep 17 00:00:00 2001 From: oca-travis Date: Sun, 6 Feb 2022 19:42:52 +0000 Subject: [PATCH 06/17] [UPD] Update base_custom_filter.pot --- .../i18n/base_custom_filter.pot | 122 ++++++++++++++++++ 1 file changed, 122 insertions(+) diff --git a/base_custom_filter/i18n/base_custom_filter.pot b/base_custom_filter/i18n/base_custom_filter.pot index e69de29bb2..fe59a7a1e7 100644 --- a/base_custom_filter/i18n/base_custom_filter.pot +++ b/base_custom_filter/i18n/base_custom_filter.pot @@ -0,0 +1,122 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * base_custom_filter +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 13.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: base_custom_filter +#: model:ir.model,name:base_custom_filter.model_base +msgid "Base" +msgstr "" + +#. module: base_custom_filter +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__create_uid +msgid "Created by" +msgstr "" + +#. module: base_custom_filter +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__create_date +msgid "Created on" +msgstr "" + +#. module: base_custom_filter +#: model:ir.actions.act_window,name:base_custom_filter.action_ir_filters_group +#: model:ir.ui.menu,name:base_custom_filter.menu_ir_filters_group +msgid "Custom Filter Groups" +msgstr "" + +#. module: base_custom_filter +#: model:ir.actions.act_window,name:base_custom_filter.action_ir_custom_filter +#: model:ir.ui.menu,name:base_custom_filter.menu_base_custom_filter +#: model:ir.ui.menu,name:base_custom_filter.menu_ir_custom_filter +msgid "Custom Filters" +msgstr "" + +#. module: base_custom_filter +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__display_name +msgid "Display Name" +msgstr "" + +#. module: base_custom_filter +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters__group_id +msgid "Filter Group" +msgstr "" + +#. module: base_custom_filter +#: model:ir.model,name:base_custom_filter.model_ir_filters +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__filter_ids +msgid "Filters" +msgstr "" + +#. module: base_custom_filter +#: model:ir.model,name:base_custom_filter.model_ir_filters_group +msgid "Filters Group" +msgstr "" + +#. module: base_custom_filter +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters__groupby_field +msgid "Group By Field" +msgstr "" + +#. module: base_custom_filter +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__id +msgid "ID" +msgstr "" + +#. module: base_custom_filter +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group____last_update +msgid "Last Modified on" +msgstr "" + +#. module: base_custom_filter +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: base_custom_filter +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__write_date +msgid "Last Updated on" +msgstr "" + +#. module: base_custom_filter +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__model_id +msgid "Model" +msgstr "" + +#. module: base_custom_filter +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__name +msgid "Name" +msgstr "" + +#. module: base_custom_filter +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters__sequence +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__sequence +msgid "Sequence" +msgstr "" + +#. module: base_custom_filter +#: code:addons/base_custom_filter/models/ir_filters_group.py:0 +#, python-format +msgid "The group contains filters of different types." +msgstr "" + +#. module: base_custom_filter +#: code:addons/base_custom_filter/models/ir_filters_group.py:0 +#, python-format +msgid "The group contains filters related to different models." +msgstr "" + +#. module: base_custom_filter +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters__type +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__type +msgid "Type" +msgstr "" From 4ce27fb901a2d3f4960b87d27676c3b6475167bd Mon Sep 17 00:00:00 2001 From: Ashish Hirpara Date: Thu, 24 Feb 2022 15:32:51 +0530 Subject: [PATCH 07/17] [UPD] base_custom_filter: fixed pre-commit issue --- .../i18n/base_custom_filter.pot | 122 ------------------ 1 file changed, 122 deletions(-) diff --git a/base_custom_filter/i18n/base_custom_filter.pot b/base_custom_filter/i18n/base_custom_filter.pot index fe59a7a1e7..e69de29bb2 100644 --- a/base_custom_filter/i18n/base_custom_filter.pot +++ b/base_custom_filter/i18n/base_custom_filter.pot @@ -1,122 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * base_custom_filter -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 13.0\n" -"Report-Msgid-Bugs-To: \n" -"Last-Translator: \n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" - -#. module: base_custom_filter -#: model:ir.model,name:base_custom_filter.model_base -msgid "Base" -msgstr "" - -#. module: base_custom_filter -#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__create_uid -msgid "Created by" -msgstr "" - -#. module: base_custom_filter -#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__create_date -msgid "Created on" -msgstr "" - -#. module: base_custom_filter -#: model:ir.actions.act_window,name:base_custom_filter.action_ir_filters_group -#: model:ir.ui.menu,name:base_custom_filter.menu_ir_filters_group -msgid "Custom Filter Groups" -msgstr "" - -#. module: base_custom_filter -#: model:ir.actions.act_window,name:base_custom_filter.action_ir_custom_filter -#: model:ir.ui.menu,name:base_custom_filter.menu_base_custom_filter -#: model:ir.ui.menu,name:base_custom_filter.menu_ir_custom_filter -msgid "Custom Filters" -msgstr "" - -#. module: base_custom_filter -#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__display_name -msgid "Display Name" -msgstr "" - -#. module: base_custom_filter -#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters__group_id -msgid "Filter Group" -msgstr "" - -#. module: base_custom_filter -#: model:ir.model,name:base_custom_filter.model_ir_filters -#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__filter_ids -msgid "Filters" -msgstr "" - -#. module: base_custom_filter -#: model:ir.model,name:base_custom_filter.model_ir_filters_group -msgid "Filters Group" -msgstr "" - -#. module: base_custom_filter -#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters__groupby_field -msgid "Group By Field" -msgstr "" - -#. module: base_custom_filter -#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__id -msgid "ID" -msgstr "" - -#. module: base_custom_filter -#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group____last_update -msgid "Last Modified on" -msgstr "" - -#. module: base_custom_filter -#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__write_uid -msgid "Last Updated by" -msgstr "" - -#. module: base_custom_filter -#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__write_date -msgid "Last Updated on" -msgstr "" - -#. module: base_custom_filter -#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__model_id -msgid "Model" -msgstr "" - -#. module: base_custom_filter -#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__name -msgid "Name" -msgstr "" - -#. module: base_custom_filter -#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters__sequence -#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__sequence -msgid "Sequence" -msgstr "" - -#. module: base_custom_filter -#: code:addons/base_custom_filter/models/ir_filters_group.py:0 -#, python-format -msgid "The group contains filters of different types." -msgstr "" - -#. module: base_custom_filter -#: code:addons/base_custom_filter/models/ir_filters_group.py:0 -#, python-format -msgid "The group contains filters related to different models." -msgstr "" - -#. module: base_custom_filter -#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters__type -#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__type -msgid "Type" -msgstr "" From 42c074800af4ffbb227d56d1dd9b472b60b1bef3 Mon Sep 17 00:00:00 2001 From: oca-travis Date: Fri, 18 Mar 2022 12:11:22 +0000 Subject: [PATCH 08/17] [UPD] Update base_custom_filter.pot --- .../i18n/base_custom_filter.pot | 129 ++++++++++++++++++ 1 file changed, 129 insertions(+) diff --git a/base_custom_filter/i18n/base_custom_filter.pot b/base_custom_filter/i18n/base_custom_filter.pot index e69de29bb2..f73e5c971d 100644 --- a/base_custom_filter/i18n/base_custom_filter.pot +++ b/base_custom_filter/i18n/base_custom_filter.pot @@ -0,0 +1,129 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * base_custom_filter +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 14.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: base_custom_filter +#: model:ir.model,name:base_custom_filter.model_base +msgid "Base" +msgstr "" + +#. module: base_custom_filter +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__create_uid +msgid "Created by" +msgstr "" + +#. module: base_custom_filter +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__create_date +msgid "Created on" +msgstr "" + +#. module: base_custom_filter +#: model:ir.actions.act_window,name:base_custom_filter.action_ir_filters_group +#: model:ir.ui.menu,name:base_custom_filter.menu_ir_filters_group +msgid "Custom Filter Groups" +msgstr "" + +#. module: base_custom_filter +#: model:ir.actions.act_window,name:base_custom_filter.action_ir_custom_filter +#: model:ir.ui.menu,name:base_custom_filter.menu_base_custom_filter +#: model:ir.ui.menu,name:base_custom_filter.menu_ir_custom_filter +msgid "Custom Filters" +msgstr "" + +#. module: base_custom_filter +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters__display_name +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__display_name +msgid "Display Name" +msgstr "" + +#. module: base_custom_filter +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters__group_id +msgid "Filter Group" +msgstr "" + +#. module: base_custom_filter +#: model:ir.model,name:base_custom_filter.model_ir_filters +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__filter_ids +msgid "Filters" +msgstr "" + +#. module: base_custom_filter +#: model:ir.model,name:base_custom_filter.model_ir_filters_group +msgid "Filters Group" +msgstr "" + +#. module: base_custom_filter +#: model_terms:ir.ui.view,arch_db:base_custom_filter.search_ir_filters_group +msgid "Group By" +msgstr "" + +#. module: base_custom_filter +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters__groupby_field +msgid "Group By Field" +msgstr "" + +#. module: base_custom_filter +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters__id +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__id +msgid "ID" +msgstr "" + +#. module: base_custom_filter +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters____last_update +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group____last_update +msgid "Last Modified on" +msgstr "" + +#. module: base_custom_filter +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: base_custom_filter +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__write_date +msgid "Last Updated on" +msgstr "" + +#. module: base_custom_filter +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__model_id +msgid "Model" +msgstr "" + +#. module: base_custom_filter +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__name +msgid "Name" +msgstr "" + +#. module: base_custom_filter +#: model_terms:ir.ui.view,arch_db:base_custom_filter.search_ir_filters_group +msgid "Search Filters Group" +msgstr "" + +#. module: base_custom_filter +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters__sequence +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__sequence +msgid "Sequence" +msgstr "" + +#. module: base_custom_filter +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters__type +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__type +#: model_terms:ir.ui.view,arch_db:base_custom_filter.search_ir_filters_group +msgid "Type" +msgstr "" + +#. module: base_custom_filter +#: model_terms:ir.ui.view,arch_db:base_custom_filter.search_ir_filters_group +msgid "Without Filters" +msgstr "" From f70d4f0f45c3d50be5bb15bfa275bb0921c6b6c7 Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Fri, 18 Mar 2022 12:39:08 +0000 Subject: [PATCH 09/17] [UPD] README.rst --- base_custom_filter/README.rst | 115 ++++++++++++++++++ .../static/description/index.html | 12 +- 2 files changed, 120 insertions(+), 7 deletions(-) diff --git a/base_custom_filter/README.rst b/base_custom_filter/README.rst index e69de29bb2..1525c289c3 100644 --- a/base_custom_filter/README.rst +++ b/base_custom_filter/README.rst @@ -0,0 +1,115 @@ +============================================================= +Add custom filters in standard filters and group by dropdowns +============================================================= + +.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! 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%2Fserver--ux-lightgray.png?logo=github + :target: https://github.com/OCA/server-ux/tree/14.0/base_custom_filter + :alt: OCA/server-ux +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/server-ux-14-0/server-ux-14-0-base_custom_filter + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png + :target: https://runbot.odoo-community.org/runbot/250/14.0 + :alt: Try me on Runbot + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This module allows to define custom filters to be shown under the standard +filters and group by menus of a model's search view. + +**Table of contents** + +.. contents:: + :local: + +Configuration +============= + +#. Go to *Settings > Custom Filters*. +#. Create a new Custom Filter, and define following information: + + * The **Model** for which you are defining the filter. + * The **Type** depending on whether you want to add a filter or a grouping by + by a field. + * The **Domain** that will be applied with the filter. + * The **Group By Field** used to perform the group by. + * The **Group** to have filters under the same separator. + +#. You can reorder records from the list view with the arrow handle. This will + determine the order in which they appear in the filters/groupby menu. +#. A separator is added between each custom filter added. You can create Custom + Filter Groups to group filters that you want to have displayed under the same + separator. + +Usage +===== + +#. Go to the model's menu entry for which you have defined the filter. +#. On the filters and group by dropdowns, you will see the configured filters. + +Bug Tracker +=========== + +Bugs are tracked on `GitHub 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 `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Authors +~~~~~~~ + +* Ashish Hirpara +* ForgeFlow + +Contributors +~~~~~~~~~~~~ + +* `ForgeFlow S.L. `_: + + * Jordi Masvidal + +* `Ashish Hirpara ` + +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-AshishHirapara| image:: https://github.com/AshishHirapara.png?size=40px + :target: https://github.com/AshishHirapara + :alt: AshishHirapara +.. |maintainer-ForgeFlow| image:: https://github.com/ForgeFlow.png?size=40px + :target: https://github.com/ForgeFlow + :alt: ForgeFlow + +Current `maintainers `__: + +|maintainer-AshishHirapara| |maintainer-ForgeFlow| + +This module is part of the `OCA/server-ux `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/base_custom_filter/static/description/index.html b/base_custom_filter/static/description/index.html index 51c3aba0dc..1706e1c6d0 100644 --- a/base_custom_filter/static/description/index.html +++ b/base_custom_filter/static/description/index.html @@ -367,7 +367,7 @@

    Add custom filters in standard filters and group by dropdowns< !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

    Beta License: AGPL-3 OCA/server-ux Translate me on Weblate Try me on Runbot

    +

    Beta License: AGPL-3 OCA/server-ux Translate me on Weblate Try me on Runbot

    This module allows to define custom filters to be shown under the standard filters and group by menus of a model’s search view.

    Table of contents

    @@ -424,8 +424,8 @@

    Credits

    Authors

      -
    • ForgeFlow
    • Ashish Hirpara
    • +
    • ForgeFlow
    @@ -435,9 +435,7 @@

    Contributors

  • Jordi Masvidal
  • - -
  • Ashish Hirpara - +
  • Ashish Hirpara <https://www.ashish-hirpara.com>
  • @@ -447,8 +445,8 @@

    Maintainers

    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.

    -

    Current maintainer:

    -

    ashishhirapara

    +

    Current maintainers:

    +

    AshishHirapara ForgeFlow

    This module is part of the OCA/server-ux project on GitHub.

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

    From 952cbf4a017b279c832a60a3e7f1827883e2fbb5 Mon Sep 17 00:00:00 2001 From: Francesco Foresti Date: Tue, 12 Apr 2022 16:11:19 +0000 Subject: [PATCH 10/17] Added translation using Weblate (French) --- base_custom_filter/i18n/fr.po | 130 ++++++++++++++++++++++++++++++++++ 1 file changed, 130 insertions(+) create mode 100644 base_custom_filter/i18n/fr.po diff --git a/base_custom_filter/i18n/fr.po b/base_custom_filter/i18n/fr.po new file mode 100644 index 0000000000..be28af67fb --- /dev/null +++ b/base_custom_filter/i18n/fr.po @@ -0,0 +1,130 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * base_custom_filter +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 14.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: fr\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" + +#. module: base_custom_filter +#: model:ir.model,name:base_custom_filter.model_base +msgid "Base" +msgstr "" + +#. module: base_custom_filter +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__create_uid +msgid "Created by" +msgstr "" + +#. module: base_custom_filter +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__create_date +msgid "Created on" +msgstr "" + +#. module: base_custom_filter +#: model:ir.actions.act_window,name:base_custom_filter.action_ir_filters_group +#: model:ir.ui.menu,name:base_custom_filter.menu_ir_filters_group +msgid "Custom Filter Groups" +msgstr "" + +#. module: base_custom_filter +#: model:ir.actions.act_window,name:base_custom_filter.action_ir_custom_filter +#: model:ir.ui.menu,name:base_custom_filter.menu_base_custom_filter +#: model:ir.ui.menu,name:base_custom_filter.menu_ir_custom_filter +msgid "Custom Filters" +msgstr "" + +#. module: base_custom_filter +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters__display_name +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__display_name +msgid "Display Name" +msgstr "" + +#. module: base_custom_filter +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters__group_id +msgid "Filter Group" +msgstr "" + +#. module: base_custom_filter +#: model:ir.model,name:base_custom_filter.model_ir_filters +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__filter_ids +msgid "Filters" +msgstr "" + +#. module: base_custom_filter +#: model:ir.model,name:base_custom_filter.model_ir_filters_group +msgid "Filters Group" +msgstr "" + +#. module: base_custom_filter +#: model_terms:ir.ui.view,arch_db:base_custom_filter.search_ir_filters_group +msgid "Group By" +msgstr "" + +#. module: base_custom_filter +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters__groupby_field +msgid "Group By Field" +msgstr "" + +#. module: base_custom_filter +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters__id +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__id +msgid "ID" +msgstr "" + +#. module: base_custom_filter +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters____last_update +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group____last_update +msgid "Last Modified on" +msgstr "" + +#. module: base_custom_filter +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: base_custom_filter +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__write_date +msgid "Last Updated on" +msgstr "" + +#. module: base_custom_filter +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__model_id +msgid "Model" +msgstr "" + +#. module: base_custom_filter +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__name +msgid "Name" +msgstr "" + +#. module: base_custom_filter +#: model_terms:ir.ui.view,arch_db:base_custom_filter.search_ir_filters_group +msgid "Search Filters Group" +msgstr "" + +#. module: base_custom_filter +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters__sequence +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__sequence +msgid "Sequence" +msgstr "" + +#. module: base_custom_filter +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters__type +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__type +#: model_terms:ir.ui.view,arch_db:base_custom_filter.search_ir_filters_group +msgid "Type" +msgstr "" + +#. module: base_custom_filter +#: model_terms:ir.ui.view,arch_db:base_custom_filter.search_ir_filters_group +msgid "Without Filters" +msgstr "" From c5e7643b256e414c3ad48b1bf67504a8034a9e73 Mon Sep 17 00:00:00 2001 From: OCA Transbot Date: Tue, 12 Apr 2022 16:26:53 +0000 Subject: [PATCH 11/17] Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Translation: server-ux-14.0/server-ux-14.0-base_custom_filter Translate-URL: https://translation.odoo-community.org/projects/server-ux-14-0/server-ux-14-0-base_custom_filter/ --- base_custom_filter/i18n/it.po | 114 ++++++++++++++++++++++++++++++++++ 1 file changed, 114 insertions(+) diff --git a/base_custom_filter/i18n/it.po b/base_custom_filter/i18n/it.po index e69de29bb2..eddbb73c6c 100644 --- a/base_custom_filter/i18n/it.po +++ b/base_custom_filter/i18n/it.po @@ -0,0 +1,114 @@ +#. module: base_custom_filter +#: model:ir.model,name:base_custom_filter.model_base +msgid "Base" +msgstr "" + +#. module: base_custom_filter +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__create_uid +msgid "Created by" +msgstr "" + +#. module: base_custom_filter +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__create_date +msgid "Created on" +msgstr "" + +#. module: base_custom_filter +#: model:ir.actions.act_window,name:base_custom_filter.action_ir_filters_group +#: model:ir.ui.menu,name:base_custom_filter.menu_ir_filters_group +msgid "Custom Filter Groups" +msgstr "" + +#. module: base_custom_filter +#: model:ir.actions.act_window,name:base_custom_filter.action_ir_custom_filter +#: model:ir.ui.menu,name:base_custom_filter.menu_base_custom_filter +#: model:ir.ui.menu,name:base_custom_filter.menu_ir_custom_filter +msgid "Custom Filters" +msgstr "" + +#. module: base_custom_filter +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters__display_name +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__display_name +msgid "Display Name" +msgstr "" + +#. module: base_custom_filter +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters__group_id +msgid "Filter Group" +msgstr "" + +#. module: base_custom_filter +#: model:ir.model,name:base_custom_filter.model_ir_filters +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__filter_ids +msgid "Filters" +msgstr "" + +#. module: base_custom_filter +#: model:ir.model,name:base_custom_filter.model_ir_filters_group +msgid "Filters Group" +msgstr "" + +#. module: base_custom_filter +#: model_terms:ir.ui.view,arch_db:base_custom_filter.search_ir_filters_group +msgid "Group By" +msgstr "" + +#. module: base_custom_filter +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters__groupby_field +msgid "Group By Field" +msgstr "" + +#. module: base_custom_filter +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters__id +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__id +msgid "ID" +msgstr "" + +#. module: base_custom_filter +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters____last_update +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group____last_update +msgid "Last Modified on" +msgstr "" + +#. module: base_custom_filter +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: base_custom_filter +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__write_date +msgid "Last Updated on" +msgstr "" + +#. module: base_custom_filter +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__model_id +msgid "Model" +msgstr "" + +#. module: base_custom_filter +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__name +msgid "Name" +msgstr "" + +#. module: base_custom_filter +#: model_terms:ir.ui.view,arch_db:base_custom_filter.search_ir_filters_group +msgid "Search Filters Group" +msgstr "" + +#. module: base_custom_filter +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters__sequence +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__sequence +msgid "Sequence" +msgstr "" + +#. module: base_custom_filter +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters__type +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__type +#: model_terms:ir.ui.view,arch_db:base_custom_filter.search_ir_filters_group +msgid "Type" +msgstr "" + +#. module: base_custom_filter +#: model_terms:ir.ui.view,arch_db:base_custom_filter.search_ir_filters_group +msgid "Without Filters" +msgstr "" From 5e5626a433f17461598f03fb0ccbaff6d75dc637 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Bidoul=20=28ACSONE=29?= Date: Tue, 12 Apr 2022 16:29:05 +0000 Subject: [PATCH 12/17] Deleted translation using Weblate (Italian) --- base_custom_filter/i18n/it.po | 114 ---------------------------------- 1 file changed, 114 deletions(-) delete mode 100644 base_custom_filter/i18n/it.po diff --git a/base_custom_filter/i18n/it.po b/base_custom_filter/i18n/it.po deleted file mode 100644 index eddbb73c6c..0000000000 --- a/base_custom_filter/i18n/it.po +++ /dev/null @@ -1,114 +0,0 @@ -#. module: base_custom_filter -#: model:ir.model,name:base_custom_filter.model_base -msgid "Base" -msgstr "" - -#. module: base_custom_filter -#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__create_uid -msgid "Created by" -msgstr "" - -#. module: base_custom_filter -#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__create_date -msgid "Created on" -msgstr "" - -#. module: base_custom_filter -#: model:ir.actions.act_window,name:base_custom_filter.action_ir_filters_group -#: model:ir.ui.menu,name:base_custom_filter.menu_ir_filters_group -msgid "Custom Filter Groups" -msgstr "" - -#. module: base_custom_filter -#: model:ir.actions.act_window,name:base_custom_filter.action_ir_custom_filter -#: model:ir.ui.menu,name:base_custom_filter.menu_base_custom_filter -#: model:ir.ui.menu,name:base_custom_filter.menu_ir_custom_filter -msgid "Custom Filters" -msgstr "" - -#. module: base_custom_filter -#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters__display_name -#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__display_name -msgid "Display Name" -msgstr "" - -#. module: base_custom_filter -#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters__group_id -msgid "Filter Group" -msgstr "" - -#. module: base_custom_filter -#: model:ir.model,name:base_custom_filter.model_ir_filters -#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__filter_ids -msgid "Filters" -msgstr "" - -#. module: base_custom_filter -#: model:ir.model,name:base_custom_filter.model_ir_filters_group -msgid "Filters Group" -msgstr "" - -#. module: base_custom_filter -#: model_terms:ir.ui.view,arch_db:base_custom_filter.search_ir_filters_group -msgid "Group By" -msgstr "" - -#. module: base_custom_filter -#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters__groupby_field -msgid "Group By Field" -msgstr "" - -#. module: base_custom_filter -#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters__id -#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__id -msgid "ID" -msgstr "" - -#. module: base_custom_filter -#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters____last_update -#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group____last_update -msgid "Last Modified on" -msgstr "" - -#. module: base_custom_filter -#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__write_uid -msgid "Last Updated by" -msgstr "" - -#. module: base_custom_filter -#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__write_date -msgid "Last Updated on" -msgstr "" - -#. module: base_custom_filter -#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__model_id -msgid "Model" -msgstr "" - -#. module: base_custom_filter -#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__name -msgid "Name" -msgstr "" - -#. module: base_custom_filter -#: model_terms:ir.ui.view,arch_db:base_custom_filter.search_ir_filters_group -msgid "Search Filters Group" -msgstr "" - -#. module: base_custom_filter -#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters__sequence -#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__sequence -msgid "Sequence" -msgstr "" - -#. module: base_custom_filter -#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters__type -#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__type -#: model_terms:ir.ui.view,arch_db:base_custom_filter.search_ir_filters_group -msgid "Type" -msgstr "" - -#. module: base_custom_filter -#: model_terms:ir.ui.view,arch_db:base_custom_filter.search_ir_filters_group -msgid "Without Filters" -msgstr "" From de907f9830ec8d623684c1e527ca565d5ca7ef46 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Bidoul=20=28ACSONE=29?= Date: Tue, 12 Apr 2022 16:29:54 +0000 Subject: [PATCH 13/17] Added translation using Weblate (Italian) --- base_custom_filter/i18n/it.po | 130 ++++++++++++++++++++++++++++++++++ 1 file changed, 130 insertions(+) create mode 100644 base_custom_filter/i18n/it.po diff --git a/base_custom_filter/i18n/it.po b/base_custom_filter/i18n/it.po new file mode 100644 index 0000000000..b88f57851c --- /dev/null +++ b/base_custom_filter/i18n/it.po @@ -0,0 +1,130 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * base_custom_filter +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 14.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" + +#. module: base_custom_filter +#: model:ir.model,name:base_custom_filter.model_base +msgid "Base" +msgstr "" + +#. module: base_custom_filter +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__create_uid +msgid "Created by" +msgstr "" + +#. module: base_custom_filter +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__create_date +msgid "Created on" +msgstr "" + +#. module: base_custom_filter +#: model:ir.actions.act_window,name:base_custom_filter.action_ir_filters_group +#: model:ir.ui.menu,name:base_custom_filter.menu_ir_filters_group +msgid "Custom Filter Groups" +msgstr "" + +#. module: base_custom_filter +#: model:ir.actions.act_window,name:base_custom_filter.action_ir_custom_filter +#: model:ir.ui.menu,name:base_custom_filter.menu_base_custom_filter +#: model:ir.ui.menu,name:base_custom_filter.menu_ir_custom_filter +msgid "Custom Filters" +msgstr "" + +#. module: base_custom_filter +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters__display_name +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__display_name +msgid "Display Name" +msgstr "" + +#. module: base_custom_filter +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters__group_id +msgid "Filter Group" +msgstr "" + +#. module: base_custom_filter +#: model:ir.model,name:base_custom_filter.model_ir_filters +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__filter_ids +msgid "Filters" +msgstr "" + +#. module: base_custom_filter +#: model:ir.model,name:base_custom_filter.model_ir_filters_group +msgid "Filters Group" +msgstr "" + +#. module: base_custom_filter +#: model_terms:ir.ui.view,arch_db:base_custom_filter.search_ir_filters_group +msgid "Group By" +msgstr "" + +#. module: base_custom_filter +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters__groupby_field +msgid "Group By Field" +msgstr "" + +#. module: base_custom_filter +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters__id +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__id +msgid "ID" +msgstr "" + +#. module: base_custom_filter +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters____last_update +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group____last_update +msgid "Last Modified on" +msgstr "" + +#. module: base_custom_filter +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: base_custom_filter +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__write_date +msgid "Last Updated on" +msgstr "" + +#. module: base_custom_filter +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__model_id +msgid "Model" +msgstr "" + +#. module: base_custom_filter +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__name +msgid "Name" +msgstr "" + +#. module: base_custom_filter +#: model_terms:ir.ui.view,arch_db:base_custom_filter.search_ir_filters_group +msgid "Search Filters Group" +msgstr "" + +#. module: base_custom_filter +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters__sequence +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__sequence +msgid "Sequence" +msgstr "" + +#. module: base_custom_filter +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters__type +#: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__type +#: model_terms:ir.ui.view,arch_db:base_custom_filter.search_ir_filters_group +msgid "Type" +msgstr "" + +#. module: base_custom_filter +#: model_terms:ir.ui.view,arch_db:base_custom_filter.search_ir_filters_group +msgid "Without Filters" +msgstr "" From 2e2d9d18e784fa04bce3f4e01b33443e252722be Mon Sep 17 00:00:00 2001 From: Francesco Foresti Date: Wed, 13 Apr 2022 13:13:21 +0000 Subject: [PATCH 14/17] Translated using Weblate (Italian) Currently translated at 100.0% (21 of 21 strings) Translation: server-ux-14.0/server-ux-14.0-base_custom_filter Translate-URL: https://translation.odoo-community.org/projects/server-ux-14-0/server-ux-14-0-base_custom_filter/it/ --- base_custom_filter/i18n/it.po | 46 ++++++++++++++++++----------------- 1 file changed, 24 insertions(+), 22 deletions(-) diff --git a/base_custom_filter/i18n/it.po b/base_custom_filter/i18n/it.po index b88f57851c..7570238baa 100644 --- a/base_custom_filter/i18n/it.po +++ b/base_custom_filter/i18n/it.po @@ -6,125 +6,127 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 14.0\n" "Report-Msgid-Bugs-To: \n" -"Last-Translator: Automatically generated\n" +"PO-Revision-Date: 2022-04-13 16:05+0000\n" +"Last-Translator: Francesco Foresti \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" +"X-Generator: Weblate 4.3.2\n" #. module: base_custom_filter #: model:ir.model,name:base_custom_filter.model_base msgid "Base" -msgstr "" +msgstr "Base" #. module: base_custom_filter #: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__create_uid msgid "Created by" -msgstr "" +msgstr "Creato da" #. module: base_custom_filter #: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__create_date msgid "Created on" -msgstr "" +msgstr "Creato il" #. module: base_custom_filter #: model:ir.actions.act_window,name:base_custom_filter.action_ir_filters_group #: model:ir.ui.menu,name:base_custom_filter.menu_ir_filters_group msgid "Custom Filter Groups" -msgstr "" +msgstr "Gruppi Filtri Personalizzati" #. module: base_custom_filter #: model:ir.actions.act_window,name:base_custom_filter.action_ir_custom_filter #: model:ir.ui.menu,name:base_custom_filter.menu_base_custom_filter #: model:ir.ui.menu,name:base_custom_filter.menu_ir_custom_filter msgid "Custom Filters" -msgstr "" +msgstr "Filtri Personalizzati" #. module: base_custom_filter #: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters__display_name #: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__display_name msgid "Display Name" -msgstr "" +msgstr "Nome Visualizzato" #. module: base_custom_filter #: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters__group_id msgid "Filter Group" -msgstr "" +msgstr "Gruppo filtro" #. module: base_custom_filter #: model:ir.model,name:base_custom_filter.model_ir_filters #: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__filter_ids msgid "Filters" -msgstr "" +msgstr "Filtri" #. module: base_custom_filter #: model:ir.model,name:base_custom_filter.model_ir_filters_group msgid "Filters Group" -msgstr "" +msgstr "Gruppo Filtri" #. module: base_custom_filter #: model_terms:ir.ui.view,arch_db:base_custom_filter.search_ir_filters_group msgid "Group By" -msgstr "" +msgstr "Raggruppa Per" #. module: base_custom_filter #: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters__groupby_field msgid "Group By Field" -msgstr "" +msgstr "Raggruppa per campo" #. module: base_custom_filter #: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters__id #: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__id msgid "ID" -msgstr "" +msgstr "ID" #. module: base_custom_filter #: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters____last_update #: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group____last_update msgid "Last Modified on" -msgstr "" +msgstr "Ultima modifica il" #. module: base_custom_filter #: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__write_uid msgid "Last Updated by" -msgstr "" +msgstr "Ultimo aggiornamento di" #. module: base_custom_filter #: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__write_date msgid "Last Updated on" -msgstr "" +msgstr "Ultimo aggiornamento il" #. module: base_custom_filter #: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__model_id msgid "Model" -msgstr "" +msgstr "Modello" #. module: base_custom_filter #: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__name msgid "Name" -msgstr "" +msgstr "Nome" #. module: base_custom_filter #: model_terms:ir.ui.view,arch_db:base_custom_filter.search_ir_filters_group msgid "Search Filters Group" -msgstr "" +msgstr "Cerca gruppo filtri" #. module: base_custom_filter #: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters__sequence #: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__sequence msgid "Sequence" -msgstr "" +msgstr "Sequenza" #. module: base_custom_filter #: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters__type #: model:ir.model.fields,field_description:base_custom_filter.field_ir_filters_group__type #: model_terms:ir.ui.view,arch_db:base_custom_filter.search_ir_filters_group msgid "Type" -msgstr "" +msgstr "Tipo" #. module: base_custom_filter #: model_terms:ir.ui.view,arch_db:base_custom_filter.search_ir_filters_group msgid "Without Filters" -msgstr "" +msgstr "Senza filtri" From a4a6e1cfdefa6fea96de40ec0fd8ba1191f7c023 Mon Sep 17 00:00:00 2001 From: Aungkokolin1997 Date: Fri, 6 Jan 2023 09:35:01 +0630 Subject: [PATCH 15/17] [MIG] base_custom_filter: Migration to 15.0 --- base_custom_filter/README.rst | 10 +++++----- base_custom_filter/__manifest__.py | 2 +- base_custom_filter/models/ir_filters.py | 1 - base_custom_filter/models/ir_filters_group.py | 1 - base_custom_filter/static/description/index.html | 8 ++++---- base_custom_filter/tests/test_filters.py | 4 ++-- 6 files changed, 12 insertions(+), 14 deletions(-) diff --git a/base_custom_filter/README.rst b/base_custom_filter/README.rst index 1525c289c3..a8d58214f5 100644 --- a/base_custom_filter/README.rst +++ b/base_custom_filter/README.rst @@ -14,13 +14,13 @@ Add custom filters in standard filters and group by dropdowns :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fserver--ux-lightgray.png?logo=github - :target: https://github.com/OCA/server-ux/tree/14.0/base_custom_filter + :target: https://github.com/OCA/server-ux/tree/15.0/base_custom_filter :alt: OCA/server-ux .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/server-ux-14-0/server-ux-14-0-base_custom_filter + :target: https://translation.odoo-community.org/projects/server-ux-15-0/server-ux-15-0-base_custom_filter :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png - :target: https://runbot.odoo-community.org/runbot/250/14.0 + :target: https://runbot.odoo-community.org/runbot/250/15.0 :alt: Try me on Runbot |badge1| |badge2| |badge3| |badge4| |badge5| @@ -64,7 +64,7 @@ Bug Tracker Bugs are tracked on `GitHub 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 `_. +`feedback `_. Do not contact contributors directly about support or help with technical issues. @@ -110,6 +110,6 @@ Current `maintainers `__: |maintainer-AshishHirapara| |maintainer-ForgeFlow| -This module is part of the `OCA/server-ux `_ project on GitHub. +This module is part of the `OCA/server-ux `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/base_custom_filter/__manifest__.py b/base_custom_filter/__manifest__.py index 414be994ba..e8984dd399 100644 --- a/base_custom_filter/__manifest__.py +++ b/base_custom_filter/__manifest__.py @@ -3,7 +3,7 @@ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). { "name": "Add custom filters in standard filters and group by dropdowns", - "version": "14.0.1.0.0", + "version": "15.0.1.0.0", "category": "Usability", "website": "https://github.com/OCA/server-ux", "author": "Ashish Hirpara, ForgeFlow, Odoo Community Association (OCA)", diff --git a/base_custom_filter/models/ir_filters.py b/base_custom_filter/models/ir_filters.py index 170f2f676d..6ee6a7b11f 100644 --- a/base_custom_filter/models/ir_filters.py +++ b/base_custom_filter/models/ir_filters.py @@ -19,7 +19,6 @@ def _selection_type(self): sequence = fields.Integer() type = fields.Selection( selection="_selection_type", - string="Type", required=True, default="favorite", ) diff --git a/base_custom_filter/models/ir_filters_group.py b/base_custom_filter/models/ir_filters_group.py index d545dfacb1..4ff2ca0670 100644 --- a/base_custom_filter/models/ir_filters_group.py +++ b/base_custom_filter/models/ir_filters_group.py @@ -20,7 +20,6 @@ def _selection_type(self): name = fields.Char(required=True, translate=True) type = fields.Selection( selection="_selection_type", - string="Type", required=True, default="filter", ) diff --git a/base_custom_filter/static/description/index.html b/base_custom_filter/static/description/index.html index 1706e1c6d0..1b2f13571b 100644 --- a/base_custom_filter/static/description/index.html +++ b/base_custom_filter/static/description/index.html @@ -3,7 +3,7 @@ - + Add custom filters in standard filters and group by dropdowns