diff --git a/mapping_workbench/backend/mapping_package/models/entity.py b/mapping_workbench/backend/mapping_package/models/entity.py
index 09ccb78c7..a0612a826 100644
--- a/mapping_workbench/backend/mapping_package/models/entity.py
+++ b/mapping_workbench/backend/mapping_package/models/entity.py
@@ -13,7 +13,7 @@
BaseProjectResourceEntityInSchema, BaseProjectResourceEntityOutSchema
from mapping_workbench.backend.shacl_test_suite.models.entity import SHACLTestSuite
from mapping_workbench.backend.state_manager.models.state_object import ObjectState, StatefulObjectABC
-from mapping_workbench.backend.test_data_suite.models.entity import TestDataSuite, TestDataSuiteState
+#from mapping_workbench.backend.test_data_suite.models.entity import TestDataSuite, TestDataSuiteState
class MappingPackageException(Exception):
@@ -30,7 +30,7 @@ class MappingPackageIn(BaseProjectResourceEntityInSchema):
end_date: Optional[datetime] = None
min_xsd_version: Optional[str] = None
max_xsd_version: Optional[str] = None
- test_data_suites: Optional[List[Optional[Link[TestDataSuite]]]] = None
+ #test_data_suites: Optional[List[Optional[Link[TestDataSuite]]]] = None
shacl_test_suites: Optional[List[Optional[Link[SHACLTestSuite]]]] = None
@@ -56,7 +56,7 @@ class MappingPackageOut(BaseProjectResourceEntityOutSchema):
end_date: Optional[datetime] = None
min_xsd_version: Optional[str] = None
max_xsd_version: Optional[str] = None
- test_data_suites: Optional[List[Link[TestDataSuite]]] = None
+ #test_data_suites: Optional[List[Link[TestDataSuite]]] = None
shacl_test_suites: Optional[List[Link[SHACLTestSuite]]] = None
@@ -74,7 +74,7 @@ class MappingPackageState(ObjectState):
end_date: Optional[datetime] = None
min_xsd_version: Optional[str] = None
max_xsd_version: Optional[str] = None
- test_data_suites: List[TestDataSuiteState] = []
+ #test_data_suites: List[TestDataSuiteState] = []
shacl_test_suites: List[SHACLTestSuite] = []
conceptual_mapping_rule_states: List[ConceptualMappingRuleState] = []
@@ -89,7 +89,7 @@ class MappingPackage(BaseProjectResourceEntity, StatefulObjectABC):
end_date: Optional[datetime] = None
min_xsd_version: Optional[str] = None
max_xsd_version: Optional[str] = None
- test_data_suites: Optional[List[Link[TestDataSuite]]] = None
+ #test_data_suites: Optional[List[Link[TestDataSuite]]] = None
shacl_test_suites: Optional[List[Link[SHACLTestSuite]]] = None
async def get_conceptual_mapping_rules(self) -> List[ConceptualMappingRuleState]:
diff --git a/mapping_workbench/backend/test_data_suite/models/entity.py b/mapping_workbench/backend/test_data_suite/models/entity.py
index 4455d5599..29a61d304 100644
--- a/mapping_workbench/backend/test_data_suite/models/entity.py
+++ b/mapping_workbench/backend/test_data_suite/models/entity.py
@@ -2,12 +2,13 @@
from typing import Optional, List
import pymongo
-from beanie import Link
+from beanie import Link, PydanticObjectId
from pymongo import IndexModel
from mapping_workbench.backend.core.models.base_project_resource_entity import BaseProjectResourceEntity
from mapping_workbench.backend.file_resource.models.file_resource import FileResource, FileResourceCollection, \
FileResourceIn
+from mapping_workbench.backend.mapping_package.models.entity import MappingPackage
from mapping_workbench.backend.shacl_test_suite.models.validator import SHACLTestDataValidationResult
from mapping_workbench.backend.sparql_test_suite.models.validator import SPARQLTestDataValidationResult
from mapping_workbench.backend.state_manager.models.state_object import StatefulObjectABC, ObjectState
@@ -100,8 +101,12 @@ class TestDataSuiteState(ObjectState):
test_data_states: List[TestDataState]
-class TestDataSuite(FileResourceCollection, StatefulObjectABC):
+class TestDataSuite(
+ FileResourceCollection,
+ StatefulObjectABC
+):
file_resources: Optional[List[Link[TestDataFileResource]]] = []
+ mapping_package_id: Optional[PydanticObjectId] = None
async def get_state(self) -> TestDataSuiteState:
title = self.title
diff --git a/mapping_workbench/frontend/src/api/test-data-suites/index.js b/mapping_workbench/frontend/src/api/test-data-suites/index.js
index 91b8d0d2f..d47aa9998 100644
--- a/mapping_workbench/frontend/src/api/test-data-suites/index.js
+++ b/mapping_workbench/frontend/src/api/test-data-suites/index.js
@@ -14,6 +14,7 @@ class TestDataSuitesApi extends FileCollectionsApi {
constructor() {
super("test_data_suites");
this.isProjectResource = true;
+ this.hasMappingPackage = true;
}
async getValuesForSelector(request = {}) {
diff --git a/mapping_workbench/frontend/src/pages/app/specific-triple-map-fragments/[id]/edit.js b/mapping_workbench/frontend/src/pages/app/specific-triple-map-fragments/[id]/edit.js
index f42ca2bc2..7c4538eff 100644
--- a/mapping_workbench/frontend/src/pages/app/specific-triple-map-fragments/[id]/edit.js
+++ b/mapping_workbench/frontend/src/pages/app/specific-triple-map-fragments/[id]/edit.js
@@ -1,7 +1,5 @@
import ArrowLeftIcon from '@untitled-ui/icons-react/build/esm/ArrowLeft';
-import Box from '@mui/material/Box';
import Chip from '@mui/material/Chip';
-import Container from '@mui/material/Container';
import Link from '@mui/material/Link';
import Stack from '@mui/material/Stack';
import SvgIcon from '@mui/material/SvgIcon';
diff --git a/mapping_workbench/frontend/src/pages/app/test-data-suites/create.js b/mapping_workbench/frontend/src/pages/app/test-data-suites/create.js
index b7084d58a..9ee39ad53 100644
--- a/mapping_workbench/frontend/src/pages/app/test-data-suites/create.js
+++ b/mapping_workbench/frontend/src/pages/app/test-data-suites/create.js
@@ -1,6 +1,4 @@
import ArrowLeftIcon from '@untitled-ui/icons-react/build/esm/ArrowLeft';
-import Box from '@mui/material/Box';
-import Container from '@mui/material/Container';
import Link from '@mui/material/Link';
import Stack from '@mui/material/Stack';
import SvgIcon from '@mui/material/SvgIcon';
diff --git a/mapping_workbench/frontend/src/sections/app/conceptual-mapping-rule/list-table.js b/mapping_workbench/frontend/src/sections/app/conceptual-mapping-rule/list-table.js
index 510d71d61..226604bb3 100644
--- a/mapping_workbench/frontend/src/sections/app/conceptual-mapping-rule/list-table.js
+++ b/mapping_workbench/frontend/src/sections/app/conceptual-mapping-rule/list-table.js
@@ -301,7 +301,7 @@ export const ListTableMappingPackages = (props) => {
isHovered
} = props;
- let ruleFilteredMappingPackages = item.mapping_packages.map(x => x.id);
+ let ruleFilteredMappingPackages = (item.mapping_packages || []).map(x => x.id);
const [mappingPackages, setMappingPackages] = useState(ruleFilteredMappingPackages);
const [projectMappingPackages, setProjectMappingPackages] = useState(initProjectMappingPackages || []);
const [tempMappingPackages, setTempMappingPackages] =
@@ -665,7 +665,7 @@ export const ListTableRow = (props) => {
- {item.source_xpath.map(
+ {item.source_xpath && item.source_xpath.map(
x => (
{
@@ -49,6 +50,10 @@ export const FileCollectionEditForm = (props) => {
initialValues['type'] = item.type || null;
}
+ if (sectionApi.hasMappingPackage) {
+ initialValues['mapping_package_id'] = item.mapping_package_id || '';
+ }
+
switch (sectionApi.section) {
case 'test_data_suites':
customPathName = paths.app.test_data_suites.index;
@@ -131,6 +136,11 @@ export const FileCollectionEditForm = (props) => {
>
+ {sectionApi.hasMappingPackage && (
+
+
+
+ )}
{sectionApi.hasFileCollectionType && (
{
const handleMappingPackageChange = useCallback(async (event) => {
let value = event.target.value;
- formik.setFieldValue('mapping_package', value);
+ formik.setFieldValue('mapping_package_id', value);
}, [formik])
return (
<>
{mappingPackagesStore.items.map((mapping_package) => (
-
+ {false &&
@@ -136,7 +136,7 @@ export const EditForm = (props) => {
-
+ }
diff --git a/mapping_workbench/frontend/src/sections/app/specific-triple-map-fragment/edit-form.js b/mapping_workbench/frontend/src/sections/app/specific-triple-map-fragment/edit-form.js
index 953a3e4df..9417f4e32 100644
--- a/mapping_workbench/frontend/src/sections/app/specific-triple-map-fragment/edit-form.js
+++ b/mapping_workbench/frontend/src/sections/app/specific-triple-map-fragment/edit-form.js
@@ -16,9 +16,6 @@ import {FormTextField} from "../../../components/app/form/text-field";
import {sessionApi} from "../../../api/session";
import {MappingPackageFormSelect} from "../mapping-package/components/mapping-package-form-select";
import {FormCodeTextArea} from "../../../components/app/form/code-text-area";
-import FormControl from "@mui/material/FormControl";
-import FormLabel from "@mui/material/FormLabel";
-import Select from "@mui/material/Select";
import MenuItem from "@mui/material/MenuItem";
import TextField from "@mui/material/TextField";
import * as React from "react";
@@ -34,7 +31,7 @@ export const EditForm = (props) => {
triple_map_uri: item.triple_map_uri || '',
triple_map_content: item.triple_map_content || '',
format: item.format || sectionApi.FILE_RESOURCE_DEFAULT_FORMAT || '',
- mapping_package: (item.mapping_package && item.mapping_package.id) || ''
+ mapping_package_id: item.mapping_package_id || ''
};
const formik = useFormik({
@@ -45,7 +42,7 @@ export const EditForm = (props) => {
.max(255)
.required('URI is required'),
triple_map_content: Yup.string(),
- mapping_package: Yup.string().max(255).required('Package is required')
+ mapping_package_id: Yup.string().max(255).required('Package is required')
}),
onSubmit: async (values, helpers) => {
try {
diff --git a/mapping_workbench/frontend/src/sections/app/specific-triple-map-fragment/list-table.js b/mapping_workbench/frontend/src/sections/app/specific-triple-map-fragment/list-table.js
index e26a83dd3..6a2277c88 100644
--- a/mapping_workbench/frontend/src/sections/app/specific-triple-map-fragment/list-table.js
+++ b/mapping_workbench/frontend/src/sections/app/specific-triple-map-fragment/list-table.js
@@ -184,7 +184,7 @@ export const ListTable = (props) => {
- {projectMappingPackagesMap[item.mapping_package.id]}
+ {item.mapping_package && projectMappingPackagesMap[item.mapping_package.id]}
{