diff --git a/specifyweb/frontend/js_src/lib/components/Attachments/__tests__/__snapshots__/utils.test.ts.snap b/specifyweb/frontend/js_src/lib/components/Attachments/__tests__/__snapshots__/utils.test.ts.snap index bbe99dcb41c..eaacbe6f3ae 100644 --- a/specifyweb/frontend/js_src/lib/components/Attachments/__tests__/__snapshots__/utils.test.ts.snap +++ b/specifyweb/frontend/js_src/lib/components/Attachments/__tests__/__snapshots__/utils.test.ts.snap @@ -29,6 +29,8 @@ exports[`allTablesWithAttachments 1`] = ` "[table Storage]", "[table Taxon]", "[table TreatmentEvent]", + "[table AbsoluteAge]", + "[table RelativeAge]", ] `; @@ -62,5 +64,7 @@ exports[`attachmentRelatedTables 1`] = ` "StorageAttachment", "TaxonAttachment", "TreatmentEventAttachment", + "AbsoluteAgeAttachment", + "RelativeAgeAttachment", ] `; diff --git a/specifyweb/frontend/js_src/lib/components/DataModel/__tests__/__snapshots__/specifyTable.test.ts.snap b/specifyweb/frontend/js_src/lib/components/DataModel/__tests__/__snapshots__/specifyTable.test.ts.snap index 00345846ec6..9dc7c8a8c16 100644 --- a/specifyweb/frontend/js_src/lib/components/DataModel/__tests__/__snapshots__/specifyTable.test.ts.snap +++ b/specifyweb/frontend/js_src/lib/components/DataModel/__tests__/__snapshots__/specifyTable.test.ts.snap @@ -65,6 +65,7 @@ exports[`fields are loaded 1`] = ` "[literalField CollectionObject.yesNo4]", "[literalField CollectionObject.yesNo5]", "[literalField CollectionObject.yesNo6]", + "[relationship CollectionObject.absoluteAges]", "[relationship CollectionObject.accession]", "[relationship CollectionObject.agent1]", "[relationship CollectionObject.appraisal]", @@ -95,6 +96,7 @@ exports[`fields are loaded 1`] = ` "[relationship CollectionObject.paleoContext]", "[relationship CollectionObject.preparations]", "[relationship CollectionObject.projects]", + "[relationship CollectionObject.relativeAges]", "[relationship CollectionObject.rightSideRels]", "[relationship CollectionObject.treatmentEvents]", "[relationship CollectionObject.visibilitySetBy]", @@ -1214,6 +1216,7 @@ exports[`localization is loaded 1`] = ` exports[`relationships are loaded 1`] = ` [ + "[relationship CollectionObject.absoluteAges]", "[relationship CollectionObject.accession]", "[relationship CollectionObject.agent1]", "[relationship CollectionObject.appraisal]", @@ -1244,6 +1247,7 @@ exports[`relationships are loaded 1`] = ` "[relationship CollectionObject.paleoContext]", "[relationship CollectionObject.preparations]", "[relationship CollectionObject.projects]", + "[relationship CollectionObject.relativeAges]", "[relationship CollectionObject.rightSideRels]", "[relationship CollectionObject.treatmentEvents]", "[relationship CollectionObject.visibilitySetBy]", @@ -1253,6 +1257,9 @@ exports[`relationships are loaded 1`] = ` exports[`tableScoping 1`] = ` { + "AbsoluteAge": "collectionObject", + "AbsoluteAgeAttachment": "absoluteAge > collectionObject", + "AbsoluteAgeCitation": "absoluteAge > collectionObject", "Accession": "division", "AccessionAgent": "accession > division", "AccessionAttachment": "accession > division", @@ -1295,7 +1302,7 @@ exports[`tableScoping 1`] = ` "CollectionObjectAttribute": undefined, "CollectionObjectCitation": "collectionObject", "CollectionObjectGroup": "collection", - "CollectionObjectGroupJoin": "parentcog > collection", + "CollectionObjectGroupJoin": "parentCog > collection", "CollectionObjectGroupType": "collection", "CollectionObjectProperty": "collectionObject", "CollectionObjectType": "collection", @@ -1400,6 +1407,9 @@ exports[`tableScoping 1`] = ` "RecordSetItem": undefined, "ReferenceWork": undefined, "ReferenceWorkAttachment": undefined, + "RelativeAge": "collectionObject", + "RelativeAgeAttachment": "relativeAge > collectionObject", + "RelativeAgeCitation": "relativeAge > collectionObject", "RepositoryAgreement": "division", "RepositoryAgreementAttachment": "repositoryAgreement > division", "Role": "collection", @@ -1443,6 +1453,9 @@ exports[`tableScoping 1`] = ` "TaxonCitation": "taxon > definition > discipline", "TaxonTreeDef": "discipline", "TaxonTreeDefItem": "treeDef > discipline", + "TectonicUnit": "definition > discipline", + "TectonicUnitTreeDef": "discipline", + "TectonicUnitTreeDefItem": "treeDef > discipline", "TreatmentEvent": "collectionObject", "TreatmentEventAttachment": "treatmentEvent > collectionObject", "UniquenessRule": "discipline", diff --git a/specifyweb/frontend/js_src/lib/components/DataModel/__tests__/specifyTable.test.ts b/specifyweb/frontend/js_src/lib/components/DataModel/__tests__/specifyTable.test.ts index 4679ddeb229..e49d2d3d190 100644 --- a/specifyweb/frontend/js_src/lib/components/DataModel/__tests__/specifyTable.test.ts +++ b/specifyweb/frontend/js_src/lib/components/DataModel/__tests__/specifyTable.test.ts @@ -366,6 +366,7 @@ test('tableScoping', () => test('indexed fields are loaded', () => expect(tables.CollectionObject.field).toMatchInlineSnapshot(` { + "absoluteAges": "[relationship CollectionObject.absoluteAges]", "accession": "[relationship CollectionObject.accession]", "actualTotalCountAmt": "[literalField CollectionObject.actualTotalCountAmt]", "age": "[literalField CollectionObject.age]", @@ -430,6 +431,7 @@ test('indexed fields are loaded', () => "preparations": "[relationship CollectionObject.preparations]", "projectNumber": "[literalField CollectionObject.projectNumber]", "projects": "[relationship CollectionObject.projects]", + "relativeAges": "[relationship CollectionObject.relativeAges]", "remarks": "[literalField CollectionObject.remarks]", "reservedInteger3": "[literalField CollectionObject.reservedInteger3]", "reservedInteger4": "[literalField CollectionObject.reservedInteger4]", diff --git a/specifyweb/frontend/js_src/lib/components/FormEditor/__tests__/__snapshots__/createView.test.ts.snap b/specifyweb/frontend/js_src/lib/components/FormEditor/__tests__/__snapshots__/createView.test.ts.snap index e1d9258ce0c..3b32328170c 100644 --- a/specifyweb/frontend/js_src/lib/components/FormEditor/__tests__/__snapshots__/createView.test.ts.snap +++ b/specifyweb/frontend/js_src/lib/components/FormEditor/__tests__/__snapshots__/createView.test.ts.snap @@ -127,6 +127,7 @@ exports[`Tables with form tables computed correctly 1`] = ` "[table RepositoryAgreement]", "[table RepositoryAgreementAttachment]", "[table Shipment]", + "[table SpAuditLog]", "[table Storage]", "[table StorageAttachment]", "[table StorageTreeDef]", @@ -144,5 +145,14 @@ exports[`Tables with form tables computed correctly 1`] = ` "[table CollectionObjectGroup]", "[table CollectionObjectGroupJoin]", "[table CollectionObjectGroupType]", + "[table AbsoluteAge]", + "[table RelativeAge]", + "[table AbsoluteAgeAttachment]", + "[table RelativeAgeAttachment]", + "[table AbsoluteAgeCitation]", + "[table RelativeAgeCitation]", + "[table TectonicUnitTreeDef]", + "[table TectonicUnitTreeDefItem]", + "[table TectonicUnit]", ] `; diff --git a/specifyweb/frontend/js_src/lib/components/Formatters/__tests__/__snapshots__/formatters.test.ts.snap b/specifyweb/frontend/js_src/lib/components/Formatters/__tests__/__snapshots__/formatters.test.ts.snap index 2cd4eb46a74..3c15ef324f7 100644 --- a/specifyweb/frontend/js_src/lib/components/Formatters/__tests__/__snapshots__/formatters.test.ts.snap +++ b/specifyweb/frontend/js_src/lib/components/Formatters/__tests__/__snapshots__/formatters.test.ts.snap @@ -2032,6 +2032,16 @@ exports[`Formatters are fetched and parsed correctly 1`] = ` exports[`getMainTableFields 1`] = ` { + "AbsoluteAge": [ + "ageType", + "datingMethod", + ], + "AbsoluteAgeAttachment": [], + "AbsoluteAgeCitation": [ + "figureNumber", + "pageNumber", + "plateNumber", + ], "Accession": [ "accessionNumber", "status", @@ -2604,6 +2614,16 @@ exports[`getMainTableFields 1`] = ` "volume", ], "ReferenceWorkAttachment": [], + "RelativeAge": [ + "ageType", + "datingMethod", + ], + "RelativeAgeAttachment": [], + "RelativeAgeCitation": [ + "figureNumber", + "pageNumber", + "plateNumber", + ], "RepositoryAgreement": [ "repositoryAgreementNumber", "status", @@ -2743,6 +2763,23 @@ exports[`getMainTableFields 1`] = ` "textBefore", "title", ], + "TectonicUnit": [ + "name", + "fullName", + "guid", + "text1", + "text2", + ], + "TectonicUnitTreeDef": [ + "name", + ], + "TectonicUnitTreeDefItem": [ + "name", + "fullNameSeparator", + "textAfter", + "textBefore", + "title", + ], "TreatmentEvent": [ "treatmentNumber", "type", diff --git a/specifyweb/frontend/js_src/lib/components/Forms/__tests__/parentTables.test.tsx b/specifyweb/frontend/js_src/lib/components/Forms/__tests__/parentTables.test.tsx index 455b91b22b9..4ffbd9130bc 100644 --- a/specifyweb/frontend/js_src/lib/components/Forms/__tests__/parentTables.test.tsx +++ b/specifyweb/frontend/js_src/lib/components/Forms/__tests__/parentTables.test.tsx @@ -6,6 +6,8 @@ requireContext(); test('Parent table relationships are calculated properly', () => expect(parentTableRelationship()).toMatchInlineSnapshot(` { + "AbsoluteAgeAttachment": "[relationship AbsoluteAgeAttachment.absoluteAge]", + "AbsoluteAgeCitation": "[relationship AbsoluteAgeCitation.absoluteAge]", "AccessionAgent": "[relationship AccessionAgent.accession]", "AccessionAttachment": "[relationship AccessionAttachment.accession]", "AccessionAuthorization": "[relationship AccessionAuthorization.accession]", @@ -31,7 +33,7 @@ test('Parent table relationships are calculated properly', () => "CollectionObjectAttachment": "[relationship CollectionObjectAttachment.collectionObject]", "CollectionObjectAttr": "[relationship CollectionObjectAttr.collectionObject]", "CollectionObjectCitation": "[relationship CollectionObjectCitation.collectionObject]", - "CollectionObjectGroupJoin": "[relationship CollectionObjectGroupJoin.parentcog]", + "CollectionObjectGroupJoin": "[relationship CollectionObjectGroupJoin.parentCog]", "CollectionObjectProperty": "[relationship CollectionObjectProperty.collectionObject]", "Collector": "[relationship Collector.collectingEvent]", "CommonNameTx": "[relationship CommonNameTx.taxon]", @@ -86,6 +88,8 @@ test('Parent table relationships are calculated properly', () => "PreparationProperty": "[relationship PreparationProperty.preparation]", "RecordSetItem": "[relationship RecordSetItem.recordSet]", "ReferenceWorkAttachment": "[relationship ReferenceWorkAttachment.referenceWork]", + "RelativeAgeAttachment": "[relationship RelativeAgeAttachment.relativeAge]", + "RelativeAgeCitation": "[relationship RelativeAgeCitation.relativeAge]", "RepositoryAgreementAttachment": "[relationship RepositoryAgreementAttachment.repositoryAgreement]", "RolePolicy": "[relationship RolePolicy.role]", "SpAppResourceData": "[relationship SpAppResourceData.spAppResource]", @@ -99,6 +103,7 @@ test('Parent table relationships are calculated properly', () => "TaxonAttachment": "[relationship TaxonAttachment.taxon]", "TaxonCitation": "[relationship TaxonCitation.taxon]", "TaxonTreeDefItem": "[relationship TaxonTreeDefItem.treeDef]", + "TectonicUnitTreeDefItem": "[relationship TectonicUnitTreeDefItem.treeDef]", "TreatmentEventAttachment": "[relationship TreatmentEventAttachment.treatmentEvent]", "UniquenessRuleField": "[relationship UniquenessRuleField.uniquenessrule]", "WorkbenchRow": "[relationship WorkbenchRow.workbench]", diff --git a/specifyweb/frontend/js_src/lib/components/InitialContext/__tests__/__snapshots__/treeRanks.test.ts.snap b/specifyweb/frontend/js_src/lib/components/InitialContext/__tests__/__snapshots__/treeRanks.test.ts.snap index ecb50e8a773..def76761ae1 100644 --- a/specifyweb/frontend/js_src/lib/components/InitialContext/__tests__/__snapshots__/treeRanks.test.ts.snap +++ b/specifyweb/frontend/js_src/lib/components/InitialContext/__tests__/__snapshots__/treeRanks.test.ts.snap @@ -372,390 +372,3 @@ exports[`getDisciplineTrees 1`] = ` "Taxon", ] `; - -exports[`queryFromTree 1`] = ` -[ - { - "_tableName": "SpQuery", - "contextname": "CollectionObject", - "contexttableid": 1, - "countonly": false, - "fields": [ - { - "_tableName": "SpQueryField", - "fieldname": "catalogNumber", - "isdisplay": true, - "isnot": false, - "isrelfld": false, - "operstart": 8, - "sorttype": 0, - "startvalue": "", - "stringid": "1.collectionobject.catalogNumber", - "tablelist": "1", - }, - { - "_tableName": "SpQueryField", - "fieldname": "fullName", - "isdisplay": true, - "isnot": false, - "isrelfld": false, - "operstart": 8, - "sorttype": 1, - "startvalue": "", - "stringid": "1,9-determinations,4.taxon.fullName", - "tablelist": "1,9-determinations,4", - }, - { - "_tableName": "SpQueryField", - "fieldname": "isCurrent", - "isdisplay": false, - "isnot": false, - "isrelfld": false, - "operstart": 13, - "sorttype": 0, - "startvalue": "", - "stringid": "1,9-determinations.determination.isCurrent", - "tablelist": "1,9-determinations", - }, - { - "_tableName": "SpQueryField", - "fieldname": "localityName", - "isdisplay": true, - "isnot": false, - "isrelfld": false, - "operstart": 8, - "sorttype": 0, - "startvalue": "", - "stringid": "1,10,2.locality.localityName", - "tablelist": "1,10,2", - }, - { - "_tableName": "SpQueryField", - "fieldname": "fullName", - "isdisplay": true, - "isnot": false, - "isrelfld": false, - "operstart": 8, - "sorttype": 1, - "startvalue": "", - "stringid": "1,10,2,3.geography.fullName", - "tablelist": "1,10,2,3", - }, - { - "_tableName": "SpQueryField", - "fieldname": "County ID", - "isdisplay": false, - "isnot": false, - "isrelfld": false, - "operstart": 1, - "sorttype": 0, - "startvalue": "0", - "stringid": "1,10,2,3.geography.County ID", - "tablelist": "1,10,2,3", - }, - ], - "formatauditrecids": false, - "isfavorite": true, - "name": "Collection Object using \\"Los Angeles County\\"", - "ordinal": 32767, - "selectdistinct": false, - "specifyuser": "/api/specify/specifyuser/2/", - }, - { - "_tableName": "SpQuery", - "contextname": "CollectionObject", - "contexttableid": 1, - "countonly": false, - "fields": [ - { - "_tableName": "SpQueryField", - "fieldname": "catalogNumber", - "isdisplay": true, - "isnot": false, - "isrelfld": false, - "operstart": 8, - "sorttype": 1, - "startvalue": "", - "stringid": "1.collectionobject.catalogNumber", - "tablelist": "1", - }, - { - "_tableName": "SpQueryField", - "fieldname": "fullName", - "isdisplay": true, - "isnot": false, - "isrelfld": false, - "operstart": 8, - "sorttype": 0, - "startvalue": "", - "stringid": "1,9-determinations,4.taxon.fullName", - "tablelist": "1,9-determinations,4", - }, - { - "_tableName": "SpQueryField", - "fieldname": "isCurrent", - "isdisplay": false, - "isnot": false, - "isrelfld": false, - "operstart": 13, - "sorttype": 0, - "startvalue": "", - "stringid": "1,9-determinations.determination.isCurrent", - "tablelist": "1,9-determinations", - }, - { - "_tableName": "SpQueryField", - "fieldname": "fullName", - "isdisplay": true, - "isnot": false, - "isrelfld": false, - "operstart": 8, - "sorttype": 0, - "startvalue": "", - "stringid": "1,63-preparations,58.storage.fullName", - "tablelist": "1,63-preparations,58", - }, - { - "_tableName": "SpQueryField", - "fieldname": "Cabinet ID", - "isdisplay": false, - "isnot": false, - "isrelfld": false, - "operstart": 1, - "sorttype": 0, - "startvalue": "4", - "stringid": "1,63-preparations,58.storage.Cabinet ID", - "tablelist": "1,63-preparations,58", - }, - ], - "formatauditrecids": false, - "isfavorite": true, - "name": "Collection Object using \\"Cabinet 1\\"", - "ordinal": 32767, - "selectdistinct": false, - "specifyuser": "/api/specify/specifyuser/2/", - }, - { - "_tableName": "SpQuery", - "contextname": "CollectionObject", - "contexttableid": 1, - "countonly": false, - "fields": [ - { - "_tableName": "SpQueryField", - "fieldname": "catalogNumber", - "isdisplay": true, - "isnot": false, - "isrelfld": false, - "operstart": 8, - "sorttype": 1, - "startvalue": "", - "stringid": "1.collectionobject.catalogNumber", - "tablelist": "1", - }, - { - "_tableName": "SpQueryField", - "fieldname": "fullName", - "isdisplay": true, - "isnot": false, - "isrelfld": false, - "operstart": 8, - "sorttype": 0, - "startvalue": "", - "stringid": "1,9-determinations,4.taxon.fullName", - "tablelist": "1,9-determinations,4", - }, - { - "_tableName": "SpQueryField", - "fieldname": "Species ID", - "isdisplay": false, - "isnot": false, - "isrelfld": false, - "operstart": 1, - "sorttype": 0, - "startvalue": "8", - "stringid": "1,9-determinations,4.taxon.Species ID", - "tablelist": "1,9-determinations,4", - }, - { - "_tableName": "SpQueryField", - "fieldname": "isCurrent", - "isdisplay": false, - "isnot": false, - "isrelfld": false, - "operstart": 13, - "sorttype": 0, - "startvalue": "", - "stringid": "1,9-determinations.determination.isCurrent", - "tablelist": "1,9-determinations", - }, - { - "_tableName": "SpQueryField", - "fieldname": "localityName", - "isdisplay": true, - "isnot": false, - "isrelfld": false, - "operstart": 8, - "sorttype": 0, - "startvalue": "", - "stringid": "1,10,2.locality.localityName", - "tablelist": "1,10,2", - }, - ], - "formatauditrecids": false, - "isfavorite": true, - "name": "Collection Object using \\"Carpiodes velifer\\"", - "ordinal": 32767, - "selectdistinct": false, - "specifyuser": "/api/specify/specifyuser/2/", - }, - { - "_tableName": "SpQuery", - "contextname": "CollectionObject", - "contexttableid": 1, - "countonly": false, - "fields": [ - { - "_tableName": "SpQueryField", - "fieldname": "catalogNumber", - "isdisplay": true, - "isnot": false, - "isrelfld": false, - "operstart": 8, - "sorttype": 0, - "startvalue": "", - "stringid": "1.collectionobject.catalogNumber", - "tablelist": "1", - }, - { - "_tableName": "SpQueryField", - "fieldname": "fullName", - "isdisplay": true, - "isnot": false, - "isrelfld": false, - "operstart": 8, - "sorttype": 1, - "startvalue": "", - "stringid": "1,9-determinations,4.taxon.fullName", - "tablelist": "1,9-determinations,4", - }, - { - "_tableName": "SpQueryField", - "fieldname": "isCurrent", - "isdisplay": false, - "isnot": false, - "isrelfld": false, - "operstart": 13, - "sorttype": 0, - "startvalue": "", - "stringid": "1,9-determinations.determination.isCurrent", - "tablelist": "1,9-determinations", - }, - { - "_tableName": "SpQueryField", - "fieldname": "fullName", - "isdisplay": true, - "isnot": false, - "isrelfld": false, - "operstart": 8, - "sorttype": 0, - "startvalue": "", - "stringid": "1,32,46-chronosStrat.geologictimeperiod.fullName", - "tablelist": "1,32,46-chronosStrat", - }, - { - "_tableName": "SpQueryField", - "fieldname": "Epoch ID", - "isdisplay": false, - "isnot": false, - "isrelfld": false, - "operstart": 1, - "sorttype": 0, - "startvalue": "12", - "stringid": "1,32,46-chronosStrat.geologictimeperiod.Epoch ID", - "tablelist": "1,32,46-chronosStrat", - }, - ], - "formatauditrecids": false, - "isfavorite": true, - "name": "Collection Object using \\"Paleocene\\"", - "ordinal": 32767, - "selectdistinct": false, - "specifyuser": "/api/specify/specifyuser/2/", - }, - { - "_tableName": "SpQuery", - "contextname": "CollectionObject", - "contexttableid": 1, - "countonly": false, - "fields": [ - { - "_tableName": "SpQueryField", - "fieldname": "catalogNumber", - "isdisplay": true, - "isnot": false, - "isrelfld": false, - "operstart": 8, - "sorttype": 0, - "startvalue": "", - "stringid": "1.collectionobject.catalogNumber", - "tablelist": "1", - }, - { - "_tableName": "SpQueryField", - "fieldname": "fullName", - "isdisplay": true, - "isnot": false, - "isrelfld": false, - "operstart": 8, - "sorttype": 1, - "startvalue": "", - "stringid": "1,9-determinations,4.taxon.fullName", - "tablelist": "1,9-determinations,4", - }, - { - "_tableName": "SpQueryField", - "fieldname": "isCurrent", - "isdisplay": false, - "isnot": false, - "isrelfld": false, - "operstart": 13, - "sorttype": 0, - "startvalue": "", - "stringid": "1,9-determinations.determination.isCurrent", - "tablelist": "1,9-determinations", - }, - { - "_tableName": "SpQueryField", - "fieldname": "fullName", - "isdisplay": true, - "isnot": false, - "isrelfld": false, - "operstart": 8, - "sorttype": 0, - "startvalue": "", - "stringid": "1,32,100.lithostrat.fullName", - "tablelist": "1,32,100", - }, - { - "_tableName": "SpQueryField", - "fieldname": "Formation ID", - "isdisplay": false, - "isnot": false, - "isrelfld": false, - "operstart": 1, - "sorttype": 0, - "startvalue": "16", - "stringid": "1,32,100.lithostrat.Formation ID", - "tablelist": "1,32,100", - }, - ], - "formatauditrecids": false, - "isfavorite": true, - "name": "Collection Object using \\"Cretaceous\\"", - "ordinal": 32767, - "selectdistinct": false, - "specifyuser": "/api/specify/specifyuser/2/", - }, -] -`; diff --git a/specifyweb/frontend/js_src/lib/components/QueryBuilder/__tests__/__snapshots__/fromTree.test.ts.snap b/specifyweb/frontend/js_src/lib/components/QueryBuilder/__tests__/__snapshots__/fromTree.test.ts.snap index 261cf37389b..16b955a071f 100644 --- a/specifyweb/frontend/js_src/lib/components/QueryBuilder/__tests__/__snapshots__/fromTree.test.ts.snap +++ b/specifyweb/frontend/js_src/lib/components/QueryBuilder/__tests__/__snapshots__/fromTree.test.ts.snap @@ -384,5 +384,79 @@ exports[`queryFromTree 1`] = ` "selectdistinct": false, "specifyuser": "/api/specify/specifyuser/2/", }, + { + "_tableName": "SpQuery", + "contextname": "CollectionObject", + "contexttableid": 1, + "countonly": false, + "fields": [ + { + "_tableName": "SpQueryField", + "fieldname": "catalogNumber", + "isdisplay": true, + "isnot": false, + "isrelfld": false, + "operstart": 8, + "sorttype": 0, + "startvalue": "", + "stringid": "1.collectionobject.catalogNumber", + "tablelist": "1", + }, + { + "_tableName": "SpQueryField", + "fieldname": "fullName", + "isdisplay": true, + "isnot": false, + "isrelfld": false, + "operstart": 8, + "sorttype": 1, + "startvalue": "", + "stringid": "1,9-determinations,4.taxon.fullName", + "tablelist": "1,9-determinations,4", + }, + { + "_tableName": "SpQueryField", + "fieldname": "isCurrent", + "isdisplay": false, + "isnot": false, + "isrelfld": false, + "operstart": 13, + "sorttype": 0, + "startvalue": "", + "stringid": "1,9-determinations.determination.isCurrent", + "tablelist": "1,9-determinations", + }, + { + "_tableName": "SpQueryField", + "fieldname": "fullName", + "isdisplay": true, + "isnot": false, + "isrelfld": false, + "operstart": 8, + "sorttype": 0, + "startvalue": "", + "stringid": "1,32,1027.tectonicunit.fullName", + "tablelist": "1,32,1027", + }, + { + "_tableName": "SpQueryField", + "fieldname": "Substructure ID", + "isdisplay": false, + "isnot": false, + "isrelfld": false, + "operstart": 1, + "sorttype": 0, + "startvalue": "20", + "stringid": "1,32,1027.tectonicunit.Substructure ID", + "tablelist": "1,32,1027", + }, + ], + "formatauditrecids": false, + "isfavorite": true, + "name": "Collection Object using \\"Plate\\"", + "ordinal": 32767, + "selectdistinct": false, + "specifyuser": "/api/specify/specifyuser/2/", + }, ] `; diff --git a/specifyweb/frontend/js_src/lib/components/QueryBuilder/__tests__/fromTree.test.ts b/specifyweb/frontend/js_src/lib/components/QueryBuilder/__tests__/fromTree.test.ts index 5728643ee5d..5d9d835bee7 100644 --- a/specifyweb/frontend/js_src/lib/components/QueryBuilder/__tests__/fromTree.test.ts +++ b/specifyweb/frontend/js_src/lib/components/QueryBuilder/__tests__/fromTree.test.ts @@ -13,6 +13,7 @@ const rankNames = { Storage: 'Cabinet', GeologicTimePeriod: 'Epoch', LithoStrat: 'Formation', + TectonicUnit: 'Substructure', }; const fullNames = { Taxon: 'Carpiodes velifer', @@ -20,18 +21,16 @@ const fullNames = { Storage: 'Cabinet 1', GeologicTimePeriod: 'Paleocene', LithoStrat: 'Cretaceous', + TectonicUnit: 'Plate', }; -// TODO: Add static data for Tectonic Unit and replace ALL testingTrees usages with allTrees -export const testingTrees = allTrees.filter((t) => t !== 'TectonicUnit'); -testingTrees.map((table, rankId) => { +allTrees.map((table, rankId) => { const nodeId = rankId * 4; const rankUrl = getResourceApiUrl(`${table}TreeDefItem`, rankId); overrideAjax(getResourceApiUrl(table, nodeId), () => addMissingFields(table, { id: nodeId, definitionItem: rankUrl, - // @ts-expect-error Remove error suppress after adding static data for TectonicUnit fullName: fullNames[table], resource_uri: getResourceApiUrl(table, nodeId), }) @@ -39,7 +38,6 @@ testingTrees.map((table, rankId) => { overrideAjax(rankUrl, () => addMissingFields(`${table}TreeDefItem`, { id: rankId, - // @ts-expect-error Remove error suppress after adding static data for TectonicUnit name: rankNames[table], resource_uri: rankUrl, }) @@ -49,7 +47,6 @@ testingTrees.map((table, rankId) => { test('queryFromTree', async () => expect( Promise.all( - // TODO: Add static data for Tectonic Unit and replace testingTrees with allTrees - testingTrees.map(async (tree, index) => queryFromTree(tree, index * 4)) + allTrees.map(async (tree, index) => queryFromTree(tree, index * 4)) ) ).resolves.toMatchSnapshot()); diff --git a/specifyweb/frontend/js_src/lib/components/WbPlanView/__tests__/automapper.test.ts b/specifyweb/frontend/js_src/lib/components/WbPlanView/__tests__/automapper.test.ts index 7aa22c6671a..d66ab3e8fb8 100644 --- a/specifyweb/frontend/js_src/lib/components/WbPlanView/__tests__/automapper.test.ts +++ b/specifyweb/frontend/js_src/lib/components/WbPlanView/__tests__/automapper.test.ts @@ -216,5 +216,7 @@ test('circular tables are calculated correctly', () => "[table StorageTreeDefItem]", "[table Taxon]", "[table TaxonTreeDefItem]", + "[table TectonicUnitTreeDefItem]", + "[table TectonicUnit]", ] `)); diff --git a/specifyweb/frontend/js_src/lib/components/WbPlanView/__tests__/navigator.test.ts b/specifyweb/frontend/js_src/lib/components/WbPlanView/__tests__/navigator.test.ts index cec41085ea3..f6487ecf342 100644 --- a/specifyweb/frontend/js_src/lib/components/WbPlanView/__tests__/navigator.test.ts +++ b/specifyweb/frontend/js_src/lib/components/WbPlanView/__tests__/navigator.test.ts @@ -32,6 +32,24 @@ theories(getMappingLineData, [ isDefault: false, isRelationship: false, }, + absoluteAges: { + isDefault: false, + isEnabled: true, + isHidden: false, + isRelationship: true, + isRequired: false, + optionLabel: 'Absolute Ages', + tableName: 'AbsoluteAge', + }, + relativeAges: { + isDefault: false, + isEnabled: true, + isHidden: false, + isRelationship: true, + isRequired: false, + optionLabel: 'Relative Ages', + tableName: 'RelativeAge', + }, catalogedDate: { optionLabel: 'Cat Date', isEnabled: true, @@ -452,6 +470,15 @@ theories(getMappingLineData, [ optionLabel: '(formatted)', tableName: 'CollectionObject', }, + absoluteAges: { + isDefault: false, + isEnabled: true, + isHidden: false, + isRelationship: true, + isRequired: false, + optionLabel: 'Absolute Ages', + tableName: 'AbsoluteAge', + }, accession: { isDefault: false, isEnabled: true, @@ -650,6 +677,15 @@ theories(getMappingLineData, [ isRequired: false, optionLabel: 'Project Number', }, + relativeAges: { + isDefault: false, + isEnabled: true, + isHidden: false, + isRelationship: true, + isRequired: false, + optionLabel: 'Relative Ages', + tableName: 'RelativeAge', + }, remarks: { isDefault: false, isEnabled: true, diff --git a/specifyweb/frontend/js_src/lib/tests/ajax/static/context/datamodel.json b/specifyweb/frontend/js_src/lib/tests/ajax/static/context/datamodel.json index a4b3542b624..b636b094142 100644 --- a/specifyweb/frontend/js_src/lib/tests/ajax/static/context/datamodel.json +++ b/specifyweb/frontend/js_src/lib/tests/ajax/static/context/datamodel.json @@ -7568,6 +7568,22 @@ "dependent": true, "relatedModelName": "CollectionObjectGroupJoin", "otherSideName": "childco" + }, + { + "name": "absoluteAges", + "type": "one-to-many", + "required": false, + "dependent": true, + "relatedModelName": "AbsoluteAge", + "otherSideName": "collectionObject" + }, + { + "name": "relativeAges", + "type": "one-to-many", + "required": false, + "dependent": true, + "relatedModelName": "RelativeAge", + "otherSideName": "collectionObject" } ], "fieldAliases": [] @@ -14835,6 +14851,15 @@ "column": "LithoStratTreeDefID", "otherSideName": "disciplines" }, + { + "name": "tectonicUnitTreeDef", + "type": "many-to-one", + "required": false, + "dependent": false, + "relatedModelName": "TectonicUnitTreeDef", + "column": "TectonicUnitTreeDefID", + "otherSideName": "disciplines" + }, { "name": "modifiedByAgent", "type": "many-to-one", @@ -24424,6 +24449,15 @@ "column": "LithoStratID", "otherSideName": "paleoContexts" }, + { + "name": "tectonicUnit", + "type": "many-to-one", + "required": false, + "dependent": false, + "relatedModelName": "TectonicUnit", + "column": "TectonicUnitID", + "otherSideName": "paleoContexts" + }, { "name": "localities", "type": "one-to-many", @@ -29588,7 +29622,7 @@ "classname": "edu.ku.brc.specify.datamodel.SpAuditLog", "table": "spauditlog", "tableId": 530, - "system": true, + "system": false, "idColumn": "SpAuditLogID", "idFieldName": "spAuditLogId", "fields": [ @@ -38130,7 +38164,7 @@ "type": "java.lang.Integer" }, { - "name": "timestampcreated", + "name": "timestampCreated", "column": "TimestampCreated", "indexed": false, "unique": false, @@ -38138,7 +38172,7 @@ "type": "java.sql.Timestamp" }, { - "name": "timestampmodified", + "name": "timestampModified", "column": "TimestampModified", "indexed": false, "unique": false, @@ -38261,7 +38295,7 @@ "type": "java.lang.Integer" }, { - "name": "timestampcreated", + "name": "timestampCreated", "column": "TimestampCreated", "indexed": false, "unique": false, @@ -38269,7 +38303,7 @@ "type": "java.sql.Timestamp" }, { - "name": "timestampmodified", + "name": "timestampModified", "column": "TimestampModified", "indexed": false, "unique": false, @@ -38386,7 +38420,7 @@ "column": "CollectionID" }, { - "name": "cogtype", + "name": "cogType", "type": "many-to-one", "required": true, "dependent": false, @@ -38394,12 +38428,13 @@ "column": "COGTypeID" }, { - "name": "parentcojos", - "type": "one-to-many", + "name": "parentCojo", + "type": "many-to-one", "required": false, - "dependent": true, + "dependent": false, "relatedModelName": "CollectionObjectGroupJoin", - "otherSideName": "parentcog" + "column": "CollectionObjectGroupJoinID", + "otherSideName": "collectionobjectgroup" }, { "name": "cojo", @@ -38407,7 +38442,7 @@ "required": false, "dependent": true, "relatedModelName": "CollectionObjectGroupJoin", - "otherSideName": "childcog" + "otherSideName": "childCog" }, { "name": "createdByAgent", @@ -38437,7 +38472,7 @@ "idFieldName": "collectionObjectGroupJoinId", "fields": [ { - "name": "isprimary", + "name": "isPrimary", "column": "IsPrimary", "indexed": false, "unique": false, @@ -38445,7 +38480,7 @@ "type": "java.lang.Boolean" }, { - "name": "issubstrate", + "name": "isSubstrate", "column": "IsSubstrate", "indexed": false, "unique": false, @@ -38469,7 +38504,7 @@ "type": "java.lang.Integer" }, { - "name": "timestampcreated", + "name": "timestampCreated", "column": "TimestampCreated", "indexed": false, "unique": false, @@ -38477,7 +38512,7 @@ "type": "java.sql.Timestamp" }, { - "name": "timestampmodified", + "name": "timestampModified", "column": "TimestampModified", "indexed": false, "unique": false, @@ -38562,7 +38597,7 @@ ], "relationships": [ { - "name": "parentcog", + "name": "parentCog", "type": "many-to-one", "required": true, "dependent": false, @@ -38571,8 +38606,8 @@ "otherSideName": "parentcojos" }, { - "name": "childcog", - "type": "many-to-one", + "name": "childCog", + "type": "one-to-one", "required": false, "dependent": false, "relatedModelName": "CollectionObjectGroup", @@ -38580,13 +38615,21 @@ "otherSideName": "cojo" }, { - "name": "childco", - "type": "many-to-one", + "name": "childCo", + "type": "one-to-one", "required": false, "dependent": false, "relatedModelName": "CollectionObject", "column": "ChildCOID", "otherSideName": "cojo" + }, + { + "name": "collectionobjectgroup", + "type": "one-to-many", + "required": false, + "dependent": false, + "relatedModelName": "CollectionObjectGroup", + "otherSideName": "parentCojo" } ], "fieldAliases": [] @@ -38626,7 +38669,7 @@ "type": "java.lang.Integer" }, { - "name": "timestampcreated", + "name": "timestampCreated", "column": "TimestampCreated", "indexed": false, "unique": false, @@ -38634,7 +38677,7 @@ "type": "java.sql.Timestamp" }, { - "name": "timestampmodified", + "name": "timestampModified", "column": "TimestampModified", "indexed": false, "unique": false, @@ -38669,5 +38712,1337 @@ } ], "fieldAliases": [] + }, + { + "classname": "edu.ku.brc.specify.datamodel.AbsoluteAge", + "table": "absoluteage", + "tableId": 1019, + "system": false, + "idColumn": "AbsoluteAgeID", + "idFieldName": "absoluteAgeId", + "fields": [ + { + "name": "absoluteAge", + "column": "AbsoluteAge", + "indexed": false, + "unique": false, + "required": false, + "type": "java.math.BigDecimal" + }, + { + "name": "ageType", + "column": "AgeType", + "indexed": false, + "unique": false, + "required": false, + "type": "java.lang.String", + "length": 64 + }, + { + "name": "ageUncertainty", + "column": "AgeUncertainty", + "indexed": false, + "unique": false, + "required": false, + "type": "java.math.BigDecimal" + }, + { + "name": "collectionDate", + "column": "CollectionDate", + "indexed": false, + "unique": false, + "required": false, + "type": "java.util.Date" + }, + { + "name": "date1", + "column": "Date1", + "indexed": false, + "unique": false, + "required": false, + "type": "java.util.Date" + }, + { + "name": "date2", + "column": "Date2", + "indexed": false, + "unique": false, + "required": false, + "type": "java.util.Date" + }, + { + "name": "datingMethod", + "column": "DatingMethod", + "indexed": false, + "unique": false, + "required": false, + "type": "java.lang.String", + "length": 64 + }, + { + "name": "datingMethodRemarks", + "column": "DatingMethodRemarks", + "indexed": false, + "unique": false, + "required": false, + "type": "text" + }, + { + "name": "number1", + "column": "Number1", + "indexed": false, + "unique": false, + "required": false, + "type": "java.math.BigDecimal" + }, + { + "name": "number2", + "column": "Number2", + "indexed": false, + "unique": false, + "required": false, + "type": "java.math.BigDecimal" + }, + { + "name": "remarks", + "column": "Remarks", + "indexed": false, + "unique": false, + "required": false, + "type": "text" + }, + { + "name": "text1", + "column": "Text1", + "indexed": false, + "unique": false, + "required": false, + "type": "text" + }, + { + "name": "text2", + "column": "Text2", + "indexed": false, + "unique": false, + "required": false, + "type": "text" + }, + { + "name": "timestampCreated", + "column": "TimestampCreated", + "indexed": false, + "unique": false, + "required": true, + "type": "java.sql.Timestamp" + }, + { + "name": "timestampModified", + "column": "TimestampModified", + "indexed": false, + "unique": false, + "required": false, + "type": "java.sql.Timestamp" + }, + { + "name": "yesno1", + "column": "YesNo1", + "indexed": false, + "unique": false, + "required": false, + "type": "java.lang.Boolean" + }, + { + "name": "yesno2", + "column": "YesNo2", + "indexed": false, + "unique": false, + "required": false, + "type": "java.lang.Boolean" + } + ], + "relationships": [ + { + "name": "agent1", + "type": "many-to-one", + "required": false, + "dependent": false, + "relatedModelName": "Agent", + "column": "Agent1ID" + }, + { + "name": "absoluteAgeAttachments", + "type": "one-to-many", + "required": false, + "dependent": true, + "relatedModelName": "AbsoluteAgeAttachment", + "otherSideName": "absoluteAge" + }, + { + "name": "collectionObject", + "type": "many-to-one", + "required": true, + "dependent": false, + "relatedModelName": "CollectionObject", + "column": "CollectionObjectID" + }, + { + "name": "createdByAgent", + "type": "many-to-one", + "required": false, + "dependent": false, + "relatedModelName": "Agent", + "column": "CreatedByAgentID" + }, + { + "name": "modifiedByAgent", + "type": "many-to-one", + "required": false, + "dependent": false, + "relatedModelName": "Agent", + "column": "ModifiedByAgentID" + } + ], + "fieldAliases": [] + }, + { + "classname": "edu.ku.brc.specify.datamodel.RelativeAge", + "table": "relativeage", + "tableId": 1020, + "system": false, + "idColumn": "RelativeAgeID", + "idFieldName": "relativeAgeId", + "fields": [ + { + "name": "ageType", + "column": "AgeType", + "indexed": false, + "unique": false, + "required": false, + "type": "java.lang.String", + "length": 64 + }, + { + "name": "ageUncertainty", + "column": "AgeUncertainty", + "indexed": false, + "unique": false, + "required": false, + "type": "java.math.BigDecimal" + }, + { + "name": "collectionDate", + "column": "CollectionDate", + "indexed": false, + "unique": false, + "required": false, + "type": "java.util.Date" + }, + { + "name": "date1", + "column": "Date1", + "indexed": false, + "unique": false, + "required": false, + "type": "java.util.Date" + }, + { + "name": "date2", + "column": "Date2", + "indexed": false, + "unique": false, + "required": false, + "type": "java.util.Date" + }, + { + "name": "datingMethod", + "column": "DatingMethod", + "indexed": false, + "unique": false, + "required": false, + "type": "java.lang.String", + "length": 64 + }, + { + "name": "datingMethodRemarks", + "column": "DatingMethodRemarks", + "indexed": false, + "unique": false, + "required": false, + "type": "text" + }, + { + "name": "number1", + "column": "Number1", + "indexed": false, + "unique": false, + "required": false, + "type": "java.math.BigDecimal" + }, + { + "name": "number2", + "column": "Number2", + "indexed": false, + "unique": false, + "required": false, + "type": "java.math.BigDecimal" + }, + { + "name": "relativeAgePeriod", + "column": "RelativeAgePeriod", + "indexed": false, + "unique": false, + "required": false, + "type": "java.math.BigDecimal" + }, + { + "name": "remarks", + "column": "Remarks", + "indexed": false, + "unique": false, + "required": false, + "type": "text" + }, + { + "name": "text1", + "column": "Text1", + "indexed": false, + "unique": false, + "required": false, + "type": "text" + }, + { + "name": "text2", + "column": "Text2", + "indexed": false, + "unique": false, + "required": false, + "type": "text" + }, + { + "name": "timestampCreated", + "column": "TimestampCreated", + "indexed": false, + "unique": false, + "required": true, + "type": "java.sql.Timestamp" + }, + { + "name": "timestampModified", + "column": "TimestampModified", + "indexed": false, + "unique": false, + "required": false, + "type": "java.sql.Timestamp" + }, + { + "name": "verbatimName", + "column": "VerbatimName", + "indexed": false, + "unique": false, + "required": false, + "type": "text" + }, + { + "name": "verbatimPeriod", + "column": "VerbatimPeriod", + "indexed": false, + "unique": false, + "required": false, + "type": "text" + }, + { + "name": "yesno1", + "column": "YesNo1", + "indexed": false, + "unique": false, + "required": false, + "type": "java.lang.Boolean" + }, + { + "name": "yesno2", + "column": "YesNo2", + "indexed": false, + "unique": false, + "required": false, + "type": "java.lang.Boolean" + } + ], + "relationships": [ + { + "name": "ageName", + "type": "many-to-one", + "required": false, + "dependent": false, + "relatedModelName": "GeologicTimePeriod", + "column": "AgeNameID" + }, + { + "name": "ageNameEnd", + "type": "many-to-one", + "required": false, + "dependent": false, + "relatedModelName": "GeologicTimePeriod", + "column": "AgeNameEndID" + }, + { + "name": "agent1", + "type": "many-to-one", + "required": false, + "dependent": false, + "relatedModelName": "Agent", + "column": "Agent1ID" + }, + { + "name": "agent2", + "type": "many-to-one", + "required": false, + "dependent": false, + "relatedModelName": "Agent", + "column": "Agent2ID" + }, + { + "name": "relativeAgeAttachments", + "type": "one-to-many", + "required": false, + "dependent": true, + "relatedModelName": "RelativeAgeAttachment", + "otherSideName": "relativeAge" + }, + { + "name": "collectionObject", + "type": "many-to-one", + "required": true, + "dependent": false, + "relatedModelName": "CollectionObject", + "column": "CollectionObjectID" + }, + { + "name": "createdByAgent", + "type": "many-to-one", + "required": false, + "dependent": false, + "relatedModelName": "Agent", + "column": "CreatedByAgentID" + }, + { + "name": "modifiedByAgent", + "type": "many-to-one", + "required": false, + "dependent": false, + "relatedModelName": "Agent", + "column": "ModifiedByAgentID" + } + ], + "fieldAliases": [] + }, + { + "classname": "edu.ku.brc.specify.datamodel.AbsoluteAgeAttachment", + "table": "absoluteageattachment", + "tableId": 1021, + "system": false, + "idColumn": "AbsoluteAgeAttachmentID", + "idFieldName": "absoluteAgeAttachmentId", + "fields": [ + { + "name": "ordinal", + "column": "Ordinal", + "indexed": false, + "unique": false, + "required": false, + "type": "java.lang.Integer" + }, + { + "name": "remarks", + "column": "Remarks", + "indexed": false, + "unique": false, + "required": false, + "type": "text" + }, + { + "name": "timestampCreated", + "column": "TimestampCreated", + "indexed": false, + "unique": false, + "required": true, + "type": "java.sql.Timestamp" + }, + { + "name": "timestampModified", + "column": "TimestampModified", + "indexed": false, + "unique": false, + "required": false, + "type": "java.sql.Timestamp" + }, + { + "name": "version", + "column": "Version", + "indexed": false, + "unique": false, + "required": false, + "type": "java.lang.Integer" + } + ], + "relationships": [ + { + "name": "attachment", + "type": "many-to-one", + "required": true, + "dependent": true, + "relatedModelName": "Attachment", + "column": "AttachmentID", + "otherSideName": "absoluteAgeAttachments" + }, + { + "name": "collectionMember", + "type": "many-to-one", + "required": true, + "dependent": false, + "relatedModelName": "Collection", + "column": "CollectionMemberID" + }, + { + "name": "createdByAgent", + "type": "many-to-one", + "required": false, + "dependent": false, + "relatedModelName": "Agent", + "column": "CreatedByAgentID" + }, + { + "name": "modifiedByAgent", + "type": "many-to-one", + "required": false, + "dependent": false, + "relatedModelName": "Agent", + "column": "ModifiedByAgentID" + }, + { + "name": "absoluteAge", + "type": "many-to-one", + "required": true, + "dependent": false, + "relatedModelName": "AbsoluteAge", + "column": "AbsoluteAgeID", + "otherSideName": "absoluteAgeAttachments" + } + ], + "fieldAliases": [] + }, + { + "classname": "edu.ku.brc.specify.datamodel.RelativeAgeAttachment", + "table": "relativeageattachment", + "tableId": 1022, + "system": false, + "idColumn": "RelativeAgeAttachmentID", + "idFieldName": "relativeAgeAttachmentId", + "fields": [ + { + "name": "ordinal", + "column": "Ordinal", + "indexed": false, + "unique": false, + "required": false, + "type": "java.lang.Integer" + }, + { + "name": "remarks", + "column": "Remarks", + "indexed": false, + "unique": false, + "required": false, + "type": "text" + }, + { + "name": "timestampCreated", + "column": "TimestampCreated", + "indexed": false, + "unique": false, + "required": true, + "type": "java.sql.Timestamp" + }, + { + "name": "timestampModified", + "column": "TimestampModified", + "indexed": false, + "unique": false, + "required": false, + "type": "java.sql.Timestamp" + }, + { + "name": "version", + "column": "Version", + "indexed": false, + "unique": false, + "required": false, + "type": "java.lang.Integer" + } + ], + "relationships": [ + { + "name": "attachment", + "type": "many-to-one", + "required": true, + "dependent": true, + "relatedModelName": "Attachment", + "column": "AttachmentID", + "otherSideName": "relativeAgeAttachments" + }, + { + "name": "collectionMember", + "type": "many-to-one", + "required": true, + "dependent": false, + "relatedModelName": "Collection", + "column": "CollectionMemberID" + }, + { + "name": "createdByAgent", + "type": "many-to-one", + "required": false, + "dependent": false, + "relatedModelName": "Agent", + "column": "CreatedByAgentID" + }, + { + "name": "modifiedByAgent", + "type": "many-to-one", + "required": false, + "dependent": false, + "relatedModelName": "Agent", + "column": "ModifiedByAgentID" + }, + { + "name": "relativeAge", + "type": "many-to-one", + "required": true, + "dependent": false, + "relatedModelName": "RelativeAge", + "column": "RelativeAgeID", + "otherSideName": "relativeAgeAttachments" + } + ], + "fieldAliases": [] + }, + { + "classname": "edu.ku.brc.specify.datamodel.AbsoluteAgeCitation", + "table": "absoluteagecitation", + "tableId": 1023, + "system": false, + "idColumn": "AbsoluteAgeCitationID", + "idFieldName": "absoluteAgeCitationId", + "fields": [ + { + "name": "figureNumber", + "column": "FigureNumber", + "indexed": false, + "unique": false, + "required": false, + "type": "java.lang.String", + "length": 50 + }, + { + "name": "isFigured", + "column": "IsFigured", + "indexed": false, + "unique": false, + "required": false, + "type": "java.lang.Boolean" + }, + { + "name": "pageNumber", + "column": "PageNumber", + "indexed": false, + "unique": false, + "required": false, + "type": "java.lang.String", + "length": 50 + }, + { + "name": "plateNumber", + "column": "PlateNumber", + "indexed": false, + "unique": false, + "required": false, + "type": "java.lang.String", + "length": 50 + }, + { + "name": "remarks", + "column": "Remarks", + "indexed": false, + "unique": false, + "required": false, + "type": "text" + }, + { + "name": "timestampCreated", + "column": "TimestampCreated", + "indexed": false, + "unique": false, + "required": true, + "type": "java.sql.Timestamp" + }, + { + "name": "timestampModified", + "column": "TimestampModified", + "indexed": false, + "unique": false, + "required": false, + "type": "java.sql.Timestamp" + }, + { + "name": "version", + "column": "Version", + "indexed": false, + "unique": false, + "required": false, + "type": "java.lang.Integer" + } + ], + "relationships": [ + { + "name": "absoluteAge", + "type": "many-to-one", + "required": true, + "dependent": false, + "relatedModelName": "AbsoluteAge", + "column": "AbsoluteAgeID" + }, + { + "name": "collectionMember", + "type": "many-to-one", + "required": true, + "dependent": false, + "relatedModelName": "Collection", + "column": "CollectionMemberID" + }, + { + "name": "createdByAgent", + "type": "many-to-one", + "required": false, + "dependent": false, + "relatedModelName": "Agent", + "column": "CreatedByAgentID" + }, + { + "name": "modifiedByAgent", + "type": "many-to-one", + "required": false, + "dependent": false, + "relatedModelName": "Agent", + "column": "ModifiedByAgentID" + }, + { + "name": "referenceWork", + "type": "many-to-one", + "required": true, + "dependent": false, + "relatedModelName": "ReferenceWork", + "column": "ReferenceWorkID" + } + ], + "fieldAliases": [] + }, + { + "classname": "edu.ku.brc.specify.datamodel.RelativeAgeCitation", + "table": "relativeagecitation", + "tableId": 1024, + "system": false, + "idColumn": "RelativeAgeCitationID", + "idFieldName": "relativeAgeCitationId", + "fields": [ + { + "name": "figureNumber", + "column": "FigureNumber", + "indexed": false, + "unique": false, + "required": false, + "type": "java.lang.String", + "length": 50 + }, + { + "name": "isFigured", + "column": "IsFigured", + "indexed": false, + "unique": false, + "required": false, + "type": "java.lang.Boolean" + }, + { + "name": "pageNumber", + "column": "PageNumber", + "indexed": false, + "unique": false, + "required": false, + "type": "java.lang.String", + "length": 50 + }, + { + "name": "plateNumber", + "column": "PlateNumber", + "indexed": false, + "unique": false, + "required": false, + "type": "java.lang.String", + "length": 50 + }, + { + "name": "remarks", + "column": "Remarks", + "indexed": false, + "unique": false, + "required": false, + "type": "text" + }, + { + "name": "timestampCreated", + "column": "TimestampCreated", + "indexed": false, + "unique": false, + "required": true, + "type": "java.sql.Timestamp" + }, + { + "name": "timestampModified", + "column": "TimestampModified", + "indexed": false, + "unique": false, + "required": false, + "type": "java.sql.Timestamp" + }, + { + "name": "version", + "column": "Version", + "indexed": false, + "unique": false, + "required": false, + "type": "java.lang.Integer" + } + ], + "relationships": [ + { + "name": "collectionMember", + "type": "many-to-one", + "required": true, + "dependent": false, + "relatedModelName": "Collection", + "column": "CollectionMemberID" + }, + { + "name": "createdByAgent", + "type": "many-to-one", + "required": false, + "dependent": false, + "relatedModelName": "Agent", + "column": "CreatedByAgentID" + }, + { + "name": "modifiedByAgent", + "type": "many-to-one", + "required": false, + "dependent": false, + "relatedModelName": "Agent", + "column": "ModifiedByAgentID" + }, + { + "name": "referenceWork", + "type": "many-to-one", + "required": true, + "dependent": false, + "relatedModelName": "ReferenceWork", + "column": "ReferenceWorkID" + }, + { + "name": "relativeAge", + "type": "many-to-one", + "required": true, + "dependent": false, + "relatedModelName": "RelativeAge", + "column": "RelativeAgeID" + } + ], + "fieldAliases": [] + }, + { + "classname": "edu.ku.brc.specify.datamodel.TectonicUnitTreeDef", + "table": "tectonicunittreedef", + "tableId": 1025, + "system": false, + "idColumn": "TectonicUnitTreeDefID", + "idFieldName": "tectonicUnitTreeDefId", + "fields": [ + { + "name": "fullNameDirection", + "column": "FullNameDirection", + "indexed": false, + "unique": false, + "required": false, + "type": "java.lang.Integer" + }, + { + "name": "name", + "column": "Name", + "indexed": false, + "unique": false, + "required": true, + "type": "java.lang.String", + "length": 255 + }, + { + "name": "remarks", + "column": "Remarks", + "indexed": false, + "unique": false, + "required": false, + "type": "text" + }, + { + "name": "timestampCreated", + "column": "TimestampCreated", + "indexed": false, + "unique": false, + "required": true, + "type": "java.sql.Timestamp" + }, + { + "name": "timestampModified", + "column": "TimestampModified", + "indexed": false, + "unique": false, + "required": false, + "type": "java.sql.Timestamp" + }, + { + "name": "version", + "column": "Version", + "indexed": false, + "unique": false, + "required": false, + "type": "java.lang.Integer" + } + ], + "relationships": [ + { + "name": "createdByAgent", + "type": "many-to-one", + "required": false, + "dependent": false, + "relatedModelName": "Agent", + "column": "CreatedByAgentID" + }, + { + "name": "discipline", + "type": "many-to-one", + "required": true, + "dependent": false, + "relatedModelName": "Discipline", + "column": "DisciplineID", + "otherSideName": "tectonicUnitTreeDefs" + }, + { + "name": "modifiedByAgent", + "type": "many-to-one", + "required": false, + "dependent": false, + "relatedModelName": "Agent", + "column": "ModifiedByAgentID" + }, + { + "name": "treeDefItems", + "type": "one-to-many", + "required": false, + "dependent": true, + "relatedModelName": "TectonicUnitTreeDefItem", + "otherSideName": "treeDef" + }, + { + "name": "treeEntries", + "type": "one-to-many", + "required": false, + "dependent": false, + "relatedModelName": "TectonicUnit", + "otherSideName": "definition" + } + ], + "fieldAliases": [] + }, + { + "classname": "edu.ku.brc.specify.datamodel.TectonicUnitTreeDefItem", + "table": "tectonicunittreedefitem", + "tableId": 1026, + "system": false, + "idColumn": "TectonicUnitTreeDefItemID", + "idFieldName": "tectonicUnitTreeDefItemId", + "fields": [ + { + "name": "fullNameSeparator", + "column": "FullNameSeparator", + "indexed": false, + "unique": false, + "required": false, + "type": "java.lang.String", + "length": 255 + }, + { + "name": "isEnforced", + "column": "IsEnforced", + "indexed": false, + "unique": false, + "required": false, + "type": "java.lang.Boolean" + }, + { + "name": "isInFullName", + "column": "IsInFullName", + "indexed": false, + "unique": false, + "required": false, + "type": "java.lang.Boolean" + }, + { + "name": "name", + "column": "Name", + "indexed": false, + "unique": false, + "required": true, + "type": "java.lang.String", + "length": 255 + }, + { + "name": "rankId", + "column": "RankID", + "indexed": false, + "unique": false, + "required": true, + "type": "java.lang.Integer" + }, + { + "name": "remarks", + "column": "Remarks", + "indexed": false, + "unique": false, + "required": false, + "type": "text" + }, + { + "name": "textAfter", + "column": "TextAfter", + "indexed": false, + "unique": false, + "required": false, + "type": "java.lang.String", + "length": 255 + }, + { + "name": "textBefore", + "column": "TextBefore", + "indexed": false, + "unique": false, + "required": false, + "type": "java.lang.String", + "length": 255 + }, + { + "name": "timestampCreated", + "column": "TimestampCreated", + "indexed": false, + "unique": false, + "required": true, + "type": "java.sql.Timestamp" + }, + { + "name": "timestampModified", + "column": "TimestampModified", + "indexed": false, + "unique": false, + "required": false, + "type": "java.sql.Timestamp" + }, + { + "name": "title", + "column": "Title", + "indexed": false, + "unique": false, + "required": false, + "type": "java.lang.String", + "length": 255 + }, + { + "name": "version", + "column": "Version", + "indexed": false, + "unique": false, + "required": false, + "type": "java.lang.Integer" + } + ], + "relationships": [ + { + "name": "children", + "type": "one-to-many", + "required": false, + "dependent": false, + "relatedModelName": "TectonicUnitTreeDefItem", + "otherSideName": "parent" + }, + { + "name": "createdbyagent", + "type": "many-to-one", + "required": false, + "dependent": false, + "relatedModelName": "Agent", + "column": "CreatedByAgentID" + }, + { + "name": "modifiedByAgent", + "type": "many-to-one", + "required": false, + "dependent": false, + "relatedModelName": "Agent", + "column": "ModifiedByAgentID" + }, + { + "name": "parent", + "type": "many-to-one", + "required": false, + "dependent": false, + "relatedModelName": "TectonicUnitTreeDefItem", + "column": "ParentItemID", + "otherSideName": "children" + }, + { + "name": "treeDef", + "type": "many-to-one", + "required": true, + "dependent": false, + "relatedModelName": "TectonicUnitTreeDef", + "column": "TectonicUnitTreeDefID", + "otherSideName": "treeDefItems" + }, + { + "name": "treeEntries", + "type": "one-to-many", + "required": false, + "dependent": false, + "relatedModelName": "TectonicUnit", + "otherSideName": "definitionItem" + } + ], + "fieldAliases": [] + }, + { + "classname": "edu.ku.brc.specify.datamodel.TectonicUnit", + "table": "tectonicunit", + "tableId": 1027, + "system": false, + "idColumn": "TectonicUnitID", + "idFieldName": "tectonicUnitId", + "fields": [ + { + "name": "fullName", + "column": "FullName", + "indexed": false, + "unique": false, + "required": false, + "type": "java.lang.String", + "length": 255 + }, + { + "name": "guid", + "column": "GUID", + "indexed": false, + "unique": false, + "required": false, + "type": "java.lang.String", + "length": 128 + }, + { + "name": "highestChildNodeNumber", + "column": "HighestChildNodeNumber", + "indexed": false, + "unique": false, + "required": false, + "type": "java.lang.Integer" + }, + { + "name": "isAccepted", + "column": "IsAccepted", + "indexed": false, + "unique": false, + "required": true, + "type": "java.lang.Boolean" + }, + { + "name": "name", + "column": "Name", + "indexed": false, + "unique": false, + "required": true, + "type": "java.lang.String", + "length": 255 + }, + { + "name": "nodeNumber", + "column": "NodeNumber", + "indexed": false, + "unique": false, + "required": false, + "type": "java.lang.Integer" + }, + { + "name": "number1", + "column": "Number1", + "indexed": false, + "unique": false, + "required": false, + "type": "java.math.BigDecimal" + }, + { + "name": "number2", + "column": "Number2", + "indexed": false, + "unique": false, + "required": false, + "type": "java.math.BigDecimal" + }, + { + "name": "rankId", + "column": "RankID", + "indexed": false, + "unique": false, + "required": true, + "type": "java.lang.Integer" + }, + { + "name": "remarks", + "column": "Remarks", + "indexed": false, + "unique": false, + "required": false, + "type": "text" + }, + { + "name": "text1", + "column": "Text1", + "indexed": false, + "unique": false, + "required": false, + "type": "java.lang.String", + "length": 255 + }, + { + "name": "text2", + "column": "Text2", + "indexed": false, + "unique": false, + "required": false, + "type": "java.lang.String", + "length": 255 + }, + { + "name": "timestampCreated", + "column": "TimestampCreated", + "indexed": false, + "unique": false, + "required": true, + "type": "java.sql.Timestamp" + }, + { + "name": "timestampModified", + "column": "TimestampModified", + "indexed": false, + "unique": false, + "required": false, + "type": "java.sql.Timestamp" + }, + { + "name": "version", + "column": "Version", + "indexed": false, + "unique": false, + "required": false, + "type": "java.lang.Integer" + }, + { + "name": "yesno1", + "column": "YesNo1", + "indexed": false, + "unique": false, + "required": false, + "type": "java.lang.Boolean" + }, + { + "name": "yesno2", + "column": "YesNo2", + "indexed": false, + "unique": false, + "required": false, + "type": "java.lang.Boolean" + } + ], + "relationships": [ + { + "name": "acceptedChildren", + "type": "one-to-many", + "required": false, + "dependent": false, + "relatedModelName": "TectonicUnit", + "otherSideName": "acceptedTectonicUnit" + }, + { + "name": "acceptedTectonicUnit", + "type": "many-to-one", + "required": false, + "dependent": false, + "relatedModelName": "TectonicUnit", + "column": "AcceptedID", + "otherSideName": "acceptedChildren" + }, + { + "name": "createdByAgent", + "type": "many-to-one", + "required": false, + "dependent": false, + "relatedModelName": "Agent", + "column": "CreatedByAgentID" + }, + { + "name": "modifiedByAgent", + "type": "many-to-one", + "required": false, + "dependent": false, + "relatedModelName": "Agent", + "column": "ModifiedByAgentID" + }, + { + "name": "parent", + "type": "many-to-one", + "required": true, + "dependent": false, + "relatedModelName": "TectonicUnit", + "column": "ParentID" + }, + { + "name": "definition", + "type": "many-to-one", + "required": true, + "dependent": false, + "relatedModelName": "TectonicUnitTreeDef", + "column": "TectonicUnitTreeDefID", + "otherSideName": "treeEntries" + }, + { + "name": "definitionItem", + "type": "many-to-one", + "required": true, + "dependent": false, + "relatedModelName": "TectonicUnitTreeDefItem", + "column": "TectonicUnitTreeDefItemID", + "otherSideName": "treeEntries" + } + ], + "fieldAliases": [] } ] \ No newline at end of file