public_mark filter for actual employee

This commit is contained in:
alex 2020-01-17 09:21:51 +03:00
parent 988de09efe
commit 38485292f9
2 changed files with 18 additions and 1 deletions

View File

@ -67,7 +67,8 @@ class EmployeeBackFilter(filters.FilterSet):
"""Employee filter set."""
search = filters.CharFilter(method='search_by_name_or_last_name')
position_id = filters.CharFilter(method='search_by_actual_position_id')
position_id = filters.NumberFilter(method='search_by_actual_position_id')
public_mark = filters.NumberFilter(method='search_by_public_mark')
toque_number = filters.NumberFilter(field_name='toque_number')
class Meta:
@ -77,6 +78,7 @@ class EmployeeBackFilter(filters.FilterSet):
fields = (
'search',
'position_id',
'public_mark',
'toque_number',
)
@ -92,6 +94,12 @@ class EmployeeBackFilter(filters.FilterSet):
return queryset.search_by_position_id(value)
return queryset
def search_by_public_mark(self, queryset, name, value):
"""Search by establishment public_mark."""
if value not in EMPTY_VALUES:
return queryset.search_by_public_mark(value)
return queryset
class EmployeeBackSearchFilter(EmployeeBackFilter):
def search_by_name_or_last_name(self, queryset, name, value):

View File

@ -1007,6 +1007,15 @@ class EmployeeQuerySet(models.QuerySet):
Q(establishmentemployee__to_date__isnull=True)
)
def search_by_public_mark(self, value):
"""Search by establishment public_mark."""
return self.filter(
Q(establishmentemployee__establishment__public_mark=value),
Q(establishmentemployee__from_date__lte=datetime.now()),
Q(establishmentemployee__to_date__gte=datetime.now()) |
Q(establishmentemployee__to_date__isnull=True)
)
def actual_establishment(self):
e = EstablishmentEmployee.objects.actual().filter(employee=self)
return self.prefetch_related(models.Prefetch('establishmentemployee_set',