username, first_name, last_name filter for employee
This commit is contained in:
parent
38485292f9
commit
f15a93f760
|
|
@ -70,6 +70,7 @@ class EmployeeBackFilter(filters.FilterSet):
|
|||
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')
|
||||
username = filters.CharFilter(method='search_by_username_or_name')
|
||||
|
||||
class Meta:
|
||||
"""Meta class."""
|
||||
|
|
@ -80,6 +81,7 @@ class EmployeeBackFilter(filters.FilterSet):
|
|||
'position_id',
|
||||
'public_mark',
|
||||
'toque_number',
|
||||
'username',
|
||||
)
|
||||
|
||||
def search_by_name_or_last_name(self, queryset, name, value):
|
||||
|
|
@ -100,6 +102,12 @@ class EmployeeBackFilter(filters.FilterSet):
|
|||
return queryset.search_by_public_mark(value)
|
||||
return queryset
|
||||
|
||||
def search_by_username_or_name(self, queryset, name, value):
|
||||
"""Search by username or name."""
|
||||
if value not in EMPTY_VALUES:
|
||||
return queryset.search_by_username_or_name(value)
|
||||
return queryset
|
||||
|
||||
|
||||
class EmployeeBackSearchFilter(EmployeeBackFilter):
|
||||
def search_by_name_or_last_name(self, queryset, name, value):
|
||||
|
|
|
|||
|
|
@ -998,22 +998,32 @@ class EmployeeQuerySet(models.QuerySet):
|
|||
"""Search by name or last_name."""
|
||||
return self._generic_search(value, ['name', 'last_name'])
|
||||
|
||||
def search_by_position_id(self, value):
|
||||
"""Search by position_id."""
|
||||
def search_by_actual_employee(self):
|
||||
"""Search by actual employee."""
|
||||
return self.filter(
|
||||
Q(establishmentemployee__position_id=value),
|
||||
Q(establishmentemployee__from_date__lte=datetime.now()),
|
||||
Q(establishmentemployee__to_date__gte=datetime.now()) |
|
||||
Q(establishmentemployee__to_date__isnull=True)
|
||||
)
|
||||
|
||||
def search_by_position_id(self, value):
|
||||
"""Search by position_id."""
|
||||
return self.search_by_actual_employee().filter(
|
||||
Q(establishmentemployee__position_id=value),
|
||||
)
|
||||
|
||||
def search_by_public_mark(self, value):
|
||||
"""Search by establishment public_mark."""
|
||||
return self.filter(
|
||||
return self.search_by_actual_employee().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 search_by_username_or_name(self, value):
|
||||
"""Search by username or name."""
|
||||
return self.search_by_actual_employee().filter(
|
||||
Q(user__username__icontains=value) |
|
||||
Q(user__first_name__icontains=value) |
|
||||
Q(user__last_name__icontains=value)
|
||||
)
|
||||
|
||||
def actual_establishment(self):
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user