show correct positions for establishment
This commit is contained in:
parent
b1cf952679
commit
94272609bf
|
|
@ -421,22 +421,30 @@ class EstEmployeeBackSerializer(EmployeeBackSerializers):
|
|||
|
||||
def get_positions(self, obj):
|
||||
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(
|
||||
employee=obj,
|
||||
establishment_id=establishment_id,
|
||||
).distinct().order_by('position_id')
|
||||
).distinct().order_by('position_id').prefetch_related('position', 'position__establishment_type',
|
||||
'position__establishment_subtype')
|
||||
result = []
|
||||
for item in es_emp:
|
||||
result.append({
|
||||
'id': item.id,
|
||||
'from_date': item.from_date,
|
||||
'to_date': item.to_date,
|
||||
'status': item.status,
|
||||
'position_id': item.position_id,
|
||||
'position_priority': item.position.priority,
|
||||
'position_index_name': item.position.index_name,
|
||||
'position_name_translated': item.position.name_translated,
|
||||
})
|
||||
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({
|
||||
'id': item.id,
|
||||
'from_date': item.from_date,
|
||||
'to_date': item.to_date,
|
||||
'status': item.status,
|
||||
'position_id': item.position_id,
|
||||
'position_priority': item.position.priority,
|
||||
'position_index_name': item.position.index_name,
|
||||
'position_name_translated': item.position.name_translated,
|
||||
})
|
||||
|
||||
return result
|
||||
|
||||
|
|
@ -812,6 +820,7 @@ class EstablishmentBackOfficeWineSerializer(serializers.ModelSerializer):
|
|||
write_only=True
|
||||
)
|
||||
"""BackOffice wine serializer"""
|
||||
|
||||
class Meta:
|
||||
model = models.EstablishmentBackOfficeWine
|
||||
fields = (
|
||||
|
|
|
|||
|
|
@ -482,6 +482,10 @@ class EstablishmentEmployeeListView(generics.ListCreateAPIView):
|
|||
|
||||
def get_queryset(self):
|
||||
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(
|
||||
establishmentemployee__establishment_id=establishment_id,
|
||||
).distinct()
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user