# 61 Filter backend
* refactors table filters by introducing AbstractTableFilter, GeoReferencedTableFilterMixin, ShareableTableFilterMixin and RecordableTableFilterMixin * adds full filter functionality * refactors TableFilter inheritances for all objects
This commit is contained in:
@@ -10,10 +10,11 @@ from django.utils.translation import gettext_lazy as _
|
||||
from django import forms
|
||||
from django.db.models import QuerySet
|
||||
|
||||
from intervention.filters import InterventionTableFilter
|
||||
from konova.filters import AbstractTableFilter, GeoReferencedTableFilterMixin, ShareableTableFilterMixin, \
|
||||
RecordableTableFilterMixin
|
||||
|
||||
|
||||
class CompensationTableFilter(InterventionTableFilter):
|
||||
class CompensationTableFilter(AbstractTableFilter, GeoReferencedTableFilterMixin, ShareableTableFilterMixin, RecordableTableFilterMixin):
|
||||
""" TableFilter for compensations
|
||||
|
||||
Based widely on InterventionTableFilter.
|
||||
@@ -21,7 +22,7 @@ class CompensationTableFilter(InterventionTableFilter):
|
||||
|
||||
"""
|
||||
|
||||
def _filter_show_all(self, queryset, name, value) -> QuerySet:
|
||||
def filter_show_all(self, queryset, name, value) -> QuerySet:
|
||||
""" Filters queryset depending on value of 'show_all' setting
|
||||
|
||||
Args:
|
||||
@@ -39,7 +40,7 @@ class CompensationTableFilter(InterventionTableFilter):
|
||||
else:
|
||||
return queryset
|
||||
|
||||
def _filter_show_recorded(self, queryset, name, value) -> QuerySet:
|
||||
def filter_show_recorded(self, queryset, name, value) -> QuerySet:
|
||||
""" Filters queryset depending on value of 'show_recorded' setting
|
||||
|
||||
Args:
|
||||
@@ -58,21 +59,20 @@ class CompensationTableFilter(InterventionTableFilter):
|
||||
return queryset
|
||||
|
||||
|
||||
class EcoAccountTableFilter(InterventionTableFilter):
|
||||
class EcoAccountTableFilter(AbstractTableFilter, GeoReferencedTableFilterMixin, ShareableTableFilterMixin, RecordableTableFilterMixin):
|
||||
""" TableFilter for eco accounts
|
||||
|
||||
Based widely on InterventionTableFilter.
|
||||
Just some minor changes for EcoAccount model.
|
||||
|
||||
"""
|
||||
sr = django_filters.BooleanFilter(
|
||||
method='_filter_only_show_unrecorded',
|
||||
method='filter_only_show_unrecorded',
|
||||
label=_("Show only unrecorded"),
|
||||
label_suffix=_(""),
|
||||
widget=forms.CheckboxInput()
|
||||
)
|
||||
|
||||
def _filter_show_all(self, queryset, name, value) -> QuerySet:
|
||||
def filter_show_all(self, queryset, name, value) -> QuerySet:
|
||||
""" Filters queryset depending on value of 'show_all' setting
|
||||
|
||||
Args:
|
||||
@@ -90,7 +90,7 @@ class EcoAccountTableFilter(InterventionTableFilter):
|
||||
else:
|
||||
return queryset
|
||||
|
||||
def _filter_only_show_unrecorded(self, queryset, name, value) -> QuerySet:
|
||||
def filter_only_show_unrecorded(self, queryset, name, value) -> QuerySet:
|
||||
""" Filters queryset depending on value of 'show_recorded' setting
|
||||
|
||||
Args:
|
||||
|
||||
Reference in New Issue
Block a user