From b5b599ba7eddf912cdb24f516e71341e3494e2a9 Mon Sep 17 00:00:00 2001 From: jleblond Date: Tue, 18 May 2021 10:00:33 -0400 Subject: [PATCH 01/31] Bugfix: Add Empty ant component --- frontend/src/components/samples/details/SampleDetailsProcess.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/components/samples/details/SampleDetailsProcess.js b/frontend/src/components/samples/details/SampleDetailsProcess.js index 33f0d1688..aba336f63 100644 --- a/frontend/src/components/samples/details/SampleDetailsProcess.js +++ b/frontend/src/components/samples/details/SampleDetailsProcess.js @@ -2,7 +2,7 @@ import React from "react"; import {connect} from "react-redux"; import {Link} from "react-router-dom"; -import {Table, Tag} from "antd"; +import {Table, Tag, Empty} from "antd"; const mapStateToProps = state => ({ From 07ce89a2028a00c7a2e29d5aba463e439c689552 Mon Sep 17 00:00:00 2001 From: jleblond Date: Tue, 18 May 2021 16:39:34 -0400 Subject: [PATCH 02/31] Fix sample update volume decimal --- backend/fms_core/resources/sample_update.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/fms_core/resources/sample_update.py b/backend/fms_core/resources/sample_update.py index 71cbbb09f..af7427bde 100644 --- a/backend/fms_core/resources/sample_update.py +++ b/backend/fms_core/resources/sample_update.py @@ -119,7 +119,7 @@ def import_field(self, field, obj, data, is_m2m=False): # Manually process volume history and don't call superclass method new_vol = blank_str_to_none(data.get("New Volume (uL)")) # "" -> None for CSVs if new_vol is not None: # Only update volume if we got a value - obj.volume = new_vol + obj.volume = float_to_decimal(new_vol) return if field.column_name == "Delta Volume (uL)": From 565370958fde9bea4a60380cd7431b408e40fff9 Mon Sep 17 00:00:00 2001 From: jleblond Date: Wed, 19 May 2021 11:15:20 -0400 Subject: [PATCH 03/31] Add missing Sample individual migration (#69) --- backend/fms_core/migrations/0020_v3_2_0.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/backend/fms_core/migrations/0020_v3_2_0.py b/backend/fms_core/migrations/0020_v3_2_0.py index 59013e6d7..b4079e246 100644 --- a/backend/fms_core/migrations/0020_v3_2_0.py +++ b/backend/fms_core/migrations/0020_v3_2_0.py @@ -30,4 +30,11 @@ class Migration(migrations.Migration): name='name', field=models.CharField(help_text='Sample name.', max_length=200, validators=[django.core.validators.RegexValidator(re.compile('^[a-zA-Z0-9.\\-_]{1,200}$'))]), ), + migrations.AlterField( + model_name='sample', + name='individual', + field=models.ForeignKey(help_text='Individual associated with the sample.', + on_delete=django.db.models.deletion.PROTECT, related_name='samples', + to='fms_core.individual'), + ), ] From 53032546abf7be0f583a252412f510d977ed48d8 Mon Sep 17 00:00:00 2001 From: UlysseFG Date: Wed, 19 May 2021 13:07:20 -0400 Subject: [PATCH 04/31] applying conversion to decimal to volume computation using delta volume. --- backend/fms_core/resources/sample_update.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/fms_core/resources/sample_update.py b/backend/fms_core/resources/sample_update.py index af7427bde..8aac0e077 100644 --- a/backend/fms_core/resources/sample_update.py +++ b/backend/fms_core/resources/sample_update.py @@ -126,7 +126,7 @@ def import_field(self, field, obj, data, is_m2m=False): # Manually process volume history and don't call superclass method delta_vol = blank_str_to_none(data.get("Delta Volume (uL)")) # "" -> None for CSVs if delta_vol is not None: # Only update volume if we got a value - obj.volume = obj.volume + Decimal(delta_vol) + obj.volume = float_to_decimal(obj.volume + Decimal(delta_vol)) return if field.attribute == 'depleted': From 09b59de6ca1bae73588da5e787d5e27cb5f66c23 Mon Sep 17 00:00:00 2001 From: UlysseFG Date: Wed, 19 May 2021 20:41:14 -0400 Subject: [PATCH 05/31] fix issue with optional old_value --- .../management/commands/_update_field_value.py | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/backend/fms_core/management/commands/_update_field_value.py b/backend/fms_core/management/commands/_update_field_value.py index b3ffd0af6..053a09818 100644 --- a/backend/fms_core/management/commands/_update_field_value.py +++ b/backend/fms_core/management/commands/_update_field_value.py @@ -60,16 +60,13 @@ def update_field_value(params, objects_to_delete, log): entity = entity_model.objects.get(**id) try: db_old_value = getattr(entity, field) - if old_value and old_value == db_old_value: + if not old_value or old_value == db_old_value: setattr(entity, field, new_value) - log.info(f"Updated model [{model}] id [{id} field [{field}] old value [{old_value}] new value [{new_value}].") - if user_id: - entity.save(requester_id=user_id) # Save using th id of the requester - else: - entity.save() # Save using the default admin user + log.info(f"Updated model [{model}] id [{id} field [{field}] old value [{db_old_value}] new value [{new_value}].") + entity.save(requester_id=user_id) # Save using the id of the requester if present count_updates += 1 else: - log.error(f"Content of field [{field}] do not match the old_value expected [{old_value}].") + log.error(f"Value [{db_old_value}] of field [{field}] do not match the old_value expected [{old_value}].") error_found = True except AttributeError: log.error(f"Field [{field}] does not exist for model [{model}].") From e7ce1cdef48d863c93eb2754ee45f266a1e2b88f Mon Sep 17 00:00:00 2001 From: UlysseFG Date: Mon, 31 May 2021 09:56:46 -0400 Subject: [PATCH 06/31] Rename secret key env variable --- backend/fms/settings.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/fms/settings.py b/backend/fms/settings.py index 6dce2256f..22f19a385 100644 --- a/backend/fms/settings.py +++ b/backend/fms/settings.py @@ -22,7 +22,7 @@ # SECURITY WARNING: keep the secret key used in production secret! SECRET_KEY = os.environ.get( - 'FREEZEMAN_SECRET_KEY', + 'FMS_SECRET_KEY', '*c##1@2jo)b*_jk5+rdq%4r*sst+r&vhc^43ck900h-35fb-ly') From 2d62ff39a9cf6d75ea1284e2dd6137a4a350b396 Mon Sep 17 00:00:00 2001 From: UlysseFG Date: Mon, 31 May 2021 16:04:50 -0400 Subject: [PATCH 07/31] Set empty warning when too many errors. --- backend/fms_core/resources/_generic.py | 1 + 1 file changed, 1 insertion(+) diff --git a/backend/fms_core/resources/_generic.py b/backend/fms_core/resources/_generic.py index ea833a339..7d6aaea56 100644 --- a/backend/fms_core/resources/_generic.py +++ b/backend/fms_core/resources/_generic.py @@ -70,6 +70,7 @@ def import_row(self, row, instance_loader, using_transactions=True, dry_run=Fals else: row_result = self.get_row_result_class()() row_result.import_type = RowResult.IMPORT_TYPE_SKIP + row_result.warnings = [] return row_result def after_import(self, dataset, result, using_transactions, dry_run, **kwargs): From ee1aabff7a63558c83ec05a85887b9d600228d8d Mon Sep 17 00:00:00 2001 From: UlysseFG Date: Thu, 29 Jul 2021 18:57:04 -0400 Subject: [PATCH 08/31] bump version --- backend/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/VERSION b/backend/VERSION index 944880fa1..15a279981 100644 --- a/backend/VERSION +++ b/backend/VERSION @@ -1 +1 @@ -3.2.0 +3.3.0 From 2a32313ae7ae2013d85839ab9e0b846b75e0d636 Mon Sep 17 00:00:00 2001 From: jleblond Date: Wed, 4 Aug 2021 10:45:53 -0400 Subject: [PATCH 09/31] Fix TemplateFlow with errors but no base error (#119) --- frontend/src/components/TemplateFlow.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/components/TemplateFlow.js b/frontend/src/components/TemplateFlow.js index e7782e7ab..15b76f6ab 100644 --- a/frontend/src/components/TemplateFlow.js +++ b/frontend/src/components/TemplateFlow.js @@ -102,7 +102,7 @@ function renderResultOK(checkResult) { const wasInterrupted = checkResult => { return ( <> - { checkResult?.base_errors.length > 0 && checkResult.base_errors.map(baseError => + { checkResult?.base_errors?.length > 0 && checkResult.base_errors.map(baseError =>

{baseError.error}

) From 497b92f605042782c461327eff0c2db524675317 Mon Sep 17 00:00:00 2001 From: jleblond Date: Thu, 5 Aug 2021 10:30:31 -0400 Subject: [PATCH 10/31] Add some import statements in viewsets (#121) --- backend/fms_core/viewsets/container_kind.py | 4 ++++ backend/fms_core/viewsets/individual.py | 1 + backend/fms_core/viewsets/query.py | 2 ++ backend/fms_core/viewsets/sample.py | 6 +++--- 4 files changed, 10 insertions(+), 3 deletions(-) diff --git a/backend/fms_core/viewsets/container_kind.py b/backend/fms_core/viewsets/container_kind.py index 8cb11d7ac..82127a30b 100644 --- a/backend/fms_core/viewsets/container_kind.py +++ b/backend/fms_core/viewsets/container_kind.py @@ -1,7 +1,11 @@ +from django.http import HttpResponseNotFound + from rest_framework import viewsets from rest_framework.permissions import AllowAny from rest_framework.response import Response +import json + from fms_core.containers import ContainerSpec, CONTAINER_KIND_SPECS diff --git a/backend/fms_core/viewsets/individual.py b/backend/fms_core/viewsets/individual.py index e38bac6a9..705d279ca 100644 --- a/backend/fms_core/viewsets/individual.py +++ b/backend/fms_core/viewsets/individual.py @@ -4,6 +4,7 @@ from rest_framework import viewsets from rest_framework.permissions import IsAuthenticated from rest_framework.decorators import action +from rest_framework.response import Response from fms_core.models import Individual from fms_core.serializers import IndividualSerializer diff --git a/backend/fms_core/viewsets/query.py b/backend/fms_core/viewsets/query.py index eae7bf090..89879ff3a 100644 --- a/backend/fms_core/viewsets/query.py +++ b/backend/fms_core/viewsets/query.py @@ -1,4 +1,6 @@ from django.db.models import Q, F +from django.contrib.auth.models import User +from django.db.models.functions import Greatest from rest_framework import viewsets from rest_framework.decorators import action diff --git a/backend/fms_core/viewsets/sample.py b/backend/fms_core/viewsets/sample.py index 50b455953..113db220a 100644 --- a/backend/fms_core/viewsets/sample.py +++ b/backend/fms_core/viewsets/sample.py @@ -1,13 +1,13 @@ from collections import Counter -from django.db.models import Count +from django.db.models import Count, Q from rest_framework import viewsets from rest_framework.decorators import action from rest_framework.response import Response -from fms_core.models import Sample -from fms_core.serializers import SampleSerializer +from fms_core.models import Sample, Container +from fms_core.serializers import SampleSerializer, NestedSampleSerializer, SampleExportSerializer from fms_core.resources import SampleResource, SampleUpdateResource from fms_core.template_paths import SAMPLE_SUBMISSION_TEMPLATE, SAMPLE_UPDATE_TEMPLATE From 8dea210cc20a2e6c048e7efe3a411380012e2b91 Mon Sep 17 00:00:00 2001 From: jleblond Date: Mon, 9 Aug 2021 09:52:31 -0400 Subject: [PATCH 11/31] ContainerHierarchy with virtual scroll (#124) --- frontend/src/components/containers/ContainerHierarchy.js | 1 + 1 file changed, 1 insertion(+) diff --git a/frontend/src/components/containers/ContainerHierarchy.js b/frontend/src/components/containers/ContainerHierarchy.js index 2bb3dc837..ed473f382 100644 --- a/frontend/src/components/containers/ContainerHierarchy.js +++ b/frontend/src/components/containers/ContainerHierarchy.js @@ -252,6 +252,7 @@ const ContainerHierarchy = ({container, containersByID, samplesByID, sampleKinds treeData={tree} defaultExpandedKeys={container.parents} loadData={onLoadData} + height={400} /> ); }; From dad8c4ca94471d45b9cbaa21435afb92931b2405 Mon Sep 17 00:00:00 2001 From: jleblond Date: Fri, 15 Oct 2021 10:23:48 -0400 Subject: [PATCH 12/31] Merge project name index to qc (#152) * Project name case insensitive index and validation * Cleanup * Project name index improvements (test case and cleaner) * Fix indentation --- backend/fms_core/migrations/0022_v3_4_0.py | 6 +++++ backend/fms_core/models/project.py | 4 ++++ .../tests/test_models/project_test.py | 23 +++++++++++++++++++ 3 files changed, 33 insertions(+) diff --git a/backend/fms_core/migrations/0022_v3_4_0.py b/backend/fms_core/migrations/0022_v3_4_0.py index bd0e247f9..c74d1e0fe 100644 --- a/backend/fms_core/migrations/0022_v3_4_0.py +++ b/backend/fms_core/migrations/0022_v3_4_0.py @@ -76,4 +76,10 @@ class Migration(migrations.Migration): name='container', field=models.OneToOneField(help_text='Container', limit_choices_to={'kind__in': ('infinium gs 24 beadchip',)}, on_delete=django.db.models.deletion.PROTECT, related_name='experiment_run', to='fms_core.container'), ), + migrations.RunSQL( + """ + CREATE UNIQUE INDEX project_name_lowercase_idx ON fms_core_project(lower(name)); + """, + migrations.RunSQL.noop + ), ] diff --git a/backend/fms_core/models/project.py b/backend/fms_core/models/project.py index 040294294..1ab8f858f 100644 --- a/backend/fms_core/models/project.py +++ b/backend/fms_core/models/project.py @@ -45,6 +45,10 @@ def clean(self): def add_error(field: str, error: str): _add_error(errors, field, ValidationError(error)) + project_similar_name = Project.objects.filter(name__iexact=self.name).first() + if project_similar_name: + add_error("name", f"Another project with a similar name ({project_similar_name.name}) exists. Two project names cannot be distinguished only by letter case.") + if errors: raise ValidationError(errors) diff --git a/backend/fms_core/tests/test_models/project_test.py b/backend/fms_core/tests/test_models/project_test.py index 63aa8f343..ff3e41dc3 100644 --- a/backend/fms_core/tests/test_models/project_test.py +++ b/backend/fms_core/tests/test_models/project_test.py @@ -21,6 +21,9 @@ def setUp(self): #for duplicate test self.duplicate_name = "TestDuplicateProject" + #for similar name test + self.similar_name = "testproject" + def test_project(self): my_project = Project.objects.create(name=self.name, @@ -64,6 +67,26 @@ def test_duplicate_project_with_name(self): requestor_email=self.requestor_email, status=self.status, targeted_end_date=self.targeted_end_date) + except ValidationError as e: + self.assertTrue("name" in e.message_dict) + raise e + + def test_project_with_similar_name(self): + with self.assertRaises(ValidationError): + # First Project is valid + Project.objects.create(name=self.name, + principal_investigator=self.principal_investigator, + status=self.status, + targeted_end_date=self.targeted_end_date) + + try: + # Second Project has a similar name, but different upper/lower cases, should be invalid + Project.objects.create(name=self.similar_name, + principal_investigator=self.principal_investigator, + requestor_name=self.requestor_name, + requestor_email=self.requestor_email, + status=self.status, + targeted_end_date=self.targeted_end_date) except ValidationError as e: self.assertTrue("name" in e.message_dict) raise e \ No newline at end of file From 1af69c681601388ab145ebc4742ca18d980c0614 Mon Sep 17 00:00:00 2001 From: jleblond Date: Fri, 22 Oct 2021 12:44:31 -0400 Subject: [PATCH 13/31] Fix project name check --- backend/fms_core/models/project.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/fms_core/models/project.py b/backend/fms_core/models/project.py index 1ab8f858f..4450b17be 100644 --- a/backend/fms_core/models/project.py +++ b/backend/fms_core/models/project.py @@ -46,7 +46,7 @@ def add_error(field: str, error: str): _add_error(errors, field, ValidationError(error)) project_similar_name = Project.objects.filter(name__iexact=self.name).first() - if project_similar_name: + if project_similar_name and project_similar_name.id != self.id: add_error("name", f"Another project with a similar name ({project_similar_name.name}) exists. Two project names cannot be distinguished only by letter case.") if errors: From 529233bd4a5a611140770a92c0d5eb559504269b Mon Sep 17 00:00:00 2001 From: UlysseFG Date: Tue, 26 Oct 2021 18:11:01 -0400 Subject: [PATCH 14/31] Added a few containers formats --- backend/VERSION | 2 +- backend/fms_core/containers.py | 111 +++++++++++++++++++-- backend/fms_core/migrations/0024_v3_4_1.py | 18 ++++ 3 files changed, 123 insertions(+), 8 deletions(-) create mode 100644 backend/fms_core/migrations/0024_v3_4_1.py diff --git a/backend/VERSION b/backend/VERSION index 18091983f..47b322c97 100644 --- a/backend/VERSION +++ b/backend/VERSION @@ -1 +1 @@ -3.4.0 +3.4.1 diff --git a/backend/fms_core/containers.py b/backend/fms_core/containers.py index 7e525b1cc..ce8471176 100644 --- a/backend/fms_core/containers.py +++ b/backend/fms_core/containers.py @@ -9,6 +9,14 @@ "CONTAINER_SPEC_96_WELL_PLATE", "CONTAINER_SPEC_384_WELL_PLATE", "CONTAINER_SPEC_TUBE", + "CONTAINER_SPEC_TUBE_STRIP_2X1", + "CONTAINER_SPEC_TUBE_STRIP_3X1", + "CONTAINER_SPEC_TUBE_STRIP_4X1", + "CONTAINER_SPEC_TUBE_STRIP_5X1", + "CONTAINER_SPEC_TUBE_STRIP_6X1", + "CONTAINER_SPEC_TUBE_STRIP_7X1", + "CONTAINER_SPEC_TUBE_STRIP_8X1", + "CONTAINER_SPEC_TUBE_BOX_3X3", "CONTAINER_SPEC_TUBE_BOX_6X6", "CONTAINER_SPEC_TUBE_BOX_7X7", "CONTAINER_SPEC_TUBE_BOX_8X8", @@ -20,6 +28,7 @@ "CONTAINER_SPEC_FREEZER_RACK_7X4", "CONTAINER_SPEC_FREEZER_RACK_8X6", "CONTAINER_SPEC_FREEZER_3_SHELVES", + "CONTAINER_SPEC_FREEZER_4_SHELVES", "CONTAINER_SPEC_FREEZER_5_SHELVES", "CONTAINER_SPEC_ROOM", "CONTAINER_SPEC_BOX", @@ -119,7 +128,84 @@ def __str__(self): is_run_container=True, ) +RUN_CONTAINER_SPECS = ( + CONTAINER_SPEC_INFINIUM_GS_24_BEADCHIP, +) + # Containers +CONTAINER_SPEC_TUBE = ContainerSpec( + container_kind_id="tube", + coordinate_spec=(), + coordinate_overlap_allowed=False, # Only one sample can be in the tube at a time + children=(), # Leaf node; sample-holding + is_run_container=False, +) + +CONTAINER_SPEC_TUBE_STRIP_2X1 = ContainerSpec( + container_kind_id="tube strip 2x1", + coordinate_spec=(alphas(2), ints(1, pad_to=2)), + coordinate_overlap_allowed=False, + children=(), # Leaf node; sample-holding + is_run_container=False, +) + +CONTAINER_SPEC_TUBE_STRIP_3X1 = ContainerSpec( + container_kind_id="tube strip 3x1", + coordinate_spec=(alphas(3), ints(1, pad_to=2)), + coordinate_overlap_allowed=False, + children=(), # Leaf node; sample-holding + is_run_container=False, +) + +CONTAINER_SPEC_TUBE_STRIP_4X1 = ContainerSpec( + container_kind_id="tube strip 4x1", + coordinate_spec=(alphas(4), ints(1, pad_to=2)), + coordinate_overlap_allowed=False, + children=(), # Leaf node; sample-holding + is_run_container=False, +) + +CONTAINER_SPEC_TUBE_STRIP_5X1 = ContainerSpec( + container_kind_id="tube strip 5x1", + coordinate_spec=(alphas(5), ints(1, pad_to=2)), + coordinate_overlap_allowed=False, + children=(), # Leaf node; sample-holding + is_run_container=False, +) + +CONTAINER_SPEC_TUBE_STRIP_6X1 = ContainerSpec( + container_kind_id="tube strip 6x1", + coordinate_spec=(alphas(6), ints(1, pad_to=2)), + coordinate_overlap_allowed=False, + children=(), # Leaf node; sample-holding + is_run_container=False, +) + +CONTAINER_SPEC_TUBE_STRIP_7X1 = ContainerSpec( + container_kind_id="tube strip 7x1", + coordinate_spec=(alphas(7), ints(1, pad_to=2)), + coordinate_overlap_allowed=False, + children=(), # Leaf node; sample-holding + is_run_container=False, +) + +CONTAINER_SPEC_TUBE_STRIP_8X1 = ContainerSpec( + container_kind_id="tube strip 8x1", + coordinate_spec=(alphas(8), ints(1, pad_to=2)), + coordinate_overlap_allowed=False, + children=(), # Leaf node; sample-holding + is_run_container=False, +) + +TUBE_STRIP_SPECS = ( + CONTAINER_SPEC_TUBE_STRIP_2X1, + CONTAINER_SPEC_TUBE_STRIP_3X1, + CONTAINER_SPEC_TUBE_STRIP_4X1, + CONTAINER_SPEC_TUBE_STRIP_5X1, + CONTAINER_SPEC_TUBE_STRIP_6X1, + CONTAINER_SPEC_TUBE_STRIP_7X1, + CONTAINER_SPEC_TUBE_STRIP_8X1, +) CONTAINER_SPEC_96_WELL_PLATE = ContainerSpec( container_kind_id="96-well plate", @@ -137,11 +223,11 @@ def __str__(self): is_run_container=False, ) -CONTAINER_SPEC_TUBE = ContainerSpec( - container_kind_id="tube", - coordinate_spec=(), - coordinate_overlap_allowed=False, # Only one sample can be in the tube at a time - children=(), # Leaf node; sample-holding +CONTAINER_SPEC_TUBE_BOX_3X3 = ContainerSpec( + container_kind_id="tube box 3x3", + coordinate_spec=(alphas(3), ints(3, pad_to=2)), + coordinate_overlap_allowed=False, + children=(CONTAINER_SPEC_TUBE,), is_run_container=False, ) @@ -194,9 +280,9 @@ def __str__(self): ) COMMON_CHILDREN = ( - CONTAINER_SPEC_INFINIUM_GS_24_BEADCHIP, CONTAINER_SPEC_96_WELL_PLATE, CONTAINER_SPEC_384_WELL_PLATE, + CONTAINER_SPEC_TUBE_BOX_3X3, CONTAINER_SPEC_TUBE_BOX_6X6, CONTAINER_SPEC_TUBE_BOX_7X7, CONTAINER_SPEC_TUBE_BOX_8X8, @@ -265,6 +351,14 @@ def __str__(self): is_run_container=False, ) +CONTAINER_SPEC_FREEZER_4_SHELVES = ContainerSpec( + container_kind_id="freezer 4 shelves", + coordinate_spec=(alphas(4), ints(1, pad_to=2)), # TODO: I'd prefer if these were 1D + coordinate_overlap_allowed=True, + children=FREEZER_CHILDREN, + is_run_container=False, +) + CONTAINER_SPEC_FREEZER_5_SHELVES = ContainerSpec( container_kind_id="freezer 5 shelves", coordinate_spec=(alphas(5), ints(1, pad_to=2)), # TODO: I'd prefer if these were 1D @@ -278,9 +372,12 @@ def __str__(self): coordinate_spec=(), coordinate_overlap_allowed=True, children=( + *RUN_CONTAINER_SPECS, *COMMON_CHILDREN, CONTAINER_SPEC_TUBE, + *TUBE_STRIP_SPECS, CONTAINER_SPEC_FREEZER_3_SHELVES, + CONTAINER_SPEC_FREEZER_4_SHELVES, CONTAINER_SPEC_FREEZER_5_SHELVES, *FREEZER_RACK_SPECS, ), @@ -294,7 +391,7 @@ def __str__(self): container_kind_id="box", coordinate_spec=(), coordinate_overlap_allowed=True, - children=(*COMMON_CHILDREN, CONTAINER_SPEC_TUBE), + children=(*COMMON_CHILDREN, *TUBE_STRIP_SPECS, *RUN_CONTAINER_SPECS, CONTAINER_SPEC_TUBE), is_run_container=False, ) diff --git a/backend/fms_core/migrations/0024_v3_4_1.py b/backend/fms_core/migrations/0024_v3_4_1.py new file mode 100644 index 000000000..e0eedc6d7 --- /dev/null +++ b/backend/fms_core/migrations/0024_v3_4_1.py @@ -0,0 +1,18 @@ +# Generated by Django 3.1 on 2021-10-26 22:07 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('fms_core', '0023_v3_4_0'), + ] + + operations = [ + migrations.AlterField( + model_name='container', + name='kind', + field=models.CharField(choices=[('infinium gs 24 beadchip', 'infinium gs 24 beadchip'), ('tube', 'tube'), ('tube strip 2x1', 'tube strip 2x1'), ('tube strip 3x1', 'tube strip 3x1'), ('tube strip 4x1', 'tube strip 4x1'), ('tube strip 5x1', 'tube strip 5x1'), ('tube strip 6x1', 'tube strip 6x1'), ('tube strip 7x1', 'tube strip 7x1'), ('tube strip 8x1', 'tube strip 8x1'), ('96-well plate', '96-well plate'), ('384-well plate', '384-well plate'), ('tube box 3x3', 'tube box 3x3'), ('tube box 6x6', 'tube box 6x6'), ('tube box 7x7', 'tube box 7x7'), ('tube box 8x8', 'tube box 8x8'), ('tube box 9x9', 'tube box 9x9'), ('tube box 10x10', 'tube box 10x10'), ('tube rack 8x12', 'tube rack 8x12'), ('drawer', 'drawer'), ('freezer rack 4x4', 'freezer rack 4x4'), ('freezer rack 7x4', 'freezer rack 7x4'), ('freezer rack 8x6', 'freezer rack 8x6'), ('freezer rack 11x6', 'freezer rack 11x6'), ('freezer 3 shelves', 'freezer 3 shelves'), ('freezer 4 shelves', 'freezer 4 shelves'), ('freezer 5 shelves', 'freezer 5 shelves'), ('room', 'room'), ('box', 'box')], help_text='What kind of container this is. Dictates the coordinate system and other container-specific properties.', max_length=25), + ), + ] From e54c4d86d1ca03f589c3562142d0bb31db08e624 Mon Sep 17 00:00:00 2001 From: UlysseFG Date: Mon, 1 Nov 2021 15:56:04 -0400 Subject: [PATCH 15/31] All containers slated for release with 3.4.1 --- backend/fms_core/containers.py | 30 ++++++++++++++++++++++ backend/fms_core/migrations/0024_v3_4_1.py | 2 +- 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/backend/fms_core/containers.py b/backend/fms_core/containers.py index ce8471176..97e2f7973 100644 --- a/backend/fms_core/containers.py +++ b/backend/fms_core/containers.py @@ -24,7 +24,10 @@ "CONTAINER_SPEC_TUBE_BOX_10X10", "CONTAINER_SPEC_TUBE_RACK_8X12", "CONTAINER_SPEC_DRAWER", + "CONTAINER_SPEC_FREEZER_RACK_2X4", "CONTAINER_SPEC_FREEZER_RACK_4X4", + "CONTAINER_SPEC_FREEZER_RACK_5X4", + "CONTAINER_SPEC_FREEZER_RACK_6X4", "CONTAINER_SPEC_FREEZER_RACK_7X4", "CONTAINER_SPEC_FREEZER_RACK_8X6", "CONTAINER_SPEC_FREEZER_3_SHELVES", @@ -299,6 +302,14 @@ def __str__(self): is_run_container=False, ) +CONTAINER_SPEC_FREEZER_RACK_2X4 = ContainerSpec( + container_kind_id="freezer rack 2x4", + coordinate_spec=(alphas(2), ints(4, pad_to=2)), + coordinate_overlap_allowed=False, + children=(*COMMON_CHILDREN, CONTAINER_SPEC_DRAWER), + is_run_container=False, +) + CONTAINER_SPEC_FREEZER_RACK_4X4 = ContainerSpec( container_kind_id="freezer rack 4x4", coordinate_spec=(alphas(4), ints(4, pad_to=2)), @@ -307,6 +318,22 @@ def __str__(self): is_run_container=False, ) +CONTAINER_SPEC_FREEZER_RACK_5X4 = ContainerSpec( + container_kind_id="freezer rack 5x4", + coordinate_spec=(alphas(5), ints(4, pad_to=2)), + coordinate_overlap_allowed=False, + children=(*COMMON_CHILDREN, CONTAINER_SPEC_DRAWER), + is_run_container=False, +) + +CONTAINER_SPEC_FREEZER_RACK_6X4 = ContainerSpec( + container_kind_id="freezer rack 6x4", + coordinate_spec=(alphas(6), ints(4, pad_to=2)), + coordinate_overlap_allowed=False, + children=(*COMMON_CHILDREN, CONTAINER_SPEC_DRAWER), + is_run_container=False, +) + CONTAINER_SPEC_FREEZER_RACK_7X4 = ContainerSpec( container_kind_id="freezer rack 7x4", coordinate_spec=(alphas(7), ints(4, pad_to=2)), @@ -332,7 +359,10 @@ def __str__(self): ) FREEZER_RACK_SPECS = ( + CONTAINER_SPEC_FREEZER_RACK_2X4, CONTAINER_SPEC_FREEZER_RACK_4X4, + CONTAINER_SPEC_FREEZER_RACK_5X4, + CONTAINER_SPEC_FREEZER_RACK_6X4, CONTAINER_SPEC_FREEZER_RACK_7X4, CONTAINER_SPEC_FREEZER_RACK_8X6, CONTAINER_SPEC_FREEZER_RACK_11X6, diff --git a/backend/fms_core/migrations/0024_v3_4_1.py b/backend/fms_core/migrations/0024_v3_4_1.py index e0eedc6d7..8c19b88e3 100644 --- a/backend/fms_core/migrations/0024_v3_4_1.py +++ b/backend/fms_core/migrations/0024_v3_4_1.py @@ -13,6 +13,6 @@ class Migration(migrations.Migration): migrations.AlterField( model_name='container', name='kind', - field=models.CharField(choices=[('infinium gs 24 beadchip', 'infinium gs 24 beadchip'), ('tube', 'tube'), ('tube strip 2x1', 'tube strip 2x1'), ('tube strip 3x1', 'tube strip 3x1'), ('tube strip 4x1', 'tube strip 4x1'), ('tube strip 5x1', 'tube strip 5x1'), ('tube strip 6x1', 'tube strip 6x1'), ('tube strip 7x1', 'tube strip 7x1'), ('tube strip 8x1', 'tube strip 8x1'), ('96-well plate', '96-well plate'), ('384-well plate', '384-well plate'), ('tube box 3x3', 'tube box 3x3'), ('tube box 6x6', 'tube box 6x6'), ('tube box 7x7', 'tube box 7x7'), ('tube box 8x8', 'tube box 8x8'), ('tube box 9x9', 'tube box 9x9'), ('tube box 10x10', 'tube box 10x10'), ('tube rack 8x12', 'tube rack 8x12'), ('drawer', 'drawer'), ('freezer rack 4x4', 'freezer rack 4x4'), ('freezer rack 7x4', 'freezer rack 7x4'), ('freezer rack 8x6', 'freezer rack 8x6'), ('freezer rack 11x6', 'freezer rack 11x6'), ('freezer 3 shelves', 'freezer 3 shelves'), ('freezer 4 shelves', 'freezer 4 shelves'), ('freezer 5 shelves', 'freezer 5 shelves'), ('room', 'room'), ('box', 'box')], help_text='What kind of container this is. Dictates the coordinate system and other container-specific properties.', max_length=25), + field=models.CharField(choices=[('infinium gs 24 beadchip', 'infinium gs 24 beadchip'), ('tube', 'tube'), ('tube strip 2x1', 'tube strip 2x1'), ('tube strip 3x1', 'tube strip 3x1'), ('tube strip 4x1', 'tube strip 4x1'), ('tube strip 5x1', 'tube strip 5x1'), ('tube strip 6x1', 'tube strip 6x1'), ('tube strip 7x1', 'tube strip 7x1'), ('tube strip 8x1', 'tube strip 8x1'), ('96-well plate', '96-well plate'), ('384-well plate', '384-well plate'), ('tube box 3x3', 'tube box 3x3'), ('tube box 6x6', 'tube box 6x6'), ('tube box 7x7', 'tube box 7x7'), ('tube box 8x8', 'tube box 8x8'), ('tube box 9x9', 'tube box 9x9'), ('tube box 10x10', 'tube box 10x10'), ('tube rack 8x12', 'tube rack 8x12'), ('drawer', 'drawer'), ('freezer rack 2x4', 'freezer rack 2x4'), ('freezer rack 4x4', 'freezer rack 4x4'), ('freezer rack 5x4', 'freezer rack 5x4'), ('freezer rack 6x4', 'freezer rack 6x4'), ('freezer rack 7x4', 'freezer rack 7x4'), ('freezer rack 8x6', 'freezer rack 8x6'), ('freezer rack 11x6', 'freezer rack 11x6'), ('freezer 3 shelves', 'freezer 3 shelves'), ('freezer 4 shelves', 'freezer 4 shelves'), ('freezer 5 shelves', 'freezer 5 shelves'), ('room', 'room'), ('box', 'box')], help_text='What kind of container this is. Dictates the coordinate system and other container-specific properties.', max_length=25), ), ] From 7d812445c0cc3b0a6f8bddb80d5591db633f61e1 Mon Sep 17 00:00:00 2001 From: UlysseFG Date: Thu, 4 Nov 2021 11:39:23 -0400 Subject: [PATCH 16/31] include template changes --- .../Container_creation_v3_4_0.xlsx | Bin 26310 -> 0 bytes .../Container_creation_v3_4_1.xlsx | Bin 0 -> 21161 bytes ...lsx => Experiment_Infinium_24_v3_4_1.xlsx} | Bin 18491 -> 18491 bytes .../Sample_extraction_v3_3_0.xlsx | Bin 22884 -> 0 bytes .../Sample_extraction_v3_4_1.xlsx | Bin 0 -> 23107 bytes .../Sample_submission_v3_4_0.xlsx | Bin 65383 -> 0 bytes .../Sample_submission_v3_4_1.xlsx | Bin 0 -> 51125 bytes .../Sample_transfer_v3_2_0.xlsx | Bin 21616 -> 0 bytes .../Sample_transfer_v3_4_1.xlsx | Bin 0 -> 21719 bytes backend/fms_core/template_paths.py | 10 +++++----- 10 files changed, 5 insertions(+), 5 deletions(-) delete mode 100644 backend/fms_core/static/submission_templates/Container_creation_v3_4_0.xlsx create mode 100644 backend/fms_core/static/submission_templates/Container_creation_v3_4_1.xlsx rename backend/fms_core/static/submission_templates/{Experiment_Infinium_24_v3_4_0.xlsx => Experiment_Infinium_24_v3_4_1.xlsx} (52%) delete mode 100644 backend/fms_core/static/submission_templates/Sample_extraction_v3_3_0.xlsx create mode 100644 backend/fms_core/static/submission_templates/Sample_extraction_v3_4_1.xlsx delete mode 100644 backend/fms_core/static/submission_templates/Sample_submission_v3_4_0.xlsx create mode 100644 backend/fms_core/static/submission_templates/Sample_submission_v3_4_1.xlsx delete mode 100644 backend/fms_core/static/submission_templates/Sample_transfer_v3_2_0.xlsx create mode 100644 backend/fms_core/static/submission_templates/Sample_transfer_v3_4_1.xlsx diff --git a/backend/fms_core/static/submission_templates/Container_creation_v3_4_0.xlsx b/backend/fms_core/static/submission_templates/Container_creation_v3_4_0.xlsx deleted file mode 100644 index 2c93df9c6153fbdc090e1d8b4bdca5c438368ef6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26310 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 CISZ=* diff --git a/backend/fms_core/static/submission_templates/Container_creation_v3_4_1.xlsx b/backend/fms_core/static/submission_templates/Container_creation_v3_4_1.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..c929968683d88785b9e098ab041b8766d062ddb2 GIT binary patch literal 21161 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 Jm$<8-_+NJ6p4tEa delta 6651 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 hk7@kzDV5aLK+`&@US^<{5)*bNU{{m1ww9^0p diff --git a/backend/fms_core/static/submission_templates/Sample_extraction_v3_3_0.xlsx b/backend/fms_core/static/submission_templates/Sample_extraction_v3_3_0.xlsx deleted file mode 100644 index 47111890ed98ef5233912f64e5402c6d0079635e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22884 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 literal 0 HcmV?d00001 diff --git a/backend/fms_core/static/submission_templates/Sample_submission_v3_4_0.xlsx b/backend/fms_core/static/submission_templates/Sample_submission_v3_4_0.xlsx deleted file mode 100644 index 4981946a78e089deefcd8e87f019c406f85b1663..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 65383 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 z zw$R=%@;sCmrCX_uo0g3ie|k}j(QWMvVsyQ|VJSZpHr}qgSx>hzLnWGRkM=ptI*7QY;P zqH=wmH3^Dio=^kfh(>tf`zx_i=wSRV%+fa)J^+oZ6~`rE!n23QXLvFB*!m$)mu$qc zQmyxf*asR`(+XS+)U^YO#o9noF@V)ZblBSB_`9Kz@#TZbTAal+~zR3?4TT*^Cw&tBgw2*%QRKRZc!O#GU z$Vb=vYAzcLv#{Sf$Qy%ad?prP=`B90bUdc=O&~{T)3~O1fTj4?sjEgyA3DL^;3BsJ z-JV6W&l|>SXX7tlfLYso%UO5y2cl`B1kwIUAUfF$M3qp`%^USVwp}OwGH$7TFYbK> zwhi&MUKfGOz;{-_*R{~RN_d*tmVjvllpQeIV1uZjaqV$6zLtr8J6IS=h9+iAyOLpYZ;SnoSS%0|Xrv||-ZHGLY9vl4ImiYXls zJfHsCI`(Lr^r8Uw7_*`PXUcxs4Q?te`eHsS{R$hDVT`M#eraVstAq}Vi%v*zTC=Tm z5x!vl)S`)u_=gx~spBWF95`vLdWBtfPx808#|qa|kF_6XZaYCHaQvVE^qHW?<*|Eb zY}m9@bTMx*^s(Wa+`X`J<C-&~e^a#HSN<`adWLvkNP4@X5SNTaP)-0u_X?-GWp(5WEunVCGwT7GFYYzN0V^tUKNpic~e#M)B6vc z*!@i4^oi#u$Zstw%A~TlhnR;_Pll2(gzk=#_|U7;W5Uv~s9K}4QJ1j-u%gUxL}ax+ zRC${tuN4qNe>EgbgCUCPRLCrmQzV`Ad%}QFjG4f##V7 z{q2GooO`6gbI1}~(|_dG7S~wC0HE#+h}y8OircVWw6W3Z<)!H>23P2=fY2RRqryW! zgp!_eOFORo-25-(Qq1)lZK9;JQHNe#@9M&5OQ+YVj%Yk2*SxMnSJdk#Wm2p)qPionl| znto-o8R(VZTOPfagu0g`c;FcSv!kc-1q6g|9c4q_Ho7aYH;Q&LgoPnwe^khN)n|h1 z)JSGHO(n)uOQM#?ZFvCqA&-|v8xF4DxSuru+_!f{PI;}3N{C_@oIhlsR)ddvyA95G z4bD9MWpInzuCi}N$y^&RUVpYF=UP0x7^=F`NalhhbFuj~)%VH-K{hfClzFgvuPfC< z{d5-R;8^J8P3Kx|4oEJ*m9VKoF7Wltc1a%gq|39~(^>!^?M6B0s2i5vn zf)+7!qyak8IPgyFy=ABX!u6Xxf7egQbMP#<=7E4K4Zwqm(o;nC!I0ArhqHf((sNB|22OtI7I95 zfVkP#hW|o}-{a<=!G@P8GX8?i->8@k;wF0lPS`P=aQ!B3KK?ash}O#jakH%r|AiF4 z$IU;3O*Ts^K# zLXW(gyB`&WF0hO4$3Wc{gR@#m}Z9Ca?8m_^w zOk=*=EZ^7z_D({v&$@e+y~6K4_Xrn{%&jwQx2E2Gy3KR=)}&T=de3dc*Wn`R5j)Mp z*v;>p`YOOP+IFDTq;XaJ1vIv#KX10sb1%8pd${)FWOe!EF9A{M+FZ$P#azmT>F;l! zcDlv8w~h09TluXV}>4p(FK(@|!PL;pgO%&Rt!SuYO_Y67j<4f>se~5)1HoVP%7~;QT6(g}imL z?$+@X#ZL;Ow~mEZs6@TKem+$*{kgk&$QAQvW8naYq(XJc7 zfzgy-!wPVCb4Qc3$Fh51d?Wavpw{Y!hhFECK&*Uqv|WD0udR)?drz>|q6o!?AGzFV z>CvdG4Ahz;j-PsQ;FObr30K6P^yN1nZ(F_Q?~srCa?SUg{PT0!hcX%Hya`mAc(ATZ zC>k{tnc~hL&SdcS{vABgb{Mc>&3TV*ECxTkj$bLR?mh3ZfWr@CS$|DtTkrW3Dgqy-QUSf8S8cCxU~!ijuo3kZ}FpLraqH9+H+{G$*-ZMsmlJ zaQz-qN&x9Y3+JzJa-l6n>LLh**6+x->3Z@-8l*>N_Z)ZC&{fL$OO&=b1@E*ZA+XA98cjP(kpd>*_sE4S0Shz|_;Jt^G$?6XicZ>Hmz&oJOiX@0Q-aUbm zIYCMGxB32^cS5n>q%Vj#`fQsN%Zeds0MAg`K_g1ryx-xu?A#~iR0b9jWpJbpu|BO?_%a8iUmLkFhR@%i9jC*QS{v?F&PJc+inTqd709-h+L@m zcX+y&nIy9inpr}=Hv`@ea#wZJ4q6h$`#6Zt0D=WJc<2k;IW-Z}yk z#FT3SeGiGE?@(5^6X=&VlF3V2Nwuv=vVM!_Ko&!~|JG4J%V!$!4*K0f@)F{n?<*ia z6A4OS%Rg((w|FPQ&ij8kdDwcjk!qU}oKqu?chH{k6aXck45IQ~8{|9SJ%hWdgDBp! z0Pm*>N`rTa;=K#-9!^jKOb}D93G~SmMcH)|r|jRJ;Q!H{^#b0n5R?ED#FT3SeMv;o2hP(7@DH1S z=caW5#6`=e?6-IpTU?ns_M^_@0Pmkk`>aUjh~pg!g2jxWL-f#Ilwz3L21yMDBe+9yjxS+78Aug8t|@2P%8Ot8~Iavh6TK*5tINE z#FT3SeeFcicmKR7#u-UFNSGD&l4hn0S`@X#oPYl7*j_eiQuuyE>L>M#ZHTtg@*zwM zxqW^+4l^U!I$Hfl@2BZ>(_e8Z(a7JN_Z2`+lUrP&Jo@V~^Z6w5ts$xl<-FZ-iy|wM z&f7UA1(4s3r~f%U!oU~4Ia!(a7(o&KHa_H^;9;%nG+!640b=j$er$PJSib z8ov@d4Fz53_QtOUl=B;+`e5uhNL)8c029jb3Cz37iR-kr{vW-6eEIg*IU@lVFlW>wjL?Z`Xlg;E zfjQ%L=I%t!mqA0*w>9{q{=>oFPYn%WKnVuZ+Zs@sZEryNr*{6eq4`&uFM~Pbw&u%# ziN9gKTytJ@c7T|Kr0tXnyZ4M~GV0v2v%0IO8r|%X1mFCOs+ng_hk>TGkU$$-HA#QH_ z)Avb)0VNnr2X1FT2?o=kvm<^$`ENd726IN9?aY^X{+9VN_&%u%e4j+b-1evMlL!M! z(C=<*KnYF)+Zs^*o6ncCwmDx0bHtAUC6XCPpe^c}SXvnw$%_!@N zE6o~_tSx@Y|3He=m3^*O#N3iBw_|*2%0UME{KBcgM+yRmjM+*z*4I904foinQ5o$d z7m{F_ylH1+eYgA0ZIbM8WeP>+s~l}nj>mMa3O?KWh54){i5x2EO8psk%6ZHcru+q3 zy~wE`h9XEZx%pMi&`!@0KV_}9pp%}R@yZ|5$nQ8M)9MZt;Pu)^^$`>Cq*6O)%kp7SK1 zp1hKGZ&Pk^;PXVJj15UV;*sHn0a7aEe*RiopMs;@S5LP^+w|Gqz19=@pryw_Uf5~y zOQ_@VxT|z+;f^P|B{$_9k!FscUKT@IY?zqy(-6ByBK0ZxZn%8PAt!o)cl?YtB!200 zU&S!V)9wbXIyYN z@@X-o_V(7!a@X1(7mP6q#`ZjOJ~@=X8hcBTS;*;RoSbRfLr1oLxeHqs_KQvhcc1j6 z`=uPKHcv?hu7=6GWGp1bOS7Nqr0czXim z2)t1uNEJ%RT{q(Rf*3XzlB8^VR&e~y`un|U;NSARx|S)H7WO|Q&YDDWGvfZscp;NM z!a@-4Kk*&N^@|>1&YvgP>$6Fl9RUT%AJINS3;F+r<8C?Rk$MEP|B$n{fFH;NA>1F@ zkg(GfK@M7yux}5wZ`HJV_cy`YT?|S1qbvt<9wDfgpCqx|C1#9i7;Y811bKOFkjvxENs(uA_xOzxq>`W8~~O}0E};x_#A1c z0Gk#O00V^k&?d8)%V;h=WmL4fD*9|*!$a{@8g;D5GsWbylb7B;vp&iAN))8B&tJ)| z+XmUV$R<#j^0)RrYfVB}^Y?pCv>W=RXKy{sKxy#+gc(rsjnL|W%=v?=_!D6!Aj*|3 z2^$lLAhs^e0Ky(~S3S}40cDYB!o;=+14RuKD`JZpv7r4-*eb|QKp1!w5K26ekAhDu z0I;tFz#>7`5u2UeAUmlx0Rw~+ot*@-!NZ$avTs5^je*LrzO}b-F~s4I_FkUkul=Hy zyxI7G43hv(gZ&*S`NoMSYzag;=(fPdV}BIoKNE%ngw@jOHFHp8a_T@l zVZ?$4TFt*a_@P^bjT3AqIy=Web~;!R00XuYot+qvok0Y^d;sA@XD5MdP)>;@`;~;r zDNo7}kRoGWNl#jn9QdQHHbH@D_H}`tKC{YpSUH*h>wx=YTBdvlp&>r&HvzO z{Zkz~3bN{?C5b>WB#QVl_6?-P1A@s%w^7B2#OtRb76R%g2$3iPVno-lMPF{o_XLvx zV#Jm(NpC>$R|3TVF=8tifn)~aNd^Us&6Dy5$O?fX$U`lk?Hn~nL5LVq-Y6mGBtAqE zE&_)wN%jHyFc~05 zbclchCg)dz$pA58LxdBA2swdbfEdvoC?GjOk9d+->NCOVatgQ%^zA8c{83i?e7H;i zN1a2KBwWRiaN+>)b&&53Sa!KwB}4*9D-(%ahz5l}_;6akZcwsEi|60e`m zm6G5{3qk~#3=ktWL|%aqIZQAaAVzeEtN@A)2owXvh<#KLNWQ%dl5vrR^W6WhJ*y9D z;!NYgwx`xnu6~qO?@W729khW{L5fyldmUTLXgWgc^l~MKKv5yA5-g;^W}GWpij>wu z7zIgt9;Fm3t+ZKNVzwh9)f94q2wY@yfd&jH`67^nWcQv;Xx&xn-Q0{b{*h%M$urOI z_k8U8KEHj*CO9X2)-xkAGidSuR5JVd>uXpd@9{PbJo@qf@f5T!BZxE&t#vHh%J){r zKJ{eS#r2B|_Bi=PnQPJE!;1B{EOW&YbhwIX`7pgmam-nlJpag%lP50M9;D(wk-O@S zGF^`DDpdTL=`woeRdkQB_Wdm{y?pxp&5Fh3hOe(W>q@3D!?F9x`s@18XYsG7D+gj- z2}eFCOZk0CY?S*`x95VjcH1qg&3bvY{uwgin*62bw;$Ob>ArGZ*I{4Ms(4Q~|7Y?7 z;oIndGk%}&53{#yxqA6}{0Sru{;MimnHjfys?ssB$yG8SXb~4JUmp7UizfsnYTibC zpQr8&@56Wgv3z9LSlwl;W+?i7{vs^&mu!?{bT<9U7ks6Y@hc2i&1@uY0U_Tsm5fE# z@s7{-#Lq1i?>p%!G=};67ef@AGSbM3BBgDND4#+UDKknuAqN{HN*EFcHb${!SPj@1 z#a_~Nl(C96ig#aP6??Zd$oMp<<#8l#Ei1}lpN$dag0AB*E6RX)_XSoIt1@zcS!^4$ z)XFUOO%)GpjFv)3urZ3gTN=>PrO;BlGIEF&1zKunMj3=Ctd>d$IoKFcVvsnnFYFwVOC`stJor}<~)<)Wfd=!nZ@>g8pBu{^O3kB zW)eUL7)BlEb%0^4VW0!dtupSGf?LoAxBW-m_CY2?Dj{FPVz4XASiL+-V;KABl8OhI zTdf4TFxK4wx}&Tjq(Z3ND_qHfoYQS*?cGI${9$I+brxj;tM!Fg z4QuxU9bgz)8^nNNv>xaRnOOtfucqLIaf~#!twQ3;SrDo4b5_=ublX|8;8jAtl9jbh znZW9GIab5k#y|%cM%G4g9c!2X-LIwa8Fj^S(5td4udo_Zg4MA0@J>x$yF8j6>fh>Y z)rTf`i!^CB3HWXsCdyzlNMX|KjLc4GH$`|D6Z+Yg0 z1nmy2bc|5Uc>Emg4y?XcE`P&6A$cHz<`GtM?d=- zu+YH3yKkoMJVctNRIT;v&uN{l9rWi%dCr@D{dr4B#DMj4qXGQ^u>|*{e*Nhc zONT&z-qdXHi`>(ogTEtacVMOUCl&Mul=3Le>eHVaN|glkr;%p$=?{otAc;UH0&9YP z8V&4@dod^O)Stk>yHBR>Y(yHORL$}0&wDysIOxwgc}|jFfA$H9P?hnG9$UCye^zB` zn%==^_d>t^w1}k@pg&2PrZ0WxpOa^J=J^Ee4y?5PEW(U$!1dr-^JCv$be*O7eXFCP@b4i|)>erwB zLLv(Er`LAMuRrymKL;_|z1*)qU1DiB=ufJq>9k*ezT=q}6SO<9()#l%=ntHK%4t@g z{tPQs=`d?f)2zO!3+JCe5`j(x) Tf!%R0=ER-)6Bu~+$<&>LNTZdiC4T)mrn6;& z{#=mfB>VM8A|!Y!V_%Og)2~12pg-{a54e~3^`}iN#Xx_OHBJ8Se@?>pKaUc$JFwFF z6NMT3;QUiUv-5LOdZn~tl_r^fp#5Sh~zVqO+b;Ic`S8g4QtdQ4rGo>H~cJ~|nkOkooZ zYO*cjwVTCVHwGNnn`NpzcRE6-UCvc*N2mU@882Avy4iqw1$?jd<4!@gd(7*t@J^`5 zDCAp&qXeGmF%yy}!Ah!ntP~L^r5<{0oijnJUU) z-|B6nJeXOJI{DpZ$}-%_cN?`mHp*@2!u06)sIFE)l#Z3+o{@-dzRY8E4{3!iW9JE! ze6n$UYw6?Y59V0%1AReky{Upv7UHosE;UbkS#cqSwg6v$?w*b0&4% zGo^h?h2$G%sV8qX=+DZ$gUyD%QmTY(tA}#ism>gJ z!4C=oN5cfsWizv+j?SpTN~nn%(nWI<^Cu^FAhD{qDZ9hih{LPF!F7dHhd*YnMuWy9 z2+HK>EXE5Qj?PZhfh$HYn`NpeHd59@n7Nv|Zd&I!gmJ4+37QoJo+93=mr^yj+HP7wdYiPw*<5#?RO(d-@OCa`z1S(RcG+7-O+gKM*@VFv`I(+_ z1#1QFUEEU$WprqQ_0N{_DbwEaJh#2HbfZc}K7KZT{mgD8@odbq1+LBmQp#;=R>;1P z*^6@!y)2jNcO0rMb&a=hDThL@@>C#+u-I@iQ7yANw9yy&vEH<+^y<_K_+%4K?l_+Y zk@v)qy>mmf3UX<_Yt(_Dt0$eI%@L&5){2=EWuD3ym$TS95YcaQb&oVwG~lG$g#5EI zSR3JV4MkcEMoo(dRkxGl-H1s27e4>rri21pt3c))SRngJK{`7tyyM+^wY#&JPqtQ= zMIKA`wb(qWWu*3RR@825EglL+^wfy`8#_jYyb?EaR(|ibzn^@U!)fV%i1SKZ(2Rwg zg`8QlW^s;5Q{oGcMIIaFa5(KVIGj1~%DzNdsTq=paQg45CIh?sHa4ygRSduNxNR>QlP9B$mF+70#4B*K89pOEKbeL zmiUUfy{DU3y}M}{AVtvEB`ox+1wM32R#FZfI^r#H#tZ)UtHa^_?L?$#PZ|no+ypX+ z%eX2QaX2YR@+(=$UP(kUl9f8$4eBi()!hJ49#F8WNC;uTllJbN4juD#-IC`3Sr6*~ z(q>%fV+?fien~bWo{r!U=z@HSNJC+GaFhcN|5eNmAo+>f%1Im&atH& zj$_RX4uoV}UC`F4g*~;vd@pOJV`1(&HcRk^X<4T3=|jJv1I~k=YUn`FdHU0T09q>5 AHUIzs literal 0 HcmV?d00001 diff --git a/backend/fms_core/static/submission_templates/Sample_transfer_v3_2_0.xlsx b/backend/fms_core/static/submission_templates/Sample_transfer_v3_2_0.xlsx deleted file mode 100644 index 694f390541121695628c4ca08b123aa4688e9836..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21616 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 F{|AJa!ixX^ diff --git a/backend/fms_core/static/submission_templates/Sample_transfer_v3_4_1.xlsx b/backend/fms_core/static/submission_templates/Sample_transfer_v3_4_1.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..0eb744a212df06d772baf1d46bb949602d8ec77c GIT binary patch literal 21719 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 E0KtEW Date: Tue, 16 Nov 2021 17:47:52 -0500 Subject: [PATCH 17/31] new container, container search by barcode and small fixes. --- backend/fms_core/containers.py | 60 +++++++++++++----- backend/fms_core/migrations/0024_v3_4_1.py | 2 +- .../Container_creation_v3_4_1.xlsx | Bin 21161 -> 21211 bytes .../Container_move_v3_2_0.xlsx | Bin 25065 -> 0 bytes .../Container_rename_v3_2_0.xlsx | Bin 26013 -> 0 bytes .../Project_link_samples_v3_4_0.xlsx | Bin 21067 -> 0 bytes .../Sample_submission_v3_4_1.xlsx | Bin 51125 -> 54390 bytes .../Sample_update_v3_2_0.xlsx | Bin 23383 -> 0 bytes backend/fms_core/viewsets/container.py | 3 +- frontend/src/utils/options.js | 2 +- 10 files changed, 48 insertions(+), 19 deletions(-) delete mode 100644 backend/fms_core/static/submission_templates/Container_move_v3_2_0.xlsx delete mode 100644 backend/fms_core/static/submission_templates/Container_rename_v3_2_0.xlsx delete mode 100644 backend/fms_core/static/submission_templates/Project_link_samples_v3_4_0.xlsx delete mode 100644 backend/fms_core/static/submission_templates/Sample_update_v3_2_0.xlsx diff --git a/backend/fms_core/containers.py b/backend/fms_core/containers.py index 97e2f7973..49bd34221 100644 --- a/backend/fms_core/containers.py +++ b/backend/fms_core/containers.py @@ -294,11 +294,19 @@ def __str__(self): CONTAINER_SPEC_TUBE_RACK_8X12, ) +CONTAINER_SPEC_BOX = ContainerSpec( + container_kind_id="box", + coordinate_spec=(), + coordinate_overlap_allowed=True, + children=(*COMMON_CHILDREN, *TUBE_STRIP_SPECS, *RUN_CONTAINER_SPECS, CONTAINER_SPEC_TUBE), + is_run_container=False, +) + CONTAINER_SPEC_DRAWER = ContainerSpec( container_kind_id="drawer", coordinate_spec=(), coordinate_overlap_allowed=True, - children=COMMON_CHILDREN, + children=(*COMMON_CHILDREN, CONTAINER_SPEC_BOX), is_run_container=False, ) @@ -306,7 +314,15 @@ def __str__(self): container_kind_id="freezer rack 2x4", coordinate_spec=(alphas(2), ints(4, pad_to=2)), coordinate_overlap_allowed=False, - children=(*COMMON_CHILDREN, CONTAINER_SPEC_DRAWER), + children=(*COMMON_CHILDREN, CONTAINER_SPEC_BOX, CONTAINER_SPEC_DRAWER), + is_run_container=False, +) + +CONTAINER_SPEC_FREEZER_RACK_3X4 = ContainerSpec( + container_kind_id="freezer rack 3x4", + coordinate_spec=(alphas(3), ints(4, pad_to=2)), + coordinate_overlap_allowed=False, + children=(*COMMON_CHILDREN, CONTAINER_SPEC_BOX, CONTAINER_SPEC_DRAWER), is_run_container=False, ) @@ -314,7 +330,7 @@ def __str__(self): container_kind_id="freezer rack 4x4", coordinate_spec=(alphas(4), ints(4, pad_to=2)), coordinate_overlap_allowed=False, - children=(*COMMON_CHILDREN, CONTAINER_SPEC_DRAWER), + children=(*COMMON_CHILDREN, CONTAINER_SPEC_BOX, CONTAINER_SPEC_DRAWER), is_run_container=False, ) @@ -322,7 +338,7 @@ def __str__(self): container_kind_id="freezer rack 5x4", coordinate_spec=(alphas(5), ints(4, pad_to=2)), coordinate_overlap_allowed=False, - children=(*COMMON_CHILDREN, CONTAINER_SPEC_DRAWER), + children=(*COMMON_CHILDREN, CONTAINER_SPEC_BOX, CONTAINER_SPEC_DRAWER), is_run_container=False, ) @@ -330,7 +346,7 @@ def __str__(self): container_kind_id="freezer rack 6x4", coordinate_spec=(alphas(6), ints(4, pad_to=2)), coordinate_overlap_allowed=False, - children=(*COMMON_CHILDREN, CONTAINER_SPEC_DRAWER), + children=(*COMMON_CHILDREN, CONTAINER_SPEC_BOX, CONTAINER_SPEC_DRAWER), is_run_container=False, ) @@ -338,7 +354,15 @@ def __str__(self): container_kind_id="freezer rack 7x4", coordinate_spec=(alphas(7), ints(4, pad_to=2)), coordinate_overlap_allowed=False, - children=(*COMMON_CHILDREN, CONTAINER_SPEC_DRAWER), + children=(*COMMON_CHILDREN, CONTAINER_SPEC_BOX, CONTAINER_SPEC_DRAWER), + is_run_container=False, +) + +CONTAINER_SPEC_FREEZER_RACK_10X5 = ContainerSpec( + container_kind_id="freezer rack 10x5", + coordinate_spec=(alphas(10), ints(5, pad_to=2)), + coordinate_overlap_allowed=False, + children=(*COMMON_CHILDREN, CONTAINER_SPEC_BOX, CONTAINER_SPEC_DRAWER), is_run_container=False, ) @@ -346,7 +370,7 @@ def __str__(self): container_kind_id="freezer rack 8x6", coordinate_spec=(alphas(8), ints(6, pad_to=2)), coordinate_overlap_allowed=False, - children=(*COMMON_CHILDREN, CONTAINER_SPEC_DRAWER), + children=(*COMMON_CHILDREN, CONTAINER_SPEC_BOX, CONTAINER_SPEC_DRAWER), is_run_container=False, ) @@ -354,18 +378,29 @@ def __str__(self): container_kind_id="freezer rack 11x6", coordinate_spec=(alphas(11), ints(6, pad_to=2)), coordinate_overlap_allowed=False, - children=(*COMMON_CHILDREN, CONTAINER_SPEC_DRAWER), + children=(*COMMON_CHILDREN, CONTAINER_SPEC_BOX, CONTAINER_SPEC_DRAWER), + is_run_container=False, +) + +CONTAINER_SPEC_FREEZER_RACK_11X7 = ContainerSpec( + container_kind_id="freezer rack 11x7", + coordinate_spec=(alphas(11), ints(7, pad_to=2)), + coordinate_overlap_allowed=False, + children=(*COMMON_CHILDREN, CONTAINER_SPEC_BOX, CONTAINER_SPEC_DRAWER), is_run_container=False, ) FREEZER_RACK_SPECS = ( CONTAINER_SPEC_FREEZER_RACK_2X4, + CONTAINER_SPEC_FREEZER_RACK_3X4, CONTAINER_SPEC_FREEZER_RACK_4X4, CONTAINER_SPEC_FREEZER_RACK_5X4, CONTAINER_SPEC_FREEZER_RACK_6X4, CONTAINER_SPEC_FREEZER_RACK_7X4, + CONTAINER_SPEC_FREEZER_RACK_10X5, CONTAINER_SPEC_FREEZER_RACK_8X6, CONTAINER_SPEC_FREEZER_RACK_11X6, + CONTAINER_SPEC_FREEZER_RACK_11X7, ) FREEZER_CHILDREN = ( @@ -410,6 +445,7 @@ def __str__(self): CONTAINER_SPEC_FREEZER_4_SHELVES, CONTAINER_SPEC_FREEZER_5_SHELVES, *FREEZER_RACK_SPECS, + CONTAINER_SPEC_BOX ), is_run_container=False, ) @@ -417,14 +453,6 @@ def __str__(self): # Allow rooms to be nested CONTAINER_SPEC_ROOM.add_child(CONTAINER_SPEC_ROOM) -CONTAINER_SPEC_BOX = ContainerSpec( - container_kind_id="box", - coordinate_spec=(), - coordinate_overlap_allowed=True, - children=(*COMMON_CHILDREN, *TUBE_STRIP_SPECS, *RUN_CONTAINER_SPECS, CONTAINER_SPEC_TUBE), - is_run_container=False, -) - CONTAINER_KIND_SPECS: Dict[str, ContainerSpec] = {c.container_kind_id: c for c in ContainerSpec.container_specs} CONTAINER_KIND_CHOICES: Tuple[Tuple[str, str], ...] = tuple( diff --git a/backend/fms_core/migrations/0024_v3_4_1.py b/backend/fms_core/migrations/0024_v3_4_1.py index 8c19b88e3..77b51848d 100644 --- a/backend/fms_core/migrations/0024_v3_4_1.py +++ b/backend/fms_core/migrations/0024_v3_4_1.py @@ -13,6 +13,6 @@ class Migration(migrations.Migration): migrations.AlterField( model_name='container', name='kind', - field=models.CharField(choices=[('infinium gs 24 beadchip', 'infinium gs 24 beadchip'), ('tube', 'tube'), ('tube strip 2x1', 'tube strip 2x1'), ('tube strip 3x1', 'tube strip 3x1'), ('tube strip 4x1', 'tube strip 4x1'), ('tube strip 5x1', 'tube strip 5x1'), ('tube strip 6x1', 'tube strip 6x1'), ('tube strip 7x1', 'tube strip 7x1'), ('tube strip 8x1', 'tube strip 8x1'), ('96-well plate', '96-well plate'), ('384-well plate', '384-well plate'), ('tube box 3x3', 'tube box 3x3'), ('tube box 6x6', 'tube box 6x6'), ('tube box 7x7', 'tube box 7x7'), ('tube box 8x8', 'tube box 8x8'), ('tube box 9x9', 'tube box 9x9'), ('tube box 10x10', 'tube box 10x10'), ('tube rack 8x12', 'tube rack 8x12'), ('drawer', 'drawer'), ('freezer rack 2x4', 'freezer rack 2x4'), ('freezer rack 4x4', 'freezer rack 4x4'), ('freezer rack 5x4', 'freezer rack 5x4'), ('freezer rack 6x4', 'freezer rack 6x4'), ('freezer rack 7x4', 'freezer rack 7x4'), ('freezer rack 8x6', 'freezer rack 8x6'), ('freezer rack 11x6', 'freezer rack 11x6'), ('freezer 3 shelves', 'freezer 3 shelves'), ('freezer 4 shelves', 'freezer 4 shelves'), ('freezer 5 shelves', 'freezer 5 shelves'), ('room', 'room'), ('box', 'box')], help_text='What kind of container this is. Dictates the coordinate system and other container-specific properties.', max_length=25), + field=models.CharField(choices=[('infinium gs 24 beadchip', 'infinium gs 24 beadchip'), ('tube', 'tube'), ('tube strip 2x1', 'tube strip 2x1'), ('tube strip 3x1', 'tube strip 3x1'), ('tube strip 4x1', 'tube strip 4x1'), ('tube strip 5x1', 'tube strip 5x1'), ('tube strip 6x1', 'tube strip 6x1'), ('tube strip 7x1', 'tube strip 7x1'), ('tube strip 8x1', 'tube strip 8x1'), ('96-well plate', '96-well plate'), ('384-well plate', '384-well plate'), ('tube box 3x3', 'tube box 3x3'), ('tube box 6x6', 'tube box 6x6'), ('tube box 7x7', 'tube box 7x7'), ('tube box 8x8', 'tube box 8x8'), ('tube box 9x9', 'tube box 9x9'), ('tube box 10x10', 'tube box 10x10'), ('tube rack 8x12', 'tube rack 8x12'), ('box', 'box'), ('drawer', 'drawer'), ('freezer rack 2x4', 'freezer rack 2x4'), ('freezer rack 3x4', 'freezer rack 3x4'), ('freezer rack 4x4', 'freezer rack 4x4'), ('freezer rack 5x4', 'freezer rack 5x4'), ('freezer rack 6x4', 'freezer rack 6x4'), ('freezer rack 7x4', 'freezer rack 7x4'), ('freezer rack 10x5', 'freezer rack 10x5'), ('freezer rack 8x6', 'freezer rack 8x6'), ('freezer rack 11x6', 'freezer rack 11x6'), ('freezer rack 11x7', 'freezer rack 11x7'), ('freezer 3 shelves', 'freezer 3 shelves'), ('freezer 4 shelves', 'freezer 4 shelves'), ('freezer 5 shelves', 'freezer 5 shelves'), ('room', 'room')], help_text='What kind of container this is. Dictates the coordinate system and other container-specific properties.', max_length=25), ), ] diff --git a/backend/fms_core/static/submission_templates/Container_creation_v3_4_1.xlsx b/backend/fms_core/static/submission_templates/Container_creation_v3_4_1.xlsx index c929968683d88785b9e098ab041b8766d062ddb2..dbe97fc4089f86a08db8e420125f0566e3242327 100644 GIT binary patch literal 21211 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 SN(PNn@-pNAGedeDhz9^cW3I9Q diff --git a/backend/fms_core/static/submission_templates/Container_rename_v3_2_0.xlsx b/backend/fms_core/static/submission_templates/Container_rename_v3_2_0.xlsx deleted file mode 100644 index 7a03d7e0148f5d80c955a17854a15f1d48049bf6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26013 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 MF`zQYqc_j~3)cz1z5oCK diff --git a/backend/fms_core/static/submission_templates/Project_link_samples_v3_4_0.xlsx b/backend/fms_core/static/submission_templates/Project_link_samples_v3_4_0.xlsx deleted file mode 100644 index 8cb4beab3bc8104ace671b62345dad5fae926e61..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21067 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 literal 51125 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 z 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 Tf!%R0=ER-)6Bu~+$<&>LNTZdiC4T)mrn6;& z{#=mfB>VM8A|!Y!V_%Og)2~12pg-{a54e~3^`}iN#Xx_OHBJ8Se@?>pKaUc$JFwFF z6NMT3;QUiUv-5LOdZn~tl_r^fp#5Sh~zVqO+b;Ic`S8g4QtdQ4rGo>H~cJ~|nkOkooZ zYO*cjwVTCVHwGNnn`NpzcRE6-UCvc*N2mU@882Avy4iqw1$?jd<4!@gd(7*t@J^`5 zDCAp&qXeGmF%yy}!Ah!ntP~L^r5<{0oijnJUU) z-|B6nJeXOJI{DpZ$}-%_cN?`mHp*@2!u06)sIFE)l#Z3+o{@-dzRY8E4{3!iW9JE! ze6n$UYw6?Y59V0%1AReky{Upv7UHosE;UbkS#cqSwg6v$?w*b0&4% zGo^h?h2$G%sV8qX=+DZ$gUyD%QmTY(tA}#ism>gJ z!4C=oN5cfsWizv+j?SpTN~nn%(nWI<^Cu^FAhD{qDZ9hih{LPF!F7dHhd*YnMuWy9 z2+HK>EXE5Qj?PZhfh$HYn`NpeHd59@n7Nv|Zd&I!gmJ4+37QoJo+93=mr^yj+HP7wdYiPw*<5#?RO(d-@OCa`z1S(RcG+7-O+gKM*@VFv`I(+_ z1#1QFUEEU$WprqQ_0N{_DbwEaJh#2HbfZc}K7KZT{mgD8@odbq1+LBmQp#;=R>;1P z*^6@!y)2jNcO0rMb&a=hDThL@@>C#+u-I@iQ7yANw9yy&vEH<+^y<_K_+%4K?l_+Y zk@v)qy>mmf3UX<_Yt(_Dt0$eI%@L&5){2=EWuD3ym$TS95YcaQb&oVwG~lG$g#5EI zSR3JV4MkcEMoo(dRkxGl-H1s27e4>rri21pt3c))SRngJK{`7tyyM+^wY#&JPqtQ= zMIKA`wb(qWWu*3RR@825EglL+^wfy`8#_jYyb?EaR(|ibzn^@U!)fV%i1SKZ(2Rwg zg`8QlW^s;5Q{oGcMIIaFa5(KVIGj1~%DzNdsTq=paQg45CIh?sHa4ygRSduNxNR>QlP9B$mF+70#4B*K89pOEKbeL zmiUUfy{DU3y}M}{AVtvEB`ox+1wM32R#FZfI^r#H#tZ)UtHa^_?L?$#PZ|no+ypX+ z%eX2QaX2YR@+(=$UP(kUl9f8$4eBi()!hJ49#F8WNC;uTllJbN4juD#-IC`3Sr6*~ z(q>%fV+?fien~bWo{r!U=z@HSNJC+GaFhcN|5eNmAo+>f%1Im&atH& zj$_RX4uoV}UC`F4g*~;vd@pOJV`1(&HcRk^X<4T3=|jJv1I~k=YUn`FdHU0T09q>5 AHUIzs diff --git a/backend/fms_core/static/submission_templates/Sample_update_v3_2_0.xlsx b/backend/fms_core/static/submission_templates/Sample_update_v3_2_0.xlsx deleted file mode 100644 index ddb9d4e6a54cc74d885551bb083c9dba1d4e3b25..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23383 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 diff --git a/backend/fms_core/viewsets/container.py b/backend/fms_core/viewsets/container.py index 46ae5c337..95e5922b5 100644 --- a/backend/fms_core/viewsets/container.py +++ b/backend/fms_core/viewsets/container.py @@ -115,7 +115,8 @@ def search(self, _request): is_parent = _request.GET.get("parent") == 'true' is_sample_holding = _request.GET.get("sample_holding") == 'true' - query = Q(name__icontains=search_input) + query = Q(barcode__icontains=search_input) + query.add(Q(name__icontains=search_input), Q.OR) query.add(Q(id__icontains=search_input), Q.OR) if is_parent: query.add(Q(kind__in=PARENT_CONTAINER_KINDS), Q.AND) diff --git a/frontend/src/utils/options.js b/frontend/src/utils/options.js index 96b7906f2..1b5ab07d0 100644 --- a/frontend/src/utils/options.js +++ b/frontend/src/utils/options.js @@ -29,7 +29,7 @@ export function renderContainer(c) { value: c.id, label: (
- {c.name}{' '} + {c.barcode}{' '}({c.name}) {c.kind}
) From 0921ecc8dc749cce025aaafb18b758e5bc1dafa9 Mon Sep 17 00:00:00 2001 From: UlysseFG Date: Mon, 6 Dec 2021 19:25:42 -0500 Subject: [PATCH 18/31] Add back template that were removed. --- .../Container_move_v3_2_0.xlsx | Bin 0 -> 25065 bytes .../Container_rename_v3_2_0.xlsx | Bin 0 -> 26013 bytes .../Project_link_samples_v3_4_0.xlsx | Bin 0 -> 21067 bytes .../Sample_update_v3_2_0.xlsx | Bin 0 -> 23383 bytes 4 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 backend/fms_core/static/submission_templates/Container_move_v3_2_0.xlsx create mode 100644 backend/fms_core/static/submission_templates/Container_rename_v3_2_0.xlsx create mode 100644 backend/fms_core/static/submission_templates/Project_link_samples_v3_4_0.xlsx create mode 100644 backend/fms_core/static/submission_templates/Sample_update_v3_2_0.xlsx diff --git a/backend/fms_core/static/submission_templates/Container_move_v3_2_0.xlsx b/backend/fms_core/static/submission_templates/Container_move_v3_2_0.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..e028832bbe3813a1546e527d3a724d1716f41eb2 GIT binary patch literal 25065 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
U@*Z52C=`Q$aaz|~?$u8m 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 SN(PNn@-pNAGedeDhz9^cW3I9Q literal 0 HcmV?d00001 diff --git a/backend/fms_core/static/submission_templates/Container_rename_v3_2_0.xlsx b/backend/fms_core/static/submission_templates/Container_rename_v3_2_0.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..7a03d7e0148f5d80c955a17854a15f1d48049bf6 GIT binary patch literal 26013 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 MF`zQYqc_j~3)cz1z5oCK literal 0 HcmV?d00001 diff --git a/backend/fms_core/static/submission_templates/Project_link_samples_v3_4_0.xlsx b/backend/fms_core/static/submission_templates/Project_link_samples_v3_4_0.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..8cb4beab3bc8104ace671b62345dad5fae926e61 GIT binary patch literal 21067 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 literal 0 HcmV?d00001 From c0072b52862b251398ca204e8f63759eea5a829b Mon Sep 17 00:00:00 2001 From: UlysseFG Date: Tue, 7 Dec 2021 10:43:12 -0500 Subject: [PATCH 19/31] new container and sample kind --- backend/fms_core/containers.py | 10 +++++++++ backend/fms_core/migrations/0024_v3_4_1.py | 20 +++++++++++++++++- backend/fms_core/models/sample.py | 3 +++ .../Container_creation_v3_4_1.xlsx | Bin 21211 -> 21222 bytes .../Sample_submission_v3_4_1.xlsx | Bin 54390 -> 54399 bytes .../components/samples/SampleEditContent.js | 2 +- 6 files changed, 33 insertions(+), 2 deletions(-) diff --git a/backend/fms_core/containers.py b/backend/fms_core/containers.py index 49bd34221..bef8f1d42 100644 --- a/backend/fms_core/containers.py +++ b/backend/fms_core/containers.py @@ -22,6 +22,7 @@ "CONTAINER_SPEC_TUBE_BOX_8X8", "CONTAINER_SPEC_TUBE_BOX_9X9", "CONTAINER_SPEC_TUBE_BOX_10X10", + "CONTAINER_SPEC_TUBE_BOX_21X10", "CONTAINER_SPEC_TUBE_RACK_8X12", "CONTAINER_SPEC_DRAWER", "CONTAINER_SPEC_FREEZER_RACK_2X4", @@ -274,6 +275,14 @@ def __str__(self): is_run_container=False, ) +CONTAINER_SPEC_TUBE_BOX_21X10 = ContainerSpec( + container_kind_id="tube box 21x10", + coordinate_spec=(alphas(21), ints(10, pad_to=2)), + coordinate_overlap_allowed=False, + children=(CONTAINER_SPEC_TUBE,), + is_run_container=False, +) + CONTAINER_SPEC_TUBE_RACK_8X12 = ContainerSpec( container_kind_id="tube rack 8x12", coordinate_spec=(alphas(8), ints(12, pad_to=2)), @@ -291,6 +300,7 @@ def __str__(self): CONTAINER_SPEC_TUBE_BOX_8X8, CONTAINER_SPEC_TUBE_BOX_9X9, CONTAINER_SPEC_TUBE_BOX_10X10, + CONTAINER_SPEC_TUBE_BOX_21X10, CONTAINER_SPEC_TUBE_RACK_8X12, ) diff --git a/backend/fms_core/migrations/0024_v3_4_1.py b/backend/fms_core/migrations/0024_v3_4_1.py index 77b51848d..3424115df 100644 --- a/backend/fms_core/migrations/0024_v3_4_1.py +++ b/backend/fms_core/migrations/0024_v3_4_1.py @@ -1,7 +1,21 @@ # Generated by Django 3.1 on 2021-10-26 22:07 from django.db import migrations, models +from django.contrib.auth.models import User +import reversion +ADMIN_USERNAME = 'biobankadmin' + +def create_buffy_coat_sample_kind(apps, schema_editor): + SampleKind = apps.get_model("fms_core", "SampleKind") + admin_user = User.objects.get(username=ADMIN_USERNAME) + + with reversion.create_revision(manage_manually=True): + reversion.set_comment("Add new sample kind buffy coat.") + reversion.set_user(admin_user) + + buffy_coat = SampleKind.objects.create(name="BUFFY COAT", created_by_id=admin_user.id, updated_by_id=admin_user.id) + reversion.add_to_revision(buffy_coat) class Migration(migrations.Migration): @@ -13,6 +27,10 @@ class Migration(migrations.Migration): migrations.AlterField( model_name='container', name='kind', - field=models.CharField(choices=[('infinium gs 24 beadchip', 'infinium gs 24 beadchip'), ('tube', 'tube'), ('tube strip 2x1', 'tube strip 2x1'), ('tube strip 3x1', 'tube strip 3x1'), ('tube strip 4x1', 'tube strip 4x1'), ('tube strip 5x1', 'tube strip 5x1'), ('tube strip 6x1', 'tube strip 6x1'), ('tube strip 7x1', 'tube strip 7x1'), ('tube strip 8x1', 'tube strip 8x1'), ('96-well plate', '96-well plate'), ('384-well plate', '384-well plate'), ('tube box 3x3', 'tube box 3x3'), ('tube box 6x6', 'tube box 6x6'), ('tube box 7x7', 'tube box 7x7'), ('tube box 8x8', 'tube box 8x8'), ('tube box 9x9', 'tube box 9x9'), ('tube box 10x10', 'tube box 10x10'), ('tube rack 8x12', 'tube rack 8x12'), ('box', 'box'), ('drawer', 'drawer'), ('freezer rack 2x4', 'freezer rack 2x4'), ('freezer rack 3x4', 'freezer rack 3x4'), ('freezer rack 4x4', 'freezer rack 4x4'), ('freezer rack 5x4', 'freezer rack 5x4'), ('freezer rack 6x4', 'freezer rack 6x4'), ('freezer rack 7x4', 'freezer rack 7x4'), ('freezer rack 10x5', 'freezer rack 10x5'), ('freezer rack 8x6', 'freezer rack 8x6'), ('freezer rack 11x6', 'freezer rack 11x6'), ('freezer rack 11x7', 'freezer rack 11x7'), ('freezer 3 shelves', 'freezer 3 shelves'), ('freezer 4 shelves', 'freezer 4 shelves'), ('freezer 5 shelves', 'freezer 5 shelves'), ('room', 'room')], help_text='What kind of container this is. Dictates the coordinate system and other container-specific properties.', max_length=25), + field=models.CharField(choices=[('infinium gs 24 beadchip', 'infinium gs 24 beadchip'), ('tube', 'tube'), ('tube strip 2x1', 'tube strip 2x1'), ('tube strip 3x1', 'tube strip 3x1'), ('tube strip 4x1', 'tube strip 4x1'), ('tube strip 5x1', 'tube strip 5x1'), ('tube strip 6x1', 'tube strip 6x1'), ('tube strip 7x1', 'tube strip 7x1'), ('tube strip 8x1', 'tube strip 8x1'), ('96-well plate', '96-well plate'), ('384-well plate', '384-well plate'), ('tube box 3x3', 'tube box 3x3'), ('tube box 6x6', 'tube box 6x6'), ('tube box 7x7', 'tube box 7x7'), ('tube box 8x8', 'tube box 8x8'), ('tube box 9x9', 'tube box 9x9'), ('tube box 10x10', 'tube box 10x10'), ('tube box 21x10', 'tube box 21x10'), ('tube rack 8x12', 'tube rack 8x12'), ('box', 'box'), ('drawer', 'drawer'), ('freezer rack 2x4', 'freezer rack 2x4'), ('freezer rack 3x4', 'freezer rack 3x4'), ('freezer rack 4x4', 'freezer rack 4x4'), ('freezer rack 5x4', 'freezer rack 5x4'), ('freezer rack 6x4', 'freezer rack 6x4'), ('freezer rack 7x4', 'freezer rack 7x4'), ('freezer rack 10x5', 'freezer rack 10x5'), ('freezer rack 8x6', 'freezer rack 8x6'), ('freezer rack 11x6', 'freezer rack 11x6'), ('freezer rack 11x7', 'freezer rack 11x7'), ('freezer 3 shelves', 'freezer 3 shelves'), ('freezer 4 shelves', 'freezer 4 shelves'), ('freezer 5 shelves', 'freezer 5 shelves'), ('room', 'room')], help_text='What kind of container this is. Dictates the coordinate system and other container-specific properties.', max_length=25), + ), + migrations.RunPython( + create_buffy_coat_sample_kind, + reverse_code=migrations.RunPython.noop, ), ] diff --git a/backend/fms_core/models/sample.py b/backend/fms_core/models/sample.py index 9d570c97b..fdb9a1314 100644 --- a/backend/fms_core/models/sample.py +++ b/backend/fms_core/models/sample.py @@ -40,6 +40,7 @@ class Sample(TrackedModel): BIOSPECIMEN_TYPE_BAL = "BAL" BIOSPECIMEN_TYPE_BIOPSY = "BIOPSY" BIOSPECIMEN_TYPE_BLOOD = "BLOOD" + BIOSPECIMEN_TYPE_BUFFY_COAT = "BUFFY COAT" BIOSPECIMEN_TYPE_CELLS = "CELLS" BIOSPECIMEN_TYPE_EXPECTORATION = "EXPECTORATION" BIOSPECIMEN_TYPE_GARGLE = "GARGLE" @@ -64,6 +65,7 @@ class Sample(TrackedModel): (BIOSPECIMEN_TYPE_BAL, BIOSPECIMEN_TYPE_BAL), (BIOSPECIMEN_TYPE_BIOPSY, BIOSPECIMEN_TYPE_BIOPSY), (BIOSPECIMEN_TYPE_BLOOD, BIOSPECIMEN_TYPE_BLOOD), + (BIOSPECIMEN_TYPE_BUFFY_COAT, BIOSPECIMEN_TYPE_BUFFY_COAT), (BIOSPECIMEN_TYPE_CELLS, BIOSPECIMEN_TYPE_CELLS), (BIOSPECIMEN_TYPE_EXPECTORATION, BIOSPECIMEN_TYPE_EXPECTORATION), (BIOSPECIMEN_TYPE_GARGLE, BIOSPECIMEN_TYPE_GARGLE), @@ -107,6 +109,7 @@ class Sample(TrackedModel): BIOSPECIMEN_TYPE_BAL: TISSUE_SOURCE_BAL, BIOSPECIMEN_TYPE_BIOPSY: TISSUE_SOURCE_BIOPSY, BIOSPECIMEN_TYPE_BLOOD: TISSUE_SOURCE_BLOOD, + BIOSPECIMEN_TYPE_BUFFY_COAT: TISSUE_SOURCE_BUFFY_COAT, BIOSPECIMEN_TYPE_CELLS: TISSUE_SOURCE_CELLS, BIOSPECIMEN_TYPE_EXPECTORATION: TISSUE_SOURCE_EXPECTORATION, BIOSPECIMEN_TYPE_GARGLE: TISSUE_SOURCE_GARGLE, diff --git a/backend/fms_core/static/submission_templates/Container_creation_v3_4_1.xlsx b/backend/fms_core/static/submission_templates/Container_creation_v3_4_1.xlsx index dbe97fc4089f86a08db8e420125f0566e3242327..f7b03bd20f56ff585878103761fb63a13527a38a 100644 GIT binary patch literal 21222 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 BCp-WE delta 19090 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 OXx6-S!Mg@N`~Lu9DtQM0 diff --git a/frontend/src/components/samples/SampleEditContent.js b/frontend/src/components/samples/SampleEditContent.js index ddd66d274..20dd91d64 100644 --- a/frontend/src/components/samples/SampleEditContent.js +++ b/frontend/src/components/samples/SampleEditContent.js @@ -197,7 +197,7 @@ const SampleEditContent = ({token, samplesByID, sampleKinds, add, update, listTa From cb60f7c92e2d85af69dc66ea18f8255ce692dd9f Mon Sep 17 00:00:00 2001 From: UlysseFG Date: Fri, 10 Dec 2021 14:01:55 -0500 Subject: [PATCH 20/31] Some changes to sample QC protocol --- backend/fms_core/migrations/0028_v3_5_0.py | 36 +++++++++--------- .../Sample_QC_v3_5_0.xlsx | Bin 27448 -> 22940 bytes .../template_importer/importers/sample_qc.py | 8 ++-- .../row_handlers/sample_qc/sample.py | 12 ++---- 4 files changed, 26 insertions(+), 30 deletions(-) diff --git a/backend/fms_core/migrations/0028_v3_5_0.py b/backend/fms_core/migrations/0028_v3_5_0.py index 8f82ecc6b..14d9e7306 100644 --- a/backend/fms_core/migrations/0028_v3_5_0.py +++ b/backend/fms_core/migrations/0028_v3_5_0.py @@ -23,17 +23,19 @@ def create_sample_qc_objects(apps, schema_editor): reversion.set_user(admin_user) # Create Platform and InstrumentType - p_quantitation = Platform.objects.create(name="Quality Control: Quantitation", created_by_id=admin_user_id, updated_by_id=admin_user_id) - p_electrophoresis = Platform.objects.create(name="Quality Control: Electrophoresis", created_by_id=admin_user_id, updated_by_id=admin_user_id) - reversion.add_to_revision(p_quantitation) - reversion.add_to_revision(p_electrophoresis) + p = Platform.objects.create(name="Quality Control", created_by_id=admin_user_id, updated_by_id=admin_user_id) + reversion.add_to_revision(p) # DICT { TYPE : PLATFORM } INSTRUMENT_TYPES = { - "PicoGreen": "Quality Control: Quantitation", - "Qubit": "Quality Control: Quantitation", - "Agarose Gel": "Quality Control: Electrophoresis", - "TapeStation": "Quality Control: Electrophoresis", + "PicoGreen": "Quality Control", + "Qubit": "Quality Control", + "Agarose Gel": "Quality Control", + "TapeStation": "Quality Control", + "NanoDrop": "Quality Control", + "Tecan Absorbance": "Quality Control", + "BioAnalyzer": "Quality Control", + "Caliper LabChip": "Quality Control", } for type in INSTRUMENT_TYPES: platform = Platform.objects.get(name=INSTRUMENT_TYPES[type]) @@ -46,27 +48,25 @@ def create_sample_qc_objects(apps, schema_editor): # Create PropertyType and Protocols PROPERTY_TYPES_BY_PROTOCOL = { - "Sample Quality Control": [ + "Sample Quality Control": [("Sample Quality QC Flag", "str"), + ("Sample Quantity QC Flag", "str"), ("Measured Volume", "str"), ("Concentration", "str"), ("RIN", "str"), - ("Quantitation Instrument", "str"), - ("Electrophoresis Instrument", "str"), - ], + ("Quantity Instrument", "str"), + ("Quality Instrument", "str")], } protocol_content_type = ContentType.objects.get_for_model(Protocol) for protocol_name in PROPERTY_TYPES_BY_PROTOCOL.keys(): - protocol = Protocol.objects.create(name=protocol_name, - created_by_id=admin_user_id, updated_by_id=admin_user_id) + protocol = Protocol.objects.create(name=protocol_name, created_by_id=admin_user_id, updated_by_id=admin_user_id) reversion.add_to_revision(protocol) for (property, value_type) in PROPERTY_TYPES_BY_PROTOCOL[protocol_name]: - if any([property == 'Quantitation Instrument', property == 'Electrophoresis Instrument', - property == 'Concentration', property == 'Measured Volume']): - is_optional = False - else: + if property == 'RIN': is_optional = True + else: + is_optional = False pt = PropertyType.objects.create(name=property, object_id=protocol.id, diff --git a/backend/fms_core/static/submission_templates/Sample_QC_v3_5_0.xlsx b/backend/fms_core/static/submission_templates/Sample_QC_v3_5_0.xlsx index ffa709fd51b8ff287aee5c63133979e9568dd278..dd96b8d5f94b8a80d5b5ad6f3b745dffd7602f69 100644 GIT binary patch literal 22940 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 literal 27448 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 vluhC2v~dAjUaDa9)*R2qLLeN@n-BkY# Date: Fri, 10 Dec 2021 14:36:38 -0500 Subject: [PATCH 21/31] Fixed process measurements duplicates in view --- backend/fms_core/migrations/0027_v3_5_0.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/fms_core/migrations/0027_v3_5_0.py b/backend/fms_core/migrations/0027_v3_5_0.py index 71638f833..c6ef6c570 100644 --- a/backend/fms_core/migrations/0027_v3_5_0.py +++ b/backend/fms_core/migrations/0027_v3_5_0.py @@ -140,7 +140,7 @@ class Migration(migrations.Migration): """ DROP VIEW IF EXISTS fms_core_fullsample; CREATE OR REPLACE VIEW fms_core_fullsample AS - SELECT sample.id, sample.name, sample.container_id, sample.coordinates, sample.volume, sample.concentration, sample.depleted, array_remove(array_agg(DISTINCT sbyp.project_id), NULL) AS projects, array_remove(array_agg(DISTINCT project.name), NULL) AS projects_names, array_remove(array_agg(pm.id), NULL) AS process_measurements, array_remove(array_agg(DISTINCT sl.parent_id), NULL) AS child_of, sample.comment, sample.creation_date, sample.created_at, sample.updated_at, sample.created_by_id, sample.updated_by_id, sample.deleted, biosample.alias, derived.sample_kind_id, derived.tissue_source, derived.experimental_group, derived.id AS derived_sample_id, derived.quality_flag, derived.quantity_flag, derived.biosample_id, biosample.individual_id, biosample.collection_site + SELECT sample.id, sample.name, sample.container_id, sample.coordinates, sample.volume, sample.concentration, sample.depleted, array_remove(array_agg(DISTINCT sbyp.project_id), NULL) AS projects, array_remove(array_agg(DISTINCT project.name), NULL) AS projects_names, array_remove(array_agg(DISTINCT pm.id), NULL) AS process_measurements, array_remove(array_agg(DISTINCT sl.parent_id), NULL) AS child_of, sample.comment, sample.creation_date, sample.created_at, sample.updated_at, sample.created_by_id, sample.updated_by_id, sample.deleted, biosample.alias, derived.sample_kind_id, derived.tissue_source, derived.experimental_group, derived.id AS derived_sample_id, derived.quality_flag, derived.quantity_flag, derived.biosample_id, biosample.individual_id, biosample.collection_site FROM fms_core_sample AS sample JOIN fms_core_derivedbysample AS dbys ON dbys.sample_id = sample.id From 820bf2a23a1ad376fa94b8d4b41a390b0ad86ed8 Mon Sep 17 00:00:00 2001 From: UlysseFG Date: Fri, 10 Dec 2021 15:40:45 -0500 Subject: [PATCH 22/31] Sample QC test update --- .../test_template_importers/sample_qc_test.py | 4 ++-- .../valid_templates/Sample_QC_v3_5_0.xlsx | Bin 27391 -> 23026 bytes 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/backend/fms_core/tests/test_template_importers/sample_qc_test.py b/backend/fms_core/tests/test_template_importers/sample_qc_test.py index 7710c6880..f543f13a2 100644 --- a/backend/fms_core/tests/test_template_importers/sample_qc_test.py +++ b/backend/fms_core/tests/test_template_importers/sample_qc_test.py @@ -72,10 +72,10 @@ def test_import(self): self.assertEqual(derived_sample.quantity_flag, self.quantity_flag) # Property Values tests - pt_1 = PropertyType.objects.get(name='Quantitation Instrument', object_id=pm.process.protocol.id) + pt_1 = PropertyType.objects.get(name='Quantity Instrument', object_id=pm.process.protocol.id) p_1 = PropertyValue.objects.get(property_type_id=pt_1, object_id=pm.id) - pt_2 = PropertyType.objects.get(name='Electrophoresis Instrument', object_id=pm.process.protocol.id) + pt_2 = PropertyType.objects.get(name='Quality Instrument', object_id=pm.process.protocol.id) p_2 = PropertyValue.objects.get(property_type_id=pt_2, object_id=pm.id) self.assertEqual(p_1.value, self.process_qt_instrument) diff --git a/backend/fms_core/tests/valid_templates/Sample_QC_v3_5_0.xlsx b/backend/fms_core/tests/valid_templates/Sample_QC_v3_5_0.xlsx index 049dc6d6c4fdf34f818b54e4574476bd319bc040..86242dc0658d46f16a627851b243cdab65769406 100644 GIT binary patch literal 23026 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 IN*lcTf46@Y;{X5v literal 27391 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 Date: Mon, 13 Dec 2021 09:03:41 -0500 Subject: [PATCH 23/31] Fixed full sample export order for qc --- backend/fms_core/serializers.py | 32 ++++++++++++++++++++++-- backend/fms_core/viewsets/full_sample.py | 8 ++++++ 2 files changed, 38 insertions(+), 2 deletions(-) diff --git a/backend/fms_core/serializers.py b/backend/fms_core/serializers.py index 5bb26f415..fbfe0537b 100644 --- a/backend/fms_core/serializers.py +++ b/backend/fms_core/serializers.py @@ -192,23 +192,33 @@ def get_extracted_from(self, obj): return obj.extracted_from and obj.extracted_from.id class FullSampleExportSerializer(serializers.ModelSerializer): + individual_name = serializers.CharField(read_only=True, source="individual.name") taxon = serializers.CharField(read_only=True, source="individual.taxon") sex = serializers.CharField(read_only=True, source="individual.sex") pedigree = serializers.CharField(read_only=True, source="individual.pedigree") cohort = serializers.CharField(read_only=True, source="individual.cohort") mother_name = serializers.SerializerMethodField() father_name = serializers.SerializerMethodField() + sample_kind = serializers.CharField(read_only=True, source="sample_kind.name") container_kind = serializers.CharField(read_only=True, source="container.kind") container_name = serializers.CharField(read_only=True, source="container.name") container_barcode = serializers.CharField(read_only=True, source="container.barcode") location_coord = serializers.CharField(read_only=True, source="container.coordinates") location_barcode = serializers.SerializerMethodField() current_volume = serializers.SerializerMethodField() + projects_names = serializers.SerializerMethodField() + quantity_flag = serializers.SerializerMethodField() + quality_flag = serializers.SerializerMethodField() + depleted = serializers.SerializerMethodField() class Meta: model = FullSample - fields = "__all__" - extra_fields = ("taxon", "sex", "pedigree", "cohort", "container_name", "container_kind", "container_barcode") + fields = ('id', 'biosample', 'name', 'alias', 'sample_kind', 'tissue_source', + 'container', 'container_kind', 'container_name', 'container_barcode', 'coordinates', + 'location_barcode', 'location_coord', + 'current_volume', 'concentration', 'creation_date', 'collection_site', + 'individual_name', 'sex', 'taxon', 'cohort', 'pedigree', 'father_name', 'mother_name', + 'quality_flag', 'quantity_flag', 'projects_names', 'depleted', 'comment') def get_location_barcode(self, obj): if obj.container and obj.container.location is None: @@ -227,6 +237,24 @@ def get_mother_name(self, obj): mother = '' if not obj.individual or obj.individual.mother is None else obj.individual.mother.name return mother + def get_projects_names(self, obj): + return (', '.join(obj.projects_names)) + + def get_quality_flag(self, obj): + if obj.quality_flag is None: + return None + else: + return "Passed" if obj.quality_flag else "Failed" + + def get_quantity_flag(self, obj): + if obj.quantity_flag is None: + return None + else: + return "Passed" if obj.quantity_flag else "Failed" + + def get_depleted(self, obj): + return "Yes" if obj.depleted else "No" + class SampleSerializer(serializers.ModelSerializer): extracted_from = serializers.SerializerMethodField() process_measurements = serializers.PrimaryKeyRelatedField(source='process_measurement', many=True, read_only=True) diff --git a/backend/fms_core/viewsets/full_sample.py b/backend/fms_core/viewsets/full_sample.py index fa7278923..51a094511 100644 --- a/backend/fms_core/viewsets/full_sample.py +++ b/backend/fms_core/viewsets/full_sample.py @@ -195,6 +195,14 @@ def list_export(self, _request): serializer = FullSampleExportSerializer(self.filter_queryset(self.get_queryset()), many=True) return Response(serializer.data) + def get_renderer_context(self): + context = super().get_renderer_context() + if self.action == 'list_export': + fields = FullSampleExportSerializer.Meta.fields + context['header'] = fields + context['labels'] = {i: i.replace('_', ' ').capitalize() for i in fields} + return context + @action(detail=False, methods=["get"]) def summary(self, _request): """ From e995e8424e71e8cac0d27193a4da8e1de9fb8fec Mon Sep 17 00:00:00 2001 From: Sebastian Ballesteros Date: Mon, 13 Dec 2021 17:30:15 -0500 Subject: [PATCH 24/31] Implemented batch filter for qc --- backend/fms_core/filters.py | 63 +++++++++++++++++++ backend/fms_core/viewsets/container.py | 7 +-- backend/fms_core/viewsets/full_sample.py | 5 +- backend/fms_core/viewsets/individual.py | 3 +- backend/fms_core/viewsets/sample.py | 20 +----- .../src/components/filters/descriptions.js | 4 ++ frontend/src/utils/serializeFilterParams.js | 10 +++ 7 files changed, 85 insertions(+), 27 deletions(-) diff --git a/backend/fms_core/filters.py b/backend/fms_core/filters.py index e69de29bb..258e8bfc5 100644 --- a/backend/fms_core/filters.py +++ b/backend/fms_core/filters.py @@ -0,0 +1,63 @@ +from django.db.models import Q + +from .models import Container, Individual, FullSample + +import django_filters + +from .viewsets._constants import ( + _container_filterset_fields, + _full_sample_filterset_fields, + _individual_filterset_fields, + _sample_minimal_filterset_fields, +) + +from .viewsets._utils import _prefix_keys + +class GenericFilter(django_filters.FilterSet): + def batch_barcode_filter(self, queryset, name, value): + query = Q() + for v in value.split(" "): + query |= Q(barcode=v) + return queryset.filter(query) + + def batch_name_filter(self, queryset, name, value): + query = Q() + for v in value.split(" "): + query |= Q(name=v) + query_set = queryset.filter(query) + return query_set + + +class ContainerFilter(GenericFilter): + barcode = django_filters.CharFilter(field_name="barcode", method="batch_barcode_filter") + name = django_filters.CharFilter(field_name="name", method="batch_name_filter") + + class Meta: + model = Container + fields = { + **_container_filterset_fields, + **_prefix_keys("location__", _container_filterset_fields), + **_prefix_keys("samples__", _sample_minimal_filterset_fields), + } + +class FullSampleFilter(GenericFilter): + name = django_filters.CharFilter(field_name="name", method="batch_name_filter") + container__barcode = django_filters.CharFilter(field_name="container__barcode", method="batch_container_barcode_filter") + + def batch_container_barcode_filter(self, queryset, name, value): + query = Q() + for v in value.split(" "): + query |= Q(container__barcode=v) + query_set = queryset.filter(query) + return query_set + + class Meta: + model = FullSample + fields = _full_sample_filterset_fields + +class IndividualFilter(GenericFilter): + name = django_filters.CharFilter(field_name="name", method="batch_name_filter") + + class Meta: + model = Individual + fields = _individual_filterset_fields \ No newline at end of file diff --git a/backend/fms_core/viewsets/container.py b/backend/fms_core/viewsets/container.py index 44804fea2..a4342225e 100644 --- a/backend/fms_core/viewsets/container.py +++ b/backend/fms_core/viewsets/container.py @@ -8,6 +8,7 @@ from fms_core.containers import PARENT_CONTAINER_KINDS, SAMPLE_CONTAINER_KINDS from fms_core.models import Container, Sample +from fms_core.filters import ContainerFilter from fms_core.template_importer.importers import ContainerCreationImporter, ContainerRenameImporter, ContainerMoveImporter @@ -35,11 +36,7 @@ class ContainerViewSet(viewsets.ModelViewSet, TemplateActionsMixin): Prefetch('samples', queryset=Sample.objects.order_by('coordinates'))).all() serializer_class = ContainerSerializer - filterset_fields = { - **_container_filterset_fields, - **_prefix_keys("location__", _container_filterset_fields), - **_prefix_keys("samples__", _sample_minimal_filterset_fields), - } + filter_class = ContainerFilter template_action_list = [ { diff --git a/backend/fms_core/viewsets/full_sample.py b/backend/fms_core/viewsets/full_sample.py index 51a094511..9373e9ec8 100644 --- a/backend/fms_core/viewsets/full_sample.py +++ b/backend/fms_core/viewsets/full_sample.py @@ -20,6 +20,7 @@ from ._constants import _full_sample_filterset_fields from ._utils import TemplateActionsMixin, _list_keys +from fms_core.filters import FullSampleFilter class FullSampleViewSet(viewsets.ModelViewSet, TemplateActionsMixin): queryset = FullSample.objects.select_related("individual", "container", "sample_kind").all() @@ -29,9 +30,7 @@ class FullSampleViewSet(viewsets.ModelViewSet, TemplateActionsMixin): *_list_keys(_full_sample_filterset_fields), ) - filterset_fields = { - **_full_sample_filterset_fields, - } + filter_class = FullSampleFilter template_action_list = [ { diff --git a/backend/fms_core/viewsets/individual.py b/backend/fms_core/viewsets/individual.py index 705d279ca..e4f2b0f28 100644 --- a/backend/fms_core/viewsets/individual.py +++ b/backend/fms_core/viewsets/individual.py @@ -8,6 +8,7 @@ from fms_core.models import Individual from fms_core.serializers import IndividualSerializer +from fms_core.filters import IndividualFilter from ._utils import TemplateActionsMixin, versions_detail from ._constants import _individual_filterset_fields @@ -16,7 +17,7 @@ class IndividualViewSet(viewsets.ModelViewSet): queryset = Individual.objects.all() serializer_class = IndividualSerializer - filterset_fields = _individual_filterset_fields + filter_class = IndividualFilter # noinspection PyUnusedLocal @action(detail=True, methods=["get"]) diff --git a/backend/fms_core/viewsets/sample.py b/backend/fms_core/viewsets/sample.py index 0f5aa45bd..d500f931a 100644 --- a/backend/fms_core/viewsets/sample.py +++ b/backend/fms_core/viewsets/sample.py @@ -1,17 +1,9 @@ -from collections import Counter - -from django.db.models import Count, Q, F - from rest_framework import viewsets from rest_framework.decorators import action -from rest_framework.response import Response -from fms_core.models import Sample, Container, DerivedSample, Biosample +from fms_core.models import Sample -from fms_core.serializers import SampleSerializer, SampleExportSerializer -from fms_core.template_importer.importers import SampleSubmissionImporter, SampleUpdateImporter - -from fms_core.template_paths import SAMPLE_SUBMISSION_TEMPLATE, SAMPLE_UPDATE_TEMPLATE +from fms_core.serializers import SampleSerializer from ._utils import TemplateActionsMixin, _list_keys, versions_detail from ._constants import _sample_filterset_fields @@ -29,14 +21,6 @@ class SampleViewSet(viewsets.ModelViewSet, TemplateActionsMixin): **_sample_filterset_fields, } - def get_renderer_context(self): - context = super().get_renderer_context() - if self.action == 'list_export': - fields = SampleExportSerializer.Meta.fields - context['header'] = fields - context['labels'] = {i: i.replace('_', ' ').capitalize() for i in fields} - return context - # noinspection PyUnusedLocal @action(detail=True, methods=["get"]) def versions(self, _request, pk=None): diff --git a/frontend/src/components/filters/descriptions.js b/frontend/src/components/filters/descriptions.js index 46628482b..ed7e10d66 100644 --- a/frontend/src/components/filters/descriptions.js +++ b/frontend/src/components/filters/descriptions.js @@ -17,6 +17,7 @@ export const SAMPLE_FILTERS = { type: FILTER_TYPE.INPUT, key: "name", label: "Name", + batch: true, }, individual__name: { type: FILTER_TYPE.INPUT, @@ -34,6 +35,7 @@ export const SAMPLE_FILTERS = { key: "container__barcode", label: "Container Barcode", recursive: true, + batch: true, }, projects__name: { type: FILTER_TYPE.INPUT, @@ -124,11 +126,13 @@ export const CONTAINER_FILTERS = { type: FILTER_TYPE.INPUT, key: "barcode", label: "Barcode", + batch: true, }, name: { type: FILTER_TYPE.INPUT, key: "name", label: "Name", + batch: true, }, kind: { type: FILTER_TYPE.SELECT, diff --git a/frontend/src/utils/serializeFilterParams.js b/frontend/src/utils/serializeFilterParams.js index f7510b4f6..760027aa5 100644 --- a/frontend/src/utils/serializeFilterParams.js +++ b/frontend/src/utils/serializeFilterParams.js @@ -7,6 +7,10 @@ import {FILTER_TYPE} from "../constants" export default function serializeFilterParams(filters, descriptions) { const params = {} + function hasSpaces(string) { + return string.indexOf(' ') >= 1; + }; + Object.keys(filters).forEach(field => { const value = filters[field]?.value const description = descriptions[field] @@ -37,6 +41,12 @@ export default function serializeFilterParams(filters, descriptions) { case FILTER_TYPE.INPUT: { const options = filters[field].options + const isBatch = description.batch && hasSpaces(value) + + if(isBatch){ + params[key] = value + break + } if (options) { if (options.recursiveMatch) From 58f24f6f9b79e96738551bf518ed4d761a608ed5 Mon Sep 17 00:00:00 2001 From: Sebastian Ballesteros Date: Mon, 13 Dec 2021 19:47:14 -0500 Subject: [PATCH 25/31] Fixed minor issues --- backend/fms_core/viewsets/container.py | 6 ------ backend/fms_core/viewsets/individual.py | 5 +---- frontend/src/components/filters/descriptions.js | 1 + 3 files changed, 2 insertions(+), 10 deletions(-) diff --git a/backend/fms_core/viewsets/container.py b/backend/fms_core/viewsets/container.py index a4342225e..feed76292 100644 --- a/backend/fms_core/viewsets/container.py +++ b/backend/fms_core/viewsets/container.py @@ -23,14 +23,8 @@ CONTAINER_RENAME_TEMPLATE, ) - from ._utils import TemplateActionsMixin, _prefix_keys, versions_detail -from ._constants import ( - _container_filterset_fields, - _sample_minimal_filterset_fields -) - class ContainerViewSet(viewsets.ModelViewSet, TemplateActionsMixin): queryset = Container.objects.select_related("location").prefetch_related("children", Prefetch('samples', queryset=Sample.objects.order_by('coordinates'))).all() diff --git a/backend/fms_core/viewsets/individual.py b/backend/fms_core/viewsets/individual.py index e4f2b0f28..21554c93c 100644 --- a/backend/fms_core/viewsets/individual.py +++ b/backend/fms_core/viewsets/individual.py @@ -1,8 +1,6 @@ from django.db.models import Q -from django.contrib.auth.models import User from rest_framework import viewsets -from rest_framework.permissions import IsAuthenticated from rest_framework.decorators import action from rest_framework.response import Response @@ -10,8 +8,7 @@ from fms_core.serializers import IndividualSerializer from fms_core.filters import IndividualFilter -from ._utils import TemplateActionsMixin, versions_detail -from ._constants import _individual_filterset_fields +from ._utils import versions_detail class IndividualViewSet(viewsets.ModelViewSet): diff --git a/frontend/src/components/filters/descriptions.js b/frontend/src/components/filters/descriptions.js index ed7e10d66..f021ecfcc 100644 --- a/frontend/src/components/filters/descriptions.js +++ b/frontend/src/components/filters/descriptions.js @@ -168,6 +168,7 @@ export const INDIVIDUAL_FILTERS = { type: FILTER_TYPE.INPUT, key: "name", label: "Name", + batch: true, }, taxon: { type: FILTER_TYPE.SELECT, From 0443faa1d560f8c9ab9488a783b0f6be654a1100 Mon Sep 17 00:00:00 2001 From: Sebastian Ballesteros Date: Wed, 15 Dec 2021 15:35:25 -0500 Subject: [PATCH 26/31] Fixed experimental group JSON bug --- backend/fms_core/services/sample.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/fms_core/services/sample.py b/backend/fms_core/services/sample.py index 3a1913e0b..5adb1bc9a 100644 --- a/backend/fms_core/services/sample.py +++ b/backend/fms_core/services/sample.py @@ -47,7 +47,7 @@ def create_full_sample(name, volume, collection_site, creation_date, **(dict(tissue_source=tissue_source) if tissue_source is not None else dict()), ) if experimental_group: - derived_sample_data['experimental_group'] = json.dumps([ + derived_sample_data['experimental_group'] = ([ g.strip() for g in RE_SEPARATOR.split(experimental_group) if g.strip() From c6a16666be17947a8a17e5754dca17dd137d50d1 Mon Sep 17 00:00:00 2001 From: ufgauthi Date: Wed, 15 Dec 2021 16:49:04 -0500 Subject: [PATCH 27/31] Fixed too many errors message hiding other messages. --- .../template_importer/importers/_generic.py | 17 ++++++++++------- .../template_importer/row_handlers/_generic.py | 5 +---- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/backend/fms_core/template_importer/importers/_generic.py b/backend/fms_core/template_importer/importers/_generic.py index 4004daea2..be0dc7eae 100644 --- a/backend/fms_core/template_importer/importers/_generic.py +++ b/backend/fms_core/template_importer/importers/_generic.py @@ -1,3 +1,4 @@ +from django.core.exceptions import ValidationError from pandas import pandas as pd from django.db import transaction import reversion @@ -85,15 +86,17 @@ def initialize_data_for_template(self, **kwargs): def handle_row(self, row_handler_class, sheet, row_i, **kwargs): row_handler_obj = row_handler_class() - result = row_handler_obj.process_row(**kwargs) - sheet.rows_results[row_i].update(**result) - - if result['validation_error']: - self.errors_count += 1 - if self.errors_count >= self.ERRORS_CUTOFF: - raise ValueError('Too many errors. Template validation was stopped.') + result = {'errors': [], 'validation_error': ValidationError({}), 'warnings': {}} + else: + result = row_handler_obj.process_row(**kwargs) + + if result['validation_error']: + self.errors_count += 1 + if self.errors_count >= self.ERRORS_CUTOFF: + result = {'errors': [], 'validation_error': ValidationError({"Too many errors": f"Template validation interrupted."}), 'warnings': {}} + sheet.rows_results[row_i].update(**result) row_obj = row_handler_obj.row_object return (result, row_obj) diff --git a/backend/fms_core/template_importer/row_handlers/_generic.py b/backend/fms_core/template_importer/row_handlers/_generic.py index 9ccad6347..bcb28abd7 100644 --- a/backend/fms_core/template_importer/row_handlers/_generic.py +++ b/backend/fms_core/template_importer/row_handlers/_generic.py @@ -34,7 +34,4 @@ def get_result(self): if v: warnings.append(f"{k} : {v}") - return {'errors': [], - 'validation_error': ValidationError(self.errors), - 'warnings': warnings, - } \ No newline at end of file + return {'errors': [], 'validation_error': ValidationError(self.errors), 'warnings': warnings} \ No newline at end of file From 5bea65523e7c53581453d99506c54087afa56358 Mon Sep 17 00:00:00 2001 From: ufgauthi Date: Wed, 15 Dec 2021 17:28:34 -0500 Subject: [PATCH 28/31] uptick version and fix other error --- backend/VERSION | 2 +- backend/fms_core/template_importer/importers/_generic.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/backend/VERSION b/backend/VERSION index 1545d9665..d5c0c9914 100644 --- a/backend/VERSION +++ b/backend/VERSION @@ -1 +1 @@ -3.5.0 +3.5.1 diff --git a/backend/fms_core/template_importer/importers/_generic.py b/backend/fms_core/template_importer/importers/_generic.py index be0dc7eae..b0e0cfb8c 100644 --- a/backend/fms_core/template_importer/importers/_generic.py +++ b/backend/fms_core/template_importer/importers/_generic.py @@ -87,11 +87,11 @@ def initialize_data_for_template(self, **kwargs): def handle_row(self, row_handler_class, sheet, row_i, **kwargs): row_handler_obj = row_handler_class() if self.errors_count >= self.ERRORS_CUTOFF: - result = {'errors': [], 'validation_error': ValidationError({}), 'warnings': {}} + result = {'errors': [], 'validation_error': ValidationError({}), 'warnings': {}} # Skip row handling, report no error else: result = row_handler_obj.process_row(**kwargs) - if result['validation_error']: + if result['validation_error'].messages: self.errors_count += 1 if self.errors_count >= self.ERRORS_CUTOFF: result = {'errors': [], 'validation_error': ValidationError({"Too many errors": f"Template validation interrupted."}), 'warnings': {}} From 7da93b983a71c36d25dfe85456dc766c5a33949d Mon Sep 17 00:00:00 2001 From: UlysseFG Date: Tue, 4 Jan 2022 16:48:05 -0500 Subject: [PATCH 29/31] Allow destination container barcode without coordinates for container move. Version bump. --- backend/VERSION | 2 +- backend/fms_core/services/container.py | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/backend/VERSION b/backend/VERSION index d5c0c9914..87ce49290 100644 --- a/backend/VERSION +++ b/backend/VERSION @@ -1 +1 @@ -3.5.1 +3.5.2 diff --git a/backend/fms_core/services/container.py b/backend/fms_core/services/container.py index c9c38808d..240a3bdc1 100644 --- a/backend/fms_core/services/container.py +++ b/backend/fms_core/services/container.py @@ -130,8 +130,8 @@ def move_container(container_to_move, destination_barcode, errors = [] warnings = [] - if not all([destination_barcode, destination_coordinates]): - errors.append(f'Destination location barcode and destination location coordinates are required.') + if not destination_barcode: + errors.append(f'Destination location barcode is required.') return (container_to_move, errors, warnings) try: @@ -146,7 +146,7 @@ def move_container(container_to_move, destination_barcode, return (container_to_move, errors, warnings) container_to_move.location = destination_container - container_to_move.coordinates = destination_coordinates + container_to_move.coordinates = destination_coordinates if destination_coordinates else "" container_to_move.update_comment = update_comment try: From 4d1eefeaaf55103d3c40b744cc86c69239e40a7c Mon Sep 17 00:00:00 2001 From: UlysseFG Date: Wed, 2 Feb 2022 10:45:28 -0500 Subject: [PATCH 30/31] Version bump for release --- backend/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/VERSION b/backend/VERSION index 87ce49290..40c341bdc 100644 --- a/backend/VERSION +++ b/backend/VERSION @@ -1 +1 @@ -3.5.2 +3.6.0 From 905a8a1a151fc0bdf53e00cd4ecf613fe2b10fef Mon Sep 17 00:00:00 2001 From: UlysseFG Date: Fri, 18 Mar 2022 16:40:47 -0400 Subject: [PATCH 31/31] Fix an issue between distinct on a column and the ordering on another. --- backend/VERSION | 2 +- backend/fms_core/viewsets/process_measurement.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/backend/VERSION b/backend/VERSION index 7c69a55db..a76ccff2a 100644 --- a/backend/VERSION +++ b/backend/VERSION @@ -1 +1 @@ -3.7.0 +3.7.1 diff --git a/backend/fms_core/viewsets/process_measurement.py b/backend/fms_core/viewsets/process_measurement.py index 03cc09eb6..535d19cd7 100644 --- a/backend/fms_core/viewsets/process_measurement.py +++ b/backend/fms_core/viewsets/process_measurement.py @@ -57,7 +57,7 @@ def list_export(self, _request): def get_serializer_class(self): if self.action == "list_export": queryset = self.filter_queryset(self.get_queryset()) - if queryset.distinct("process__protocol").count() == 1: + if queryset.values("process__protocol").distinct().count() == 1: return ProcessMeasurementWithPropertiesExportSerializer else: return ProcessMeasurementExportSerializer