diff options
Diffstat (limited to 'user/calligra/plan.patch')
-rw-r--r-- | user/calligra/plan.patch | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/user/calligra/plan.patch b/user/calligra/plan.patch new file mode 100644 index 000000000..c8f8c91fb --- /dev/null +++ b/user/calligra/plan.patch @@ -0,0 +1,48 @@ +From 36ec68024620211edbcdb31a5ef6021545fe9451 Mon Sep 17 00:00:00 2001 +From: Dag Andersen <danders@get2net.dk> +Date: Fri, 9 Feb 2018 08:40:34 +0100 +Subject: Plan: Fix crash in tj scheduler if a resource does not have a + calendar + +This can happen when there is no default calendar and no calendar has been set for a resource. +--- + plan/src/plugins/schedulers/tj/PlanTJScheduler.cpp | 9 +++++++++ + 1 file changed, 9 insertions(+) + +diff --git a/plan/src/plugins/schedulers/tj/PlanTJScheduler.cpp b/plan/src/plugins/schedulers/tj/PlanTJScheduler.cpp +index 4f4e825..548969e 100644 +--- a/plan/src/plugins/schedulers/tj/PlanTJScheduler.cpp ++++ b/plan/src/plugins/schedulers/tj/PlanTJScheduler.cpp +@@ -259,6 +259,9 @@ bool PlanTJScheduler::kplatoToTJ() + addRequests(); + addStartEndJob(); + ++ if (result != -1) { ++ return false; ++ } + return check(); + } + +@@ -596,6 +599,7 @@ TJ::Resource *PlanTJScheduler::addResource( KPlato::Resource *r) + res->setEfficiency( (double)(r->units()) / 100. ); + } + Calendar *cal = r->calendar(); ++ Q_ASSERT(cal); + DateTime start = qMax( r->availableFrom(), m_project->constraintStartTime() ); + DateTime end = m_project->constraintEndTime(); + if ( r->availableUntil().isValid() && end > r->availableUntil() ) { +@@ -887,6 +891,11 @@ void PlanTJScheduler::addRequest( TJ::Task *job, Task *task ) + return; + } + foreach ( ResourceRequest *rr, task->requests().resourceRequests( true /*resolveTeam*/ ) ) { ++ if (!rr->resource()->calendar()) { ++ result = 1; // stops scheduling ++ logError(task, 0, i18n("No working hours defined for resource: %1",rr->resource()->name())); ++ continue; // may happen if no calendar is set, and no default calendar ++ } + TJ::Resource *tjr = addResource( rr->resource() ); + TJ::Allocation *a = new TJ::Allocation(); + a->setSelectionMode( TJ::Allocation::order ); +-- +cgit v1.1 + |