def get_opts(self, request, **kwargs): """Add extra parameters to the opts dict.""" opts = super(ScreensView, self).get_opts(request, **kwargs) opts["order_by"] = "lower(obj.name)" # at /plate/:plate_id/screens/ we have 'plate_id' in kwargs if "plate_id" in kwargs: opts["plate"] = int(kwargs["plate_id"]) else: # filter by query /screens/?plate=:id plate = getIntOrDefault(request, "plate", None) if plate is not None: opts["plate"] = plate return opts
def get_opts(self, request, **kwargs): """Add extra parameters to the opts dict.""" opts = super(ProjectsView, self).get_opts(request, **kwargs) opts["order_by"] = "lower(obj.name)" # at /datasets/:dataset_id/projects/ we have 'dataset_id' in kwargs if "dataset_id" in kwargs: opts["dataset"] = int(kwargs["dataset_id"]) else: # Filter Projects by child 'dataset' dataset = getIntOrDefault(request, "dataset", None) if dataset is not None: opts["dataset"] = dataset return opts
def get_opts(self, request, **kwargs): """Add extra parameters to the opts dict.""" opts = super(ScreensView, self).get_opts(request, **kwargs) opts['order_by'] = 'lower(obj.name)' # at /plate/:plate_id/screens/ we have 'plate_id' in kwargs if 'plate_id' in kwargs: opts['plate'] = long(kwargs['plate_id']) else: # filter by query /screens/?plate=:id plate = getIntOrDefault(request, 'plate', None) if plate is not None: opts['plate'] = plate return opts
def get_opts(self, request, **kwargs): """Add extra parameters to the opts dict.""" opts = super(ProjectsView, self).get_opts(request, **kwargs) opts['order_by'] = 'lower(obj.name)' # at /datasets/:dataset_id/projects/ we have 'dataset_id' in kwargs if 'dataset_id' in kwargs: opts['dataset'] = long(kwargs['dataset_id']) else: # Filter Projects by child 'dataset' dataset = getIntOrDefault(request, 'dataset', None) if dataset is not None: opts['dataset'] = dataset return opts
def get_opts(self, request, **kwargs): """Add extra parameters to the opts dict.""" opts = super(ImagesView, self).get_opts(request, **kwargs) opts["order_by"] = "lower(obj.name)" # at /datasets/:dataset_id/images/ we have 'dataset_id' in kwargs if "dataset_id" in kwargs: opts["dataset"] = int(kwargs["dataset_id"]) else: # filter by query /images/?dataset=:id dataset = getIntOrDefault(request, "dataset", None) if dataset is not None: opts["dataset"] = dataset # When listing images, always load pixels by default opts["load_pixels"] = True return opts
def _save_object(self, request, conn, object_json, **kwargs): """Here we handle the saving for PUT and POST.""" # Try to get group from request, OR from details below... group = getIntOrDefault(request, 'group', None) decoder = None objType = object_json['@type'] decoder = get_decoder(objType) # If we are passed incomplete object, or decoder couldn't be found... if decoder is None: raise BadRequestError('No decoder found for type: %s' % objType) # Any marshal errors most likely due to invalid input. status=400 try: obj = decoder.decode(object_json) except Exception: msg = 'Error in decode of json data by omero_marshal' raise BadRequestError(msg, traceback.format_exc()) if group is None: try: # group might be None or unloaded group = obj.getDetails().group.id.val except AttributeError: # Instead of default stack trace, give nicer message: msg = ("Specify Group in omero:details or " "query parameters ?group=:id") raise BadRequestError(msg) # If owner was unloaded (E.g. from get() above) or if missing # ome.model.meta.Experimenter.ldap (not supported by omero_marshal) # then saveObject() will give ValidationException. # Therefore we ignore any details for now: obj.unloadDetails() # TODO: Unlink children for Projects, Datasets and Screens to avoid # breaking links. See PR #4930 if hasattr(obj, 'unloadDatasetLinks'): obj.unloadDatasetLinks() if hasattr(obj, 'unloadImageLinks'): obj.unloadImageLinks() if hasattr(obj, 'unloadPlateLinks'): obj.unloadPlateLinks() conn.SERVICE_OPTS.setOmeroGroup(group) obj = conn.getUpdateService().saveAndReturnObject( obj, conn.SERVICE_OPTS) encoder = get_encoder(obj.__class__) return {'data': encoder.encode(obj)}
def get_opts(self, request, **kwargs): """Add extra parameters to the opts dict.""" opts = super(RoisView, self).get_opts(request, **kwargs) opts["load_shapes"] = True # order_by ID simply for consistency & paging opts["order_by"] = "obj.id" # at /images/:image_id/rois/ we have 'image_id' in kwargs if "image_id" in kwargs: opts["image"] = int(kwargs["image_id"]) else: # filter by query /rois/?image=:id image = getIntOrDefault(request, "image", None) if image is not None: opts["image"] = image return opts
def get_opts(self, request, **kwargs): """Add extra parameters to the opts dict.""" opts = super(WellsView, self).get_opts(request, **kwargs) opts["order_by"] = "obj.column, obj.row" # at /plates/:plate_id/wells/ we have 'plate_id' in kwargs if "plate_id" in kwargs: opts["plate"] = int(kwargs["plate_id"]) elif "plateacquisition_id" in kwargs: opts["plateacquisition"] = int(kwargs["plateacquisition_id"]) else: # filter by query /wells/?plate=:id plate = getIntOrDefault(request, "plate", None) if plate is not None: opts["plate"] = plate # When filtering by plate or plateacquisition, can filter by ws index if "index" in kwargs: opts["wellsample_index"] = int(kwargs["index"]) # Listing Wells, load Images opts["load_images"] = True return opts
def get_opts(self, request, **kwargs): """Add extra parameters to the opts dict.""" opts = super(WellsView, self).get_opts(request, **kwargs) opts['order_by'] = 'obj.column, obj.row' # at /plates/:plate_id/wells/ we have 'plate_id' in kwargs if 'plate_id' in kwargs: opts['plate'] = long(kwargs['plate_id']) elif 'plateacquisition_id' in kwargs: opts['plateacquisition'] = long(kwargs['plateacquisition_id']) else: # filter by query /wells/?plate=:id plate = getIntOrDefault(request, 'plate', None) if plate is not None: opts['plate'] = plate # When filtering by plate or plateacquisition, can filter by ws index if 'index' in kwargs: opts['wellsample_index'] = int(kwargs['index']) # Listing Wells, load Images opts['load_images'] = True return opts
def get_opts(self, request, **kwargs): """ Add extra parameters to the opts dict. Query will order Groups by name """ opts = super(ExperimenterGroupsView, self).get_opts(request, **kwargs) # Default 'load_experimenters' = True, but we don't want them opts["load_experimenters"] = False # order_by group name opts["order_by"] = "lower(obj.name)" # handle /experimenters/:experimenter_id/experimentergroups/ if "experimenter_id" in kwargs: opts["experimenter"] = int(kwargs["experimenter_id"]) else: # filter by query /experimentergroups/?experimenter=:id group = getIntOrDefault(request, "experimenter", None) if group is not None: opts["experimenter"] = group return opts
def get_opts(self, request, **kwargs): """ Add extra parameters to the opts dict for GET /experimenters/. Query will order by lastName, firstName Includes option to filter by group """ opts = super(ExperimentersView, self).get_opts(request, **kwargs) # Default 'load_experimentergroups' is True, but we don't need groups opts["load_experimentergroups"] = False # order_by lastName, firstName opts["order_by"] = "lower(obj.lastName), lower(obj.firstName)" # at /experimentergroups/:group_id/experimenters/ # we have 'group_id' in kwargs if "group_id" in kwargs: opts["experimentergroup"] = int(kwargs["group_id"]) else: # filter by query /experimenters/?experimentergroup=:id group = getIntOrDefault(request, "experimentergroup", None) if group is not None: opts["experimentergroup"] = group return opts