# 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:
2022-01-12 08:56:49 +01:00
parent 4631f27878
commit 0cb65ae720
4 changed files with 129 additions and 5 deletions

View File

@@ -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,