Пример #1
0
 def put(self, request: Request):
     data: dict = request.data
     user = request.my_user
     if user is None:
         return Response(status=status.HTTP_401_UNAUTHORIZED,
                         data={'detail': 'You need to authorize'})
     temp_id = data.pop('id')
     data.pop('building')
     temp_obj = Temperature.objects.get(id=temp_id)
     try:
         find_building_and_allow_user(temp_obj.building_id, user)
         temp_obj.update(data)
         return Response(status=status.HTTP_200_OK)
     except BaseException as ex:
         return Response(status=status.HTTP_500_INTERNAL_SERVER_ERROR,
                         data={'detail': ex.__str__()})
Пример #2
0
    def delete(self, request):
        data: dict = request.headers['data']
        if isinstance(data, str):
            data = json.loads(data)
        user = request.my_user
        if user is None:
            return Response(status=status.HTTP_401_UNAUTHORIZED,
                            data={'detail': 'You need to authorize'})
        temp_date = data['date']
        building_id = data['building']
        temp_objs = Temperature.objects.all()
        temp_objs = list(
            filter(lambda t: t.date == parse_date(temp_date), temp_objs))

        temp_objs = list(
            filter(lambda t: t.building.id == int(building_id), temp_objs))

        building_obj = find_building_and_allow_user(building_id, user)
        try:
            if isinstance(temp_objs, list):
                for temp_obj in temp_objs:
                    temp_obj.delete()
            else:
                temp_objs.delete()
                logger.success(
                    str.format(
                        "{0} Добавил информацию о температуре здания {1} по дате {2}\n",
                        user, building_obj, temp_date))
            return Response(status=status.HTTP_200_OK)
        except BaseException as ex:
            return Response(status=status.HTTP_500_INTERNAL_SERVER_ERROR,
                            data={'detail': ex.__str__()})
Пример #3
0
 def put(self, request):
     data = request.data
     building_id = data['id']
     user = request.my_user
     if request.FILES:
         files = request.FILES
         data.update(files)
     if data.get('ground_loop'):
         data: dict = data.dict()
         data['ground_loop'] = True if data[
             'ground_loop'] == 'true' else False if data[
                 'ground_loop'] == 'false' else None
     try:
         building = find_building_and_allow_user(id=building_id, user=user)
         eng_communication = EngineeringCommunication.objects.get_or_create(
             building=building)
         if eng_communication[1]:
             building.engineering_communication = eng_communication[0]
             building.save()
         eng_communication = eng_communication[0]
         eng_communication.update(data=data)
     except BaseException as ex:
         logger.exception(ex)
         return Response(status=status.HTTP_500_INTERNAL_SERVER_ERROR,
                         data={"detail": ex.__str__()})
     return Response(status=status.HTTP_200_OK)
Пример #4
0
 def get(self, request):
     data = request.headers
     id = data['id']
     user = request.my_user
     try:
         building = find_building_and_allow_user(id, user)
     except BaseException as ex:
         logger.exception(ex)
         return Response(status=status.HTTP_500_INTERNAL_SERVER_ERROR,
                         data={"detail": ex.__str__()})
     ans = []
     building_serializer = BuildingAllInfoSerializer(building, many=False)
     ans.append(building_serializer.data)
     logger.success(str.format("{0} Получил информацию о здании {1}", user, building))
     return Response(data=ans)
Пример #5
0
 def delete(self, request):
     data = request.headers
     id = data['id']
     user = request.my_user
     try:
         building = find_building_and_allow_user(id, user)
     except BaseException as ex:
         logger.exception(ex)
         return Response(status=status.HTTP_500_INTERNAL_SERVER_ERROR,
                         data={"detail": ex.__str__()})
     try:
         building.delete()
     except BaseException as ex:
         logger.exception(ex)
         return Response(status=status.HTTP_500_INTERNAL_SERVER_ERROR,
                         data={"detail": ex.__str__()})
     return Response(status=status.HTTP_200_OK)
