Content
Updated by Jens Ulferts almost 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-day calendar which is preset for all projects.
* The calculation of the dates takes the work schedule into account (see example in the problem statement).
* Changing the work schedule triggers a rescheduling of current and future work packages.
* Warning
* Background job
* The work schedule is visualized in the front-end in the following views and those days that are non working days ought to be blocked as targets for selection (unless the work package is in manual scheduling mode):
* Prio 1: date picker
* Prio 2: Gantt
* Prio 3: Calendar
## Visuals
<figure class="image op-uc-figure" style="width:72.77%;"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/20674/content"></div></figure>
# Open
* Danger Zone for changing the work schedule. Changing the work schedule will impact your schedule.
# **Out of Scope for the MVC**
* Adding public holidays to the seed data.
* Selecting non-working days on a project level.
* Non-working-days of individual team members.
* Subscribe to external calendars, e.g. Google calendars.
* ##31992
* 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 date picker
* Block&visualize in gantt
* Block&visualize in calendar
* Block&visualize in planning board (TBD)
* 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
# 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-day calendar which is preset for all projects.
* The calculation of the dates takes the work schedule into account (see example in the problem statement).
* Changing the work schedule triggers a rescheduling of current and future work packages.
* Warning
* Background job
* The work schedule is visualized in the front-end in the following views and those days that are non working days ought to be blocked as targets for selection (unless the work package is in manual scheduling mode):
* Prio 1: date picker
* Prio 2: Gantt
* Prio 3: Calendar
## Visuals
<figure class="image op-uc-figure" style="width:72.77%;"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/20674/content"></div></figure>
# Open
* Danger Zone for changing the work schedule. Changing the work schedule will impact your schedule.
# **Out of Scope for the MVC**
* Adding public holidays to the seed data.
* Selecting non-working days on a project level.
* Non-working-days of individual team members.
* Subscribe to external calendars, e.g. Google calendars.
* ##31992
* 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 date picker
* Block&visualize in gantt
* Block&visualize in calendar
* Block&visualize in planning board (TBD)
* 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