Content
View differences
Updated by Parimal Satyal over 4 years ago
**As a** project member,
**I want to** be able to visualise work packages in a weekly calendar view across multiple sub-projects, and order them by assignee
**so that** I have a clear vision of who does what and when, and have a clear view of resource availability.
**Note**
The Team planner is an initial (first stage) implementation a larger evolution the planning that will be implemented in a multi-step process. At this stage, it will only display the planner in a weekly view.
_This work package is a work in progress, specification is not yet complete._
####
#### **Acceptance Criteria**
**The module**
There is a new module called "Team planner".
* This has to be enabled and has three permissions: its own permissions.
* As with boards, we'll have a "View team planner"
* and "Manage team planner" planner". That would mean that all team planners are public all the time. There is no possibility to configure a team planner and
* Make save it public/private (phrasing to be confirmed)
* for oneself only (for now).
The work package module will have to be active for whenever the team planner to be active. is activate.
* Is also based on fullcalendar.io but is separate from the Calendar module.
This new module, once enabled, is visible in the sidebar as "Team planner":
* Clicking on "Team planner" ~~Now loads a table of team planners (similar to boards) in the project sidebar drills into the "Team planner" sub-menu. main view.~~
* The first item is a back button with ~~In the title "Team planner"
* In this sub-menu, there are four possible headers in main view, the sidebars: table has these columns: "Name", "Created on", "Assignees":~~
* "Favorite team planners" visible only if there are team planners ~~The assignees column will list the number of assignees added to that have been favourited planner.~~
* "Public team planners" lists all saved team planners that are public
* "Private team planners" lists all team planners that are marked ~~Each column has a "Delete" button as not public
* The "Create team planner" only ever has on the last item (New team planner)
* The "first" team planner (so the first of either the favorited ones, public ones or the private ones, in that order) will the one that will be automatically loaded. row.~~
* If there are no existing team planners, Drills into the 'New team planner' "Team planner" item under "Create team planner" is loaded automatically. in the sidebar with previously saved planners.
* Within each view, "The first" on that list would then be the list of team planners is arranged alphabetically, first when sorted alphabetically allowing users to also prepend numbers to govern this
* this. This top-most planner is loaded automatically. To navigate to other saved planners, the user has to pick a different planner from the sidebar.
* The last header There is a sidebar entry at the end of the list with the title "Create new planner" has only one item, "New team planner". This is essentially the "Create" function (now that we don't have an index/list view for this v1).
**A basic (empty calendar)** **Create new calendar**
Clicking on "Create new planner" loads an empty planner.
* The top header is by default in edit mode, much like when the user creates a new board; the user is able to type a name for the calendar and click on the save icon to save the calendar.
* _Note: there There is no back button at (as is the level of this top header (unlike case when a new board is created; this should eventually also be changed in the boards)._ boards).
* The right side of the top header has three two buttons:
* The standard "filter" action, with two specifities
* The assignee attribute is disabled/not available
* The time frame attribute is disabled/not available action (with the "assignee" filter disabled)
* The full-screen icon.
* The "more" action with three vertically-stacked dots, with these functions (that exist already today in the context of work package list/table view).
* Rename
* Save
* Save as
* Delete
* Visibility settings dots (contents to be determined)
* The secondary toolbar has these elements, and is common to new and existing calendars:
* On the left edge:
* Left/right buttons to go forwards and backwards in time (in increments of week or month, depending on the current view)
* A "today" button to return to today
* The standard filter button (that works like filters elsewhere, notably in work packages list view)
* Centered:
* The current date range visible, either the month ("August 2021") or a week ("6–10 August 2021")
* ~~On the right edge:~~
* ~~A switch to select between "Planning view" and "Month view" (please note that the planning view is limited to a weekly view for the moment)~~
~~**Changes to the existing calendar module**~~ **(to be migrated to another work package)**
~~The month calendar view is similar to the current view, with notably these differences:~~
* No filters are enabled by default ~~The work package "strips" have been upgraded with new functionalities and behaviour:~~
* ~~The ability to drag them to change start/end dates (keeping the duration the same)~~
* ~~Extend left and right edges to change start/end dates~~
* ~~A hover displays work package information in an overlay (current behaviour)~~
* ~~A click opens the work package in a new team planner split screen view~~
* ~~The colour of the strip corresponds to... **FILL**~~
* The ~~Each calendar area is empty in date has four possible states, each visually distinct form one another:~~
* ~~Inactive (not part of the current month), with a new team planner (no work packages are visible since no assignees are added yet) grey background, without day numbers~~
* There is ~~Active (part of the current month), with a message on the calendar that says "Add assignees to set up your team planner."
light blue background, with day numbers~~
* An "Add assignee" button allows users to add assignees to get started (this button is described below). ~~Today, highlighted with a yellow background, with day number~~
* ~~Hover, with a light blue background, with day number~~
**Main view**
The calendar week view is the main view:
* There is an "Assignee" column on the left edge
* The other columns are dates, displayed as "{day name} - {date number}", as in "Monday - 9".
* This is shortened to "Mon - 9" in smaller windows when the cell is not wide enough to display the full version.
* The current date is highlighted also in the column header, with the same yellow highlight as in the currect calendar. highlight.
* As soon as assignees are added (and filters optionally enabled), Only work packages are displayed as strips (as they are currently in assigned to assignees that the Calendar module), user adds to the calendar will be visible. This means:
* Please see next section "Work package strips" for details.
By default, an empty calendar will have zero assignees
* There is no upper limit an empty state that reminds the user to how many strips are displayed per assignee row. (**Open:** there should probably be a technical upper limit). add assignees. ("Add assignees to set up your team planner.")
* There is an "Add assignee" button at the bottom, on to the left edge. left.
**Work package strips** **Add assignee button (to be updated)**
* A work package strip is a visual representation of Clicking the work package in the calendar part of the team planner.
"Add assignee" button displays an overlay with:
* A basic strip is almost identical to a work package strip in the current Calendar view.
* It starts on the start date and extends till the end date (either of which can be out of view)
* There is one line of text that represents the work package name
* The background colour represents the work package type title ("Add assignee")
* A milestone is displayed:
* As a strip spanning a single day, that can be dragged around to change date or assignee, but does not have the drag edges (and thus cannot be resized; the duration is always 1 day).
* This strip has additional features not yet available in calendar view:
* Small "drag handles" close button on either end that allow the user to extend the work package to the left or to the right, in order to to change start/end
* The ability to drag an existing work package horizontally, to adjust the start and end dates (whilst keeping the duration constant)
* The ability to drag a work package from one row to another to assign it to another user (can also be done simulaneously with a horizotal scroll, ie., one can move the start date and change assignee in one drag-and-drop movement).
* Clicking on a work package strip opens it in a classic split screen view (see below).
**Split screen view**
The split screen view is invoked either when:
* a new work package is created
* a work package strip is clicked to view its details
The split screen behaves like it does in a work package list view:
* It anchors itself to the top right edge
* It pushes the main view (secondary header + calendar) to the left, and introduces a horizontal scroll A search bar
* Allows the user to change any attributes that they have the permission to change
* Any changes to the start/end dates or assignee are reflected immediately (**Open:** how immediately?) on the calendar view.
**Add assignee button (to be updated)**
Clicking on it adds a row to the calendar, with focus on the the assignee name search input:
* As the user starts typing, a list of users who correspond to the search terms displayed as:
* An avatar and
* Their full name
* Clicking on a particular user assigns the newly added adds a row to the Planning view for that assignee, keeping its position (last row).
in an alphabetical order **(or order of adding?)**
* On refresh, the If adding groups as assignee rows are re-organised alphabetically?
**Open:** is relatively easy (from a dev pov), this a good idea? Or shall we keep the order should be possible. In this case, individuals in which assignees were added?
* It is possible to add a that group as an assignee. can nevertheless be added separately. (This allows the user to take a work package assigned to a group and assign it to a particular member of that group).
* Individuals in that group can nevertheless be added separately.
* The work packages in the group row then only show those explicitly assigned to the group, not those assigned to members of that group
**Features specific to planning view (to be updated)**
Planning view, once assignees have been added, affords the users more functionalities than is available in month view:
* Hovering on the cell with the name and avatar of the assignee displays a "remove" icon, that allows users to remove that assignee from the current view.
* "Today" is no longer one cell, but an entire column, all of which is highlighted with a light yellow background.
* Work packages are arranged by assignees. They can be stacked, up to 5 per assignee. ("Error handling and exceptions" describes behaviour for when there are more than 5 work packages for any assignee).
* As in the month view, work package strips can be extended on either end (left or right) to change start/end dates but they can also
* Be dragged from one row to another to assign it to another user
* **Open -** Drag and drop to alter the start/end date is not described
* **Open -** When dragging a work package that spans more than the week, so that the start and end date is not displayed. How is feedback provided to the user when dragging the work package?
* **Open -** The row will have a min height of x but can grow almost arbitrarily (see Open in "Error handing")
* **Open -** If the height of taken up by the assignee rows is more than the available screen height, scrolling is to be applied. On which element is the vertical scrolling applied?
* **Open -** In case two work packages displayed on the same planning calendar at the same time are in a follows/precedes relationship. How does the software communicate the changes to the following relationship upon changing the dates of the preceding work package?
* **Open -** How are changes to the dates via the split view reflected in the calendar?
* **Open -** How to communicate that a work package cannot be dragged e.g. because of:
* the user not having the permission to edit work packages (the permissions might be different for two work packages within the same team planner if they are in different projects)
* the work package being a parent
* the work package having a locked status
* a constraint imposed by relationships on the start date is violated
* **Open -** Are milestone work packages displayed differently? How to communicate that the duration cannot be changed but the date and assignee can.
**For individual day cells:**
* Right-clicking (or clicking) on a date cell, which will be in its hover state, will load a "Quick add" overlay:
* A title ("Quick Add")
* A close button on the top right edge
* A search bar
* As the user starts typing, a list of work packages that correspond to the search terms displayed, one per row with:
* The avatar of the author
* Type
* Title/subject
* Project
* #ID
* Status
* **Open -** It was discussed whether we rather use the split view for creating new work packages. On choosing to add a new work package, the split view could be opened with the assignee and the dates already filled in. This would allow to handle the edge case of e.g. mandatory custom fields.
**Enterprise edition**
* The team planner will be an enterprise only feature. _(**Note:** Challenged by comment by <mention class="mention" data-id="9177" data-type="user" data-text="@Oliver Günther">@Oliver Günther</mention> on <mention class="mention" data-id="40038" data-type="work_package" data-text="#40038">#40038</mention>)._
* The calendar module will be kept non enterprise with all improvements carried over from team planner included (e.g. persisting filters)
~~**Changes to the existing calendar module**~~ **(to #### **Error handling and exceptions (to be migrated to another work package)** completed)**
~~The month calendar view is similar to the current view, with notably these differences:~~ **Exceptions**
* ~~The In both month and planning views, when any row has more than 5 work package "strips" have been upgraded with new functionalities and behaviour:~~ packages that need to be displayed, only those 5 are displayed initially.
* ~~The ability A "And {x} more..." strip communicates to drag them to change start/end dates (keeping the duration the same)~~ users that there are additional work packages that are hidden
* ~~Extend left Clicking on this will expand the row and right edges to change start/end dates~~ also display those additional work packages (so that that row now has than 5 maximum work packages)
* ~~A hover displays There is currently no defined upper limit to the number of work package information packages that can be displayed in an overlay (current behaviour)~~ one row with this mechanism.
* ~~A click opens **Open -** the proposal to show all the work package packages has been discussed and agreed upon. There might still be the need for an upper limit though (e.g. 100 work packages in a split screen view~~ cell).
* ~~The colour of **Open -** it might not be possible using FullCalendar means to display the "And {x} more ..." strip corresponds to... **FILL**~~
* ~~Each calendar spanning the complete line. Possibly, this can only be displayed per date has four possible states, each visually distinct form one another:~~
* ~~Inactive (not part of the current month), with a grey background, without day numbers~~
* ~~Active (part of the current month), with a light blue background, with day numbers~~
* ~~Today, highlighted with a yellow background, with day number~~
* ~~Hover, with a light blue background, with day number~~ cell.
#### **Error handling and exceptions (to be completed)**
**Error management** (to be completed)
* When adding new work packages
* Assignee already set
* Dates already set
* Assignee/dates already set
* The work package has been invalid before, e.g. a required custom field is not set
* When dragging work packages
* The work package has been invalid before, e.g. a required custom field is not set
* Moving the work package would violate a constraint (e.g. a preceding work package limiting the start date)
**Mobile**
* **Open -** There will not be support for this on mobile. How do we hide the feature?
**Visuals**
_To be added after discussion/exchange within the product team_
**Out of scope**
* Views other than weekly (including the two-week view)
* The ability to identify assignees with overdue work packages (and view those in an overlay)
* More detailed work package strips that display important attributes without needing a hover
* Work package planning stages (done, planned, overdue)
* Altering the order of assignees by dragging-and-dropping entire assignees rows
* A shortlist of work packages form which the user can drag and drop work packages to the calendar (and a way to filter this shortlist)
* Any form of automation (associating certain work package status with certain planning stages)
**Mockups in Figma**
_Figma mock-ups might not yet have been updated to reflect changes described in this work package:_
https://www.figma.com/file/409d6qR685SzZLXez4TPl7/?node-id=614%3A26487
_(Please note that the relevant screens are on the "Team planner" page; the above links takes you to the correct page)._
**I want to** be able to visualise work packages in a weekly calendar view across multiple sub-projects, and order them by assignee
**so that** I have a clear vision of who does what and when, and have a clear view of resource availability.
**Note**
The Team planner is an initial (first stage) implementation a larger evolution the planning that will be implemented in a multi-step process. At this stage, it will only display the planner in a weekly view.
_This work package is a work in progress, specification is not yet complete._
####
#### **Acceptance Criteria**
**The module**
There is a new module called "Team planner".
* This has to be enabled and has three permissions:
*
*
* Make
*
* Is also based on fullcalendar.io but is separate from the Calendar module.
This new module, once enabled, is visible in the sidebar as "Team planner":
* Clicking on "Team planner"
* The first item is a back button with
* In this sub-menu, there are four possible headers in
* "Favorite team planners" visible only if there are team planners
* "Public team planners" lists all saved team planners that are public
* "Private team planners" lists all team planners that are marked
* The "Create team planner" only ever has on
* The "first" team planner (so the first of either the favorited ones, public ones or the private ones, in that order) will the one that will be automatically loaded.
* If there are no existing team planners,
* Within each view,
*
* The last header
**A basic (empty calendar)**
Clicking on "Create new planner" loads an empty planner.
* The top header is by default in edit mode, much like when the user creates a new board; the user is able to type a name for the calendar and click on the save icon to save the calendar.
* The right side of the top header has three
* The standard "filter" action, with two specifities
* The assignee attribute is disabled/not available
* The time frame attribute is disabled/not available
* The full-screen icon.
* The "more" action with three vertically-stacked dots, with these functions (that exist already today in the context of work package list/table view).
* Rename
* Save
* Save as
* Delete
* Visibility settings
* The secondary toolbar has these elements, and is common to new and existing calendars:
* On the left edge:
* Left/right buttons to go forwards and backwards in time (in increments of week or month, depending on the current view)
* A "today" button to return to today
* The standard filter button (that works like filters elsewhere, notably in work packages list view)
* Centered:
* The current date range visible, either the month ("August 2021") or a week ("6–10 August 2021")
* ~~On the right edge:~~
* ~~A switch to select between "Planning view" and "Month view" (please note that the planning view is limited to a weekly view for the moment)~~
~~**Changes to the existing calendar module**~~ **(to be migrated to another work package)**
~~The month calendar view is similar to the current view, with notably these differences:~~
* ~~The ability to drag them to change start/end dates (keeping the duration the same)~~
* ~~Extend left and right edges to change start/end dates~~
* ~~A hover displays work package information
* ~~A click opens the work package in
* ~~The colour of the strip corresponds to... **FILL**~~
* The
* ~~Inactive (not part of the current month), with
* There is
* ~~Hover, with a light blue background, with day number~~
**Main view**
The calendar week view is the main view:
* There is an "Assignee" column on the left edge
* The other columns are dates, displayed as "{day name} - {date number}", as in "Monday - 9".
* This is shortened to "Mon - 9" in smaller windows when the cell is not wide enough to display the full version.
* The current date is highlighted also in the column header, with the same yellow highlight as in the currect calendar.
* As soon as assignees are added (and filters optionally enabled),
* Please see next section "Work package strips" for details.
* There is an "Add assignee" button at the bottom, on
**Work package strips**
* A work package strip is a visual representation of
* It starts on the start date and extends till the end date (either of which can be out of view)
* There is one line of text that represents the work package name
* The background colour represents the work package type
* A milestone is displayed:
* As a strip spanning a single day, that can be dragged around to change date or assignee, but does not have the drag edges (and thus cannot be resized; the duration is always 1 day).
* This strip has additional features not yet available in calendar view:
* Small "drag handles"
* The ability to drag an existing work package horizontally, to adjust the start and end dates (whilst keeping the duration constant)
* The ability to drag a work package from one row to another to assign it to another user (can also be done simulaneously with a horizotal scroll, ie., one can move the start date and change assignee in one drag-and-drop movement).
* Clicking on a work package strip opens it in a classic split screen view (see below).
**Split screen view**
The split screen view is invoked either when:
* a new work package is created
* a work package strip is clicked to view its details
The split screen behaves like it does in a work package list view:
* It anchors itself to the
* It pushes the main view (secondary header + calendar) to the left, and introduces a horizontal scroll
* Allows the user to change any attributes that they have the permission to change
* Any changes to the start/end dates or assignee are reflected immediately (**Open:** how immediately?) on the calendar view.
**Add assignee button (to be updated)**
Clicking on it adds a row to the calendar, with focus on the the assignee name search input:
* As the user starts typing, a list of users who correspond to the search terms displayed as:
* An avatar and
* Their full name
* Clicking on a particular user assigns the newly added
**Open:** is
* It is possible to add a
* Individuals in that group can nevertheless be added separately.
* The work packages in the group row then only show those explicitly assigned to the group, not those assigned to members of that group
**Features specific to planning view (to be updated)**
Planning view, once assignees have been added, affords the users more functionalities than is available in month view:
* Hovering on the cell with the name and avatar of the assignee displays a "remove" icon, that allows users to remove that assignee from the current view.
*
* Work packages are arranged by assignees. They can be stacked, up to 5 per assignee. ("Error handling and exceptions" describes behaviour for when there are more than 5 work packages for any assignee).
* As in the month view, work package strips can be extended on either end (left or right) to change start/end dates but they can also
* Be dragged from one row to another to assign it to another user
*
* **Open -**
* **Open -** The row will have a min height of x but can grow almost arbitrarily (see Open in "Error handing")
* **Open -** If the height of taken up by the assignee rows is more than the available screen height, scrolling is to be applied. On which element is the vertical scrolling applied?
* **Open -** In case two work packages displayed on the same planning calendar at the same time are in a follows/precedes relationship. How does the software communicate the changes to the following relationship upon changing the dates of the preceding work package?
* **Open -** How
* **Open -** How to
* the user not having the permission to edit work packages (the permissions might be different for two work packages within the same team planner if they are in different projects)
* the work package being a parent
* the work package having a locked status
* a constraint imposed by relationships on the start date is violated
* **Open -** Are milestone work packages displayed differently? How to communicate that the duration cannot be changed but the date and assignee can.
**For individual day cells:**
* Right-clicking (or clicking) on a date cell, which will be in its hover state, will load a "Quick add" overlay:
* A title ("Quick Add")
* A close button on the top right edge
* A search bar
* As the user starts typing, a list of work packages that correspond to the search terms displayed, one per row with:
* The avatar of the author
* Type
* Title/subject
* Project
* #ID
* Status
* **Open -** It was discussed whether we rather use the split view for creating new work packages. On choosing to add a new work package, the split view could be opened with the assignee and the dates already filled in. This would allow to handle the edge case of e.g. mandatory custom fields.
**Enterprise edition**
* The team planner will be an enterprise only feature. _(**Note:** Challenged by comment by <mention class="mention" data-id="9177" data-type="user" data-text="@Oliver Günther">@Oliver Günther</mention> on <mention class="mention" data-id="40038" data-type="work_package" data-text="#40038">#40038</mention>)._
* The calendar module will be kept non enterprise with all improvements carried over from team planner included (e.g. persisting filters)
~~**Changes to the existing calendar module**~~ **(to
~~The month calendar view is similar to the current view, with notably these differences:~~
* ~~The
* ~~The ability
* ~~Extend left
* ~~A hover displays
* ~~A click opens
* ~~The colour of
* ~~Each calendar
* ~~Inactive (not part of the current month), with a grey background, without day numbers~~
* ~~Active (part of the current month), with a light blue background, with day numbers~~
* ~~Today, highlighted with a yellow background, with day number~~
* ~~Hover, with a light blue background, with day number~~
#### **Error handling and exceptions (to be completed)**
**Error management** (to be completed)
* When adding new work packages
* Assignee already set
* Dates already set
* Assignee/dates already set
* The work package has been invalid before, e.g. a required custom field is not set
* When dragging work packages
* The work package has been invalid before, e.g. a required custom field is not set
* Moving the work package would violate a constraint (e.g. a preceding work package limiting the start date)
**Mobile**
* **Open -** There will not be support for this on mobile. How do we hide the feature?
**Visuals**
_To be added after discussion/exchange within the product team_
**Out of scope**
* Views other than weekly (including the two-week view)
* The ability to identify assignees with overdue work packages (and view those in an overlay)
* More detailed work package strips that display important attributes without needing a hover
* Work package planning stages (done, planned, overdue)
* Altering the order of assignees by dragging-and-dropping entire assignees rows
* A shortlist of work packages form which the user can drag and drop work packages to the calendar (and a way to filter this shortlist)
* Any form of automation (associating certain work package status with certain planning stages)
**Mockups in Figma**
_Figma mock-ups might not yet have been updated to reflect changes described in this work package:_
https://www.figma.com/file/409d6qR685SzZLXez4TPl7/?node-id=614%3A26487
_(Please note that the relevant screens are on the "Team planner" page; the above links takes you to the correct page)._