feat: add exact shifts display in worker details and update HTML export functionality
This commit is contained in:
@@ -5175,6 +5175,10 @@ class RotaBuilder(object):
|
||||
l4.extend([worker.fte for worker in self.workers])
|
||||
wr.writerow(l4)
|
||||
|
||||
l5 = ["Exact Shifts"]
|
||||
l5.extend([json.dumps(getattr(worker, "exact_shifts", {})) for worker in self.workers])
|
||||
wr.writerow(l5)
|
||||
|
||||
for week, day in self.get_week_day_combinations():
|
||||
d = [f"Week {week} Day {day}"]
|
||||
|
||||
@@ -5504,9 +5508,7 @@ class RotaBuilder(object):
|
||||
# --- Highlight force assigned shifts ---
|
||||
if force_assigned:
|
||||
css_class += " force-assigned"
|
||||
title = f"{shift_name} ({d}) [FORCE ASSIGNED]"
|
||||
else:
|
||||
title = f"{shift_name} ({d})"
|
||||
title = f"{title} [FORCE ASSIGNED]"
|
||||
|
||||
bank_holiday = ""
|
||||
if d in self.bank_holidays:
|
||||
@@ -5546,8 +5548,9 @@ class RotaBuilder(object):
|
||||
if shift.has_constraint(NightConstraint):
|
||||
css_class = " ".join((css_class, "night-shift"))
|
||||
|
||||
title_escaped = title.replace("'", "'").replace('"', """)
|
||||
shift_tds.append(
|
||||
f"<td title='{','.join(shift_names)} ({d})' class='rota-day {css_class}'"
|
||||
f"<td title='{title_escaped}' class='rota-day {css_class}'"
|
||||
f" data-shift='{','.join(assigned_shift_names)}'"
|
||||
f" data-shift-display='{','.join(shift_names)}'"
|
||||
f" data-available='{available}'"
|
||||
@@ -5758,6 +5761,7 @@ class RotaBuilder(object):
|
||||
data-weekend-sat='{weekend_sat}'
|
||||
data-weekend-sun='{weekend_sun}'
|
||||
data-previous-shifts='{previous_shifts}'
|
||||
data-exact-shifts='{exact_shifts}'
|
||||
data-shift-diff='{shift_diff}'
|
||||
data-shift-diff-summed='{shift_diff_summed}'
|
||||
>
|
||||
@@ -5781,6 +5785,7 @@ class RotaBuilder(object):
|
||||
weekend_sun=sun_count,
|
||||
worker_summary_html=worker_summary_html,
|
||||
previous_shifts=json.dumps(prior_map),
|
||||
exact_shifts=json.dumps(getattr(worker, "exact_shifts", {})),
|
||||
pair=worker.pair,
|
||||
shift_balance_extra=json.dumps(worker.shift_balance_extra),
|
||||
shift_diff=json.dumps(shift_diff_dict),
|
||||
|
||||
Reference in New Issue
Block a user