Rationalise VERSION.lifecycle_state and ATTESTATION.status


Currently, the lifecycle_state attribute in VERSION is not itself
versioned in any way, meaning that there is no audit trail of
historical changes to it, e.g. going from "draft" to "approved".
It is currently documented as being able to change state without
creating a new version. Clearly the current idea of what states
would be represented by this attribute is incorrect. However,
lifecycle states which are useful, and correspond to new versions
are "unfinished", "finished" and "deleted".

On the other hand, the status attribute in ATTESTATION, is currently
specified to have values like required/signed/intended. However,
logically "required" and "intended" corresponds to a lifecycle
state of something like "awaiting_approval". In CEN, the
equivalent attribute has been named "reason", and coded with
values like "authorisation" and "witnessing".

A further problem is that adding ATTESTATIONs is the one kind
of change remaining in the model which does not fit cleanly into
the CONTRIBUTION model, because a) it does not use a standard
audit trail (instance of AUDIT_DETAILS) b) because there is no
commit operation for it and c) because it does not create a new
VERSION object.




Chunlan Ma

Raised By