Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature] Autoscheduling of tasks #14

Open
rbrannath opened this issue Jan 29, 2023 · 2 comments
Open

[Feature] Autoscheduling of tasks #14

rbrannath opened this issue Jan 29, 2023 · 2 comments

Comments

@rbrannath
Copy link

rbrannath commented Jan 29, 2023

What and why

As a user of the GLPI Gantt plugin, I would like to suggest a new feature: the ability to automatically schedule linked tasks in the Gantt view. This functionality is currently only available in the pro version gantt. Hence this plugin is not using the pro version, it is not available, but the functionality could be recreated.

The benefit of this feature is that it would allow users to quickly and easily schedule tasks within the Gantt view, without having to manually adjust the start and end dates of each task. This would save a lot of time and effort for users, especially for those working on large projects with many tasks. Additionally, autoscheduling could also help to ensure that tasks are scheduled in the most efficient and logical order, which would improve the overall productivity and organization of projects.

Things that need to be considered:

  1. There are several link types:
Type Value Description
finish to start 0 source task has to end to start the target task
start to start 1 source task has to start to start the target task
finish to finish 2 source task has to end before the target task can end
start to finish 3 source task has to start before the target task can end

'Note: finish to start' and 'start to start' are the most commonly used scenarios.

  1. Start time of target tasks can be controlled by duration, lead and lag fields
Field Unit Description
duration minute defines how much time does the task take (planned start date + duration)
lead day specifies the number of days a task start date is brought forward
lag day specifies the number of days a task is delayed
- duration (as minutes, defines how much time does the task take)
- lead (as days, specifies the number of days a task is brought forward)
- lag (as days, specifies the number of days a task is delayed

Example for finish to start link type:
Source task is updated and new planned end date is '2023-01-05 14:30:00'.

duration lead lag target planned start date
0 0 0 2023-01-05 14:30:00
200 0 0 2023-01-05 17:50:00
0 2 0 2023-01-03 14:30:00
0 0 5 2023-01-10 14:30:00
200 2 0 2023-01-03 17:50:00
200 0 5 2023-01-10 17:50:00
  1. Autoscheduling should be also possible outside the gantt view. For example, there could be a new tab inside the project task view where task links could be managed. It is arguable if this should be a core functionality of the GLPI-Core.

  2. There is already a simple form which appears when a task link is double clicked, but it only shows one input form element for the lag field. The modal should contain the fields lead and duration as well.

  3. It may be useful to exempt specific tasks from auto scheduling. If this is the case, it should be visible (e. g. by background color). A question would be, what would happen if a task not exempted anymore and if it autoschedule right away.

  4. As the gantt-library offers some config option (such as work_hours). There should be a dedicated config page where those options are managable. The config option work_hours ties closely to autoscheduling, because when a task is moved / changed end date, the following tasks would may end up on weekends (which may be unwanted). With work_hours enabled, the duration of a task only applies on that period of time.

@rbrannath
Copy link
Author

As a first attempt, I have already developed a draft regarding the basic autoschedule functionality. Please have a look at my fork of this project or the first commit:
Fork: https://github.com/rbrannath/gantt
Commit: ea69978

@rudnypc
Copy link

rudnypc commented Jun 30, 2023

As a first attempt, I have already developed a draft regarding the basic autoschedule functionality. Please have a look at my fork of this project or the first commit: Fork: https://github.com/rbrannath/gantt Commit: ea69978

Why didn't you make a pull request?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants