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