Example #1
0
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
Example #2
0
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
Example #3
0
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
Example #4
0
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)
Example #5
0
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
Example #6
0
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)')
Example #7
0
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
Example #8
0
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
Example #9
0
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
Example #10
0
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
Example #11
0
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