# 61 Filter code enhancement
* reorganizes code
This commit is contained in:
@@ -19,16 +19,18 @@ from konova.models import Parcel, District
|
||||
|
||||
|
||||
class AbstractTableFilter(django_filters.FilterSet):
|
||||
""" TableFilter for Intervention model
|
||||
""" Base TableFilter for all models
|
||||
|
||||
"""
|
||||
selection_filter = None
|
||||
query_filter = None
|
||||
checkbox_filter = None
|
||||
qs = None
|
||||
user = None
|
||||
|
||||
class Meta:
|
||||
abstract = True
|
||||
|
||||
def __init__(self, user: User, *args, **kwargs):
|
||||
self.user = user
|
||||
super().__init__(*args, **kwargs)
|
||||
|
||||
|
||||
class KeywordTableFilterMixin(django_filters.FilterSet):
|
||||
q = django_filters.Filter(
|
||||
@@ -292,9 +294,10 @@ class ShareableTableFilterMixin(django_filters.FilterSet):
|
||||
abstract = True
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
super().__init__(*args, **kwargs)
|
||||
self.user = kwargs.pop("user", None)
|
||||
if self.user is None:
|
||||
raise AttributeError("User must be set for further filtering!")
|
||||
super().__init__(*args, **kwargs)
|
||||
|
||||
def filter_show_all(self, queryset, name, value) -> QuerySet:
|
||||
""" Filters queryset depending on value of 'show_all' setting
|
||||
@@ -418,8 +421,7 @@ class ConservationOfficeTableFilterMixin(django_filters.FilterSet):
|
||||
return qs
|
||||
|
||||
|
||||
class SelectionTableFilter(AbstractTableFilter,
|
||||
RegistrationOfficeTableFilterMixin,
|
||||
class SelectionTableFilter(RegistrationOfficeTableFilterMixin,
|
||||
ConservationOfficeTableFilterMixin):
|
||||
""" TableFilter holding different filter options for selection related filtering
|
||||
|
||||
@@ -427,8 +429,7 @@ class SelectionTableFilter(AbstractTableFilter,
|
||||
pass
|
||||
|
||||
|
||||
class QueryTableFilter(AbstractTableFilter,
|
||||
KeywordTableFilterMixin,
|
||||
class QueryTableFilter(KeywordTableFilterMixin,
|
||||
FileNumberTableFilterMixin,
|
||||
GeoReferencedTableFilterMixin):
|
||||
""" TableFilter holding different filter options for query related filtering
|
||||
@@ -437,7 +438,7 @@ class QueryTableFilter(AbstractTableFilter,
|
||||
pass
|
||||
|
||||
|
||||
class CheckboxTableFilter(AbstractTableFilter, ShareableTableFilterMixin, RecordableTableFilterMixin):
|
||||
class CheckboxTableFilter(ShareableTableFilterMixin, RecordableTableFilterMixin):
|
||||
""" TableFilter holding different filter options for checkbox related filtering
|
||||
|
||||
"""
|
||||
|
||||
@@ -404,6 +404,7 @@ class AutocompleteTestCase(BaseViewTestCase):
|
||||
cls.atcmplt_code_comp_process = reverse("codes-process-type-autocomplete")
|
||||
cls.atcmplt_code_comp_reg_off = reverse("codes-registration-office-autocomplete")
|
||||
cls.atcmplt_code_comp_cons_off = reverse("codes-conservation-office-autocomplete")
|
||||
cls.atcmplt_code_share_user = reverse("share-user-autocomplete")
|
||||
|
||||
def _test_views_anonymous_user(self):
|
||||
# ATTENTION: As of the current state of django-autocomplete-light, there is no way to check on authenticated
|
||||
@@ -421,6 +422,7 @@ class AutocompleteTestCase(BaseViewTestCase):
|
||||
self.atcmplt_code_comp_process,
|
||||
self.atcmplt_code_comp_reg_off,
|
||||
self.atcmplt_code_comp_cons_off,
|
||||
self.atcmplt_code_share_user,
|
||||
]
|
||||
self.assert_url_fail(client, urls)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user