From 01a960c7dc757b31d834aa3df9ee03f1ee0d86c1 Mon Sep 17 00:00:00 2001 From: Will Moore Date: Wed, 20 May 2015 10:10:57 +0100 Subject: [PATCH 1/4] Handle unicode for new Tags --- .../tools/OmeroWeb/omeroweb/webclient/controller/container.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/components/tools/OmeroWeb/omeroweb/webclient/controller/container.py b/components/tools/OmeroWeb/omeroweb/webclient/controller/container.py index 87ee797370e..dd731efcda2 100644 --- a/components/tools/OmeroWeb/omeroweb/webclient/controller/container.py +++ b/components/tools/OmeroWeb/omeroweb/webclient/controller/container.py @@ -874,8 +874,8 @@ def createTagAnnotations(self, tag, desc, oids, well_index=0, pass if ann is None: ann = omero.model.TagAnnotationI() - ann.textValue = rstring(str(tag)) - ann.setDescription(rstring(str(desc))) + ann.textValue = rstring(tag.encode('utf8')) + ann.setDescription(rstring(desc.encode('utf8'))) ann = self.conn.saveAndReturnObject(ann) if tag_group_id: # Put new tag in given tag set tag_group = None From d8c5a056e0beb9975add49f943eb5346a553257c Mon Sep 17 00:00:00 2001 From: Will Moore Date: Wed, 20 May 2015 11:04:24 +0100 Subject: [PATCH 2/4] Running scripts handles unicode values --- .../tools/OmeroWeb/omeroweb/webclient/views.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/components/tools/OmeroWeb/omeroweb/webclient/views.py b/components/tools/OmeroWeb/omeroweb/webclient/views.py index 1b9a83f1478..d8962b87937 100755 --- a/components/tools/OmeroWeb/omeroweb/webclient/views.py +++ b/components/tools/OmeroWeb/omeroweb/webclient/views.py @@ -3851,9 +3851,9 @@ def script_run(request, scriptId, conn=None, **kwargs): # the key and value don't have any data-type defined by # scripts - just use string k = str(request.POST[keyName]) - v = str(request.POST[valueName]) + v = request.POST[valueName] if len(k) > 0 and len(v) > 0: - paramMap[str(k)] = str(v) + paramMap[str(k)] = v.encode('utf8') row += 1 keyName = "%s_key%d" % (key, row) valueName = "%s_value%d" % (key, row) @@ -3872,7 +3872,7 @@ def script_run(request, scriptId, conn=None, **kwargs): values = values[0].split(",") # try to determine 'type' of values in our list - listClass = omero.rtypes.rstring + listClass = omero.rtypes.RStringI l = prototype.val # list # check if a value type has been set (first item of prototype # list) @@ -3887,8 +3887,8 @@ def script_run(request, scriptId, conn=None, **kwargs): valueList = [] for v in values: try: - # convert unicode -> string - obj = listClass(str(v.strip())) + # RStringI() will encode any unicode + obj = listClass(v.strip()) except: logger.debug("Invalid entry for '%s' : %s" % (key, v)) continue @@ -3924,7 +3924,11 @@ def script_run(request, scriptId, conn=None, **kwargs): # if inputMap values not as expected or firstObj is None conn.SERVICE_OPTS.setOmeroGroup(gid) - logger.debug("Running script %s with params %s" % (scriptName, inputMap)) + try: + # Try/except in case inputs are not serializable, e.g. unicode + logger.debug("Running script %s with params %s" % (scriptName, inputMap)) + except: + pass rsp = run_script(request, conn, sId, inputMap, scriptName) return HttpJsonResponse(rsp) From f00f6c3a2e334173314c98193f6c71ac802c121d Mon Sep 17 00:00:00 2001 From: Will Moore Date: Thu, 21 May 2015 09:35:02 +0100 Subject: [PATCH 3/4] Flake8 fix --- components/tools/OmeroWeb/omeroweb/webclient/views.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/components/tools/OmeroWeb/omeroweb/webclient/views.py b/components/tools/OmeroWeb/omeroweb/webclient/views.py index d8962b87937..104501e1515 100755 --- a/components/tools/OmeroWeb/omeroweb/webclient/views.py +++ b/components/tools/OmeroWeb/omeroweb/webclient/views.py @@ -3926,7 +3926,8 @@ def script_run(request, scriptId, conn=None, **kwargs): try: # Try/except in case inputs are not serializable, e.g. unicode - logger.debug("Running script %s with params %s" % (scriptName, inputMap)) + logger.debug("Running script %s with " + "params %s" % (scriptName, inputMap)) except: pass rsp = run_script(request, conn, sId, inputMap, scriptName) From 903012660685537a0b8964265110d836dea49cb5 Mon Sep 17 00:00:00 2001 From: Will Moore Date: Mon, 25 May 2015 16:01:53 +0100 Subject: [PATCH 4/4] Fix name of file for downloading image As jpeg/png/tiff --- components/tools/OmeroWeb/omeroweb/webgateway/views.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/components/tools/OmeroWeb/omeroweb/webgateway/views.py b/components/tools/OmeroWeb/omeroweb/webgateway/views.py index 7bdc6a2fe47..90a3b2c2dfc 100644 --- a/components/tools/OmeroWeb/omeroweb/webgateway/views.py +++ b/components/tools/OmeroWeb/omeroweb/webgateway/views.py @@ -863,11 +863,13 @@ def render_image(request, iid, z=None, t=None, conn=None, **kwargs): # don't seem to need to do this for tiff elif format == 'tif': rsp = HttpResponse(jpeg_data, content_type='image/tif') + fileName = img.getName().decode('utf8').replace(" ", "_") + fileName = fileName.replace(",", ".") rsp['Content-Type'] = 'application/force-download' rsp['Content-Length'] = len(jpeg_data) rsp['Content-Disposition'] = ( 'attachment; filename=%s.%s' - % (img.getName().replace(" ", "_"), format)) + % (fileName, format)) return rsp