Пример #6
0
 def get(self, request):
     data = request.headers
     building_id = data['id']
     user = request.my_user
     try:
         building = find_building_and_allow_user(building_id, user)
         safety_sys = SafetySystem.objects.get_or_create(building=building)
         if safety_sys[1]:
             building.safety_system = safety_sys[0]
             building.save()
         safety_sys = safety_sys[0]
     except BaseException as ex:
         logger.exception(ex)
         return Response(status=status.HTTP_500_INTERNAL_SERVER_ERROR,
                         data={"detail": ex.__str__()})
     ans = [SafetySystemSerializer(safety_sys, many=False).data]
     return Response(status=status.HTTP_200_OK, data=ans)
Пример #7
0
 def put(self, request):
     data = request.data
     building_id = data['id']
     user = request.my_user
     try:
         building = find_building_and_allow_user(id=building_id, user=user)
         safety_sys = SafetySystem.objects.get_or_create(building=building)
         if safety_sys[1]:
             building.safety_systems = safety_sys[0]
             building.save()
         safety_sys = safety_sys[0]
         safety_sys.update(data=data)
     except BaseException as ex:
         logger.exception(ex)
         return Response(status=status.HTTP_500_INTERNAL_SERVER_ERROR,
                         data={"detail": ex.__str__()})
     return Response(status=status.HTTP_200_OK)
Пример #8
0
 def get(self, request):
     data = request.headers
     building_id = data['id']
     user = request.my_user
     try:
         building = find_building_and_allow_user(building_id, user)
         ter_imp = TerritoryImprovement.objects.get_or_create(
             building=building)
         if ter_imp[1]:
             building.territory_improvement = ter_imp[0]
             building.save()
         ter_imp = ter_imp[0]
     except BaseException as ex:
         logger.exception(ex)
         return Response(status=status.HTTP_500_INTERNAL_SERVER_ERROR,
                         data={"detail": ex.__str__()})
     ans = [TerritoryImprovementSerializer(ter_imp, many=False).data]
     return Response(status=status.HTTP_200_OK, data=ans)
Пример #9
0
 def put(self, request):
     data = request.data
     building_id = data['id']
     user = request.my_user
     try:
         building = find_building_and_allow_user(id=building_id, user=user)
         sport_fac = SportsFacilities.objects.get_or_create(
             building=building)
         if sport_fac[1]:
             building.sports_facilities = sport_fac[0]
             building.save()
         sport_fac = sport_fac[0]
         sport_fac.update(data=data)
     except BaseException as ex:
         logger.exception(ex)
         return Response(status=status.HTTP_500_INTERNAL_SERVER_ERROR,
                         data={"detail": ex.__str__()})
     return Response(status=status.HTTP_200_OK)
Пример #10
0
 def put(self, request):
     data = request.data
     building_id = data['id']
     user = request.my_user
     try:
         building = find_building_and_allow_user(id=building_id, user=user)
         ter_imp = TerritoryImprovement.objects.get_or_create(
             building=building)
         if ter_imp[1]:
             building.territory_improvement = ter_imp[0]
             building.save()
         ter_imp = ter_imp[0]
         ter_imp.update(data=data)
     except BaseException as ex:
         logger.exception(ex)
         return Response(status=status.HTTP_500_INTERNAL_SERVER_ERROR,
                         data={"detail": ex.__str__()})
     return Response(status=status.HTTP_200_OK)
Пример #11
0
 def put(self, request):
     data = request.data
     building_id = data['id']
     user = request.my_user
     try:
         building = find_building_and_allow_user(id=building_id, user=user)
         access_environ = AccessibleEnvironment.objects.get_or_create(
             building=building)
         if access_environ[1]:
             building.accessible_environment = access_environ[0]
             building.save()
         access_environ = access_environ[0]
         access_environ.update(data=data)
     except BaseException as ex:
         logger.exception(ex)
         return Response(status=status.HTTP_500_INTERNAL_SERVER_ERROR,
                         data={"detail": ex.__str__()})
     return Response(status=status.HTTP_200_OK)
