Skip to content
Snippets Groups Projects

Database improvements

Merged Samuel GAIST requested to merge database_improvements into 1.4.x
2 files
+ 51
8
Compare changes
  • Side-by-side
  • Inline
Files
2
+ 19
1
@@ -25,6 +25,9 @@
# #
###############################################################################
import os
import json
from django.http import HttpResponse
from django.core.urlresolvers import reverse
@@ -93,6 +96,20 @@ def database_to_json(database, request_user, fields_to_return,
return result
def clean_paths(declaration):
pseudo_path = '/path_to_db_folder'
json_data = json.loads(declaration)
root_folder = json_data['root_folder']
cleaned_folder = os.path.basename(os.path.normpath(root_folder))
json_data['root_folder'] = os.path.join(pseudo_path, cleaned_folder)
for protocol in json_data['protocols']:
for set_ in protocol['sets']:
if 'parameters' in set_ and 'annotations' in set_['parameters']:
annotations_folder = set_['parameters']['annotations']
cleaned_folder = annotations_folder.split('/')[-2:]
set_['parameters']['annotations'] = os.path.join(pseudo_path, *cleaned_folder)
return json.dumps(json_data)
#----------------------------------------------------------
@@ -227,11 +244,12 @@ class RetrieveDatabaseView(views.APIView):
# Retrieve the code
if 'declaration' in fields_to_return:
try:
result['declaration'] = database.declaration_file.read()
declaration = database.declaration_file.read()
except:
logger.error(traceback.format_exc())
return HttpResponse(status=500)
result['declaration'] = clean_paths(declaration)
# Retrieve the source code
if 'code' in fields_to_return:
Loading