Hello
We would like to create all tasks in as soon as possible mode so that priorty can be managed thanks top priority field. But we have one task (project management) on our projects that are shared all along the year and so that we define as regular between dates. But this task has priority on the others. So the priorty rule between "regular between 2 dates" and as soon as possible is a problem for our scheduling.
Could you explain why "regular between 2 dates" has priority to "as soon as possible"? Why did you attach a priority notion to the planning mode as there already is the priority notion via the priorty field? This makes it more difficult to manage priorities.
How could we change this priorty rule in the code?
Thanks
When a task is defined as "Regular between dates", it means you have to plan some regular work, whatever other tasks, to be sure some time is left for these tasks.
Thats why "Regular between dates" has top most priority.
This is defined in code /model/PlanningElement, method sortPlanningElements($list).
You can remove this default behaviour
Change
$crit=($elt->idPlanningMode=='2' or $elt->idPlanningMode=='3' or $elt->idPlanningMode=='7')?'0':'1';
with
$crit='1';
I agree with you but :
When current delivery is late, the CDP must prioritize the technical activities. The "transverse" activities become less priority.
Our activities (transverse) are planned throughout the year. Occasionally technical activities must interrupt.
I use the term "Regular Between dates" for "transverse" activities throughout the year, and "as soon as possible" for technical activities.
How do you manage in my case without modifying the code to manage its priorities technical activities and "transverse" activities ?
How do you manage in my case without modifying the code to manage its priorities technical activities and "transverse" activities ?
I do not 🙁
Maybe this need would require new planning mode : "Urgent !"
This mode would mean : asap with higher priority than every other task.
Then, priority for these tasks would manage priority only between urgent tasks.
Yes it is a solution! Easy to implement in the code?
But why not give priorities to manage the priorities of different planning mode?
Easy to implement in the code?
not too hard, as is is exactly as ASAP, with just higher priority.
But why not give priorities to manage the priorities of different planning mode?
Because in most cases when you add a task as "regular between dates", you won't change priority. Therefore you really need it to be planned before other ones, even with higher priority.
Also because it is actual running way, and I don't want to change rules that may lead to change planning calculation for existing plannings.
Ok I understand.
I'm planning to test this week, to make sure the behavior is OK.
If it's OK, I'll create in the user menu (profile CDP) can choose its planning mode (with or without management priorities for planning modes)
In the code /model/PlanningElement, method sortPlanningElements($list) i don't find :
$crit=($elt->idPlanningMode=='2' or $elt->idPlanningMode=='3' or $elt->idPlanningMode=='7')?'0':'1';
but i found :
static function comparePlanningElementSimpleOld($a, $b) {
// idPlanningMode '2'=>REGUL '3'=>FULL '7'=>HALF
if ( ($a->idPlanningMode=='2' or $a->idPlanningMode=='3' or $a->idPlanningMode=='7') and
($b->idPlanningMode!='2' and $a->idPlanningMode!='3' and $a->idPlanningMode!='7') ) {
return -1;
}
if ( ( $b->idPlanningMode=='2' or $b->idPlanningMode=='3' or $b->idPlanningMode=='7') and
($a->idPlanningMode!='2' and $a->idPlanningMode!='3' and $a->idPlanningMode!='7') ) {
return +1;
}
if ($a->prioritypriority) {
return -1;
}
if ($a->priority>$b->priority) {
return +1;
}
if ($a->wbsSortablewbsSortable) {
return -1;
}
if ($a->wbsSortable>$b->wbsSortable) {
return +1;
}
return 0;
I puts in the comment section of code ?
// idPlanningMode '2'=>REGUL '3'=>FULL '7'=>HALF
if ( ($a->idPlanningMode=='2' or $a->idPlanningMode=='3' or $a->idPlanningMode=='7') and
($b->idPlanningMode!='2' and $a->idPlanningMode!='3' and $a->idPlanningMode!='7') ) {
return -1;
}
if ( ( $b->idPlanningMode=='2' or $b->idPlanningMode=='3' or $b->idPlanningMode=='7') and
($a->idPlanningMode!='2' and $a->idPlanningMode!='3' and $a->idPlanningMode!='7') ) {
return +1;
}
Thanks for your support