""" Author: Michel Peltriaux Organization: Struktur- und Genehmigungsdirektion Nord, Rhineland-Palatinate, Germany Contact: michel.peltriaux@sgdnord.rlp.de Created on: 29.07.21 """ from django.db.models import QuerySet from intervention.filters import InterventionTableFilter class CompensationTableFilter(InterventionTableFilter): """ TableFilter for compensations Based widely on InterventionTableFilter. Just some minor changes for Compensation model. """ def _filter_show_all(self, queryset, name, value) -> QuerySet: """ Filters queryset depending on value of 'show_all' setting Args: queryset (): name (): value (): Returns: """ if not value: return queryset.filter( intervention__users__in=[self.user], # requesting user has access ) else: return queryset def _filter_show_recorded(self, queryset, name, value) -> QuerySet: """ Filters queryset depending on value of 'show_recorded' setting Args: queryset (): name (): value (): Returns: """ if not value: return queryset.filter( intervention__recorded=None, ) else: return queryset class EcoAccountTableFilter(InterventionTableFilter): """ TableFilter for eco accounts Based widely on InterventionTableFilter. Just some minor changes for EcoAccount model. """ def _filter_show_all(self, queryset, name, value) -> QuerySet: """ Filters queryset depending on value of 'show_all' setting Args: queryset (): name (): value (): Returns: """ if not value: return queryset.filter( users__in=[self.user], # requesting user has access ) else: return queryset def _filter_show_recorded(self, queryset, name, value) -> QuerySet: """ Filters queryset depending on value of 'show_recorded' setting Args: queryset (): name (): value (): Returns: """ if not value: return queryset.filter( recorded=None, ) else: return queryset