Skip to content

Commit

Permalink
Merge pull request #482 from will-moore/9918_tag_edit
Browse files Browse the repository at this point in the history
int(request.REQUEST.get('index', 0) all in try/except. See #9918
  • Loading branch information
chris-allan committed Jan 4, 2013
2 parents 5f74a6b + 005d528 commit ff06cbb
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 23 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -34,13 +34,18 @@
$("#tags_container").hide_if_empty();

{% if manager.canEdit %}
// we may have well-index, if we are editing an image within a Well
var idx = "{{ index }}";
if (idx.length > 0) {
idx = "?index=" + idx;
}
$( "#{{ manager.obj_type }}name-{{ manager.obj_id }} button" ) // E.g. imagename-123 button
.editable('{% url manage_action_containers "editname" manager.obj_type manager.obj_id %}?index={{index}}',
'{% url manage_action_containers "savename" manager.obj_type manager.obj_id %}?index={{index}}',
.editable('{% url manage_action_containers "editname" manager.obj_type manager.obj_id %}'+idx,
'{% url manage_action_containers "savename" manager.obj_type manager.obj_id %}'+idx,
"{{ manager.obj_type }}name-{{ manager.obj_id }}" );
$( "#{{ manager.obj_type }}description-{{ manager.obj_id }} button" )
.editable('{% url manage_action_containers "editdescription" manager.obj_type manager.obj_id %}?index={{index}}',
'{% url manage_action_containers "savedescription" manager.obj_type manager.obj_id %}?index={{index}}',
.editable('{% url manage_action_containers "editdescription" manager.obj_type manager.obj_id %}'+idx,
'{% url manage_action_containers "savedescription" manager.obj_type manager.obj_id %}'+idx,
"{{ manager.obj_type }}description-{{ manager.obj_id }}" );
{% endif %}

Expand Down
41 changes: 22 additions & 19 deletions components/tools/OmeroWeb/omeroweb/webclient/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,14 @@

logger.info("INIT '%s'" % os.getpid())

# helper method
def getIntOrDefault(request, name, default):
try:
index = int(request.REQUEST.get(name, default))
except ValueError:
index = 0
return index

################################################################################
# views controll

Expand Down Expand Up @@ -445,13 +453,13 @@ def load_data(request, o1_type=None, o1_id=None, o2_type=None, o2_id=None, o3_ty
"""

# get page
page = int(request.REQUEST.get('page', 1))
page = getIntOrDefault(request, 'page', 1)

# get view
view = str(request.REQUEST.get('view', None))

# get index of the plate
index = int(request.REQUEST.get('index', 0))
index = getIntOrDefault(request, 'index', 0)

# prepare data. E.g. kw = {} or {'dataset': 301L} or {'project': 151L, 'dataset': 301L}
kw = dict()
Expand Down Expand Up @@ -612,7 +620,8 @@ def load_data_by_tag(request, o_type=None, o_id=None, conn=None, **kwargs):
view = request.REQUEST.get("view")

# the index of a field within a well
index = int(request.REQUEST.get('index', 0))
index = getIntOrDefault(request, 'index', 0)


# prepare forms
filter_user_id = request.session.get('user_id')
Expand Down Expand Up @@ -755,7 +764,7 @@ def load_metadata_details(request, c_type, c_id, conn=None, share_id=None, **kwa
"""

# the index of a field within a well
index = int(request.REQUEST.get('index', 0))
index = getIntOrDefault(request, 'index', 0)

# we only expect a single object, but forms can take multiple objects
images = c_type == "image" and list(conn.getObjects("Image", [c_id])) or list()
Expand Down Expand Up @@ -820,10 +829,7 @@ def load_metadata_preview(request, c_type, c_id, conn=None, share_id=None, **kwa
"""

# the index of a field within a well
try:
index = int(request.REQUEST.get('index', 0))
except:
index = 0
index = getIntOrDefault(request, 'index', 0)

manager = BaseContainer(conn, index=index, **{str(c_type): long(c_id)})

Expand All @@ -844,7 +850,7 @@ def load_metadata_hierarchy(request, c_type, c_id, conn=None, **kwargs):
"""

# the index of a field within a well
index = int(request.REQUEST.get('index', 0))
index = getIntOrDefault(request, 'index', 0)

manager = BaseContainer(conn, index=index, **{str(c_type): long(c_id)})

Expand All @@ -862,10 +868,7 @@ def load_metadata_acquisition(request, c_type, c_id, conn=None, share_id=None, *
"""

# the index of a field within a well
try:
index = int(request.REQUEST.get('index', 0))
except:
index = 0
index = getIntOrDefault(request, 'index', 0)

try:
if c_type in ("share", "discussion"):
Expand Down Expand Up @@ -1043,7 +1046,7 @@ def getObjects(request, conn=None):
shares = len(request.REQUEST.getlist('share')) > 0 and [conn.getShare(request.REQUEST.getlist('share')[0])] or list()
wells = list()
if len(request.REQUEST.getlist('well')) > 0:
index = int(request.REQUEST.get('index', 0))
index = getIntOrDefault(request, 'index', 0)
for w in conn.getObjects("Well", request.REQUEST.getlist('well')):
w.index=index
wells.append(w)
Expand Down Expand Up @@ -1072,7 +1075,7 @@ def batch_annotate(request, conn=None, **kwargs):
initial = {'selected':selected, 'images':objs['image'], 'datasets': objs['dataset'], 'projects':objs['project'],
'screens':objs['screen'], 'plates':objs['plate'], 'acquisitions':objs['acquisition'], 'wells':objs['well']}
form_comment = CommentAnnotationForm(initial=initial)
index = int(request.REQUEST.get('index', 0))
index = getIntOrDefault(request, 'index', 0)

manager = BaseContainer(conn)
batchAnns = manager.loadBatchAnnotations(objs)
Expand Down Expand Up @@ -1100,7 +1103,7 @@ def annotate_file(request, conn=None, **kwargs):
On 'POST', This handles attaching an existing file-annotation(s) and/or upload of a new file to one or more objects
Otherwise it generates the form for choosing file-annotations & local files.
"""
index = int(request.REQUEST.get('index', 0))
index = getIntOrDefault(request, 'index', 0)
oids = getObjects(request, conn)
selected = getIds(request)
initial = {'selected':selected, 'images':oids['image'], 'datasets': oids['dataset'], 'projects':oids['project'],
Expand Down Expand Up @@ -1190,7 +1193,7 @@ def annotate_comment(request, conn=None, **kwargs):
if request.method != 'POST':
raise Http404("Unbound instance of form not available.")

index = int(request.REQUEST.get('index', 0))
index = getIntOrDefault(request, 'index', 0)
oids = getObjects(request, conn)
selected = getIds(request)
initial = {'selected':selected, 'images':oids['image'], 'datasets': oids['dataset'], 'projects':oids['project'],
Expand Down Expand Up @@ -1221,7 +1224,7 @@ def annotate_comment(request, conn=None, **kwargs):
def annotate_tags(request, conn=None, **kwargs):
""" This handles creation AND submission of Tags form, adding new AND/OR existing tags to one or more objects """

index = int(request.REQUEST.get('index', 0))
index = getIntOrDefault(request, 'index', 0)
oids = getObjects(request, conn)
selected = getIds(request)
obj_count = sum( [len(selected[types]) for types in selected] )
Expand Down Expand Up @@ -1316,7 +1319,7 @@ def manage_action_containers(request, action, o_type=None, o_id=None, conn=None,
template = None

# the index of a field within a well
index = int(request.REQUEST.get('index', 0))
index = getIntOrDefault(request, 'index', 0)

manager = None
if o_type in ("dataset", "project", "image", "screen", "plate", "acquisition", "well","comment", "file", "tag", "tagset"):
Expand Down

0 comments on commit ff06cbb

Please sign in to comment.