# 61 Filter code enhancement
* reorganizes code
This commit is contained in:
@@ -10,7 +10,7 @@ from django.utils.translation import gettext_lazy as _
|
||||
from django import forms
|
||||
from django.db.models import QuerySet, Q
|
||||
|
||||
from konova.filters import QueryTableFilter, CheckboxTableFilter, SelectionTableFilter
|
||||
from konova.filters import QueryTableFilter, CheckboxTableFilter, SelectionTableFilter, AbstractTableFilter
|
||||
|
||||
|
||||
class SelectionCompensationTableFilter(SelectionTableFilter):
|
||||
@@ -82,30 +82,26 @@ class CheckboxCompensationTableFilter(CheckboxTableFilter):
|
||||
return queryset
|
||||
|
||||
|
||||
class CompensationTableFilter:
|
||||
class CompensationTableFilter(AbstractTableFilter):
|
||||
""" TableFilter for compensations
|
||||
|
||||
Based widely on InterventionTableFilter.
|
||||
Just some minor changes for Compensation model.
|
||||
|
||||
"""
|
||||
selection_filter = None
|
||||
query_filter = None
|
||||
checkbox_filter = None
|
||||
qs = None
|
||||
def __init__(self, user=None, *args, **kwargs):
|
||||
super().__init__(*args, **kwargs)
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
user = kwargs.get("user", None)
|
||||
self.user = user
|
||||
qs = kwargs.get("queryset", None)
|
||||
request_data = kwargs.get("data", None)
|
||||
|
||||
# Overwrite all filters for special needs of compensations
|
||||
self.selection_filter = SelectionCompensationTableFilter(
|
||||
user=user,
|
||||
data=request_data,
|
||||
queryset=qs,
|
||||
)
|
||||
self.query_filter = QueryCompensationTableFilter(
|
||||
user=user,
|
||||
data=request_data,
|
||||
queryset=self.selection_filter.qs,
|
||||
)
|
||||
@@ -114,6 +110,7 @@ class CompensationTableFilter:
|
||||
data=request_data,
|
||||
queryset=self.query_filter.qs,
|
||||
)
|
||||
# Overwrite final queryset as well
|
||||
self.qs = self.checkbox_filter.qs
|
||||
|
||||
|
||||
@@ -166,27 +163,22 @@ class CheckboxEcoAccountTableFilter(CheckboxTableFilter):
|
||||
return queryset
|
||||
|
||||
|
||||
class EcoAccountTableFilter:
|
||||
class EcoAccountTableFilter(AbstractTableFilter):
|
||||
""" TableFilter for eco accounts
|
||||
|
||||
"""
|
||||
selection_filter = None
|
||||
query_filter = None
|
||||
checkbox_filter = None
|
||||
qs = None
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
user = kwargs.get("user", None)
|
||||
def __init__(self, user=None, *args, **kwargs):
|
||||
super().__init__(*args, **kwargs)
|
||||
self.user = user
|
||||
qs = kwargs.get("queryset", None)
|
||||
request_data = kwargs.get("data", None)
|
||||
|
||||
# Pipe the queryset through all needed filters
|
||||
self.selection_filter = SelectionTableFilter(
|
||||
user=user,
|
||||
data=request_data,
|
||||
queryset=qs,
|
||||
)
|
||||
self.query_filter = QueryTableFilter(
|
||||
user=user,
|
||||
data=request_data,
|
||||
queryset=self.selection_filter.qs,
|
||||
)
|
||||
@@ -195,4 +187,5 @@ class EcoAccountTableFilter:
|
||||
data=request_data,
|
||||
queryset=self.query_filter.qs,
|
||||
)
|
||||
# Overwrite the final queryset result
|
||||
self.qs = self.checkbox_filter.qs
|
||||
|
||||
Reference in New Issue
Block a user