# 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:
@@ -10,15 +10,11 @@ from django.utils.translation import gettext_lazy as _
|
||||
from django import forms
|
||||
from django.db.models import QuerySet
|
||||
|
||||
from konova.filters import AbstractTableFilter, GeoReferencedTableFilterMixin, ShareableTableFilterMixin, \
|
||||
RecordableTableFilterMixin
|
||||
from konova.filters import QueryTableFilter, CheckboxTableFilter
|
||||
|
||||
|
||||
class CompensationTableFilter(AbstractTableFilter, GeoReferencedTableFilterMixin, ShareableTableFilterMixin, RecordableTableFilterMixin):
|
||||
""" TableFilter for compensations
|
||||
|
||||
Based widely on InterventionTableFilter.
|
||||
Just some minor changes for Compensation model.
|
||||
class CheckboxCompensationTableFilter(CheckboxTableFilter):
|
||||
""" Specialization of regular CheckboxTableFilter for compensation model
|
||||
|
||||
"""
|
||||
|
||||
@@ -59,12 +55,36 @@ class CompensationTableFilter(AbstractTableFilter, GeoReferencedTableFilterMixin
|
||||
return queryset
|
||||
|
||||
|
||||
class EcoAccountTableFilter(AbstractTableFilter, GeoReferencedTableFilterMixin, ShareableTableFilterMixin, RecordableTableFilterMixin):
|
||||
""" TableFilter for eco accounts
|
||||
class CompensationTableFilter:
|
||||
""" TableFilter for compensations
|
||||
|
||||
Just some minor changes for EcoAccount model.
|
||||
Based widely on InterventionTableFilter.
|
||||
Just some minor changes for Compensation model.
|
||||
|
||||
"""
|
||||
query_filter = None
|
||||
checkbox_filter = None
|
||||
qs = None
|
||||
|
||||
def __init__(self, *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 = CheckboxCompensationTableFilter(
|
||||
user=user,
|
||||
data=request_data,
|
||||
queryset=self.query_filter.qs,
|
||||
)
|
||||
self.qs = self.checkbox_filter.qs
|
||||
|
||||
|
||||
class CheckboxEcoAccountTableFilter(CheckboxTableFilter):
|
||||
sr = django_filters.BooleanFilter(
|
||||
method='filter_only_show_unrecorded',
|
||||
label=_("Show only unrecorded"),
|
||||
@@ -107,3 +127,29 @@ class EcoAccountTableFilter(AbstractTableFilter, GeoReferencedTableFilterMixin,
|
||||
)
|
||||
else:
|
||||
return queryset
|
||||
|
||||
|
||||
class EcoAccountTableFilter:
|
||||
""" TableFilter for eco accounts
|
||||
|
||||
"""
|
||||
query_filter = None
|
||||
checkbox_filter = None
|
||||
qs = None
|
||||
|
||||
def __init__(self, *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 = CheckboxEcoAccountTableFilter(
|
||||
user=user,
|
||||
data=request_data,
|
||||
queryset=self.query_filter.qs,
|
||||
)
|
||||
self.qs = self.checkbox_filter.qs
|
||||
|
||||
Reference in New Issue
Block a user