# 61 Filter backend

* refactors XYTableFilter classes to hold query_filter and checkbox_filter which are separate instances of django_filter.FilterSets
* improves render ability for frontend
This commit is contained in:
2022-01-11 15:19:16 +01:00
parent 87f11a9914
commit 8a19d7239d
4 changed files with 110 additions and 30 deletions

View File

@@ -5,19 +5,27 @@ Contact: michel.peltriaux@sgdnord.rlp.de
Created on: 22.07.21
"""
from intervention.models import Intervention
from konova.filters import AbstractTableFilter, GeoReferencedTableFilterMixin, ShareableTableFilterMixin, \
RecordableTableFilterMixin
from konova.filters import QueryTableFilter, CheckboxTableFilter
class InterventionTableFilter(AbstractTableFilter, GeoReferencedTableFilterMixin, ShareableTableFilterMixin, RecordableTableFilterMixin):
""" TableFilter for Intervention model
"""
class Meta:
model = Intervention
fields = []
class InterventionTableFilter:
query_filter = None
checkbox_filter = None
qs = None
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
user = kwargs.get("user", None)
qs = kwargs.get("queryset", None)
request_data = kwargs.get("data", None)
self.query_filter = QueryTableFilter(
user=user,
data=request_data,
queryset=qs,
)
self.checkbox_filter = CheckboxTableFilter(
user=user,
data=request_data,
queryset=self.query_filter.qs,
)
self.qs = self.checkbox_filter.qs