Remove Programs tab and all supporting code

The Programs feature is superseded by Shows, which provides a more
flexible model with schedule slots. This commit removes all Programs
code across frontend and backend:

Frontend:
- Delete admin-program-form component (ts/html/scss)
- Delete program.service.ts and program.ts interface
- Remove Programs tab, form modal, and all CRUD logic from admin
  component (ts + html)

Backend:
- Delete programs API router
- Remove Program ORM model and ProgramCreate/Update/Response schemas
- Remove programs router registration from main.py
- Remove Program from seed data, seed helpers, and truncate/reset
This commit is contained in:
2026-06-22 05:42:43 +00:00
parent eb9a00f21a
commit 9049b066ba
13 changed files with 7 additions and 622 deletions
+1 -51
View File
@@ -2,7 +2,7 @@
<div class="container">
<div class="admin-header">
<h1>Admin Dashboard</h1>
<p>Manage shows, programs, events, tiers, history, team, and community content</p>
<p>Manage shows, events, tiers, history, team, and community content</p>
</div>
<!-- Tabs -->
@@ -12,11 +12,6 @@
[class.active]="activeTab() === 'shows'"
(click)="activeTab.set('shows')"
>Shows</button>
<button
class="tab-btn"
[class.active]="activeTab() === 'programs'"
(click)="activeTab.set('programs')"
>Programs</button>
<button
class="tab-btn"
[class.active]="activeTab() === 'events'"
@@ -95,48 +90,6 @@
}
}
<!-- Programs Tab -->
@if (activeTab() === 'programs') {
@if (programs$ | async; as programs) {
<div class="tab-content">
<div class="tab-toolbar">
<h2>Programs ({{ programs.length }})</h2>
<button class="btn btn-add" (click)="openProgramForm()">+ Add Program</button>
</div>
<table class="admin-table">
<thead>
<tr>
<th>Day</th>
<th>Time</th>
<th>Title</th>
<th>Host</th>
<th>Genre</th>
<th>Actions</th>
</tr>
</thead>
<tbody>
@for (program of programs; track program.id) {
<tr>
<td>{{ program.day_label }}</td>
<td>{{ program.time }}</td>
<td>{{ program.title }}</td>
<td>{{ program.host }}</td>
<td>{{ program.genre }}</td>
<td class="actions">
<button class="btn-icon btn-edit" (click)="editProgram(program)">Edit</button>
<button class="btn-icon btn-delete" (click)="deleteProgram(program.id)">Delete</button>
</td>
</tr>
} @empty {
<tr><td colspan="6" class="empty-row">No programs yet. Click "Add Program" to create one.</td></tr>
}
</tbody>
</table>
</div>
}
}
<!-- Events Tab -->
@if (activeTab() === 'events') {
@if (events$ | async; as events) {
@@ -393,9 +346,6 @@
@if (showShowForm) {
<app-admin-show-form [editItem]="editingShow" (saved)="onShowSaved()" (closed)="onShowClosed()" />
}
@if (showProgramForm) {
<app-admin-program-form [editItem]="editingProgram" (saved)="onProgramSaved()" (closed)="onProgramClosed()" />
}
@if (showEventForm) {
<app-admin-event-form [editItem]="editingEvent" (saved)="onEventSaved()" (closed)="onEventClosed()" />
}