Content
View differences
Updated by Parimal Satyal over 4 years ago
# Problem
* It is currently hard to create project schedules as when work packages span a weekend. In these cases the weekend days are counted as normal working days.
* When projects change the start day of a work package the calculation of the finish date does not take into account any non-working days between the start and the finish date.
> **Example:** A task starts on Monday and finishs on Friday. If the task is delayed by one day the finish date is set for the Saturday. Since Saturday is a non-working day in this scenario the more accurate calculation for the finish date would be Monday.
# Solution
* For each each instance, installation an admin Admin can configure set a default working weekdays, week days which applies to is preset for all projects in that instance. projects.
* In addition, Also a monthly or yearly calendar view will allow the admin can also configure Admin to add non-working days (such such as public holidays or company events) manually, with a weekly or a yearly calendar. events manually. This behaviour is specified in on the work package: <mention class="mention" data-id="41226" data-type="work_package" data-text="#41226">#41226</mention>
* Within From the same module to configure non-working days (with a weekly monthly or a yearly calendar), admins calendar Admins will be able to import local calendar files (ics.) or choose from a list of public holiday calendars relevant to from the selected region/country for that instance. where the instance is located. This feature behaviour is specified in on the work package: <mention class="mention" data-id="41227" data-type="work_package" data-text="#41227">#41227</mention>. data-text="#41227">#41227</mention>
* Non-working days The non-working are represented visually visualised in the front-end in the following views:
* Date picker (in several views)
* Gantt
* Calendar
* Team planner
* _\[open\] any other place ?_
* **NOTE:** This work package handles All the configuration and display rescheduling of non-working days. Actual calculation work packages dates and adaption of durations for example excluding weekends from the date selection or changing the start/end dates and date depending on the duration of the work packages by taking into account these package and the non-working days will be handled separately (and specified tackled in epic a separate EPIC related to the duration <mention class="mention" data-id="31992" data-type="work_package" data-text="#31992">#31992</mention>, which will data-text="#31992">#31992</mention> that is also be implemented in version 12.2.0). included into the release 12.2.0.
## Visuals
<figure class="image op-uc-figure" style="width:75%;"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/27750/content"></div></figure>
<figure class="image op-uc-figure" style="width:75%;"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/27751/content"></div></figure>
# Visuals of affected pages
* Date picker (_note: this is an illustration/work in progress, will almost certainly change with work on epic <mention class="mention" data-id="31992" data-type="work_package" data-text="#31992">#31992</mention>)_ picker:
<figure class="image op-uc-figure" style="width:75%;"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/27770/content"></div></figure>
* Gantt:
<figure class="image op-uc-figure" style="width:75%;"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/27771/content"></div></figure>
* Calendar:
<figure class="image op-uc-figure" style="width:75%;"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/27772/content"></div></figure>
* Team plannerĀ planner:
<figure class="image op-uc-figure" style="width:75%;"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/27769/content"></div></figure>
# **Out of Scope**
* Selecting non-working days at on a project level.
* Non-working-days at an of individual user-level. team members.
* Subscribing Subscribe to external calendars, e.g. Google calendars (that are not included in our libraries of region-based ics calendars, or uploaded manually).
* Actual calculation All the rescheduling of start and end work packages dates and duration durations based on non-working days as its part of work packages by taking in account non-working days. This will be handled in <mention class="mention" data-id="31992" data-type="work_package" data-text="#31992">#31992</mention>.
* Informing the user about non working days when they try to schedule scheduling a meeting on a non-working day. meeting.
# Implementation notes
* Frontend:
* Fetch non working days when date picker, gantt chart, calendar or planning board is opened
* Block&visualize in working days settings
* Block&visualize in date picker
* Block&visualize in gantt
* Block&visualize in calendar
* Block&visualize in team planner
* Angular based administration of non working days relying on the API
* Backend:
* model layer for non working days
* Contract and Services for non working days
* API: Introduce an index action that will fetch all non working days. There are two types of those. One type represents the recurring days (e.g. Saturday and Sunday) and one the exemptions (e.g. Christmas)
* Background job upon changes to the non working days
* Exclude non working days on schedule
* Default/Seed data
# Figma link
https://www.figma.com/file/SMzHAQWcY9k0PkTEKd5UQn/?node-id=0%3A1
* It is currently hard to create project schedules as when work packages span a weekend. In these cases the weekend days are counted as normal working days.
* When projects change the start day of a work package the calculation of the finish date does not take into account any non-working days between the start and the finish date.
> **Example:** A task starts on Monday and finishs on Friday. If the task is delayed by one day the finish date is set for the Saturday. Since Saturday is a non-working day in this scenario the more accurate calculation for the finish date would be Monday.
# Solution
* For each each instance,
* In addition,
* Within
* Non-working days
* Date picker (in several views)
* Gantt
* Calendar
* Team planner
* _\[open\] any other place ?_
* **NOTE:** This work package handles
## Visuals
<figure class="image op-uc-figure" style="width:75%;"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/27750/content"></div></figure>
<figure class="image op-uc-figure" style="width:75%;"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/27751/content"></div></figure>
# Visuals of affected pages
* Date picker (_note: this is an illustration/work in progress, will almost certainly change with work on epic <mention class="mention" data-id="31992" data-type="work_package" data-text="#31992">#31992</mention>)_
<figure class="image op-uc-figure" style="width:75%;"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/27770/content"></div></figure>
* Gantt:
<figure class="image op-uc-figure" style="width:75%;"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/27771/content"></div></figure>
* Calendar:
<figure class="image op-uc-figure" style="width:75%;"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/27772/content"></div></figure>
* Team plannerĀ
<figure class="image op-uc-figure" style="width:75%;"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/27769/content"></div></figure>
# **Out of Scope**
* Selecting non-working days at
* Non-working-days at an
* Subscribing
* Actual calculation
* Informing the user
# Implementation notes
* Frontend:
* Fetch non working days when date picker, gantt chart, calendar or planning board is opened
* Block&visualize in working days settings
* Block&visualize in date picker
* Block&visualize in gantt
* Block&visualize in calendar
* Block&visualize in team planner
* Angular based administration of non working days relying on the API
* Backend:
* model layer for non working days
* Contract and Services for non working days
* API: Introduce an index action that will fetch all non working days. There are two types of those. One type represents the recurring days (e.g. Saturday and Sunday) and one the exemptions (e.g. Christmas)
* Background job upon changes to the non working days
* Exclude non working days on schedule
* Default/Seed data
# Figma link
https://www.figma.com/file/SMzHAQWcY9k0PkTEKd5UQn/?node-id=0%3A1