Reusable filters - aka filtergroups

Hi all,

It would be very nice to have in Holistics the option to centrally define filtergroups.

What are filtergroups?

Filtergroups are a set of filters that are defined once, and reused to prevent repetition in the creation of common filter groups, rather than filters stored per dashboard.

Example use case
Define a couple of filters that are commonly used together, such as:

  • date filter, where end-user can only select specific dates, such as last 90 days, last 120 days.
  • country filter
  • region filter

When developing a dashboard, you would not add these filters individually, but add a filtergroup instead.

Advantages:

  • central management of filters
  • no need to redefine your filters for each dashboard (efficiency)
  • can be utilized for implementing dashboard views Dashboard Views

Another advantage is that when you centralize filter management, caching of filter values needs to happen only once

1 Like

Thank you @Abdel. To clarify, when you said ‘filtergroups’, which of the use cases do you refer to:

  1. Avoid manually adding a common list (>=2) of filters repeatedly to different dashboards.
  2. Avoid repeatedly creating one filter with a lot of custom options

Asking because in previous version (Holistics 2.0), we have a concept of Filter Templates that solve use case (2) above, but not (1).

@huy Filter groups are indeed like 1.

This feature will become even more important when Holistics has more features.
Currently Parent/Child filters are applicable, that you would only define once.

In the future, the benefits can apply to:

  • when you would have multiple Date filter types, each one representing select options, More Control on Dashboard Date Filters
  • when you would have dashboard views, they can utilized these filtergroups Dashboard Views
  • when you would be able to configure filters individually as Single Select/Multi Select, that is also done only once per filtergroup

The benefits are countless

Thanks Abdel! I think when “Dashboard As-Code” is released (in a few months), this feature can be implemented really easily and elegantly using AML, since by then, everything (even filter definition) is defined using code.

Something like this (non-finalized):

FilterGroup region_country_city {
  Filter region {
    model: ...
    label: "Region"
  }

  Filter country {
    parent_filter: region
    model: ...
  }
  Filter city {
    parent_filter: country
  }
}

Dashboard {
  filters: region_country_city
}

4 Likes