Пример #12
0
 def get(self, request):
     data = request.headers
     building_id = data['id']
     user = request.my_user
     try:
         building = find_building_and_allow_user(building_id, user)
         sport_fac = SportsFacilities.objects.get_or_create(
             building=building)
         if sport_fac[1]:
             building.sports_facilities = sport_fac[0]
             building.save()
         sport_fac = sport_fac[0]
     except BaseException as ex:
         logger.exception(ex)
         return Response(status=status.HTTP_500_INTERNAL_SERVER_ERROR,
                         data={"detail": ex.__str__()})
     ans = [SportsFacilitiesSerializer(sport_fac, many=False).data]
     return Response(status=status.HTTP_200_OK, data=ans)
Пример #13
0
 def delete(self, request):
     data = request.headers
     building_id = data['id']
     user = request.my_user
     doc_id = data['docId']
     try:
         building = find_building_and_allow_user(building_id, user)
         building_constr = BuildingConstruction.objects.get_or_create(
             building=building)
         if building_constr[1]:
             building.building_construction = building_constr[0]
             building.save()
         building_constr = building_constr[0]
     except BaseException as ex:
         logger.exception(ex)
         return Response(status=status.HTTP_500_INTERNAL_SERVER_ERROR,
                         data={"detail": ex.__str__()})
     if doc_id == 'blind_area_act':
         building_constr.blind_area_act.delete()
     elif doc_id == 'blind_area_photo':
         building_constr.blind_area_photo.delete()
     elif doc_id == 'facade_photo':
         building_constr.facade_photo.delete()
     elif doc_id == 'facade_act':
         building_constr.facade_act.delete()
     elif doc_id == 'attic_overlapping_act':
         building_constr.attic_overlapping_act.delete()
     elif doc_id == 'basement_overlapping_act':
         building_constr.basement_overlapping_act.delete()
     elif doc_id == 'roof_photo':
         building_constr.roof_photo.delete()
     elif doc_id == 'roof_act':
         building_constr.roof_act.delete()
     elif doc_id == 'window_act':
         building_constr.window_act.delete()
     elif doc_id == 'foundation_photo':
         building_constr.foundation_photo.delete()
     elif doc_id == 'foundation_act':
         building_constr.foundation_act.delete()
     else:
         return Response(status=status.HTTP_500_INTERNAL_SERVER_ERROR,
                         data={"detail": "No such doc_id"})
     building_constr.save()
     return Response(status=status.HTTP_200_OK)
Пример #14
0
 def get(self, request):
     data = request.headers
     building_id = data['id']
     user = request.my_user
     try:
         building = find_building_and_allow_user(building_id, user)
         access_environ = AccessibleEnvironment.objects.get_or_create(
             building=building)
         if access_environ[1]:
             building.accessible_environment = access_environ[0]
             building.save()
         access_environ = access_environ[0]
     except BaseException as ex:
         logger.exception(ex)
         return Response(status=status.HTTP_500_INTERNAL_SERVER_ERROR,
                         data={"detail": ex.__str__()})
     ans = [
         AccessibleEnvironmentSerializer(access_environ, many=False).data
     ]
     return Response(status=status.HTTP_200_OK, data=ans)
Пример #15
0
 def get(self, request):
     data = request.headers
     building_id = data['id']
     user = request.my_user
     try:
         building = find_building_and_allow_user(building_id, user)
         building_constr = BuildingConstruction.objects.get_or_create(
             building=building)
         if building_constr[1]:
             building.building_construction = building_constr[0]
             building.save()
         building_constr = building_constr[0]
     except BaseException as ex:
         logger.exception(ex)
         return Response(status=status.HTTP_500_INTERNAL_SERVER_ERROR,
                         data={"detail": ex.__str__()})
     ans = [
         BuildingConstructionSerializer(building_constr, many=False).data
     ]
     return Response(status=status.HTTP_200_OK, data=ans)
