Exemplo n.º 1
0
    def post(self, request, format=None):
        name = get_data_param(request, 'name', None)
        city_id = get_data_param(request, 'city_id', None)

        request.data["city"] = city_id
        branch = Branch.get_if_exists(name)
        serializer = BranchSerializer(branch, data=request.data)
        if serializer.is_valid():
            serializer.save()
            return Response(response_json(True, serializer.data, None))
        return Response(response_json(False, None, constants.TEXT_OPERATION_UNSUCCESSFUL))
Exemplo n.º 2
0
    def post(self, request, format=None):
        name = get_data_param(request, 'name', None)
        region_id = get_data_param(request, 'region_id', None)

        request.data["region"] = region_id
        # city = City.get_if_exists(name) As MC need multiple entries with same name
        serializer = CitySerializer(data=request.data)
        if serializer.is_valid():
            serializer.save()
            return Response(response_json(True, serializer.data, None))
        return Response(
            response_json(False, None, constants.TEXT_OPERATION_UNSUCCESSFUL))
Exemplo n.º 3
0
    def post(self, request, format=None):
        name = get_data_param(request, 'name', None)
        area_id = get_data_param(request, 'area_id', None)

        request.data["area"] = area_id
        region = Region.get_if_exists(name)
        serializer = RegionSerializer(region, data=request.data)
        if serializer.is_valid():
            serializer.save()
            return Response(response_json(True, serializer.data, None))
        return Response(
            response_json(False, None, constants.TEXT_OPERATION_UNSUCCESSFUL))
Exemplo n.º 4
0
    def post(self, request, format=None):
        title = get_data_param(request, 'title', None)

        questionnaire = Questionnaire.get_if_exists_by_title(title)
        serializer = QuestionnaireSerializer(questionnaire, data=request.data)
        if serializer.is_valid():
            serializer.save()
            return Response(response_json(True, serializer.data, None))
        return Response(
            response_json(False, None, constants.TEXT_OPERATION_UNSUCCESSFUL))
Exemplo n.º 5
0
    def put(self, request, user, format=None):
        try:
            id = get_data_param(request, 'id', None)
            new_password = get_data_param(request, 'new_password', None)
            email = get_data_param(request, 'email', None)
            phone_no = get_data_param(request, 'phone_no', None)
            first_name = get_data_param(request, 'first_name', None)
            last_name = get_data_param(request, 'last_name', None)
            branch_id = get_data_param(request, 'branch_id', None)
            region_id = get_data_param(request, 'region_id', None)

            branch = Branch.objects.get(pk=branch_id) if branch_id else None
            region = Region.objects.get(pk=region_id) if region_id else None

            if branch and branch.is_associated():
                return Response(response_json(False, None, "Branch is already Associated"))
            elif region and region.is_associated():
                return Response(response_json(False, None, "Region is already Associated"))

            user = User.objects.get(pk=id)
            if user:
                user.email = email if email else user.email
                if new_password:
                    user.set_password(new_password)
                user.first_name = first_name if first_name else user.first_name
                user.last_name = last_name if last_name else user.last_name
                user.save()

            user_info = user.info.first()
            if user_info:
                user_info.branch_id = branch.id if branch else user_info.branch_id
                user_info.region_id = region.id if region else user_info.region_id
                user_info.phone_no = phone_no if phone_no else user_info.phone_no
                user_info.save()

            return Response(response_json(True, user_info.to_dict(), None))

        except User.DoesNotExist as e:
            return Response(response_json(False, None, constants.TEXT_DOES_NOT_EXISTS))
        except Branch.DoesNotExist as e:
            return Response(response_json(False, None, constants.TEXT_DOES_NOT_EXISTS))
        except Region.DoesNotExist as e:
            return Response(response_json(False, None, constants.TEXT_DOES_NOT_EXISTS))
