From 60b9c8de1450991d8e24be914c8ef9f29a781b87 Mon Sep 17 00:00:00 2001 From: allegroai <> Date: Wed, 18 May 2022 10:29:36 +0300 Subject: [PATCH] Allow arbitrary task fields in project statistics filter --- apiserver/bll/project/project_bll.py | 11 +++++------ apiserver/schema/services/projects.conf | 10 ++-------- 2 files changed, 7 insertions(+), 14 deletions(-) diff --git a/apiserver/bll/project/project_bll.py b/apiserver/bll/project/project_bll.py index fcea208..9e82514 100644 --- a/apiserver/bll/project/project_bll.py +++ b/apiserver/bll/project/project_bll.py @@ -809,12 +809,11 @@ class ProjectBLL: if not filter_: return conditions - for field in ("tags", "system_tags"): - field_filter = filter_.get(field) - if not field_filter: - continue - if not isinstance(field_filter, list) or not all( - isinstance(t, str) for t in field_filter + for field, field_filter in filter_.items(): + if not ( + field_filter + and isinstance(field_filter, list) + and all(isinstance(t, str) for t in field_filter) ): raise errors.bad_request.ValidationError( f"List of strings expected for the field: {field}" diff --git a/apiserver/schema/services/projects.conf b/apiserver/schema/services/projects.conf index cdaad68..a7f16e5 100644 --- a/apiserver/schema/services/projects.conf +++ b/apiserver/schema/services/projects.conf @@ -582,15 +582,9 @@ get_all_ex { } "2.17": ${get_all_ex."2.16"} { request.properties.include_stats_filter { - description: The filter for selecting entities that participate in statistics calculation + description: The filter for selecting entities that participate in statistics calculation. For each task field that you want to filter on pass the list of allowed values. Prepend the value with '-' to exclude type: object - properties { - system_tags { - description: The list of allowed system tags - type: array - items { type: string } - } - } + additionalProperties: true } } }