Remove school day hours from schedule templates

The day progress bar no longer uses day start/end times (it uses block
durations instead), so the field is no longer needed.

Removed from: Admin UI, schedule store, schedule model/schemas/router,
session broadcast payload, dashboard snapshot, and startup migrations.
DB columns are left in place (harmless, no migration required).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-03 13:45:05 -08:00
parent c05543d855
commit c565c94a23
9 changed files with 3 additions and 93 deletions

View File

@@ -11,8 +11,6 @@ export const useScheduleStore = defineStore('schedule', () => {
const blockStartedAt = ref(null) // Date.now() ms when current counting period started
const blockElapsedOffset = ref(0) // seconds already elapsed before blockStartedAt
const blockElapsedCache = ref({}) // blockId → total elapsed seconds (survives block switches)
const dayStartTime = ref(null) // "HH:MM:SS" string or null
const dayEndTime = ref(null) // "HH:MM:SS" string or null
const morningRoutine = ref([]) // list of text strings shown during greeting state
const breakActivities = ref([]) // list of text strings shown during break time
// Break timer state (per-block break time at end of block)
@@ -45,8 +43,6 @@ export const useScheduleStore = defineStore('schedule', () => {
completedBlockIds.value = snapshot.completed_block_ids || []
isPaused.value = snapshot.is_paused || false
if (snapshot.child) child.value = snapshot.child
dayStartTime.value = snapshot.day_start_time || null
dayEndTime.value = snapshot.day_end_time || null
morningRoutine.value = snapshot.morning_routine || []
breakActivities.value = snapshot.break_activities || []
// Restore elapsed time from server-computed value and seed the per-block cache
@@ -86,8 +82,6 @@ export const useScheduleStore = defineStore('schedule', () => {
blockStartedAt.value = null
blockElapsedOffset.value = 0
blockElapsedCache.value = {}
dayStartTime.value = null
dayEndTime.value = null
isBreakMode.value = false
breakStartedAt.value = null
breakElapsedOffset.value = 0
@@ -322,8 +316,6 @@ export const useScheduleStore = defineStore('schedule', () => {
blockStartedAt,
blockElapsedOffset,
blockElapsedCache,
dayStartTime,
dayEndTime,
morningRoutine,
breakActivities,
isBreakMode,

View File

@@ -229,24 +229,6 @@
<!-- Block editor -->
<div v-if="editingTemplate === template.id" class="block-editor">
<!-- Day hours -->
<div class="day-hours-row">
<span class="day-hours-label">School day hours</span>
<input
type="time"
:value="template.day_start_time ? template.day_start_time.slice(0,5) : ''"
@change="e => saveDayHours(template, 'start', e.target.value)"
placeholder="Start"
/>
<span class="day-hours-sep">to</span>
<input
type="time"
:value="template.day_end_time ? template.day_end_time.slice(0,5) : ''"
@change="e => saveDayHours(template, 'end', e.target.value)"
placeholder="End"
/>
</div>
<div class="block-list">
<template v-for="block in sortedBlocks(template.blocks)" :key="block.id">
<!-- Edit mode -->
@@ -661,13 +643,6 @@ async function deleteBlock(templateId, blockId) {
await loadTemplates()
}
async function saveDayHours(template, which, value) {
const payload = which === 'start'
? { day_start_time: value || null }
: { day_end_time: value || null }
await api.patch(`/api/schedules/${template.id}`, payload)
await loadTemplates()
}
onMounted(async () => {
await childrenStore.fetchChildren()
@@ -762,25 +737,6 @@ h2 { font-size: 1.1rem; color: #94a3b8; text-transform: uppercase; letter-spacin
.block-editor { margin-top: 1.25rem; border-top: 1px solid #334155; padding-top: 1.25rem; }
.day-hours-row {
display: flex;
align-items: center;
gap: 0.6rem;
margin-bottom: 1rem;
background: #0f172a;
padding: 0.6rem 0.85rem;
border-radius: 0.5rem;
}
.day-hours-label { font-size: 0.8rem; color: #64748b; flex: 1; }
.day-hours-sep { font-size: 0.8rem; color: #475569; }
.day-hours-row input[type="time"] {
padding: 0.35rem 0.5rem;
background: #1e293b;
border: 1px solid #334155;
border-radius: 0.4rem;
color: #f1f5f9;
font-size: 0.85rem;
}
.block-list { display: flex; flex-direction: column; gap: 0.4rem; margin-bottom: 1rem; }
.block-row { display: flex; align-items: center; gap: 0.75rem; padding: 0.5rem; background: #0f172a; border-radius: 0.5rem; }
.block-time { font-size: 0.8rem; color: #64748b; font-variant-numeric: tabular-nums; }