Exemplo n.º 6
0
    def put(self, request, format=None):
        id = get_data_param(request, 'id', None)

        try:
            question = Question.objects.get(pk=id)
            serializer = QuestionSerializer(question, data=request.data)
            if serializer.is_valid():
                serializer.save()
                return Response(response_json(True, serializer.data, None))
            return Response(
                response_json(False, None,
                              constants.TEXT_OPERATION_UNSUCCESSFUL))
        except Question.DoesNotExist as e:
            return Response(
                response_json(False, None, constants.TEXT_DOES_NOT_EXISTS))
        except Exception as e:
            return Response(
                response_json(False, None,
                              constants.TEXT_OPERATION_UNSUCCESSFUL))
Exemplo n.º 7
0
    def post(self, request, format=None):
        try:
            role = get_data_param(request, 'role', None)
            username = get_data_param(request, 'username', None)
            first_name = get_data_param(request, 'first_name', None)
            last_name = get_data_param(request, 'last_name', None)
            password = get_data_param(request, 'password', None)
            email = get_data_param(request, 'email', None)
            phone_no = get_data_param(request, 'phone_no', None)
            branch_id = get_data_param(request, 'branch_id', None)
            region_id = get_data_param(request, 'region_id', None)
            parent_id = get_data_param(request, 'parent_id', None)

            if role:
                branch = Branch.objects.get(pk=branch_id) if branch_id else None
                parent_user = User.objects.get(pk=parent_id) if parent_id else None
                parent = parent_user.info.first() if parent_user else None
                region = Region.objects.get(pk=region_id) if region_id else None

                if branch and parent:
                    if role == UserRolesEnum.GRO:
                        user = create_user(username, first_name, last_name, email, password)
                        user_info = UserInfo.objects.create(user=user, phone_no=phone_no, role=UserRolesEnum.GRO,
                                                            branch=branch, parent=parent)
                        return Response(response_json(True, user_info.to_dict(), None))
                    elif role == UserRolesEnum.BRANCH_MANAGER:
                        if not branch.is_associated():
                            user = create_user(username, first_name, last_name, email, password)
                            user_info = UserInfo.objects.create(user=user, phone_no=phone_no, role=UserRolesEnum.BRANCH_MANAGER,
                                                        branch=branch, parent=parent)
                            return Response(response_json(True, user_info.to_dict(), None))
                        else:
                            return Response(response_json(False, None, "Branch already Associated"))
                elif region and parent:
                    if role == UserRolesEnum.OPERATIONAL_CONSULTANT:
                        if not region.is_associated():
                            user = create_user(username, first_name, last_name, email, password)
                            user_info = UserInfo.objects.create(user=user, phone_no=phone_no, role=UserRolesEnum.OPERATIONAL_CONSULTANT,
                                                        region=region, parent=parent)
                            return Response(response_json(True, user_info.to_dict(), None))
                        else:
                            return Response(response_json(False, None, "Region already Associated"))
                elif parent:
                    if role == UserRolesEnum.OPERATIONAL_MANAGER:
                        user = create_user(username, first_name, last_name, email, password)
                        user_info = UserInfo.objects.create(user=user, phone_no=phone_no,
                                            role=UserRolesEnum.OPERATIONAL_MANAGER, parent=parent)
                        return Response(response_json(True, user_info.to_dict(), None))
                    elif role == UserRolesEnum.ASSISTANT_DIRECTOR:
                        user = create_user(username, first_name, last_name, email, password)
                        user_info = UserInfo.objects.create(user=user, phone_no=phone_no,
                                            role=UserRolesEnum.ASSISTANT_DIRECTOR, parent=parent)
                        return Response(response_json(True, user_info.to_dict(), None))
                else:
                    if role == UserRolesEnum.DIRECTOR:
                        user = create_user(username, first_name, last_name, email, password)
                        user_info = UserInfo.objects.create(user=user, phone_no=phone_no, role=UserRolesEnum.DIRECTOR)
                        return Response(response_json(True, user_info.to_dict(), None))

            return Response(response_json(False, None, constants.TEXT_OPERATION_UNSUCCESSFUL))
        except IntegrityError as e:
            return Response(response_json(False, None, "Username " + constants.TEXT_ALREADY_EXISTS))