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)
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)
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)
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)
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)
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)
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)