mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-09-22 05:00:53 +00:00
fix displaying derived task durations
This commit is contained in:
@@ -184,11 +184,6 @@ class Sequence(blenderbim.core.tool.Sequence):
|
|||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def load_task_properties(cls, task=None):
|
def load_task_properties(cls, task=None):
|
||||||
def canonicalise_time(time):
|
|
||||||
if not time:
|
|
||||||
return "-"
|
|
||||||
return time.strftime("%d/%m/%y")
|
|
||||||
|
|
||||||
props = bpy.context.scene.BIMWorkScheduleProperties
|
props = bpy.context.scene.BIMWorkScheduleProperties
|
||||||
task_props = bpy.context.scene.BIMTaskTreeProperties
|
task_props = bpy.context.scene.BIMTaskTreeProperties
|
||||||
tasks_with_visual_bar = cls.get_task_bar_list()
|
tasks_with_visual_bar = cls.get_task_bar_list()
|
||||||
@@ -218,12 +213,16 @@ class Sequence(blenderbim.core.tool.Sequence):
|
|||||||
):
|
):
|
||||||
task_time = task.TaskTime
|
task_time = task.TaskTime
|
||||||
item.start = (
|
item.start = (
|
||||||
canonicalise_time(ifcopenshell.util.date.ifc2datetime(task_time.ScheduleStart))
|
ifcopenshell.util.date.canonicalise_time(
|
||||||
|
ifcopenshell.util.date.ifc2datetime(task_time.ScheduleStart)
|
||||||
|
)
|
||||||
if task_time.ScheduleStart
|
if task_time.ScheduleStart
|
||||||
else "-"
|
else "-"
|
||||||
)
|
)
|
||||||
item.finish = (
|
item.finish = (
|
||||||
canonicalise_time(ifcopenshell.util.date.ifc2datetime(task_time.ScheduleFinish))
|
ifcopenshell.util.date.canonicalise_time(
|
||||||
|
ifcopenshell.util.date.ifc2datetime(task_time.ScheduleFinish)
|
||||||
|
)
|
||||||
if task_time.ScheduleFinish
|
if task_time.ScheduleFinish
|
||||||
else "-"
|
else "-"
|
||||||
)
|
)
|
||||||
@@ -235,13 +234,13 @@ class Sequence(blenderbim.core.tool.Sequence):
|
|||||||
else:
|
else:
|
||||||
derived_start = ifcopenshell.util.sequence.derive_date(task, "ScheduleStart", is_earliest=True)
|
derived_start = ifcopenshell.util.sequence.derive_date(task, "ScheduleStart", is_earliest=True)
|
||||||
derived_finish = ifcopenshell.util.sequence.derive_date(task, "ScheduleFinish", is_latest=True)
|
derived_finish = ifcopenshell.util.sequence.derive_date(task, "ScheduleFinish", is_latest=True)
|
||||||
item.derived_start = canonicalise_time(derived_start) if derived_start else ""
|
item.derived_start = ifcopenshell.util.date.canonicalise_time(derived_start) if derived_start else ""
|
||||||
item.derived_finish = canonicalise_time(derived_finish) if derived_finish else ""
|
item.derived_finish = ifcopenshell.util.date.canonicalise_time(derived_finish) if derived_finish else ""
|
||||||
if derived_start and derived_finish and calendar:
|
if derived_start and derived_finish:
|
||||||
derived_duration = ifcopenshell.util.sequence.count_working_days(
|
derived_duration = ifcopenshell.util.sequence.count_working_days(
|
||||||
derived_start, derived_finish, calendar
|
derived_start, derived_finish, calendar
|
||||||
)
|
)
|
||||||
item.derived_duration = f"P{derived_duration}D"
|
item.derived_duration = str(ifcopenshell.util.date.readable_ifc_duration(f"P{derived_duration}D"))
|
||||||
item.start = "-"
|
item.start = "-"
|
||||||
item.finish = "-"
|
item.finish = "-"
|
||||||
item.duration = "-"
|
item.duration = "-"
|
||||||
@@ -786,21 +785,15 @@ class Sequence(blenderbim.core.tool.Sequence):
|
|||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def update_visualisation_date(cls, start_date, finish_date):
|
def update_visualisation_date(cls, start_date, finish_date):
|
||||||
def canonicalise_time(time):
|
|
||||||
return time.strftime("%d/%m/%y")
|
|
||||||
|
|
||||||
if not (start_date and finish_date):
|
if not (start_date and finish_date):
|
||||||
return
|
return
|
||||||
props = bpy.context.scene.BIMWorkScheduleProperties
|
props = bpy.context.scene.BIMWorkScheduleProperties
|
||||||
props.visualisation_start = canonicalise_time(start_date)
|
props.visualisation_start = ifcopenshell.util.date.canonicalise_time(start_date)
|
||||||
props.visualisation_finish = canonicalise_time(finish_date)
|
props.visualisation_finish = ifcopenshell.util.date.canonicalise_time(finish_date)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def get_animation_bar_tasks(cls):
|
def get_animation_bar_tasks(cls):
|
||||||
return [
|
return [tool.Ifc.get().by_id(task_id) for task_id in cls.get_task_bar_list()]
|
||||||
tool.Ifc.get().by_id(task_id)
|
|
||||||
for task_id in cls.get_task_bar_list()
|
|
||||||
]
|
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def create_bars(cls, tasks):
|
def create_bars(cls, tasks):
|
||||||
|
|||||||
@@ -227,3 +227,9 @@ def parse_duration(value):
|
|||||||
except:
|
except:
|
||||||
print("error fuzzy parsing duration")
|
print("error fuzzy parsing duration")
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
|
||||||
|
def canonicalise_time(time):
|
||||||
|
if not time:
|
||||||
|
return "-"
|
||||||
|
return time.strftime("%d/%m/%y")
|
||||||
|
|||||||
Reference in New Issue
Block a user