Commit 44eb4c64 authored by Ryan Herbert's avatar Ryan Herbert

Merge branch 'hotfix-s/3213-edit-with-preprocess' into 'dev'

Resolve "Éditer un sample qui possède un pre-process empêche de relancer une analyse dessus"

Closes #3213

See merge request !216
parents db26a998 81dce337
Pipeline #30153 passed with stages
in 6 minutes and 6 seconds
...@@ -236,6 +236,10 @@ def submit(): ...@@ -236,6 +236,10 @@ def submit():
reupload = True reupload = True
fid = int(f["id"]) fid = int(f["id"])
sequence_file = db.sequence_file[fid] sequence_file = db.sequence_file[fid]
if f['filename'] == '':
# If we don't reupload a new file
file_data.pop('pre_process_flag')
db.sequence_file[fid] = file_data db.sequence_file[fid] = file_data
#remove previous membership #remove previous membership
db( db.sample_set_membership.sequence_file_id == fid).delete() db( db.sample_set_membership.sequence_file_id == fid).delete()
...@@ -298,6 +302,10 @@ def submit(): ...@@ -298,6 +302,10 @@ def submit():
def form_response(data): def form_response(data):
source_module_active = hasattr(defs, 'FILE_SOURCE') and hasattr(defs, 'FILE_TYPES') source_module_active = hasattr(defs, 'FILE_SOURCE') and hasattr(defs, 'FILE_TYPES')
network_source = source_module_active and (data['action'] != 'edit' \
or len(data['file']) == 0 \
or data['file'][0].network)
# should be true only when we want to use the network view
response.view = 'file/form.html' response.view = 'file/form.html'
upload_group_ids = [int(gid) for gid in get_upload_group_ids(auth)] upload_group_ids = [int(gid) for gid in get_upload_group_ids(auth)]
group_ids = get_involved_groups() group_ids = get_involved_groups()
...@@ -309,6 +317,7 @@ def form_response(data): ...@@ -309,6 +317,7 @@ def form_response(data):
sample_type = data['sample_type'], sample_type = data['sample_type'],
errors = data['errors'], errors = data['errors'],
source_module_active = source_module_active, source_module_active = source_module_active,
network_source = network_source,
group_ids = group_ids, group_ids = group_ids,
upload_group_ids = upload_group_ids, upload_group_ids = upload_group_ids,
isEditing = data['action']=='edit') isEditing = data['action']=='edit')
......
...@@ -7,22 +7,26 @@ ...@@ -7,22 +7,26 @@
<h3>Add samples</h3> <h3>Add samples</h3>
{{ pass }} {{ pass }}
{{ required_files = 1 }}
{{ if source_module_active: }} {{ if source_module_active: }}
<span>file source: </span> <span>file source: </span>
<label for="source_computer">my computer</label> <label for="source_computer">my computer</label>
<input type="radio" id="source_computer" name="source" value="computer" onchange="db.toggle_file_source()"/> <input type="radio" id="source_computer" name="source" value="computer" onchange="db.toggle_file_source()" {{ if not network_source: }} checked="checked" {{pass}}/>
<label for="source_nfs">network</label> <label for="source_nfs">network</label>
<input type="radio" id="source_nfs" name="source" value="nfs" onchange="db.toggle_file_source()" checked="checked" /> <input type="radio" id="source_nfs" name="source" value="nfs" onchange="db.toggle_file_source()" {{if network_source:}} checked="checked" {{pass}} />
<p></p> <p></p>
{{pass}} {{pass}}
<div {{if source_module_active:}} hidden {{pass}}> <div {{if network_source:}} hidden {{pass}}>
<h3>Pre-process scenario</h3> <h3>Pre-process scenario</h3>
If you have two R1/R2 files per sample, please select an appropriate pre-process : If you have two R1/R2 files per sample, please select an appropriate pre-process :
<select id="pre_process" name="pre_process" onChange="db.pre_process_onChange(this)" {{if source_module_active:}} disabled {{pass}}> <select id="pre_process" name="pre_process" onChange="db.pre_process_onChange(this)" {{if network_source:}} disabled {{pass}}>
<option required_files="1" value="0">no pre-process (1 file per sample)</option> <option required_files="1" value="0">no pre-process (1 file per sample)</option>
{{for row in pre_process_list :}} {{for row in pre_process_list :}}
<option title="{{=row["info"]}}" required_files="{{=row["file"]}}" value="{{=row["id"]}}" <option title="{{=row["info"]}}" required_files="{{=row["file"]}}" value="{{=row["id"]}}"
{{if 'file_id' in request.vars and row["id"]==files[0].pre_process_id :}}selected{{pass}}> {{if 'file_id' in request.vars and row["id"]==files[0].pre_process_id :}}
selected
{{ required_files=row["file"]}}
{{pass}}>
{{=row["id"]}} &ndash; {{=row["name"]}} {{=row["id"]}} &ndash; {{=row["name"]}}
</option> </option>
{{pass}} {{pass}}
......
...@@ -15,18 +15,18 @@ ...@@ -15,18 +15,18 @@
</div> </div>
<div class="field_div"> <div class="field_div">
<div id="file_field_1_{{=i}}" class="field_div file_1" {{if source_module_active:}} style="display: none" {{pass}}> <div id="file_field_1_{{=i}}" class="field_div file_1" {{if network_source:}} style="display: none" {{pass}}>
<input class="upload_field form-control" id="file_upload_1_{{=i}}" type="file" <input class="upload_field form-control" id="file_upload_1_{{=i}}" type="file"
{{if source_module_active:}} {{if network_source:}}
disabled disabled
{{pass}} {{pass}}
onchange="db.upload_file_onChange('file_filename_{{=i}}', this.value)" onchange="db.upload_file_onChange('file_filename_{{=i}}', this.value)"
title="first file for this sample (.fa, .fastq, .fa.gz, .fastq.gz, .clntab)" title="first file for this sample (.fa, .fastq, .fa.gz, .fastq.gz, .clntab)"
> >
</div> </div>
<div id="file_2_{{=i}}" class="field_div file_2" style="display: none"> <div id="file_2_{{=i}}" class="field_div file_2" {{if required_files < 2:}}style="display: none"{{pass}}>
<input class="upload_field form-control" id="file_upload_2_{{=i}}" type="file" <input class="upload_field form-control" id="file_upload_2_{{=i}}" type="file"
{{if source_module_active:}} {{if network_source:}}
disabled disabled
{{pass}} {{pass}}
title="second file for this sample (.fa, .fastq, .fa.gz, .fastq.gz)" title="second file for this sample (.fa, .fastq, .fa.gz, .fastq.gz)"
...@@ -34,7 +34,7 @@ ...@@ -34,7 +34,7 @@
</div> </div>
<div id="jstree_field_{{=i}}" <div id="jstree_field_{{=i}}"
class="field_div jstree_field form-control" class="field_div jstree_field form-control"
{{if not source_module_active:}} style="display: none;" {{pass}} {{if not network_source:}} hidden {{pass}}
data-index={{=i}} data-index={{=i}}
onclick="db.display_jstree(this.dataset.index)"> onclick="db.display_jstree(this.dataset.index)">
<span class="button2">browse</span> <span class="button2">browse</span>
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment