def index(request, menu, conn=None, url=None, **kwargs):
    """
    This override omeroweb.webclient.load_template
    to support custom template base_mapr.html
    """

    try:
        value = get_unicode_or_default(request, 'value', None)
        query = get_bool_or_default(request, 'query', False)
        if _get_case_sensitive(mapr_settings, menu):
            case_sensitive = get_bool_or_default(
                request, 'case_sensitive', False)
        else:
            case_sensitive = False
    except ValueError:
        logger.error(traceback.format_exc())
        return HttpResponseBadRequest('Invalid parameter value')
    kwargs['show'] = Show(conn=conn, request=request, menu=menu, value=value)
    kwargs['load_template_url'] = reverse(viewname="maprindex_%s" % menu)
    kwargs['template'] = "mapr/base_mapr.html"
    context = _webclient_load_template(request, menu,
                                       conn=conn, url=url, **kwargs)
    context['active_user'] = context['active_user'] or {'id': -1}
    context['mapr_conf'] = {
        'menu': menu,
        'menu_all': mapr_settings.CONFIG[menu]['all'],
        'menu_default': mapr_settings.CONFIG[menu]['default'],
        'case_sensitive': _get_case_sensitive(mapr_settings, menu)}
    context['map_ctx'] = \
        {'label': menu, 'value': value or "", 'query': query or "",
         'case_sensitive': case_sensitive or ""}
    context['template'] = "mapr/base_mapr.html"

    return context
def api_experimenter_list(request, menu, conn=None, **kwargs):

    # Get parameters
    try:
        mapann_ns = _get_ns(mapr_settings, menu)
        mapann_names = _get_keys(mapr_settings, menu)

        # page = _get_page(request)
        # limit = get_long_or_default(request, 'limit', settings.PAGE)
        group_id = get_long_or_default(request, 'group', -1)
        experimenter_id = get_long_or_default(request, 'experimenter', -1)
        mapann_value = get_unicode_or_default(request, 'value', None) \
            or get_unicode_or_default(request, 'id', None)
        query = get_bool_or_default(request, 'query', False)
        if _get_case_sensitive(mapr_settings, menu):
            case_sensitive = get_bool_or_default(
                request, 'case_sensitive', False)
        else:
            case_sensitive = False
    except ValueError:
        return HttpResponseBadRequest('Invalid parameter value')

    experimenter = {}
    try:
        if experimenter_id > -1:
            # Get the experimenter
            experimenter = webclient_tree.marshal_experimenter(
                conn=conn, experimenter_id=experimenter_id)
        else:
            # fake experimenter -1
            experimenter = fake_experimenter(
                mapr_settings.CONFIG[menu]['label'])

        if _get_wildcard(mapr_settings, menu) or mapann_value:
            experimenter['extra'] = {'case_sensitive': case_sensitive}
            if query:
                experimenter['extra']['query'] = query

            # count children
            experimenter['childCount'] = mapr_tree.count_mapannotations(
                conn=conn,
                mapann_value=mapann_value,
                query=query,
                case_sensitive=case_sensitive,
                mapann_ns=mapann_ns,
                mapann_names=mapann_names,
                group_id=group_id,
                experimenter_id=experimenter_id)

            if experimenter['childCount'] > 0 and mapann_value:
                experimenter['extra']['value'] = mapann_value

    except ApiUsageException as e:
        return HttpResponseBadRequest(e.serverStackTrace)
    except ServerError as e:
        return HttpResponseServerError(e.serverStackTrace)
    except IceException as e:
        return HttpResponseServerError(e.message)

    return JsonResponse({'experimenter': experimenter})
Beispiel #3
0
def api_experimenter_list(request, menu, conn=None, **kwargs):

    # Get parameters
    try:
        mapann_ns = _get_ns(mapr_settings, menu)
        mapann_names = _get_keys(mapr_settings, menu)

        # page = _get_page(request)
        # limit = get_long_or_default(request, 'limit', settings.PAGE)
        group_id = get_long_or_default(request, 'group', -1)
        experimenter_id = get_long_or_default(request, 'experimenter', -1)
        mapann_value = get_unicode_or_default(request, 'value', None) \
            or get_unicode_or_default(request, 'id', None)
        query = get_bool_or_default(request, 'query', False)
        if _get_case_sensitive(mapr_settings, menu):
            case_sensitive = get_bool_or_default(request, 'case_sensitive',
                                                 False)
        else:
            case_sensitive = False
    except ValueError:
        return HttpResponseBadRequest('Invalid parameter value')

    experimenter = {}
    try:
        if experimenter_id > -1:
            # Get the experimenter
            experimenter = webclient_tree.marshal_experimenter(
                conn=conn, experimenter_id=experimenter_id)
        else:
            # fake experimenter -1
            experimenter = fake_experimenter(
                mapr_settings.CONFIG[menu]['label'])

        if _get_wildcard(mapr_settings, menu) or mapann_value:
            experimenter['extra'] = {'case_sensitive': case_sensitive}
            if query:
                experimenter['extra']['query'] = query

            # count children
            experimenter['childCount'] = count_mapannotations(
                conn=conn,
                mapann_value=mapann_value,
                query=query,
                case_sensitive=case_sensitive,
                mapann_ns=mapann_ns,
                mapann_names=mapann_names,
                group_id=group_id,
                experimenter_id=experimenter_id)

            if experimenter['childCount'] > 0 and mapann_value:
                experimenter['extra']['value'] = mapann_value

    except ApiUsageException as e:
        return HttpResponseBadRequest(e.serverStackTrace)
    except ServerError as e:
        return HttpResponseServerError(e.serverStackTrace)
    except IceException as e:
        return HttpResponseServerError(e.message)

    return JsonResponse({'experimenter': experimenter})
Beispiel #4
0
def index(request, menu, conn=None, url=None, **kwargs):
    """
    This override omeroweb.webclient.load_template
    to support custom template base_mapr.html
    """

    try:
        value = get_unicode_or_default(request, 'value', None)
        query = get_bool_or_default(request, 'query', False)
        if _get_case_sensitive(mapr_settings, menu):
            case_sensitive = get_bool_or_default(
                request, 'case_sensitive', False)
        else:
            case_sensitive = False
    except ValueError:
        logger.error(traceback.format_exc())
        return HttpResponseBadRequest('Invalid parameter value')
    kwargs['show'] = Show(conn=conn, request=request, menu=menu, value=value)
    kwargs['load_template_url'] = reverse(viewname="maprindex_%s" % menu)
    kwargs['template'] = "mapr/base_mapr.html"
    context = _webclient_load_template(request, menu,
                                       conn=conn, url=url, **kwargs)
    context['active_user'] = context['active_user'] or {'id': -1}
    context['mapr_conf'] = {
        'menu': menu,
        'menu_all': mapr_settings.CONFIG[menu]['all'],
        'menu_default': mapr_settings.CONFIG[menu]['default'],
        'case_sensitive': _get_case_sensitive(mapr_settings, menu)}
    context['map_ctx'] = \
        {'label': menu, 'value': value or "", 'query': query or "",
         'case_sensitive': case_sensitive or ""}
    context['template'] = "mapr/base_mapr.html"

    return context
def api_image_list(request, menu, conn=None, **kwargs):

    # Get parameters
    try:
        mapann_ns = _get_ns(mapr_settings, menu)
        mapann_names = _get_keys(mapr_settings, menu)

        page = _get_page(request)
        limit = get_long_or_default(request, 'limit', settings.PAGE)
        group_id = get_long_or_default(request, 'group', -1)
        load_pixels = get_bool_or_default(request, 'sizeXYZ', False)
        thumb_version = get_bool_or_default(request, 'thumbVersion', False)
        date = get_bool_or_default(request, 'date', False)
        experimenter_id = get_long_or_default(request,
                                              'experimenter_id', -1)
        parent = get_unicode_or_default(request, 'node', None)
        parent_id = get_long_or_default(request, 'id', None)
        mapann_value = get_unicode_or_default(request, 'value', None)
        query = get_bool_or_default(request, 'query', False)
    except ValueError:
        return HttpResponseBadRequest('Invalid parameter value')

    images = []
    try:
        if _get_wildcard(mapr_settings, menu) or mapann_value:
            # Get the images
            images = mapr_tree.marshal_images(
                conn=conn,
                parent=parent,
                parent_id=parent_id,
                mapann_ns=mapann_ns,
                mapann_names=mapann_names,
                mapann_value=mapann_value,
                query=query,
                load_pixels=load_pixels,
                group_id=group_id,
                experimenter_id=experimenter_id,
                page=page,
                date=date,
                thumb_version=thumb_version,
                limit=limit)
    except ApiUsageException as e:
        return HttpResponseBadRequest(e.serverStackTrace)
    except ServerError as e:
        return HttpResponseServerError(e.serverStackTrace)
    except IceException as e:
        return HttpResponseServerError(e.message)

    return JsonResponse({'images': images})
Beispiel #6
0
def api_image_list(request, menu, conn=None, **kwargs):

    # Get parameters
    try:
        mapann_ns = _get_ns(mapr_settings, menu)
        mapann_names = _get_keys(mapr_settings, menu)

        page = _get_page(request)
        limit = get_long_or_default(request, 'limit', settings.PAGE)
        group_id = get_long_or_default(request, 'group', -1)
        load_pixels = get_bool_or_default(request, 'sizeXYZ', False)
        thumb_version = get_bool_or_default(request, 'thumbVersion', False)
        date = get_bool_or_default(request, 'date', False)
        experimenter_id = get_long_or_default(request,
                                              'experimenter_id', -1)
        parent = get_unicode_or_default(request, 'node', None)
        parent_id = get_long_or_default(request, 'id', None)
        mapann_value = get_unicode_or_default(request, 'value', None)
        query = get_bool_or_default(request, 'query', False)
    except ValueError:
        return HttpResponseBadRequest('Invalid parameter value')

    images = []
    try:
        if _get_wildcard(mapr_settings, menu) or mapann_value:
            # Get the images
            images = mapr_tree.marshal_images(
                conn=conn,
                parent=parent,
                parent_id=parent_id,
                mapann_ns=mapann_ns,
                mapann_names=mapann_names,
                mapann_value=mapann_value,
                query=query,
                load_pixels=load_pixels,
                group_id=group_id,
                experimenter_id=experimenter_id,
                page=page,
                date=date,
                thumb_version=thumb_version,
                limit=limit)
    except ApiUsageException as e:
        return HttpResponseBadRequest(e.serverStackTrace)
    except ServerError as e:
        return HttpResponseServerError(e.serverStackTrace)
    except IceException as e:
        return HttpResponseServerError(e.message)

    return JsonResponse({'images': images})
def mapannotations_autocomplete(request, menu, conn=None, **kwargs):

    # Get parameters
    try:
        mapann_ns = _get_ns(mapr_settings, menu)
        mapann_names = _get_keys(mapr_settings, menu)

        page = _get_page(request)
        limit = get_long_or_default(request, 'limit', settings.PAGE)
        group_id = get_long_or_default(request, 'group', -1)
        experimenter_id = get_long_or_default(request, 'experimenter_id', -1)
        mapann_value = get_unicode_or_default(request, 'value', None)
        query = get_bool_or_default(request, 'query', True)
        if _get_case_sensitive(mapr_settings, menu):
            case_sensitive = get_bool_or_default(
                request, 'case_sensitive', False)
        else:
            case_sensitive = False
    except ValueError:
        return HttpResponseBadRequest('Invalid parameter value')

    autocomplete = []
    try:
        if mapann_value:
            autocomplete = mapr_tree.marshal_autocomplete(
                conn=conn,
                mapann_value=mapann_value,
                query=query,
                case_sensitive=case_sensitive,
                mapann_ns=mapann_ns,
                mapann_names=mapann_names,
                group_id=group_id,
                experimenter_id=experimenter_id,
                page=page,
                limit=limit)
    except ApiUsageException as e:
        return HttpResponseBadRequest(e.serverStackTrace)
    except ServerError as e:
        return HttpResponseServerError(e.serverStackTrace)
    except IceException as e:
        return HttpResponseServerError(e.message)

    return JsonResponse(list(autocomplete), safe=False)
Beispiel #8
0
def mapannotations_autocomplete(request, menu, conn=None, **kwargs):

    # Get parameters
    try:
        mapann_ns = _get_ns(mapr_settings, menu)
        mapann_names = _get_keys(mapr_settings, menu)

        page = _get_page(request)
        limit = get_long_or_default(request, 'limit', settings.PAGE)
        group_id = get_long_or_default(request, 'group', -1)
        experimenter_id = get_long_or_default(request, 'experimenter_id', -1)
        mapann_value = get_unicode_or_default(request, 'value', None)
        query = get_bool_or_default(request, 'query', True)
        if _get_case_sensitive(mapr_settings, menu):
            case_sensitive = get_bool_or_default(request, 'case_sensitive',
                                                 False)
        else:
            case_sensitive = False
    except ValueError:
        return HttpResponseBadRequest('Invalid parameter value')

    autocomplete = []
    try:
        if mapann_value:
            autocomplete = marshal_autocomplete(
                conn=conn,
                mapann_value=mapann_value,
                query=query,
                case_sensitive=case_sensitive,
                mapann_ns=mapann_ns,
                mapann_names=mapann_names,
                group_id=group_id,
                experimenter_id=experimenter_id,
                page=page,
                limit=limit)
    except ApiUsageException as e:
        return HttpResponseBadRequest(e.serverStackTrace)
    except ServerError as e:
        return HttpResponseServerError(e.serverStackTrace)
    except IceException as e:
        return HttpResponseServerError(e.message)

    return JsonResponse(list(autocomplete), safe=False)
def api_plate_list(request, menu, conn=None, **kwargs):

    # Get parameters
    try:
        mapann_ns = _get_ns(mapr_settings, menu)
        mapann_names = _get_keys(mapr_settings, menu)

        page = _get_page(request)
        limit = get_long_or_default(request, 'limit', settings.PAGE)
        group_id = get_long_or_default(request, 'group', -1)
        experimenter_id = get_long_or_default(request,
                                              'experimenter_id', -1)
        screen_id = get_long_or_default(request, 'id', None)
        mapann_value = get_unicode_or_default(request, 'value', None)
        query = get_bool_or_default(request, 'query', False)
    except ValueError:
        return HttpResponseBadRequest('Invalid parameter value')

    plates = []
    try:
        if _get_wildcard(mapr_settings, menu) or mapann_value:
            # Get the images
            plates = mapr_tree.marshal_plates(
                conn=conn,
                screen_id=screen_id,
                mapann_value=mapann_value,
                query=query,
                mapann_ns=mapann_ns,
                mapann_names=mapann_names,
                group_id=group_id,
                experimenter_id=experimenter_id,
                page=page,
                limit=limit)
    except ApiUsageException as e:
        return HttpResponseBadRequest(e.serverStackTrace)
    except ServerError as e:
        return HttpResponseServerError(e.serverStackTrace)
    except IceException as e:
        return HttpResponseServerError(e.message)

    return JsonResponse({'plates': plates})
Beispiel #10
0
def api_plate_list(request, menu, conn=None, **kwargs):

    # Get parameters
    try:
        mapann_ns = _get_ns(mapr_settings, menu)
        mapann_names = _get_keys(mapr_settings, menu)

        page = _get_page(request)
        limit = get_long_or_default(request, 'limit', settings.PAGE)
        group_id = get_long_or_default(request, 'group', -1)
        experimenter_id = get_long_or_default(request,
                                              'experimenter_id', -1)
        screen_id = get_long_or_default(request, 'id', None)
        mapann_value = get_unicode_or_default(request, 'value', None)
        query = get_bool_or_default(request, 'query', False)
    except ValueError:
        return HttpResponseBadRequest('Invalid parameter value')

    plates = []
    try:
        if _get_wildcard(mapr_settings, menu) or mapann_value:
            # Get the images
            plates = mapr_tree.marshal_plates(
                conn=conn,
                screen_id=screen_id,
                mapann_value=mapann_value,
                query=query,
                mapann_ns=mapann_ns,
                mapann_names=mapann_names,
                group_id=group_id,
                experimenter_id=experimenter_id,
                page=page,
                limit=limit)
    except ApiUsageException as e:
        return HttpResponseBadRequest(e.serverStackTrace)
    except ServerError as e:
        return HttpResponseServerError(e.serverStackTrace)
    except IceException as e:
        return HttpResponseServerError(e.message)

    return JsonResponse({'plates': plates})
