Bioplate events (take 2)
— at Version 7
This replaces #1442. I feel it is better to close #1442 since it's comment list contains a lot of checked in code that probably will never make it to the final version. For logging purpuses it is better start with a new ticket.
We will try a new approach this time. The intention is to keep the BioPlateEvent
item as generic as possible. Then, it is up to the gui to define what an event really is. This way almost any action could be registered as an event. Under some circumstances we could even let a batch import generate an event. The design idea for the core goes something like this:
- A new item
BioPlateEvent
is created. It should be a CommonItem
which means it has an owner, name and description, and that it can be shared. The event should also have event-date, entry-date, protocol and hardware properties (eg. similar to BioMaterialEvent
).
- The
BioPlateEvent
has a many-to-many association with BioPlate
which point to the plates that are part of the event. The association is tagged with a "role" attribute which is a text description of what part the plate has in the event. Eg. "source" or "destination" in a move or a child biomaterial creation event. The role names are not dictated by the core. Each actual implementation may choose suitable and human-understandable names.
- The existing
BioMaterialEvent
items should get a many-to-one link to the BioPlateEvent
which allows us to keep better track of biomaterial creation events.
I'll also want to limit this ticket to the implementation of the core support for events. This includes changes in the web interface for viewing event information. Separate ticket should be created for the actual creation of events. Here is a list of such tickets:
- #1559: Place biomaterial on plates
- #1564: Move biomaterial on plates
- ...more to come...
Biomaterials UML diagram with new classes highlighted