diff --git a/core/core_config.py b/core/core_config.py index d41b2157..194cd941 100644 --- a/core/core_config.py +++ b/core/core_config.py @@ -84,6 +84,7 @@ "Parameter name", "Order", "Used", + "Downloadable", "Parameter Type", "Option Values", "Min Value", @@ -95,8 +96,11 @@ "New field name", "Order", "Used", + "Downloadable", "Parameter Type", "Option Values", + "Min Value", + "Max Value", "Description", ] diff --git a/core/models.py b/core/models.py index 742c1917..5b199a47 100644 --- a/core/models.py +++ b/core/models.py @@ -278,6 +278,7 @@ def create_protocol_parameter(self, prot_param_data): parameter_min_value=prot_param_data["Min Value"], parameter_option_values=prot_param_data["Option Values"], parameter_type=prot_param_data["Parameter Type"], + parameter_download=prot_param_data["Downloadable"], ) return new_prot_parameter @@ -292,6 +293,7 @@ class ProtocolParameters(models.Model): parameter_option_values = models.CharField(max_length=400, null=True, blank=True) parameter_max_value = models.CharField(max_length=50, null=True, blank=True) parameter_min_value = models.CharField(max_length=50, null=True, blank=True) + parameter_download = models.BooleanField(default=False, null=True, blank=True) class Meta: db_table = "core_protocol_parameters" @@ -316,6 +318,7 @@ def get_all_parameter_info(self): param_info.append(self.parameter_name) param_info.append(self.parameter_order) param_info.append(self.parameter_used) + param_info.append(self.parameter_download) param_info.append(self.parameter_type) param_info.append(self.parameter_option_values) param_info.append(self.parameter_min_value) @@ -328,17 +331,23 @@ def get_protocol_fields_for_javascript(self): used = "true" else: used = "false" + if self.parameter_download: + download = "true" + else: + download = "false" if self.parameter_option_values is None: parameter_option_values = "" else: parameter_option_values = self.parameter_option_values field_data = [] field_data.append(self.parameter_name) - field_data.append(self.parameter_order) field_data.append(used) + field_data.append(download) field_data.append(self.parameter_type) field_data.append(parameter_option_values) + field_data.append(self.parameter_min_value) + field_data.append(self.parameter_max_value) field_data.append(self.parameter_description) return field_data @@ -347,8 +356,11 @@ def update_protocol_fields(self, prot_param_data): self.parameter_description = prot_param_data["Description"] self.parameter_order = prot_param_data["Order"] self.parameter_used = prot_param_data["Used"] + self.parameter_download = prot_param_data["Downloadable"] self.parameter_option_values = prot_param_data["Option Values"] self.parameter_type = prot_param_data["Parameter Type"] + self.parameter_max_value = prot_param_data["Max Value"] + self.parameter_min_value = prot_param_data["Min Value"] self.save() objects = ProtocolParametersManager() @@ -929,7 +941,7 @@ def create_sample_project_fields(self, project_field_data): sample_project_field_order=project_field_data["Order"], sample_project_field_used=project_field_data["Used"], sample_project_field_type=project_field_data["Field type"], - sample_project_searchable=project_field_data["Searchable"], + sample_project_downloadable=project_field_data["Downloadable"], # do not include optional values. Set to empty sample_project_option_list="", ) @@ -958,7 +970,7 @@ class SampleProjectsFields(models.Model): sample_project_field_used = models.BooleanField() sample_project_field_type = models.CharField(max_length=20) sample_project_option_list = models.CharField(max_length=255, null=True, blank=True) - sample_project_searchable = models.BooleanField(default=False) + sample_project_downloadable = models.BooleanField(default=False) generated_at = models.DateTimeField(auto_now_add=True) class Meta: @@ -1006,7 +1018,7 @@ def get_sample_project_fields_name(self, include_search=None): used = "true" else: used = "false" - if self.sample_project_searchable: + if self.sample_project_downloadable: searchable = "true" else: searchable = "false" @@ -1036,7 +1048,7 @@ def update_sample_project_fields(self, project_field_data): self.sample_project_field_order = project_field_data["Order"] self.sample_project_field_used = project_field_data["Used"] self.sample_project_field_type = project_field_data["Field type"] - self.sample_project_searchable = project_field_data["Searchable"] + self.sample_project_downloadable = project_field_data["Downloadable"] self.sample_project_field_classification_id = project_field_data[ "SampleProjectFieldClassificationID" ] diff --git a/core/utils/protocols.py b/core/utils/protocols.py index 861366be..eb2af48b 100644 --- a/core/utils/protocols.py +++ b/core/utils/protocols.py @@ -237,7 +237,6 @@ def get_protocol_fields(protocol_id): parameters_protocol["protocol_id"] = protocol_id parameters_protocol["protocol_name"] = protocol_obj.get_name() parameters_protocol["fields"] = parameter_list - return parameters_protocol @@ -365,13 +364,12 @@ def modify_fields_in_protocol(form_data): def set_protocol_parameters(request): protocol_id = request.POST["protocol_id"] - json_data = json.loads(request.POST["table_data1"]) parameters = core.core_config.HEADING_FOR_DEFINING_PROTOCOL_PARAMETERS protocol_id_obj = core.models.Protocols.objects.get(pk__exact=protocol_id) saved_parameters = [] stored_parameters = {} - for row_data in json_data: + for row_data in json.loads(request.POST["table_data1"]): if row_data[0] == "": continue prot_parameters = {} diff --git a/core/utils/samples.py b/core/utils/samples.py index 051a837c..699ea44d 100644 --- a/core/utils/samples.py +++ b/core/utils/samples.py @@ -2113,9 +2113,6 @@ def set_sample_project_fields(data_form): saved_fields = [] stored_fields = {} valid_data = False - import pdb - - pdb.set_trace() # check if there is at least one field to be used for row_line in excel_json_data: if row_line["Used"] is True: diff --git a/install.sh b/install.sh index b5fd5e2f..5d8c6463 100644 --- a/install.sh +++ b/install.sh @@ -569,7 +569,7 @@ if [ $upgrade == true ]; then echo "Running migration script: remove_comma_rawtopunknownbarcodes" ./manage.py runscript convert_rawtop_counter_to_int echo "checking for database changes" - if python manage.py makemigrations | grep -q "No changes"; then + if python manage.py makemigrations --noinput | grep -q "No changes"; then # check for pending migrations if ./manage.py showmigrations | grep '\[ \]'; then echo "There are pending migrations" diff --git a/wetlab/templates/wetlab/define_protocol_parameters.html b/wetlab/templates/wetlab/define_protocol_parameters.html index 09dcb81c..4fe3004d 100644 --- a/wetlab/templates/wetlab/define_protocol_parameters.html +++ b/wetlab/templates/wetlab/define_protocol_parameters.html @@ -9,7 +9,7 @@