def api_mapannotation_list(request, menu, conn=None, **kwargs):

    # Get parameters
    try:
        mapann_ns = _get_ns(mapr_settings, menu)
        mapann_names = _get_keys(mapr_settings, menu)

        page = page = _get_page(request)
        limit = get_long_or_default(request, 'limit', settings.PAGE)
        group_id = get_long_or_default(request, 'group', -1)
        experimenter_id = get_long_or_default(request, 'experimenter_id', -1)
        mapann_value = get_unicode_or_default(request, 'id', None) \
            or get_unicode_or_default(request, 'value', None)
        query = get_bool_or_default(request, 'query', False)
        if _get_case_sensitive(mapr_settings, menu):
            case_sensitive = get_bool_or_default(
                request, 'case_sensitive', False)
        else:
            case_sensitive = False
        orphaned = get_bool_or_default(request, 'orphaned', False)
    except ValueError:
        logger.error(traceback.format_exc())
        return HttpResponseBadRequest('Invalid parameter value')

    mapannotations = []
    screens = []
    projects = []
    try:
        if _get_wildcard(mapr_settings, menu) or mapann_value:
            # Get attributes from map annotation
            if orphaned:
                # offset = _get_wildcard_limit(mapr_settings, menu)
                mapannotations = mapr_tree.marshal_mapannotations(
                    conn=conn,
                    mapann_value=mapann_value,
                    query=query,
                    case_sensitive=case_sensitive,
                    mapann_ns=mapann_ns,
                    mapann_names=mapann_names,
                    group_id=group_id,
                    experimenter_id=experimenter_id,
                    page=page,
                    limit=limit)
            else:
                screens = mapr_tree.marshal_screens(
                    conn=conn,
                    mapann_value=mapann_value,
                    query=query,
                    mapann_ns=mapann_ns,
                    mapann_names=mapann_names,
                    group_id=group_id,
                    experimenter_id=experimenter_id,
                    page=page,
                    limit=limit)
                projects = mapr_tree.marshal_projects(
                    conn=conn,
                    mapann_value=mapann_value,
                    query=query,
                    mapann_ns=mapann_ns,
                    mapann_names=mapann_names,
                    group_id=group_id,
                    experimenter_id=experimenter_id,
                    page=page,
                    limit=limit)

    except ApiUsageException as e:
        return HttpResponseBadRequest(e.serverStackTrace)
    except ServerError as e:
        return HttpResponseServerError(e.serverStackTrace)
    except IceException as e:
        return HttpResponseServerError(e.message)

    return JsonResponse({'maps': mapannotations,
                         'screens': screens, 'projects': projects})
