Content
View differences
Updated by Parimal Satyal about 3 years ago
### User Story
**As** an OpenProject user
**I want** to be able to see, in the list and the Gantt chart views, an overview of changes that have been made compared to a specific date in the past
**so that** I better understand the status and progress of my project.
### Extend the data model and the API to save and query historic values of work packages
* Extend the data model
* Extend the API
* It is possible to filter on historic values, e.g.
* All work packages that have been in status "scheduled" on 2022-01-01
* All work packages that were assigned to version 12.1 and all work packages that have been added or removed since a specific date.
`Note: The largest uncertainty when planning and estimating this feature comes from the performance requirements. We need to ensure that this feature also works for large organizations that have large data sets with a high number of concurrent requests.`
## Extend work package filters to request historic values from the API
* Extend the view to allow users to query a date (in the past)
* A specific date and hour:
* **\[open\]** What granurality, reconfirm with devs.
* We might have to directly display a date/hour picker as a modal.
* ~~B: A relative date, e.g:~~
* ~~24 hours~~
* ~~1 week~~
* ~~1 month~~
* Rebuild work package queries to allow requesting a list of relevant work packages, including the changes.
<img class="op-uc-image op-uc-image_inline" src="/api/v3/attachments/52535/content"> <figure class="image op-uc-figure"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/27111/content"></div></figure>
## Extend the work packages list view to display changes
* Changes to the following work package core attributes are highlighted in a diff view.
* Status
* Assignee
* Accountable
* Project
* Start date
* Finish date
* Type
* Priority
* Subject
* Version
* Work packages that were added or removed within the specified time period, ie, between the comparison date and today, are highlighted (e.g. deliverables that were added to the project scope or features that were removed from a release).
* List the number of attributes that have been changed in that time period. This number also includes changes to the work package description, the details of which which are not shown in the list view.
## Front-end changes
<figure class="image op-uc-figure"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/52534/content"></div></figure> src="/api/v3/attachments/31714/content"></div></figure>
#### **Toolbar icon:**
* Add a new dropdown button with ## Extend the label "Changes"
* With left icon "baseline" (new)
* Right icon (up/down, similar to the Create or Table/GANTT/Cards buttons)
* Clicking on this button triggers a drop modal, with this structure:
* A selector field with label "Show changes" and a switch to the right.
* This is off by default, and all the other fields in the modal are also disabled until this switch is enabled.
* A short text (Body Small/Regular, Grey 2): "View changes made to work packages in the current Gantt view between within a time period."
* A form item with label "Changes since" and a dropdown with these options:
* yesterday (default)
* last working day
* last week
* last month
* a specific date
* between two specific dates
* A form item with label "Time" and an HTML input (type time),
* format "hh:mm"
* Input text by default is the current local time
* \[open\] The bottom text is the user timezone, eg. "CET (UTC +1)"
* Action bar (grey background)
* with one button "Apply" (primary, no icons)
* this button disabled by default and only enabled if there are changes to display the modal
#### **Modal behaviour**
* The "Show changes" switch on top enables the show changes/baseline mode (see below for how it affects table view)
* Disabling this exists changes mode and disables all fields in the modal (except the action bar), but preserves entered values
<img class="op-uc-image op-uc-image_inline" src="/api/v3/attachments/52539/content"><img class="op-uc-image op-uc-image_inline" src="/api/v3/attachments/52537/content">
* These options do not inherently change the structure of the modal and set the comparison time to:
* yesterday (default, current Start and/or finish date - 1 day)
* last working day (current date - n days, where n is non-working days)
* last week (current date - 7 days)
* last month (same day and year but current month - 1)
* These options do change the structure of the modal:
* a specific date
* between two specific dates
* Option "a specific date" adds:
* a "Date" field was moved to the left of the "Time" form field (50% width each) with:
* Standard date picker date field, with a 'Today' link underneath
* a mini calendar underneath
* with current month open by default
* clicking on any day changes the value of the "Date" field
* non-working days are displayed but enabled/clickable past.
* Option "between two specific dates" replaces the "Time" field with a range Start and/or finish date picker:
* There are two sets of Date/time fields, with labels "From" and "To"
* The first field is a standard date picker date field, with a 'Today' link underneath
* The time field is the same as described earlier but without the "Time" label
* Below each set of Date/field field is a mini-calendar that looks and works the same as a work package range date picker:
* two months showing (current and next month)
* a previous button (left arrow) was moved to the left of the first mini calendar's Month/year line
future.
* a next button (right arrow) to the right of the second mini calendar's Month/year line
* non-working days are displayed but enabled/clickable
* Either the Start and/or finish date field in "From" or "To" can be _active_, and this affects which date field is affect when the user clicks on a day in mini calendars
<img class="op-uc-image op-uc-image_inline" src="/api/v3/attachments/52547/content"><img class="op-uc-image op-uc-image_inline" src="/api/v3/attachments/52548/content"><img class="op-uc-image op-uc-image_inline" src="/api/v3/attachments/52549/content">
<img class="op-uc-image op-uc-image_inline" src="/api/v3/attachments/52538/content">
#### **Show changes mode indicator**
When the "Show changes" mode is enabled:
<img class="op-uc-image op-uc-image_inline" src="/api/v3/attachments/52540/content">
* There is show changes mode indicator underneath the toolbar: a rectangular area with stroke (Grey 4, 1 px), with 0.75 rem top/bottom margin and 1 rem left/right margin.
* On the left edge, the text: "Changes since {date} {time}"
* On the right edge, legends:
* add icon (Feedback/Success/Dark, 16px), with label "Now meets filter criteria ({number of work packages concerned})"
* minus1 icon (Basic/Grey 1, 16px), with label "No longer meets filter criteria ({number of work packages concerned})"
* arrow-left-right icon (Feedback/Info/Dark, 16px), with label "Maintained with changes ({number of work packages concerned})"
#### **Work package table list**
When the "Show changes" mode is enabled:
<figure class="image op-uc-figure"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/52541/content"></div></figure>
* A new column is was added to the work package table view:
* The header is the baseline icon
* The column can have one of four values:
* blank: when there are no changes in the comparison period
* the green add icon: when the work package has been added to the view in the comparison period
* the grey minus1 icon: when the work package has been removed from the view in the comparison period
* or arrow-left-right icon: when the work package is maintained in the view in the comparison period, but modifications were made
* On hover of these icons, a tooltip is displayed with these text values:
* addition: "Added to view within the comparison time period"
* removal: "Removed from view within the comparison time period"
* modification: "Modified within the comparison time period"
* For modifications to values of columns visible in the table (amongst attributes that are tracked by this feature)
* The value is now displayed in two lines:
* Line 1: the original value is displayed in Caption/Regular, Grey 3, with strikethrough
* this is true of all kinds of values, including type, status and assignee
* Line 2: the new value in Body Small/Bold, Grey 1, with these particularities:
* new type and new status are displayed in their normal style
* assignee is displayed with the mini avatar, but in a smaller 20 × 20px instead of the regular 24 × 24 px Start and/or finish date was removed.
#### **Mobile view**
In the mobile view of the work package table list:
<figure class="image op-uc-figure" style="width:320px;"><div style="width:75%;"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/52542/content"></div></figure> src="/api/v3/attachments/27113/content"></div></figure>
* the "Changes" button in the toolbar is not visible
* it is hidden behind the more icon
* the Show changes mode indicator _is_ visible when active but
* the legends are not shown
* the "Changes since {date} {time}" line is centred
* cards are displayed as described below
#### **Cards view**
<img class="op-uc-image op-uc-image_inline" src="/api/v3/attachments/52545/content"><img class="op-uc-image op-uc-image_inline" src="/api/v3/attachments/52543/content"><img class="op-uc-image op-uc-image_inline" src="/api/v3/attachments/52544/content">
* In the work package cards view, changes are indicated with icons described above but that are:
* displayed to the right of the status
* this is true for desktop as well as mobile views
#### **Work package table configuration**
In the work package table configuration modal:
<img class="op-uc-image op-uc-image_inline" src="/api/v3/attachments/52546/content">
* There is a new tab titled "Show changes"
* This tab has the same settings as the the Show changes modal
## ~~Notes (no longer relevant, archived 14.03.2023)~~ Note
* ~~Better Better display currently selected comparison date.~~ date.
* ~~Show Show the date also in the button? (Baseline:~~ _~~24 hours~~_~~)~~ (Baseline: _24 hours_)
* ~~Enabling Enabling baseline will never "filter" work packages out; on the contrary, it can show new ones (that met the current filter criteria in the past).~~ past).
* _~~**\[to _**\[to be discussed\]** Baseline takes into account filter criteria, and then shows differences in the context of those filters:~~_ filters:_
* _~~"Additions" _"Additions" == work packages that did not meet the criteria in the baseline past but now do~~_ do_
* _~~"Removals" _"Removals" == work packages that now do not meet the filter criteria but did in the past~~_ past_
* ~~**NOTE: **NOTE: This behaviour doesn't make sense as this is what is exactly what the baseline does by itself; showing what was in the past meeting the filter criteria and now don't and the other way around while addition and removal of work packages are the complete work package creation or deletion.**~~ deletion.**
* _~~**\[to _**\[to be discussed\]** Show only work packages that are additions or removals (based on my criteria).~~_ criteria)._
* _~~"New _"New bugs newly added to the version within the last week"~~_ week"_
* _~~Baseline, _Baseline, version added as a filter.~~_ filter._
* _~~Option: _Option: only show additions, or removals.~~_ removals._
* ~~**NOTE: **NOTE: Again, this behaviour doesn't make sense as this is what is exactly what the baseline does by itself.**~~ itself.**
* ~~And And filtering a view with baseline enabled will show work packages that meet the criteria in the present~~ _~~and~~_ ~~in present _and_ in the past.~~ past.
* ~~**\[open\]** **\[open\]** Changing the value of the present might "hide" the intermediate value (so that it now shows the past and the~~ _~~new~~_ ~~present).~~ the _new_ present).
* ~~Need Need to review choice of colours: why red, green, orange?~~ orange?
* ~~We We might potentially need new icons: new, changed and removed.~~ removed.
* ~~**\[open\]** **\[open\]** Currently, it's possible to highlight rows based on attributes:~~ attributes:
* ~~What What do we do? Remove this feature or make it a choice between Baseline highlighting and this.~~ this.
* ~~Add:~~ Add:
* ~~Subject Subject has been changed:~~ changed:
* ~~"Buy beer"~~
* ~~"Buy coffee"~~ "Buy coffee"
* ~~Can Can we track~~ _~~all~~_ ~~attributes track _all_ attributes (including custom fields), or do we need a limited set of attributes?~~ attributes?
* ~~**\[open\]** **\[open\]** Ideally, all work package attributes are tracked.~~ tracked.
* ~~If not, how do we indicate in a list view that something has changed? (Or if it's not tracked, how do we let the user know that this is not tracked)~~
## Figma link Visuals
* Work package list view:
* Before baseline
* Set up baseline (modal)
* Illustrate status changes: eg. merged, tests (QA tester, show progress)
* Illustrate: date changes (what was delayed?)
* After baseline (showing different kinds of changes)
* GANTT View Figma mockups here: [https://www.figma.com/file/RkQ2T9f5yrXH3srz8SP8vv/Show-change-(Baseline---track-changes)?node-id=1164%3A38835&t=el6jgjA9M9DyCM3x-1](https://www.figma.com/file/RkQ2T9f5yrXH3srz8SP8vv/Show-change-(Baseline---track-changes)?node-id=1164%3A38835&t=el6jgjA9M9DyCM3x-1)
## Out of scope for this epic
* Filter for only things that have been added/removed (red or green rows).
* Cannot filter to show only things that have been moved from status A to status B.
* Track changes of relations between work packages.
* Board view and team planner views.
* Extend the Gantt view to display the changes
* Start and/or finish date was moved to the past.
* Start and/or finish date was moved to the future.
* Start and/or finish date was added
* Start and/or finish date was removed.
## Figma link
https://www.figma.com/file/RkQ2T9f5yrXH3srz8SP8vv/?node-id=0%3A1
**As** an OpenProject user
**I want** to be able to see, in the list and the Gantt chart views, an overview of changes that have been made compared to a specific date in the past
**so that** I better understand the status and progress of my project.
### Extend the data model and the API to save and query historic values of work packages
* Extend the data model
* Extend the API
* It is possible to filter on historic values, e.g.
* All work packages that have been in status "scheduled" on 2022-01-01
* All work packages that were assigned to version 12.1 and all work packages that have been added or removed since a specific date.
`Note: The largest uncertainty when planning and estimating this feature comes from the performance requirements. We need to ensure that this feature also works for large organizations that have large data sets with a high number of concurrent requests.`
## Extend work package filters to request historic values from the API
* Extend the view to allow users to query a date (in the past)
* A specific date and hour:
* **\[open\]** What granurality, reconfirm with devs.
* We might have to directly display a date/hour picker as a modal.
* ~~B: A relative date, e.g:~~
* ~~24 hours~~
* ~~1 week~~
* ~~1 month~~
* Rebuild work package queries to allow requesting a list of relevant work packages, including the changes.
<img class="op-uc-image op-uc-image_inline" src="/api/v3/attachments/52535/content">
## Extend the work packages list view to display changes
* Changes to the following work package core attributes are highlighted in a diff view.
* Status
* Assignee
* Accountable
* Project
* Start date
* Finish date
* Type
* Priority
* Subject
* Version
* Work packages that were added or removed within the specified time period, ie, between the comparison date and today, are highlighted (e.g. deliverables that were added to the project scope or features that were removed from a release).
* List the number of attributes that have been changed in that time period. This number also includes changes to the work package description, the details of which which are not shown in the list view.
## Front-end changes
<figure class="image op-uc-figure"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/52534/content"></div></figure>
#### **Toolbar icon:**
* Add a new dropdown button with
* With left icon "baseline" (new)
* Right icon (up/down, similar to the Create or Table/GANTT/Cards buttons)
* Clicking on this button triggers a drop modal, with this structure:
* A selector field with label "Show changes" and a switch to the right.
* This is off by default, and all the other fields in the modal are also disabled until this switch is enabled.
* A short text (Body Small/Regular, Grey 2): "View changes made to work packages in the current
* A form item with label "Changes since" and a dropdown with these options:
* yesterday (default)
* last working day
* last week
* last month
* a specific date
* between two specific dates
* A form item with label "Time" and an HTML input (type time),
* format "hh:mm"
* Input text by default is the current local time
* \[open\] The bottom text is the user timezone, eg. "CET (UTC +1)"
* Action bar (grey background)
* with one button "Apply" (primary, no icons)
* this button disabled by default and only enabled if there are changes to
#### **Modal behaviour**
* The "Show changes" switch on top enables the show changes/baseline mode (see below for how it affects table view)
* Disabling this exists changes mode and disables all fields in the modal (except the action bar), but preserves entered values
<img class="op-uc-image op-uc-image_inline" src="/api/v3/attachments/52539/content"><img class="op-uc-image op-uc-image_inline" src="/api/v3/attachments/52537/content">
* These options do not inherently change the structure of the modal and set the comparison time to:
* yesterday (default, current
* last working day (current date - n days, where n is non-working days)
* last week (current date - 7 days)
* last month (same day and year but current month - 1)
* These options do change the structure of the modal:
* a specific date
* between two specific dates
* Option "a specific date" adds:
* a "Date" field
* Standard date picker date field, with a 'Today' link underneath
* a mini calendar underneath
* with current month open by default
* clicking on any day changes the value of the "Date" field
* non-working days are displayed but enabled/clickable
* Option "between two specific dates" replaces the "Time" field with a range
* There are two sets of Date/time fields, with labels "From" and "To"
* The first field is a standard date picker date field, with a 'Today' link underneath
* The time field is the same as described earlier but without the "Time" label
* Below each set of Date/field field is a mini-calendar that looks and works the same as a work package range date picker:
* two months showing (current and next month)
* a previous button (left arrow)
* non-working days are displayed but enabled/clickable
* Either the
<img class="op-uc-image op-uc-image_inline" src="/api/v3/attachments/52547/content"><img class="op-uc-image op-uc-image_inline" src="/api/v3/attachments/52548/content"><img class="op-uc-image op-uc-image_inline" src="/api/v3/attachments/52549/content">
<img class="op-uc-image op-uc-image_inline" src="/api/v3/attachments/52538/content">
#### **Show changes mode indicator**
When the "Show changes" mode is enabled:
<img class="op-uc-image op-uc-image_inline" src="/api/v3/attachments/52540/content">
* There is show changes mode indicator underneath the toolbar: a rectangular area with stroke (Grey 4, 1 px), with 0.75 rem top/bottom margin and 1 rem left/right margin.
* On the left edge, the text: "Changes since {date} {time}"
* On the right edge, legends:
* add icon (Feedback/Success/Dark, 16px), with label "Now meets filter criteria ({number of work packages concerned})"
* minus1 icon (Basic/Grey 1, 16px), with label "No longer meets filter criteria ({number of work packages concerned})"
* arrow-left-right icon (Feedback/Info/Dark, 16px), with label "Maintained with changes ({number of work packages concerned})"
#### **Work package table list**
When the "Show changes" mode is enabled:
<figure class="image op-uc-figure"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/52541/content"></div></figure>
* A new column is
* The header is the baseline icon
* The column can have one of four values:
* blank: when there are no changes in the comparison period
* the green add icon: when the work package has been added to the view in the comparison period
* the grey minus1 icon: when the work package has been removed from the view in the comparison period
* or arrow-left-right icon: when the work package is maintained in the view in the comparison period, but modifications were made
* On hover of these icons, a tooltip is displayed with these text values:
* addition: "Added to view within the comparison time period"
* removal: "Removed from view within the comparison time period"
* modification: "Modified within the comparison time period"
* For modifications to values of columns visible in the table (amongst attributes that are tracked by this feature)
* The value is now displayed in two lines:
* Line 1: the original value is displayed in Caption/Regular, Grey 3, with strikethrough
* this is true of all kinds of values, including type, status and assignee
* Line 2: the new value in Body Small/Bold, Grey 1, with these particularities:
* new type and new status are displayed in their normal style
* assignee is displayed with the mini avatar, but in a smaller 20 × 20px instead of the regular 24 × 24 px
#### **Mobile view**
In the mobile view of the work package table list:
<figure class="image op-uc-figure" style="width:320px;"><div
* the "Changes" button in the toolbar is not visible
* it is hidden behind the more icon
* the Show changes mode indicator _is_ visible when active but
* the legends are not shown
* the "Changes since {date} {time}" line is centred
* cards are displayed as described below
#### **Cards view**
<img class="op-uc-image op-uc-image_inline" src="/api/v3/attachments/52545/content"><img class="op-uc-image op-uc-image_inline" src="/api/v3/attachments/52543/content"><img class="op-uc-image op-uc-image_inline" src="/api/v3/attachments/52544/content">
* In the work package cards view, changes are indicated with icons described above but that are:
* displayed to the right of the status
* this is true for desktop as well as mobile views
#### **Work package table configuration**
In the work package table configuration modal:
<img class="op-uc-image op-uc-image_inline" src="/api/v3/attachments/52546/content">
* There is a new tab titled "Show changes"
* This tab has the same settings as the the Show changes modal
## ~~Notes (no longer relevant, archived 14.03.2023)~~
* ~~Better
* ~~Show
* ~~Enabling
* _~~**\[to
* _~~"Additions"
* _~~"Removals"
* ~~**NOTE:
* _~~**\[to
* _~~"New
* _~~Baseline,
* _~~Option:
* ~~**NOTE:
* ~~And
* ~~**\[open\]**
* ~~Need
* ~~We
* ~~**\[open\]**
* ~~What
* ~~Add:~~
* ~~Subject
* ~~"Buy beer"~~
* ~~"Buy coffee"~~
* ~~Can
* ~~**\[open\]**
* ~~If not, how do we indicate in a list view that something has changed? (Or if it's not tracked, how do we let the user know that this is not tracked)~~
## Figma link
* Before baseline
* Set up baseline (modal)
* Illustrate status changes: eg. merged, tests (QA tester, show progress)
* Illustrate: date changes (what was delayed?)
* After baseline (showing different kinds of changes)
* GANTT
## Out of scope for this epic
* Filter for only things that have been added/removed (red or green rows).
* Cannot filter to show only things that have been moved from status A to status B.
* Track changes of relations between work packages.
* Board view and team planner views.
* Extend the Gantt view to display the changes
* Start and/or finish date was moved to the past.
* Start and/or finish date was moved to the future.
* Start and/or finish date was added
* Start and/or finish date was removed.
## Figma link
https://www.figma.com/file/RkQ2T9f5yrXH3srz8SP8vv/?node-id=0%3A1