From 8b81ea47f3eb0d45c873e9c4531ba406f78e4de4 Mon Sep 17 00:00:00 2001 From: Keiran Price Date: Tue, 10 Sep 2019 12:08:50 +0100 Subject: [PATCH] #34: Remove table method from where filter --- common/database_helpers.py | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/common/database_helpers.py b/common/database_helpers.py index 059c0f8d..c3879e3d 100644 --- a/common/database_helpers.py +++ b/common/database_helpers.py @@ -137,24 +137,18 @@ def __init__(self, field, value, operation): self.operation = operation def apply_filter(self, query): - table = self._get_table_to_filter(query) + if self.operation == "eq": - query.base_query = query.base_query.filter(getattr(table, self.field) == self.value) + query.base_query = query.base_query.filter(getattr(query.table, self.field) == self.value) elif self.operation == "like": - query.base_query = query.base_query.filter(getattr(table, self.field).like(f"%{self.value}%")) + query.base_query = query.base_query.filter(getattr(query.table, self.field).like(f"%{self.value}%")) elif self.operation == "lte": - query.base_query = query.base_query.filter(getattr(table, self.field) <= self.value) + query.base_query = query.base_query.filter(getattr(query.table, self.field) <= self.value) elif self.operation == "gte": - query.base_query = query.base_query.filter(getattr(table, self.field) >= self.value) + query.base_query = query.base_query.filter(getattr(query.table, self.field) >= self.value) else: raise BadFilterError(f" Bad operation given to where filter. operation: {self.operation}") - def _get_table_to_filter(self, query): - if type(query) is UserInvestigationsQuery or type(query) is UserInvestigationsCountQuery: - return INVESTIGATION - else: - return query.table - class OrderFilter(QueryFilter): precedence = 1