From 2a496a0e082062600e813cd43eba8812fdc00f6d Mon Sep 17 00:00:00 2001 From: Keiran Price Date: Wed, 11 Sep 2019 09:46:16 +0100 Subject: [PATCH] #41: Add implementation to filter --- common/database_helpers.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/common/database_helpers.py b/common/database_helpers.py index 303e6712..2c003111 100644 --- a/common/database_helpers.py +++ b/common/database_helpers.py @@ -152,8 +152,16 @@ def apply_filter(self, query): class DistinctFieldFilter(QueryFilter): precedence = 0 + def __init__(self, fields): + self.fields = fields if type(fields) is list else [fields] # This allows single string distinct filters + def apply_filter(self, query): - pass + query.is_distinct_fields_query = True + try: + self.fields = [getattr(query.table, field) for field in self.fields] + except AttributeError: + raise BadFilterError("Bad field requested") + query.base_query = query.session.query(*self.fields).distinct() class OrderFilter(QueryFilter):