Skip to content

Commit 004ee69

Browse files
tmp not working
1 parent 6e89eb3 commit 004ee69

File tree

1 file changed

+47
-12
lines changed

1 file changed

+47
-12
lines changed

src/chargedPlanner/chargedPlanner.py

Lines changed: 47 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -359,7 +359,7 @@ def getRemainingEffortForFeat(self, feature: Feature) -> int:
359359
feature.__remainingEffort__ / self.__chargedWorkItems__[feature]
360360
)
361361

362-
def getEndDateForFeat(self, feature: Feature) -> date:
362+
def getEndDateForFeat_initialGuess(self, feature: Feature) -> date:
363363

364364
requireChargedDays = self.getRemainingEffortForFeat(feature)
365365

@@ -369,6 +369,23 @@ def getEndDateForFeat(self, feature: Feature) -> date:
369369
startDate=startDate, requiredWorkDays=requireChargedDays
370370
)
371371

372+
373+
def getEndDateForFeat(self, feature: Feature) -> date:
374+
375+
if feature.isLate() :
376+
377+
requireChargedDays = self.getRemainingEffortForFeat(feature)
378+
379+
startDate = datetime.today().date()
380+
381+
return self.__calendar__.getDate_after_workDays(
382+
startDate=startDate, requiredWorkDays=requireChargedDays
383+
)
384+
385+
else :
386+
return self.getEndDateForFeat_initialGuess(feature)
387+
388+
372389
def getStartDateForFirstAssignedFeat(self, filter = defaultFilter) -> date :
373390

374391
if not len(self.__chargedWorkItems__):
@@ -538,6 +555,13 @@ def getStartDateForFirstAssignedFeat(self) -> date :
538555
def getRemainingEffortForFeat(self, feature: Feature) -> int:
539556
return self.getWorkload().getRemainingEffortForFeat(feature)
540557

558+
""" returns the initial guesss for the date of end for a specific feature assigned to this dev
559+
if the feature is not late, this is equal to the end date
560+
"""
561+
562+
def getEndDateForFeat_initialGuess(self, feature: Feature) -> date:
563+
return self.getWorkload().getEndDateForFeat_initialGuess(feature)
564+
541565
""" returns the date of end for a specific feature assigned to this dev"""
542566

543567
def getEndDateForFeat(self, feature: Feature) -> date:
@@ -875,6 +899,13 @@ def getStartDate(self) -> date:
875899

876900
return self.__startDate__
877901

902+
def getEndDate_initialGuess(self) -> date:
903+
904+
if self.__assignee__ is None:
905+
raise ValueError("No assingee assigned to feature : " + self.__name__)
906+
907+
return self.__assignee__.getEndDateForFeat_initialGuess(self)
908+
878909
def getEndDate(self) -> date:
879910

880911
if self.__assignee__ is None:
@@ -1190,21 +1221,25 @@ def gantt(self) -> None:
11901221

11911222
tasks = []
11921223
for i in self.__features__:
1193-
tasks.append(
1194-
dict(
1195-
Task=i.__name__ + "_LATE_" if i.isLate() else i.__name__,
1196-
Start=i.__startDate__.__str__(),
1197-
Finish=i.getEndDate().__str__(),
1198-
Assignee=i.__assignee__.__name__,
1199-
)
1200-
)
12011224

1202-
if i.isLate() :
1225+
isLate = i.isLate()
1226+
1227+
if isLate :
1228+
12031229
tasks.append(
12041230
dict(
1205-
Task=i.__name__ + "_LATE_",
1231+
Task=i.__name__ + "_LATE_" ,
1232+
Start=i.__startDate__.__str__(),
1233+
Finish=i.getEndDate_initialGuess().__str__(),
1234+
Assignee=i.__assignee__.__name__,
1235+
)
1236+
)
1237+
1238+
tasks.append(
1239+
dict(
1240+
Task=i.__name__ + "_LATE_" if isLate else i.__name__,
12061241
Start=datetime.today().date().__str__(),
1207-
Finish=( datetime.today().date() + timedelta(days=i.__assignee__.getRemainingEffortForFeat(i))).__str__(),
1242+
Finish=i.getEndDate().__str__(),
12081243
Assignee=i.__assignee__.__name__,
12091244
)
12101245
)

0 commit comments

Comments
 (0)