Refactor RotaBuilder export functionality and enhance display of run times with improved layout

This commit is contained in:
Ross
2025-08-11 16:31:27 +01:00
parent 45837597d9
commit 3b3d432694
4 changed files with 411 additions and 54 deletions
+10 -5
View File
@@ -609,6 +609,7 @@ class RotaBuilder(object):
solve=True,
debug_if_fail: bool = False,
export=False,
export_with_timestamp=False,
solver="appsi_highs",
):
self.run_start_time = datetime.datetime.now()
@@ -628,7 +629,7 @@ class RotaBuilder(object):
self.run_end_time = datetime.datetime.now()
if export:
self.export_rota_to_html(self.name)
self.export_rota_to_html(self.name, timestamp_filename=export_with_timestamp)
def build_model(self):
# Initialize model
@@ -4234,9 +4235,11 @@ class RotaBuilder(object):
if self.run_start_time is not None and self.run_end_time is not None:
timetable.append(
f"<div>Start time: <span id='run_start_time'>{self.run_start_time:%Y-%m-%d %H:%M:%S%z}</span></div>"
f"<div>End time: <span id='run_end_time'>{self.run_end_time:%Y-%m-%d %H:%M:%S%z}</span></div>"
f"<div>Elapsed: <span id='run_elapsed_time'>{self.run_end_time - self.run_start_time}</span></div>"
"<div id='run_times_row' style='display: flex; gap: 2em; margin-bottom: 1em;'>"
f"<div id='run_start_time_cell'>Start time: <span id='run_start_time'>{self.run_start_time:%Y-%m-%d %H:%M:%S%z}</span></div>"
f"<div id='run_end_time_cell'>End time: <span id='run_end_time'>{self.run_end_time:%Y-%m-%d %H:%M:%S%z}</span></div>"
f"<div id='run_elapsed_time_cell'>Elapsed: <span id='run_elapsed_time'>{self.run_end_time - self.run_start_time}</span></div>"
"</div>"
)
timetable.append(
@@ -4621,10 +4624,12 @@ class RotaBuilder(object):
{"TEST"}
{self.locum_availability_map}
<br/>
<h3>Force assigned shifts</h3>
<details>
<summary>Force assigned shifts</summary>
<pre>
{json.dumps(force_assigned_info, indent=4)}
</pre>
</details>
<div>
</details>
<details><summary><h2>Hard Constrain Shift Min/Max</h2></summary>