示例#1
0
 def get(self, request, *args, **kwargs):
     data = request.headers
     INN = data['INN']
     user = request.my_user
     get_all = data.get('get_all')
     if get_all:
         try:
             school = find_school_and_allow_user(INN, user)
             otherorders = school.otherorders_set.select_related()
         except BaseException as ex:
             logger.exception(ex)
             return Response(status=status.HTTP_500_INTERNAL_SERVER_ERROR,
                             data={"detail": ex.__str__()})
         res = [OtherOrdersSerializer(i).data for i in otherorders]
         return Response({'otherorders': res})
     else:
         try:
             order_id = int(data['order-id'])
             school = find_school_and_allow_user(INN, user)
             otherorders = school.otherorders_set.get_or_create(id=order_id)[0]
         except BaseException as ex:
             logger.exception(ex)
             return Response(status=status.HTTP_500_INTERNAL_SERVER_ERROR,
                             data={"detail": ex.__str__()})
         otherorders_serializer = OtherOrdersSerializer(otherorders)
         return Response({'otherorders': otherorders_serializer.data})
示例#2
0
 def get(self, request, *args, **kwargs):
     data = request.headers
     INN = data['INN']
     user = request.my_user
     get_all = data.get('get_all')
     if get_all:
         try:
             school = find_school_and_allow_user(INN, user)
             mandates = school.mandatecouncil_set.select_related()
         except BaseException as ex:
             logger.exception(ex)
             return Response(status=status.HTTP_500_INTERNAL_SERVER_ERROR,
                             data={"detail": ex.__str__()})
         res = [MandateCouncilSerializer(i).data for i in mandates]
         return Response({'mandates': res})
     else:
         try:
             mandate_id = int(data['mandate-id'])
             school = find_school_and_allow_user(INN, user)
             mandate = school.mandatecouncil_set.get_or_create(
                 id=mandate_id)[0]
         except BaseException as ex:
             logger.exception(ex)
             return Response(status=status.HTTP_500_INTERNAL_SERVER_ERROR,
                             data={"detail": ex.__str__()})
         mandate_serializer = MandateCouncilSerializer(mandate)
         return Response({'mandate': mandate_serializer.data})
示例#3
0
    def post(self, request, *args, **kwargs):
        data = request.headers
        INN = data['INN']
        doc_id = data['doc-id']
        if request.FILES:
            file = request.FILES['file']
        else:
            return Response(status=status.HTTP_500_INTERNAL_SERVER_ERROR,
                            data={"detail": "File is not provided"})
        user = request.my_user
        try:
            school = find_school_and_allow_user(INN, user)
            docs = school.document_set.get_or_create()[0]

        except BaseException as ex:
            logger.exception(ex)
            return Response(status=status.HTTP_500_INTERNAL_SERVER_ERROR,
                            data={"detail": ex.__str__()})
        if doc_id == 'passport_BTI':
            docs.passport_BTI = file
        elif doc_id == 'topographic_plan':
            docs.topographic_plan = file
        elif doc_id == 'teplosnabj_MK':
            docs.teplosnabj_MK = file
        elif doc_id == 'vodosnabj_MK':
            docs.vodosnabj_MK = file
        elif doc_id == 'electrosnabj_MK':
            docs.electrosnabj_MK = file
        else:
            return Response(status=status.HTTP_500_INTERNAL_SERVER_ERROR,
                            data={"detail": "No such doc_id"})
        docs.save()
        return Response(status=status.HTTP_200_OK)
示例#4
0
 def put(self, request, *args, **kwargs):
     data: dict = request.headers
     data1: dict = request.data
     logger.debug(data1)
     INN = data['INN']
     user = request.my_user
     file = None
     if request.FILES:
         file = request.FILES['file']
     try:
         mandate_id = data.get('mandate-id')
         school = find_school_and_allow_user(INN, user)
         if mandate_id:
             mandate_id = int(data['mandate-id'])
             mandate = school.mandatecouncil_set.get_or_create(
                 id=mandate_id)[0]
         else:
             mandate = school.mandatecouncil_set.create()[0]
     except BaseException as ex:
         logger.exception(ex)
         return Response(status=status.HTTP_500_INTERNAL_SERVER_ERROR,
                         data={"detail": ex.__str__()})
     mandate.update(data1)
     if file:
         mandate.file = file
     mandate.save()
     return Response(status=status.HTTP_200_OK)
示例#5
0
 def get(self, request):
     data = request.headers
     INN = data['INN']
     user = request.my_user
     try:
         school = find_school_and_allow_user(INN, user)
     except BaseException as ex:
         logger.exception(ex)
         return Response(status=status.HTTP_500_INTERNAL_SERVER_ERROR,
                         data={"detail": ex.__str__()})
     director = get_director(school)
     bookkeeper = get_bookkeeper(school)
     responsible_for_filling = get_updater(school)
     zavhoz = get_zavhoz(school)
     ans = {}
     ans.update({
         get_model_name(director):
         PersonalAllInfoSerializer(director, many=False).data
     })
     ans.update({
         get_model_name(zavhoz):
         PersonalAllInfoSerializer(zavhoz, many=False).data
     })
     ans.update({
         get_model_name(bookkeeper):
         PersonalAllInfoSerializer(bookkeeper, many=False).data
     })
     ans.update({
         get_model_name(responsible_for_filling):
         PersonalAllInfoSerializer(responsible_for_filling, many=False).data
     })
     return Response(data=ans)
示例#6
0
    def put(self, request):
        data = request.data
        INN = data['INN']
        user = request.my_user
        try:
            school = find_school_and_allow_user(INN, user)
        except BaseException as ex:
            logger.exception(ex)
            return Response(status=status.HTTP_500_INTERNAL_SERVER_ERROR,
                            data={"detail": ex.__str__()})
        director = get_director(school)
        bookkeeper = get_bookkeeper(school)
        responsible_for_filling = get_updater(school)
        zavhoz = get_zavhoz(school)
        try:
            director.update(data[get_model_name(director)])
            zavhoz.update(data.pop(get_model_name(zavhoz)))
            bookkeeper.update(data.pop(get_model_name(bookkeeper)))
            responsible_for_filling.update(
                data.pop(get_model_name(responsible_for_filling)))
        except BaseException as ex:
            return Response(status=status.HTTP_500_INTERNAL_SERVER_ERROR,
                            data={"detail": ex.__str__()})

        return Response(status=status.HTTP_200_OK)
示例#7
0
    def delete(self, request, *args, **kwargs):
        data = request.headers
        INN = data['INN']
        doc_id = data['doc_id']
        user = request.my_user
        try:
            school = find_school_and_allow_user(INN, user)
            docs = school.document_set.get()
        except BaseException as ex:
            logger.exception(ex)
            return Response(status=status.HTTP_500_INTERNAL_SERVER_ERROR,
                            data={"detail": ex.__str__()})

        if doc_id == 'passport_BTI':
            docs.passport_BTI.delete()
        elif doc_id == 'topographic_plan':
            docs.topographic_plan.delete()
        elif doc_id == 'teplosnabj_MK':
            docs.teplosnabj_MK.delete()
        elif doc_id == 'vodosnabj_MK':
            docs.vodosnabj_MK.delete()
        elif doc_id == 'electrosnabj_MK':
            docs.electrosnabj_MK.delete()
        else:
            return Response(status=status.HTTP_500_INTERNAL_SERVER_ERROR,
                            data={"detail": "No such doc_id"})
        docs.save()
        return Response(status=status.HTTP_200_OK)
示例#8
0
 def post(self, request: Request):
     data: dict = request.data
     try:
         data.pop('school')
     except:
         pass
     INN = data.pop('INN')
     user = request.my_user
     if user is None:
         return Response(status=status.HTTP_401_UNAUTHORIZED,
                         data={'detail': 'You need to authorize'})
     try:
         school = find_school_and_allow_user(INN=INN, user=user)
     except BaseException as ex:
         return Response(status=status.HTTP_500_INTERNAL_SERVER_ERROR,
                         data={'detail': ex.__str__()})
     try:
         building = Building.objects.create(school=school)
         building.update(data=data)
         building.save()
         logger.success(str.format("{0} Добавил информацию о зданиях {1}\n{2}", user, school, building))
         return Response(status=status.HTTP_200_OK)
     except BaseException as ex:
         try:
             building.delete()
         except:
             pass
         return Response(status=status.HTTP_501_NOT_IMPLEMENTED,
                         data={'detail': ex.__str__()})
示例#9
0
 def get(self, request, *args, **kwargs):
     data = request.headers
     INN = data['INN']
     user = request.my_user
     try:
         school = find_school_and_allow_user(INN, user)
         docs = school.document_set.get_or_create()[0]
     except BaseException as ex:
         logger.exception(ex)
         return Response(status=status.HTTP_500_INTERNAL_SERVER_ERROR,
                         data={"detail": ex.__str__()})
     documents_serializer = DocumentsSerializer(docs)
     return Response({'documents': documents_serializer.data})
示例#10
0
 def get(self, request):
     data = request.headers
     INN = data['INN']
     user = request.my_user
     try:
         school = find_school_and_allow_user(INN, user)
     except BaseException as ex:
         logger.exception(ex)
         return Response(status=status.HTTP_500_INTERNAL_SERVER_ERROR,
                         data={"detail": ex.__str__()})
     updater = get_updater(school)
     prikaz = str(updater.prikaz)
     return Response({'prikaz': prikaz})
示例#11
0
 def get(self, request):
     data = request.headers
     INN = data['INN']
     user = request.my_user
     try:
         school = find_school_and_allow_user(INN, user)
     except BaseException as ex:
         logger.exception(ex)
         return Response(status=status.HTTP_500_INTERNAL_SERVER_ERROR,
                         data={"detail": ex.__str__()})
     school_serializer = SchoolAllInfoSerializer(school, many=False)
     logger.success(str.format("{0} Получил информацию о {1}", user,
                               school))
     return Response({'school': school_serializer.data})
示例#12
0
 def delete(self, request, *args, **kwargs):
     data = request.headers
     INN = data['INN']
     user = request.my_user
     try:
         mandate_id = int(data['mandate-id'])
         school = find_school_and_allow_user(INN, user)
         mandate = school.mandatecouncil_set.get(id=mandate_id)
     except BaseException as ex:
         logger.exception(ex)
         return Response(status=status.HTTP_500_INTERNAL_SERVER_ERROR,
                         data={"detail": ex.__str__()})
     mandate.delete()
     return Response(status=status.HTTP_200_OK)
示例#13
0
 def get(self, request):
     data = request.headers
     print(data)
     INN = data['INN']
     user = request.my_user
     try:
         school = find_school_and_allow_user(INN, user)
         requisites = get_requisites(school)
     except BaseException as ex:
         logger.exception(ex)
         return Response(status=status.HTTP_500_INTERNAL_SERVER_ERROR,
                         data={"detail": ex.__str__()})
     requisites_serializer = RequisitesSerializer(requisites, many=False)
     return Response({'requisites': requisites_serializer.data})
示例#14
0
 def put(self, request):
     data: dict = request.data
     INN = data['INN']
     user = request.my_user
     try:
         school = find_school_and_allow_user(INN, user)
     except BaseException as ex:
         logger.exception(ex)
         return Response(status=status.HTTP_500_INTERNAL_SERVER_ERROR,
                         data={"detail": ex.__str__()})
     try:
         school.update(data)
     except BaseException as ex:
         logger.exception(ex)
         return Response(status=status.HTTP_500_INTERNAL_SERVER_ERROR,
                         data={'detail': ex.__str__()})
     logger.success(str.format("{0} Обновил информацию о {1}", user,
                               school))
     return Response(status=status.HTTP_200_OK)
