show correct positions for establishment

This commit is contained in:
Kuroshini 2020-02-03 20:57:04 +03:00
parent b1cf952679
commit 94272609bf
2 changed files with 24 additions and 11 deletions

View File

@ -421,12 +421,20 @@ class EstEmployeeBackSerializer(EmployeeBackSerializers):
def get_positions(self, obj): def get_positions(self, obj):
establishment_id = self.request_kwargs.get('establishment_id') establishment_id = self.request_kwargs.get('establishment_id')
establishment = self.context['view'].kwargs['establishment_instance']
establishment_type = self.context['view'].kwargs['establishment_instance_type']
establishment_subtypes = self.context['view'].kwargs['establishment_instance_subtypes']
es_emp = EstablishmentEmployee.objects.filter( es_emp = EstablishmentEmployee.objects.filter(
employee=obj, employee=obj,
establishment_id=establishment_id, establishment_id=establishment_id,
).distinct().order_by('position_id') ).distinct().order_by('position_id').prefetch_related('position', 'position__establishment_type',
'position__establishment_subtype')
result = [] result = []
for item in es_emp: for item in es_emp:
if item.position.establishment_type == establishment_type or \
item.position.establishment_subtype in establishment_subtypes or \
(item.position.establishment_subtype is None and item.position.establishment_type is None):
# show only relevant for current establishment positions
result.append({ result.append({
'id': item.id, 'id': item.id,
'from_date': item.from_date, 'from_date': item.from_date,
@ -812,6 +820,7 @@ class EstablishmentBackOfficeWineSerializer(serializers.ModelSerializer):
write_only=True write_only=True
) )
"""BackOffice wine serializer""" """BackOffice wine serializer"""
class Meta: class Meta:
model = models.EstablishmentBackOfficeWine model = models.EstablishmentBackOfficeWine
fields = ( fields = (

View File

@ -482,6 +482,10 @@ class EstablishmentEmployeeListView(generics.ListCreateAPIView):
def get_queryset(self): def get_queryset(self):
establishment_id = self.kwargs['establishment_id'] establishment_id = self.kwargs['establishment_id']
establishment = get_object_or_404(models.Establishment, pk=establishment_id)
self.kwargs['establishment_instance'] = establishment
self.kwargs['establishment_instance_subtypes'] = list(establishment.establishment_subtypes.all())
self.kwargs['establishment_instance_type'] = establishment.establishment_type
return models.Employee.objects.filter( return models.Employee.objects.filter(
establishmentemployee__establishment_id=establishment_id, establishmentemployee__establishment_id=establishment_id,
).distinct() ).distinct()