Hi @Marion,
Thanks for reaching out!
The good news is that Collection Relationships in Specify aren’t limited by discipline. You should be able to link Historical Context (or DNA & Tissue) to any other collection.
I can set this up for you behind-the-scenes to save you the clicking necessary. If you were to do this in the user interface, you would need to:
- Create a new
CollectionRelTyperecord for each collection that links to the ‘Historical Context’ collection in each collection (you have 30 currently) - Edit the form definition for each collection to add the CollectionRelOneToManyPlugin to the form linking it to ‘Historical Context’
Traditionally, you would use the ColRelTypePlugin if it were a one-way relationship (e.g. your tissue can only have one voucher), but you might want to use a custom subview for the rightSideRels field on Collection Object instead to make sure the other side relationships are visible.
Something like this would make it so you can see all records across other collections that connect to the CO in the ‘Historical Context’ collection (see the Right Side Rels subview below):
In this screenshot, I simply defined a new CollectionRelationship view definition for the discipline.
Collection Object
I added the following subview to the CollectionObject view definition:
<row>
<cell type="subview" id="rsr" name="rightsiderels" defaultType="table" colspan="12"/>
</row>
Collection Relationship
I created a new CollectionRelationship view definition (which is what both leftSideRels and rightSideRels uses by default), which looks like this:
<viewdef name="CollectionRelationship" class="edu.ku.brc.specify.datamodel.CollectionRelationship" type="form" gettable="edu.ku.brc.af.ui.forms.DataGetterForObj" settable="edu.ku.brc.af.ui.forms.DataSetterForObj">
<desc>The CollectionRelationship Table</desc>
<enableRules/>
<columnDef>10px,2px,50px,10px,2px,100px,10px,2px,100px,10px,2px,100px,10px,2px,100px,,p:g</columnDef>
<rowDef auto="true" cell="p" sep="2px"/>
<rows>
<row>
<cell type="label" labelfor="type"/>
<cell type="field" id="type" name="collectionRelType" uitype="querycbx" isrequired="false" initialize="editBtn=false;newBtn=false;searchBtn=false" readonly="true" colspan="3"/>
<cell type="label" label="Source Collection"/>
<cell type="field" id="leftSideColl" name="collectionRelType.leftSideCollection.CollectionName" uitype="text" readonly="true" colspan="3"/>
<cell type="label" label="Destination Collection"/>
<cell type="field" id="rightSideColl" name="collectionRelType.rightSideCollection.CollectionName" uitype="text" readonly="true" colspan="3"/>
</row>
<row>
<cell type="label" label="" colspan="5"/>
<cell type="label" label="Source Object"/>
<cell type="field" id="leftSide" name="leftSide" uitype="querycbx" isrequired="false" initialize="editBtn=false;newBtn=false;searchBtn=false" readonly="true" colspan="3"/>
<cell type="label" label="Destination Object"/>
<cell type="field" id="rightSide" name="rightSide" uitype="querycbx" isrequired="false" initialize="editBtn=false;newBtn=false;searchBtn=false" readonly="true" colspan="3"/>
</row>
</rows>
</viewdef>
I made these fields read-only so that it simply reflects the relationships, but this could be made editable if desired.

