Page history: Display the oldest of each requirement
Fix versions
None
Priority
Matter of months
Description
When the Requirement macro displays in the history of a page, results are not intuitive.
Example
Page version
REQ-001
REQ-002
REQ-003
v4
v1
v1 v3
v1 v3
v5
v2 v4
v2
v2 v4
v6
v3
v7
v4
How to build this example:
Create baseline 1
Create baseline 2
Refreeze v1 by adding the latest version of REQ-001,
Refreeze v2 by adding the latest version of REQ-003.
The problem
When displaying the page v5, it displays v2 - v2 - v4, which is counter-intuitive because it is not consistent, although it is technically very correct…
What should be displayed
Page history v4: Should display REQ-001 v1, REQ-002 v1, REQ-003 v1 (oldest-link rule),
Page history v5: Should display REQ-001 v2, REQ-002 v2, REQ-003 v2 (oldest-link rule),
Page history v5, when reached from REQ-004v4: Should display REQ-001 v4, REQ-002 v2, REQ-003 v4 (thanks to the ?preferredVersion=4 in the URL),
Page history v6: Should display REQ-001 v3, REQ-002 v4, REQ-003 current.
Page history v7: Should display REQ-001 current, REQ-002 v4, REQ-003 current.
Corollary
When clicking on REQ-002v3, it will be counter-intuitive because the user will see “REQ-002v1”,
It may take a long time to display a page with 400 requirements, so, please check and reject the issue if the performance is unacceptable.
Implementation
When rendering a URL of a PageRef, please add the parameter ?preferredBaseline=x in the URL,
In the macro, if using renderFromDB(), use the preferredBaseline parameter if present; or use the oldest version of the requirement.
When the Requirement macro displays in the history of a page, results are not intuitive.
Example
Page version
REQ-001
REQ-002
REQ-003
v4
v1
v1 v3
v1 v3
v5
v2 v4
v2
v2 v4
v6
v3
v7
v4
How to build this example:
Create baseline 1
Create baseline 2
Refreeze v1 by adding the latest version of REQ-001,
Refreeze v2 by adding the latest version of REQ-003.
The problem
When displaying the page v5, it displays v2 - v2 - v4, which is counter-intuitive because it is not consistent, although it is technically very correct…
What should be displayed
Page history v4: Should display REQ-001 v1, REQ-002 v1, REQ-003 v1 (oldest-link rule),
Page history v5: Should display REQ-001 v2, REQ-002 v2, REQ-003 v2 (oldest-link rule),
Page history v5, when reached from REQ-004v4: Should display REQ-001 v4, REQ-002 v2, REQ-003 v4 (thanks to the ?preferredVersion=4 in the URL),
Page history v6: Should display REQ-001 v3, REQ-002 v4, REQ-003 current.
Page history v7: Should display REQ-001 current, REQ-002 v4, REQ-003 current.
Corollary
When clicking on REQ-002v3, it will be counter-intuitive because the user will see “REQ-002v1”,
It may take a long time to display a page with 400 requirements, so, please check and reject the issue if the performance is unacceptable.
Implementation
When rendering a URL of a PageRef, please add the parameter ?preferredBaseline=x in the URL,
In the macro, if using renderFromDB(), use the
preferredBaseline
parameter if present; or use the oldest version of the requirement.