def users_enable_user(request): log_this(__name__, inspect.stack()[0][3], '(start)') if request.method == 'POST': if request.body is not None: my_nav = apps.get_app_config('app_sm_api').nav data = api_users.enable_user(nav=my_nav, params_encoded=request.body) if data in [None, ""]: response = JsonResponse("", safe=False) else: response = HttpResponseBadRequest(data) else: response = HttpResponseBadRequest('request is missing body)') else: response = HttpResponseBadRequest('request is not a POST') log_this(__name__, inspect.stack()[0][3], '(end)') return response
def home_left_load(request): log_this(__name__, inspect.stack()[0][3], '(start)') my_nav = apps.get_app_config('app_sm_api').nav data = api_home_ui.left_load(my_nav) response = JsonResponse(data, safe=False) log_this(__name__, inspect.stack()[0][3], '(end)') return response
def retrieve_get_test_list(request): log_this(__name__, inspect.stack()[0][3], '(start)') my_nav = apps.get_app_config('app_sm_api').nav data = api_retrieve_ui.get_test_list(my_nav) response = JsonResponse(data, safe=False) log_this(__name__, inspect.stack()[0][3], '(end)') return response
def welcome(request): log_this(__name__, inspect.stack()[0][3]) strr = """Welcome to the SM User Interface API <p> The API commands are: <br> <ul> <li>(GET) sm_ui/home/get_test_list -> returns the assays shown on the home menu <li>(GET) sm_ui/home/left_load -> pushes the "left load" button <li>(GET) sm_ui/approve/get_test_list -> returns the assays shown on the approve menu <li>(POST) sm_ui/approve/approve_test_by_serial_number -> approves test using serial number as identifier <ul> parameters: <li>serial_number <li>test_comment <li>oos_comment <li>general_comment <li>mold_count </ul> <li>(POST) sm_ui/approve/approve_test_by_lims_id -> approves test using LIMS ID as identifier <ul> parameters: <li>lims_id <li>test_comment <li>oos_comment <li>general_comment <li>mold_count </ul> <li>(GET) sm_ui/retrieve/get_test_list -> returns the assays shown on the retrieve menu <li>(POST) sm_ui/retrieve/cancel_test_by_serial_number -> cancels test using serial number as identifier <ul> parameters: <li>serial_number </ul> <li>(POST) sm_ui/retrieve/cancel_test_by_lims_id -> cancels test using LIMS ID as identifier <ul> parameters: <li>lims_id </ul> </ul> """ return HttpResponse(strr)
def get_test_list(nav): log_this(__name__, inspect.stack()[0][3], '(start)') dlg_app = nav.confirm_home() # transition UI nav.dialog['home'].approve().click() list_view = nav.dialog['approve'].test_list() y = __get_data_from_table(list_view) # go home nav.dialog['approve'].home().click() log_this(__name__, inspect.stack()[0][3], '(end)') return y
def approve_test_by_serial_number_or_lims_id(nav, by, number_or_id, test_comment, oos_comment, general_comment, mold_count): log_this(__name__, inspect.stack()[0][3], '(start)') dlg_app = nav.confirm_home() # transition UI nav.dialog['home'].approve().click() list_view = nav.dialog['approve'].test_list() for data_item in list_view.items(): result = __get_data_from_row(data_item) if ((by == "serial_number" and (result.get('serial_number') == number_or_id)) or (by == "lims_id" and (result.get('lims_id') == number_or_id))): data_item.select() # data_item.click() nav.dialog['approve'].test_comment().type_keys(test_comment) nav.dialog['approve'].oos_comment().type_keys(oos_comment) nav.dialog['approve'].general_comment().type_keys(general_comment) nav.dialog['approve'].mold_count().type_keys(str(mold_count)) nav.dialog['approve'].approve().click() #nav.control('approve', 'test_comment').type_keys(test_comment) #nav.control('approve', 'oos_comment').type_keys(oos_comment) #nav.control('approve', 'general_comment').type_keys(general_comment) #nav.control('approve', 'mold_count').type_keys(str(mold_count)) #nav.control('approve', 'approve').click() # signature pop-up does not show up if single-sign-in is turned on # tb.control('signature_popup', 'ok', 'SignatureMessageBox').click() break # go home nav.dialog['approve'].home().click() log_this(__name__, inspect.stack()[0][3], '(end)')
def users_get_user(request): log_this(__name__, inspect.stack()[0][3], '(start)') try: user_name = request.GET['user_name'] except Exception as e: description = 'Oops! missing user_name' log_this(__name__, (description)) log_this(__name__, ('got a ', e.__class__)) raise LookupError(description) my_nav = apps.get_app_config('app_sm_api').nav data = api_users.get_user(nav=my_nav, name=user_name) response = JsonResponse(data, safe=False) log_this(__name__, inspect.stack()[0][3], '(end)') return response
def __do_approve_approve_test_by_serial_number_or_lims_id(request, by): my_nav = apps.get_app_config('app_sm_api').nav if request.method == 'POST': log_this() log_this(__name__) log_this(__name__, "-- call the api implementation --------") log_this(__name__, "-- post parameters are:") log_this(__name__, request.POST) try: if (by == "serial_number"): in_identifier = request.POST['serial_number'] elif (by == 'lims_id'): in_identifier = request.POST['lims_id'] else: raise LookupError( 'parameter missing - need either serial_number or lims_id') in_test_comment = request.POST['test_comment'] in_oos_comment = request.POST['oos_comment'] in_general_comment = request.POST['general_comment'] in_mold_count = request.POST['mold_count'] except Exception as e: log_this(__name__, ( 'Oops! missing one of: serial_number, lis_id, test_comment, oos_comment, general_comment, mold_count ', app_path)) log_this(__name__, ('got a ', e.__class__)) sys.exit() data = api_approve_ui.approve_test_by_serial_number_or_lims_id( nav=my_nav, by=by, number_or_id=in_identifier, test_comment=in_test_comment, oos_comment=in_oos_comment, general_comment=in_general_comment, mold_count=in_mold_count) response = JsonResponse(data, safe=False) else: assert False, "request to API was not a POST!" response = HttpResponseNotFound('request is not a POST !!!') log_this(__name__, inspect.stack()[0][3], '(end)') return response
def approve_approve_test_by_lims_id(request): log_this(__name__, inspect.stack()[0][3], '(start)') response = __do_approve_approve_test_by_serial_number_or_lims_id( request, "lims_id") log_this(__name__, inspect.stack()[0][3], '(end)') return response
def __do_retrieve_cancel_test_by_serial_number(request, by): my_nav = apps.get_app_config('app_sm_api').nav if request.method == 'POST': log_this() log_this(__name__) log_this(__name__, "-- call the api implementation --------") log_this(__name__, "-- post parameters are:") log_this(__name__, request.POST) try: if (by == "serial_number"): in_identifier = request.POST['serial_number'] elif (by == 'lims_id'): in_identifier = request.POST['lims_id'] else: raise LookupError( 'parameter missing - need either serial_number or lims_id') except Exception as e: log_this(__name__, ('Oops! missing: serial_number or lims_id', app_path)) log_this(__name__, ('got a ', e.__class__)) sys.exit() data = api_retrieve_ui.cancel_test_by_serial_number_or_lims_id( nav=my_nav, by=by, number_or_id=in_identifier) response = JsonResponse(data, safe=False) else: assert False, "request to API was not a POST!" response = HttpResponseNotFound('request is not a POST !!!') return response
def retrieve_cancel_test_by_lims_id(request): log_this(__name__, inspect.stack()[0][3], '(start)') response = __do_retrieve_cancel_test_by_serial_number(request, "lims_id") log_this(__name__, inspect.stack()[0][3], '(end)') return response