Beispiel #12
0
def api_mapannotation_list(request, menu, conn=None, **kwargs):

    mapann_ns = _get_ns(mapr_settings, menu)
    keys = _get_keys(mapr_settings, menu)

    # Get parameters
    try:
        page = get_long_or_default(request, 'page', 1)
        limit = get_long_or_default(request, 'limit', settings.PAGE)
        group_id = get_long_or_default(request, 'group', -1)
        experimenter_id = get_long_or_default(request, 'experimenter_id', -1)
        mapann_value = get_str_or_default(request, 'id', None) \
            or get_str_or_default(request, 'value', None)
        mapann_names = get_list_or_default(request, 'name', keys)
        mapann_query = get_str_or_default(request, 'query', None)
        orphaned = get_bool_or_default(request, 'orphaned', False)
    except ValueError:
        return HttpResponseBadRequest('Invalid parameter value')

    mapannotations = []
    screens = []
    projects = []
    try:
        # Get attributes from map annotation
        if orphaned:
            if mapann_value is not None or mapann_query is not None:
                mapannotations = mapr_tree.marshal_mapannotations(
                    conn=conn,
                    mapann_ns=mapann_ns,
                    mapann_names=mapann_names,
                    mapann_value=mapann_value,
                    mapann_query=mapann_query,
                    group_id=group_id,
                    experimenter_id=experimenter_id,
                    page=page,
                    limit=limit)
        else:
            screens = mapr_tree.marshal_screens(
                conn=conn,
                mapann_ns=mapann_ns,
                mapann_names=mapann_names,
                mapann_value=mapann_value,
                mapann_query=mapann_query,
                group_id=group_id,
                experimenter_id=experimenter_id,
                page=page,
                limit=limit)
            projects = mapr_tree.marshal_projects(
                conn=conn,
                mapann_ns=mapann_ns,
                mapann_names=mapann_names,
                mapann_value=mapann_value,
                mapann_query=mapann_query,
                group_id=group_id,
                experimenter_id=experimenter_id,
                page=page,
                limit=limit)

    except ApiUsageException as e:
        return HttpResponseBadRequest(e.serverStackTrace)
    except ServerError as e:
        return HttpResponseServerError(e.serverStackTrace)
    except IceException as e:
        return HttpResponseServerError(e.message)

    return HttpJsonResponse({
        'maps': mapannotations,
        'screens': screens,
        'projects': projects
    })
Beispiel #13
0
def api_mapannotation_list(request, menu, conn=None, **kwargs):

    # Get parameters
    try:
        mapann_ns = _get_ns(mapr_settings, menu)
        mapann_names = _get_keys(mapr_settings, menu)

        page = page = _get_page(request)
        limit = get_long_or_default(request, 'limit', settings.PAGE)
        group_id = get_long_or_default(request, 'group', -1)
        experimenter_id = get_long_or_default(request, 'experimenter_id', -1)
        mapann_value = get_unicode_or_default(request, 'id', None) \
            or get_unicode_or_default(request, 'value', None)
        query = get_bool_or_default(request, 'query', False)
        if _get_case_sensitive(mapr_settings, menu):
            case_sensitive = get_bool_or_default(request, 'case_sensitive',
                                                 False)
        else:
            case_sensitive = False
        orphaned = get_bool_or_default(request, 'orphaned', False)
    except ValueError:
        logger.error(traceback.format_exc())
        return HttpResponseBadRequest('Invalid parameter value')

    mapannotations = []
    screens = []
    projects = []
    try:
        if _get_wildcard(mapr_settings, menu) or mapann_value:
            # Get attributes from map annotation
            if orphaned:
                # offset = _get_wildcard_limit(mapr_settings, menu)
                mapannotations = marshal_mapannotations(
                    conn=conn,
                    mapann_value=mapann_value,
                    query=query,
                    case_sensitive=case_sensitive,
                    mapann_ns=mapann_ns,
                    mapann_names=mapann_names,
                    group_id=group_id,
                    experimenter_id=experimenter_id,
                    page=page,
                    limit=limit)
            else:
                screens = marshal_screens(conn=conn,
                                          mapann_value=mapann_value,
                                          query=query,
                                          mapann_ns=mapann_ns,
                                          mapann_names=mapann_names,
                                          group_id=group_id,
                                          experimenter_id=experimenter_id,
                                          page=page,
                                          limit=limit)
                projects = marshal_projects(conn=conn,
                                            mapann_value=mapann_value,
                                            query=query,
                                            mapann_ns=mapann_ns,
                                            mapann_names=mapann_names,
                                            group_id=group_id,
                                            experimenter_id=experimenter_id,
                                            page=page,
                                            limit=limit)

    except ApiUsageException as e:
        return HttpResponseBadRequest(e.serverStackTrace)
    except ServerError as e:
        return HttpResponseServerError(e.serverStackTrace)
    except IceException as e:
        return HttpResponseServerError(e.message)

    return JsonResponse({
        'maps': mapannotations,
        'screens': screens,
        'projects': projects
    })