# 61 Filter offices frontend/backend
* adds filters for registration and conservation offices * adds SelectionTableFilter as new holder for these types of filter components
This commit is contained in:
@@ -10,7 +10,22 @@ 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
|
||||
from konova.filters import QueryTableFilter, CheckboxTableFilter, SelectionTableFilter
|
||||
|
||||
|
||||
class SelectionCompensationTableFilter(SelectionTableFilter):
|
||||
""" Specialization of regular SelectionTableFilter for compensation model
|
||||
|
||||
"""
|
||||
def filter_reg_office(self, queryset, name, value):
|
||||
return queryset.filter(
|
||||
intervention__responsible__registration_office=value
|
||||
)
|
||||
|
||||
def filter_cons_office(self, queryset, name, value):
|
||||
return queryset.filter(
|
||||
intervention__responsible__conservation_office=value
|
||||
)
|
||||
|
||||
|
||||
class QueryCompensationTableFilter(QueryTableFilter):
|
||||
@@ -74,6 +89,7 @@ class CompensationTableFilter:
|
||||
Just some minor changes for Compensation model.
|
||||
|
||||
"""
|
||||
selection_filter = None
|
||||
query_filter = None
|
||||
checkbox_filter = None
|
||||
qs = None
|
||||
@@ -83,11 +99,16 @@ class CompensationTableFilter:
|
||||
qs = kwargs.get("queryset", None)
|
||||
request_data = kwargs.get("data", None)
|
||||
|
||||
self.query_filter = QueryCompensationTableFilter(
|
||||
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,
|
||||
)
|
||||
self.checkbox_filter = CheckboxCompensationTableFilter(
|
||||
user=user,
|
||||
data=request_data,
|
||||
@@ -149,6 +170,7 @@ class EcoAccountTableFilter:
|
||||
""" TableFilter for eco accounts
|
||||
|
||||
"""
|
||||
selection_filter = None
|
||||
query_filter = None
|
||||
checkbox_filter = None
|
||||
qs = None
|
||||
@@ -158,11 +180,16 @@ class EcoAccountTableFilter:
|
||||
qs = kwargs.get("queryset", None)
|
||||
request_data = kwargs.get("data", None)
|
||||
|
||||
self.query_filter = QueryTableFilter(
|
||||
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,
|
||||
)
|
||||
self.checkbox_filter = CheckboxEcoAccountTableFilter(
|
||||
user=user,
|
||||
data=request_data,
|
||||
|
||||
Reference in New Issue
Block a user