示例#15
0
    def put(self, request):
        data = request.data
        INN = data['INN']
        user = request.my_user
        try:
            school = find_school_and_allow_user(INN, user)
        except BaseException as ex:
            logger.exception(ex)
            return Response(status=status.HTTP_500_INTERNAL_SERVER_ERROR,
                            data={"detail": ex.__str__()})
        prikaz = data.pop('prikaz')[0]

        try:
            if prikaz:
                get_and_update_updater(school, prikaz)
        except BaseException as ex:
            return Response(status=status.HTTP_500_INTERNAL_SERVER_ERROR,
                            data={"detail": ex.__str__()})

        return Response(status=status.HTTP_200_OK)
示例#16
0
 def get(self, request):
     data = request.headers
     INN = data['INN']
     user = request.my_user
     try:
         school = find_school_and_allow_user(INN, user)
     except BaseException as ex:
         logger.exception(ex)
         return Response(status=status.HTTP_500_INTERNAL_SERVER_ERROR,
                         data={"detail": ex.__str__()})
     try:
         buildings = list(filter(lambda b: b.school == school, Building.objects.all()))
     except BaseException as ex:
         logger.exception(ex)
         return Response(data=[])
     ans = []
     buildings_serializer = BuildingSerializer(buildings, many=True)
     ans.append(buildings_serializer.data)
     logger.success(str.format("{0} Получил информацию о зданиях {1}", user, school))
     return Response(data=ans)
示例#17
0
 def post(self, request, *args, **kwargs):
     data = request.headers
     data2 = request.data
     data2: dict = data2.dict()
     data2.pop('file')
     INN = data['INN']
     user = request.my_user
     date_order = data2.get('date_order') if data2.get('date_order')  != 'null' else None
     type_work = data2.get('type_work')
     summa = data2.get('summa') if data2.get('summa') != 'null' else None
     period_execution = data2.get('period_execution') if data2.get('period_execution') != 'null' else None
     vkluchenie = True if data2.get('vkluchenie') == 'true' else False
     executed = True if data2.get('executed') == 'true' else False
     order = None
     if request.FILES:
         order = request.FILES['file']
     try:
         # order_id = int(data['order-id'])
         school = find_school_and_allow_user(INN, user)
         rospotreb = school.rospotreb_set.create()
         # rospotreb.school = school
         # rospotreb = school.rospotreb_set.get_or_create(id=order_id)[0]
     except BaseException as ex:
         logger.exception(ex)
         return Response(status=status.HTTP_500_INTERNAL_SERVER_ERROR,
                         data={"detail": ex.__str__()})
     try:
         rospotreb.date_order = date_order
         rospotreb.type_work = type_work
         rospotreb.period_execution = period_execution
         rospotreb.vkluchenie = vkluchenie
         rospotreb.executed = executed
         rospotreb.order = order
         rospotreb.summa = summa
     except BaseException as ex:
         logger.exception(ex)
         return Response(status=status.HTTP_500_INTERNAL_SERVER_ERROR,
                         data={"detail": ex.__str__()})
     rospotreb.save()
     return Response(status=status.HTTP_200_OK)
示例#18
0
 def get(self, request):
     data = request.headers
     INN = data['INN']
     user = request.my_user
     try:
         school = find_school_and_allow_user(INN, user)
     except BaseException as ex:
         logger.exception(ex)
         return Response(status=status.HTTP_500_INTERNAL_SERVER_ERROR,
                         data={"detail": ex.__str__()})
     buildings = school.building_set.all()
     ans: dict = {}
     for building in buildings:
         temp_info = building.temperature_set.all()
         ans.update({
             building.id:
             TemperatureSerializer(temp_info, many=True).data
         })
     logger.success(
         str.format("{0} Получил информацию о температурном режиме {1}",
                    user, school))
     return Response(data=ans)