Пример #16
0
 def delete(self, request):
     data = request.headers
     building_id = data['id']
     user = request.my_user
     doc_id = data['docId']
     try:
         building = find_building_and_allow_user(building_id, user)
         ind_areas = IndoorAreas.objects.get_or_create(building=building)
         if ind_areas[1]:
             building.indoor_areas = ind_areas[0]
             building.save()
         ind_areas = ind_areas[0]
     except BaseException as ex:
         logger.exception(ex)
         return Response(status=status.HTTP_500_INTERNAL_SERVER_ERROR,
                         data={"detail": ex.__str__()})
     if doc_id == 'admin_room_act':
         ind_areas.admin_room_act.delete()
     elif doc_id == 'auditorium_act':
         ind_areas.auditorium_act.delete()
     elif doc_id == 'bathroom_act':
         ind_areas.bathroom_act.delete()
     elif doc_id == 'classroom_act':
         ind_areas.classroom_act.delete()
     elif doc_id == 'corridors_act':
         ind_areas.corridors_act.delete()
     elif doc_id == 'emergency_exit_act':
         ind_areas.emergency_exit_act.delete()
     elif doc_id == 'food_block_act':
         ind_areas.food_block_act.delete()
     elif doc_id == 'gym_act':
         ind_areas.gym_act.delete()
     elif doc_id == 'laundry_act':
         ind_areas.laundry_act.delete()
     elif doc_id == 'pantry_act':
         ind_areas.pantry_act.delete()
     else:
         return Response(status=status.HTTP_500_INTERNAL_SERVER_ERROR,
                         data={"detail": "No such doc_id"})
     ind_areas.save()
     return Response(status=status.HTTP_200_OK)
Пример #17
0
 def put(self, request):
     data = request.data
     building_id = data['id']
     user = request.my_user
     if request.FILES:
         files = request.FILES
         data.update(files)
     data = find_and_change_bool_vars(data)
     try:
         building = find_building_and_allow_user(id=building_id, user=user)
         ind_areas = IndoorAreas.objects.get_or_create(building=building)
         if ind_areas[1]:
             building.indoor_areas = ind_areas[0]
             building.save()
         ind_areas = ind_areas[0]
         ind_areas.update(data=data)
     except BaseException as ex:
         logger.exception(ex)
         return Response(status=status.HTTP_500_INTERNAL_SERVER_ERROR,
                         data={"detail": ex.__str__()})
     return Response(status=status.HTTP_200_OK)
Пример #18
0
 def put(self, request):
     data = request.data
     building_id = data['id']
     user = request.my_user
     if request.FILES:
         files = request.FILES
         data.update(files)
     try:
         building = find_building_and_allow_user(id=building_id, user=user)
         building_constr = BuildingConstruction.objects.get_or_create(
             building=building)
         if building_constr[1]:
             building.building_construction = building_constr[0]
             building.save()
         building_constr = building_constr[0]
         building_constr.update(data=data)
     except BaseException as ex:
         logger.exception(ex)
         return Response(status=status.HTTP_500_INTERNAL_SERVER_ERROR,
                         data={"detail": ex.__str__()})
     return Response(status=status.HTTP_200_OK)
Пример #19
0
 def post(self, request: Request):
     global new_temper
     data: dict = request.data
     try:
         data.pop('id')
     except:
         pass
     building_id = data.pop('building')
     user = request.my_user
     if user is None:
         return Response(status=status.HTTP_401_UNAUTHORIZED,
                         data={'detail': 'You need to authorize'})
     try:
         building_obj = find_building_and_allow_user(building_id, user)
     except BaseException as ex:
         return Response(status=status.HTTP_500_INTERNAL_SERVER_ERROR,
                         data={'detail': ex.__str__()})
     try:
         new_temper = Temperature.objects.create(building=building_obj,
                                                 **data)
         new_temper.save()
         logger.success(
             str.format(
                 "{0} Добавил информацию о температуре здания {1}\n{2}",
                 user, building_obj, new_temper))
         return Response(status=status.HTTP_200_OK)
     except BaseException as ex1:
         try:
             new_temper.delete()
             logger.exception(ex1)
             return Response(status=status.HTTP_501_NOT_IMPLEMENTED,
                             data={'detail': ex1.__str__()})
         except BaseException as ex2:
             logger.exception(ex2)
         return Response(status=status.HTTP_501_NOT_IMPLEMENTED,
                         data={'detail': ex2.__str__()})
