Skip to content
Snippets Groups Projects
Commit 641c33f5 authored by Renzo Frigato's avatar Renzo Frigato Committed by GitHub
Browse files

Merge pull request #503 from scitran/fix-analysis-files-download

fix downloads of analysis files
parents 8ab8841f a0f2a88f
No related branches found
No related tags found
No related merge requests found
......@@ -189,8 +189,8 @@ routes = [
listhandler.AnalysesHandler, handler_method='download',
methods=['GET'], name='analysis_files'),
webapp2.Route(_format(r'/api/<cont_name:{cont_name_re}>/<cid:{cid_re}>/<list_name:analyses>/<_id:{cid_re}>/files/<name:{filename_re}>'),
listhandler.AnalysesHandler,
handler_method='download', name='analysis_single_file'),
listhandler.AnalysesHandler, handler_method='download',
methods=['GET'], name='analysis_single_file'),
webapp2.Route(_format(r'/api/<cont_name:{cont_name_re}>/<cid:{cid_re}>/<list_name:analyses>/<_id:{cid_re}>/notes'),
listhandler.AnalysesHandler, handler_method='add_note',
methods=['POST'], name='analysis_add_note'),
......
......@@ -835,8 +835,10 @@ class AnalysesHandler(ListHandler):
permchecker, storage, _, _, _ = self._initialize_request(cont_name, list_name, _id)
filename = kwargs.get('name')
ticket_id = self.get_param('ticket')
if not ticket_id:
if ticket_id is None:
permchecker(noop)('GET', _id=_id)
elif ticket_id != '':
ticket = self._check_ticket(ticket_id, _id, filename)
analysis_id = kwargs.get('_id')
fileinfo = storage.get_fileinfo(_id, analysis_id, filename)
if fileinfo is None:
......@@ -844,7 +846,7 @@ class AnalysesHandler(ListHandler):
if filename:
error_msg = 'Could not find file {} on analysis {}'.format(filename, analysis_id)
self.abort(404, error_msg)
if not ticket_id:
if ticket_id == '':
if filename:
total_size = fileinfo[0]['size']
file_cnt = 1
......@@ -860,7 +862,6 @@ class AnalysesHandler(ListHandler):
'filename': filename
}
else:
ticket = self._check_ticket(ticket_id, _id, filename)
if not filename:
self._send_batch(ticket)
return
......
......@@ -6,6 +6,7 @@ from .. import config
from .. import util
from ..search import pathparser, queryprocessor, es_query
log = config.log
parent_container_dict = {
'acquisitions': 'sessions',
......@@ -87,7 +88,7 @@ class SearchHandler(base.RequestHandler):
return results
def _augment_result(self, result, result_type):
if result_type in ['files', 'notes']:
if result_type in ['files', 'notes', 'analyses']:
container = result['_source'].pop('container')
container_name = result['_source']['container_name']
result['_source'][container_name[:-1]] = container
......@@ -108,7 +109,12 @@ class SearchHandler(base.RequestHandler):
if parent_container_dict.get(cont_name):
parent_name = parent_container_dict[cont_name]
parent_id = container[parent_name[:-1]]
parent_container = self.search_containers[parent_name].results[parent_id]['_source']
parent_results = self.search_containers[parent_name].results
if parent_results is None:
return parents
parent_container = parent_results.get(parent_id, {}).get('_source')
if parent_container is None:
return parents
parents[parent_name[:-1]] = parent_container
parents.update(self._get_parents(parent_container, parent_name))
return parents
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment