toque number and employee for establishment

This commit is contained in:
alex 2020-01-20 14:20:46 +03:00
parent 92f349d8e7
commit beefc82d7b
4 changed files with 30 additions and 5 deletions

View File

@ -69,7 +69,7 @@ class EmployeeBackFilter(filters.FilterSet):
search = filters.CharFilter(method='search_by_name_or_last_name')
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')
toque_number = filters.NumberFilter(method='search_by_toque_number')
username = filters.CharFilter(method='search_by_username_or_name')
class Meta:
@ -102,6 +102,12 @@ class EmployeeBackFilter(filters.FilterSet):
return queryset.search_by_public_mark(value)
return queryset
def search_by_toque_number(self, queryset, name, value):
"""Search by establishment toque_number."""
if value not in EMPTY_VALUES:
return queryset.search_by_toque_number(value)
return queryset
def search_by_username_or_name(self, queryset, name, value):
"""Search by username or name."""
if value not in EMPTY_VALUES:

View File

@ -1036,16 +1036,22 @@ class EmployeeQuerySet(models.QuerySet):
def search_by_position_id(self, value):
"""Search by position_id."""
return self.search_by_actual_employee().filter(
return self.filter(
Q(establishmentemployee__position_id=value),
)
def search_by_public_mark(self, value):
"""Search by establishment public_mark."""
return self.search_by_actual_employee().filter(
return self.filter(
Q(establishmentemployee__establishment__public_mark=value),
)
def search_by_toque_number(self, value):
"""Search by establishment toque_number."""
return self.filter(
Q(establishmentemployee__establishment__toque_number=value),
)
def search_by_username_or_name(self, value):
"""Search by username or name."""
return self.search_by_actual_employee().filter(

View File

@ -341,9 +341,16 @@ class EstablishmentEmployeeBackSerializer(serializers.ModelSerializer):
class EstEmployeeBackSerializer(EmployeeBackSerializers):
@property
def request_kwargs(self):
"""Get url kwargs from request."""
return self.context.get('request').parser_context.get('kwargs')
def get_positions(self, obj):
establishment_id = self.request_kwargs.get('establishment_id')
es_emp = EstablishmentEmployee.objects.filter(
employee=obj
employee=obj,
establishment_id=establishment_id,
).distinct().order_by('position_id')
result = []
for item in es_emp:

View File

@ -31,4 +31,10 @@
# оптимизация изображений
/manage.py news_optimize_images # сжимает картинки в описаниях новостей
/manage.py update_establishment_image_urls # удаляет неотображаемые картинки из модели заведения
/manage.py update_establishment_image_urls # удаляет неотображаемые картинки из модели заведения
# сотрудники с позициями для заведений
./manage.py add_employee
./manage.py add_position
./manage.py add_empl_position
./manage.py update_employee