Пример #20
0
 def delete(self, request):
     data = request.headers
     building_id = data['id']
     user = request.my_user
     doc_id = data['docId']
     try:
         building = find_building_and_allow_user(building_id, user)
         eng_communication = EngineeringCommunication.objects.get_or_create(
             building=building)
         if eng_communication[1]:
             building.engineering_communication = eng_communication[0]
             building.save()
         eng_communication = eng_communication[0]
     except BaseException as ex:
         logger.exception(ex)
         return Response(status=status.HTTP_500_INTERNAL_SERVER_ERROR,
                         data={"detail": ex.__str__()})
     if doc_id == 'technical_condition_of_the_heating_system_act':
         eng_communication.technical_condition_of_the_heating_system_act.delete(
         )
     elif doc_id == 'technical_condition_of_the_ventilation_system_act':
         eng_communication.technical_condition_of_the_ventilation_system_act.delete(
         )
     elif doc_id == 'technical_condition_of_the_hot_water_supply_system_act':
         eng_communication.technical_condition_of_the_hot_water_supply_system_act.delete(
         )
     elif doc_id == 'passport_vvoda':
         eng_communication.passport_vvoda.delete()
     elif doc_id == 'schema_vvoda':
         eng_communication.schema_vvoda.delete()
     elif doc_id == 'passport_itp':
         eng_communication.passport_itp.delete()
     elif doc_id == 'schema_itp':
         eng_communication.schema_itp.delete()
     elif doc_id == 'act_balance_razgranich':
         eng_communication.act_balance_razgranich.delete()
     elif doc_id == 'schema_balance_razgranich':
         eng_communication.schema_balance_razgranich.delete()
     elif doc_id == 'spravka_teplov_nagruz':
         eng_communication.spravka_teplov_nagruz.delete()
     elif doc_id == 'raschet_teplov_poter':
         eng_communication.raschet_teplov_poter.delete()
     elif doc_id == 'toposnova':
         eng_communication.toposnova.delete()
     elif doc_id == 'technical_condition_of_the_internal_power_supply_system_act':
         eng_communication.technical_condition_of_the_internal_power_supply_system_act.delete(
         )
     elif doc_id == 'technical_condition_of_the_external_power_supply_system_act':
         eng_communication.technical_condition_of_the_external_power_supply_system_act.delete(
         )
     elif doc_id == 'power_supply_system_act_balance_razgranich':
         eng_communication.power_supply_system_act_balance_razgranich.delete(
         )
     elif doc_id == 'power_supply_system_scheme_balance_razgranich':
         eng_communication.power_supply_system_scheme_balance_razgranich.delete(
         )
     elif doc_id == 'power_supply_system_odnolinein_schema':
         eng_communication.power_supply_system_odnolinein_schema.delete()
     elif doc_id == 'power_supply_system_photo_vru':
         eng_communication.power_supply_system_photo_vru.delete()
     elif doc_id == 'technical_condition_of_the_water_supply_system_act':
         eng_communication.technical_condition_of_the_water_supply_system_act.delete(
         )
     elif doc_id == 'technical_condition_of_the_sewerage_system_act':
         eng_communication.technical_condition_of_the_sewerage_system_act.delete(
         )
     elif doc_id == 'water_supply_scheme_balance_razgranich':
         eng_communication.water_supply_scheme_balance_razgranich.delete()
     elif doc_id == 'water_supply_act_balance_razgranich':
         eng_communication.water_supply_act_balance_razgranich.delete()
     else:
         return Response(status=status.HTTP_500_INTERNAL_SERVER_ERROR,
                         data={"detail": "No such doc_id"})
     eng_communication.save()
     return Response(status=status.HTTP_200_OK)