Beispiel #1
0
def harvested_mouse_get_total_num(request):
    """
    List all the harvested mouse
    Filtered option:
    by Json
    { 'filter': '[column_name_1]@[value_1]@[filter_option_1]$[column_name_2][value_2][filter_option_2]' }
    """
    user = check_if_user_is_logged(request)
    response_frame = get_response_frame_data()
    response_success = False

    params_key = {'filter'}
    if user is not None:
        filter_options = construct_filter_option(request, params_key)
        try:
            mouse_list_size = mouse_controller_g.get_num_of_mouse(
                filter_option=filter_options)
            response_success = True
            payload = mouse_list_size
        except Exception as err:
            payload = "Unknown database error"
    else:
        payload = "Authorization failed"

    return return_response(response_frame, response_success, payload)
Beispiel #2
0
def harvested_mouse_force_list(request):
    """
    List all the harvested mouse
    Filtered option:
    by Json
    { 'filter': '[column_name_1]@[value_1]@[filter_option_1]$[column_name_2][value_2][filter_option_2]' }
    """
    user = check_if_user_is_logged(request)
    response_frame = get_response_frame_data()
    response_success = False

    params_key = {'filter'}
    params_key_for_pagination = {'page_index', 'page_size'}
    if user is not None:
        filter_options = construct_filter_option(request, params_key)
        try:
            if request.query_params.keys() >= params_key_for_pagination:
                page_size = int(request.query_params['page_size'])
                page_index = int(request.query_params['page_index'])
                mouse_list = mouse_controller_g.get_mouse_for_transfer(
                    filter_option=filter_options,
                    page_size=page_size,
                    page_index=page_index)
            else:
                mouse_list = mouse_controller_g.get_mouse_for_transfer(
                    filter_option=filter_options)
            response_success = True
            payload = mouse_list
        except Exception as err:
            payload = "Unknown database error"
    else:
        payload = "Authorization failed"

    return return_response(response_frame, response_success, payload)
Beispiel #3
0
def get_data_option_list(request):
    """
    Providing the selecting option to the client
    """
    response_frame = get_response_frame_data()
    response_success = False

    try:
        data = {}
        # Get the list of mouse object first
        data['mouseLineList'] = mouse_controller_g.get_distinct_data_list(
            'mouseLine')
        data['genoTypeList'] = mouse_controller_g.get_distinct_data_list(
            'genoType')
        data['phenoTypeList'] = mouse_controller_g.get_distinct_data_list(
            'phenoType')
        data['projectTitleList'] = mouse_controller_g.get_distinct_data_list(
            'projectTitle')
        data['handlerList'] = mouse_controller_g.get_distinct_data_list(
            'handler')
        data['experiementList'] = mouse_controller_g.get_distinct_data_list(
            'experiment')

        response_success = True
        payload = data
    except Exception as error:
        payload = "Unknown database error"
    return return_response(response_frame, response_success, payload)
Beispiel #4
0
def harvested_import_mouse(request):
    """
    Handling of the process of importing external
    csv file for insertion of list of mouse
    """
    user = check_if_user_is_logged(request)
    response_frame = get_response_frame_data()
    response_success = False
    payload = ""
    filename = ""
    if user is not None:
        try:
            form = UploadFileForm(request.POST, request.FILES)
            if form.is_valid():
                filename = get_random_alphanumeric_string(
                    20, 20) + request.FILES['file'].name
                with transaction.atomic():
                    user.userextend.uploaded_file_name = save_uploaded_file(
                        request.FILES['file'], filename)
                    user.save()

                # get again the user to double confirm
                user = User.objects.get(id=user.id)
                if user.userextend.uploaded_file_name == filename:
                    num_csv_file_rows = len(
                        pd.read_csv(user.userextend.uploaded_file_name))
                    if num_csv_file_rows >= 200:
                        payload = 'Please restrict number entires to max 200 entries'
                    else:
                        response_success = True
                else:
                    payload = 'Unknown database error'
            else:
                payload = 'File missing in the form'
        except Exception as error:
            payload = 'Unknown database error'
    else:
        payload = "Authorization failed"

    if not response_success:
        if os.path.exists(filename):
            os.remove(filename)

    return return_response(response_frame, response_success, payload)
Beispiel #5
0
def harvested_mouse_delete(request):
    """
    Delete of the selected harvested mouse
    """
    response_frame = get_response_frame_data()
    response_success = False
    payload = ""

    try:
        mouse_controller_g.delete_mouse(request.data)
        response_success = True
    except MouseNotFoundError as e:
        payload = "Target mouse is not found"
    except ValueError as e:
        payload = "Unknown database error"
    except DatabaseError as e:
        payload = "Unknown database error"

    return return_response(response_frame, response_success, payload)
Beispiel #6
0
def parsing_imported_mouse(request):
    user = check_if_user_is_logged(request)
    response_frame = get_response_frame_data()
    response_success = False
    payload = ""
    if user is not None:
        # Get the last saved filed
        filename = user.userextend.uploaded_file_name
        csv_file = pd.read_csv(filename)
        csv_file = csv_file.fillna('No Data')
        payload = convert_csv_to_json_arr(csv_file)

        if os.path.exists(filename):
            os.remove(filename)

        response_success = True
    else:
        payload = "Authorization failed"

    return return_response(response_frame, response_success, payload)
Beispiel #7
0
def harvested_mouse_update(request):
    """
    Update of the harvested mouse into database
    """
    # if not _check_if_user_is_login(request.session):
    #    return Response(status=status.HTTP_401_UNAUTHORIZED)
    response_frame = get_response_frame_data()
    response_success = False
    payload = ""

    try:
        mouse_controller_g.update_mouse(request.data)
        response_success = True
    except MouseNotFoundError:
        payload = "Target mouse is not found"
    except ValueError:
        payload = "Unknown database error"
    except DatabaseError:
        payload = "Unknown database error"

    return return_response(response_frame, response_success, payload)