Content
View differences
Updated by Marc Alcobé 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 installation an Admin can set a default working week days which is preset for all projects.
* Also a monthly or yearly calendar view will allow the Admin to add non-working days such as public holidays or company events manually. This behaviour is specified on the work package: <mention class="mention" data-id="41226" data-type="work_package" data-text="#41226">#41226</mention>
* From the same monthly or yearly calendar Admins will be able to import local calendar files (ics.) or choose from a list of public holiday calendars from the region/country where the instance is located. This behaviour is specified on the work package: <mention class="mention" data-id="41227" data-type="work_package" data-text="#41227">#41227</mention>
* The non-working are visualised in the front-end in the following views:
* Date picker
* Gantt
* Calendar
* Team planner
* **NOTE:** All the rescheduling of work packages dates and durations for example excluding weekends from the date selection or changing the start/end date depending on the duration of the work package and the non-working days will be tackled in a separate EPIC related to the duration <mention class="mention" data-id="31992" data-type="work_package" data-text="#31992">#31992</mention> that is also included into the release 12.2.0.
## Visuals
<figure class="image op-uc-figure" style="width:75%;"><div op-uc-figure"><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 op-uc-figure"><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:
<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 on a project level.
* Non-working-days of individual team members.
* Subscribe to external calendars, e.g. Google calendars (that are not included in our libraries of ics or uploaded manually).
* All the rescheduling of work packages dates and durations based on non-working days as its part of <mention class="mention" data-id="31992" data-type="work_package" data-text="#31992">#31992</mention>.
* Informing about non working days when scheduling a 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 installation an Admin can set a default working week days which is preset for all projects.
* Also a monthly or yearly calendar view will allow the Admin to add non-working days such as public holidays or company events manually. This behaviour is specified on the work package: <mention class="mention" data-id="41226" data-type="work_package" data-text="#41226">#41226</mention>
* From the same monthly or yearly calendar Admins will be able to import local calendar files (ics.) or choose from a list of public holiday calendars from the region/country where the instance is located. This behaviour is specified on the work package: <mention class="mention" data-id="41227" data-type="work_package" data-text="#41227">#41227</mention>
* The non-working are visualised in the front-end in the following views:
* Date picker
* Gantt
* Calendar
* Team planner
* **NOTE:** All the rescheduling of work packages dates and durations for example excluding weekends from the date selection or changing the start/end date depending on the duration of the work package and the non-working days will be tackled in a separate EPIC related to the duration <mention class="mention" data-id="31992" data-type="work_package" data-text="#31992">#31992</mention> that is also included into the release 12.2.0.
## Visuals
<figure class="image op-uc-figure" style="width:75%;"><div
<figure class="image op-uc-figure" style="width:75%;"><div
# Visuals of affected pages
* Date 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:
<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 on a project level.
* Non-working-days of individual team members.
* Subscribe to external calendars, e.g. Google calendars (that are not included in our libraries of ics or uploaded manually).
* All the rescheduling of work packages dates and durations based on non-working days as its part of <mention class="mention" data-id="31992" data-type="work_package" data-text="#31992">#31992</mention>.
* Informing about non working days when scheduling a 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