Open chris48s opened 4 years ago
Just chewing this over a bit more.. another different design decision we could take here would be:
The job of providing an audit trail of edits to Memberships, Results etc is (should be) handled by LoggedAction objects. Only changes which can be reverted should be stored in a Version object.
If we think about it like that, it would simplify the 'revert' operation from the user's perspective because you get rid of the whole "this is thing is contained in that version but reverting it doesn't actually change that thing for [complicated reasons]".
Do we lose anything major if we were to adopt that decision instead?
Refer to Michael's merge suggestion table for design; Any changes to the person model would not get reverted; this needs to be handled elsewhere and not on the Version model
Person objects are related to a number of other entities e.g: Identifiers, Alternative Names, Results, Memberships, Photos etc
At the moment, the selection of those which get stored in version history is a bit haphazard and which ones get modified as a result of a revert operation is a bit haphazard too. This is non-obvious to a user. We need to make this more consistent.