diff --git a/apps/opm/serializers.py b/apps/opm/serializers.py index 73fe75cd..b5c6ab9c 100644 --- a/apps/opm/serializers.py +++ b/apps/opm/serializers.py @@ -1,6 +1,6 @@ from apps.hrm.models import Certificate from apps.opm.models import GasCheck, Operation, Opl, OplCate, OplCert, OplWorker -from apps.system.serializers import DictSerializer, DictSimpleSerializer +from apps.system.serializers import DictSerializer, DictSimpleSerializer, UserSimpleSerializer from apps.utils.serializers import CustomModelSerializer from apps.utils.constants import EXCLUDE_FIELDS from rest_framework import serializers @@ -100,11 +100,18 @@ class OplWorkerUpdateSerializer(CustomModelSerializer): return oplw -class OplWorkerSerializer(): +class OplWorkerSerializer(CustomModelSerializer): + worker_ = UserSimpleSerializer(source='worker', read_only=True) + certificates_ = serializers.SerializerMethodField() + class Meta: model = OplWorker fields = '__all__' + def get_certificates_(self, obj): + cs = OplCert.objects.filter(opl_worker=obj) + return cs.values('certificate', 'name', 'type', 'number', 'issue_date', 'expiration_date', 'review_date', 'file') + class GasCheckCreateUpdateSerializer(CustomModelSerializer): class Meta: diff --git a/apps/opm/views.py b/apps/opm/views.py index 2533ade2..46d87e1b 100644 --- a/apps/opm/views.py +++ b/apps/opm/views.py @@ -1,7 +1,7 @@ from django.shortcuts import render from rest_framework.response import Response from apps.opm.models import GasCheck, Operation, Opl, OplCate, OplWorker -from apps.opm.serializers import GasCheckCreateUpdateSerializer, GasCheckSerializer, OperationCreateUpdateSerializer, OperationSerializer, OplCateCreateUpdateSerializer, OplCateDetailSerializer, OplCateSerializer, OplCreateUpdateSerializer, OplSerializer, OplWorkerCreateSerializer, OplWorkerUpdateSerializer +from apps.opm.serializers import GasCheckCreateUpdateSerializer, GasCheckSerializer, OperationCreateUpdateSerializer, OperationSerializer, OplCateCreateUpdateSerializer, OplCateDetailSerializer, OplCateSerializer, OplCreateUpdateSerializer, OplSerializer, OplWorkerCreateSerializer, OplWorkerSerializer, OplWorkerUpdateSerializer from apps.utils.viewsets import CustomGenericViewSet, CustomModelViewSet from rest_framework.exceptions import ParseError from rest_framework.mixins import CreateModelMixin, ListModelMixin, DestroyModelMixin @@ -64,7 +64,7 @@ class OplWorkerViewSet(CustomModelViewSet): queryset = OplWorker.objects.all() create_serializer_class = OplWorkerCreateSerializer update_serializer_class = OplWorkerUpdateSerializer - serializer_class = OplSerializer + serializer_class = OplWorkerSerializer def destroy(self, request, *args, **kwargs): obj = self.get_object()