From 15c2278e6e2f3da61e33f7a01328523dfbcb1c1b Mon Sep 17 00:00:00 2001 From: juanf <juanf@bsse-bs-dock-dhcp-008.ethz.ch> Date: Wed, 12 Dec 2018 14:54:54 +0100 Subject: [PATCH] SSDM-6975 : Search Store plugin update to have its sample type properties follow the new ELN-LIMS master data pattern --- .../AdvancedSearchController.js | 4 +- .../1/as/initialize-master-data.py | 139 ++++++++++-------- .../1/as/master-data/data-model.xls | Bin 0 -> 32768 bytes .../as/services/search-store/search-store.py | 8 +- 4 files changed, 81 insertions(+), 70 deletions(-) create mode 100644 openbis_standard_technologies/dist/core-plugins/search-store/1/as/master-data/data-model.xls diff --git a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/AdvancedSearch/AdvancedSearchController.js b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/AdvancedSearch/AdvancedSearchController.js index b880f5b85b9..229f60aca3a 100644 --- a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/AdvancedSearch/AdvancedSearchController.js +++ b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/AdvancedSearch/AdvancedSearchController.js @@ -433,8 +433,8 @@ function AdvancedSearchController(mainController, forceSearch) { this._sampleToSavedSearch = function(sample) { return { sample: sample, - name: sample.properties.NAME, - criteria: JSON.parse(sample.properties.CUSTOM_DATA.replace('<xml><![CDATA[', '').replace(']]></xml>', ''))['eln-lims-criteria'], + name: sample.properties['$NAME'], + criteria: JSON.parse(sample.properties['$SEARCH_QUERY.CUSTOM_DATA'].replace('<xml><![CDATA[', '').replace(']]></xml>', ''))['eln-lims-criteria'], }; } diff --git a/openbis_standard_technologies/dist/core-plugins/search-store/1/as/initialize-master-data.py b/openbis_standard_technologies/dist/core-plugins/search-store/1/as/initialize-master-data.py index 96c96d126ba..bf2f249601c 100644 --- a/openbis_standard_technologies/dist/core-plugins/search-store/1/as/initialize-master-data.py +++ b/openbis_standard_technologies/dist/core-plugins/search-store/1/as/initialize-master-data.py @@ -1,71 +1,82 @@ -''' -@copyright: -2016 ETH Zuerich, SIS - -@license: -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - -http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -''' +# +# Copyright 2014 ETH Zuerich, Scientific IT Services +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# MasterDataRegistrationTransaction Class +from ch.ethz.sis.openbis.generic.server.asapi.v3 import ApplicationServerApi +from ch.systemsx.cisd.openbis.generic.server import CommonServiceProvider +from ch.ethz.sis.openbis.generic.asapi.v3.dto.service.id import CustomASServiceCode +from ch.ethz.sis.openbis.generic.asapi.v3.dto.service import CustomASServiceExecutionOptions -import ch.systemsx.cisd.openbis.generic.server.jython.api.v1.DataType as DataType +# "======================== Helper Functions ========================" +import os +import sys +from collections import deque +from java.nio.file import Files, Paths +from java.io import File +from java.util import HashMap +from java.util import ArrayList -SAMPLE_TYPE_SEARCH_QUERY = "SEARCH_QUERY" -# we use XML to store the properties to avoid indexing of the fields -PROPERTY_TYPES = [ - { - 'code': 'NAME', - 'dataType': DataType.VARCHAR, - 'label': 'Name', - 'mandatory': True, - 'description': 'Human readable name', - 'shownEdit': True - }, - { - 'code': 'SEARCH_CRITERIA', - 'dataType': DataType.XML, - 'label': 'Search criteria', - 'mandatory': True, - 'description': 'V3 API search criteria', - 'shownEdit': False - }, - { - 'code': "FETCH_OPTIONS", - 'dataType': DataType.XML, - 'label': 'Fetch options', - 'mandatory': False, - 'description': 'V3 API fetch options', - 'shownEdit': False - }, - { - 'code': "CUSTOM_DATA", - 'dataType': DataType.XML, - 'label': 'Custom data', - 'mandatory': False, - 'description': 'Additional data in custom format', - 'shownEdit': False - } - ] +TYPES_FOLDER = "%s/master-data/" % [p for p in sys.path if p.find('core-plugins') >= 0][0] +SCRIPTS = os.path.join(TYPES_FOLDER, 'scripts') -tr = service.transaction() +def get_all_scripts(): + scripts = HashMap() + for rel_path, script in list_all_files(SCRIPTS): + scripts.put(rel_path, script) -sample_type = tr.getOrCreateNewSampleType(SAMPLE_TYPE_SEARCH_QUERY) -sample_type.setGeneratedCodePrefix("Q") + return scripts -for propert_type_def in PROPERTY_TYPES: - property_type = tr.getOrCreateNewPropertyType(propert_type_def['code'], propert_type_def['dataType']) - property_type.setLabel(propert_type_def['label']) - property_type.setDescription(propert_type_def['description']) - assignment = tr.assignPropertyType(sample_type, property_type) - assignment.setMandatory(propert_type_def['mandatory']) - assignment.setShownEdit(propert_type_def['shownEdit']) + +def list_xls_byte_arrays(): + xls = ArrayList() + for f in os.listdir(TYPES_FOLDER): + if f.endswith('.xls') or f.endswith('.xlsx'): + excel_file = open(os.path.join(TYPES_FOLDER, f)) + xls.add(excel_file.read()) + excel_file.close() + return xls + + +def list_all_files(source_root_path): + todo = [] + todo.append(File(source_root_path)) + while todo: + f = todo.pop() + if f.isDirectory(): + new_files = f.listFiles() + if new_files is not None: + todo.extend(f.listFiles()) + continue + if f.isFile(): + source_file = f.getAbsolutePath() + script_file = open(source_file) + script = script_file.read() + script_file.close() + file_path = source_file.replace(source_root_path, "") + if file_path.startswith("/"): + file_path = file_path[1:] + yield file_path, script + +# "======================== Helper Functions ========================" + +api = CommonServiceProvider.getApplicationContext().getBean(ApplicationServerApi.INTERNAL_SERVICE_NAME) +sessionToken = api.loginAsSystem() +props = CustomASServiceExecutionOptions().withParameter('xls', list_xls_byte_arrays()).withParameter('scripts', get_all_scripts()) +result = api.executeCustomASService(sessionToken, CustomASServiceCode("xls-import-api"), props); +print("======================== master-data xls ingestion result ========================") +print(result) +print("======================== master-data xls ingestion result ========================") diff --git a/openbis_standard_technologies/dist/core-plugins/search-store/1/as/master-data/data-model.xls b/openbis_standard_technologies/dist/core-plugins/search-store/1/as/master-data/data-model.xls new file mode 100644 index 0000000000000000000000000000000000000000..c88a9546574a5d7a0b484a2121c1d234e8d21b08 GIT binary patch literal 32768 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 E0Z%9t%m4rY literal 0 HcmV?d00001 diff --git a/openbis_standard_technologies/dist/core-plugins/search-store/1/as/services/search-store/search-store.py b/openbis_standard_technologies/dist/core-plugins/search-store/1/as/services/search-store/search-store.py index 6b7556ca932..17886edf9c8 100644 --- a/openbis_standard_technologies/dist/core-plugins/search-store/1/as/services/search-store/search-store.py +++ b/openbis_standard_technologies/dist/core-plugins/search-store/1/as/services/search-store/search-store.py @@ -29,10 +29,10 @@ from ch.ethz.sis.openbis.generic.asapi.v3.dto.sample.delete import SampleDeletio SAMPLE_TYPE = 'SEARCH_QUERY' -PROP_NAME = 'NAME' -PROP_SEARCH_CRITERIA = 'SEARCH_CRITERIA' -PROP_FETCH_OPTIONS = 'FETCH_OPTIONS' -PROP_CUSTOM_DATA = 'CUSTOM_DATA' +PROP_NAME = '$NAME' +PROP_SEARCH_CRITERIA = '$SEARCH_QUERY.SEARCH_CRITERIA' +PROP_FETCH_OPTIONS = '$SEARCH_QUERY.FETCH_OPTIONS' +PROP_CUSTOM_DATA = '$SEARCH_QUERY.CUSTOM_DATA' PREFIX_XML = '<xml><![CDATA[' POSTFIX_XML = ']]></xml>' -- GitLab