Add Doris Schoolhouse and clean pending homelab changes
This commit is contained in:
23
home/doris-schoolhouse/app/templates/assignment_upload.html
Normal file
23
home/doris-schoolhouse/app/templates/assignment_upload.html
Normal file
@@ -0,0 +1,23 @@
|
||||
{% extends 'base.html' %}
|
||||
{% block content %}
|
||||
<section class="card form-card">
|
||||
<h2>Assignment Upload</h2>
|
||||
<form class="stack" method="post" enctype="multipart/form-data" action="/api/assignments/intake" id="assignment-upload-form">
|
||||
<label>Class
|
||||
<select name="class_id" id="class-select" required>
|
||||
<option value="">Loading classes…</option>
|
||||
</select>
|
||||
<input type="hidden" name="class_name" id="class-name-input">
|
||||
</label>
|
||||
<label>Assignment
|
||||
<select name="assignment_name" id="assignment-select" required>
|
||||
<option value="">Pick a class first</option>
|
||||
</select>
|
||||
</label>
|
||||
<label>Version <input name="version" value="v1"></label>
|
||||
<label>Notes <textarea name="notes" rows="4" placeholder="Anything useful about this turn-in."></textarea></label>
|
||||
<label>File <input type="file" name="file" required></label>
|
||||
<button type="submit">Upload for metadata confirmation</button>
|
||||
</form>
|
||||
</section>
|
||||
{% endblock %}
|
||||
26
home/doris-schoolhouse/app/templates/base.html
Normal file
26
home/doris-schoolhouse/app/templates/base.html
Normal file
@@ -0,0 +1,26 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>{{ title or 'Doris Schoolhouse' }}</title>
|
||||
<link rel="stylesheet" href="/static/app.css">
|
||||
</head>
|
||||
<body>
|
||||
<header class="site-header">
|
||||
<div>
|
||||
<h1>Doris Schoolhouse</h1>
|
||||
<p>School intake, recordings, D2L sync, and Paperless linkage.</p>
|
||||
</div>
|
||||
<nav>
|
||||
<a href="/">Dashboard</a>
|
||||
<a href="/assignments/upload">Assignment Upload</a>
|
||||
<a href="/recordings/upload">Recording Upload</a>
|
||||
</nav>
|
||||
</header>
|
||||
<main class="page-shell">
|
||||
{% block content %}{% endblock %}
|
||||
</main>
|
||||
<script src="/static/app.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
42
home/doris-schoolhouse/app/templates/dashboard.html
Normal file
42
home/doris-schoolhouse/app/templates/dashboard.html
Normal file
@@ -0,0 +1,42 @@
|
||||
{% extends 'base.html' %}
|
||||
{% block content %}
|
||||
<section class="hero">
|
||||
<div class="card">
|
||||
<h2>Overview</h2>
|
||||
<div class="stat-grid" id="summary-stats">
|
||||
<div><strong>Courses</strong><span id="stat-courses">—</span></div>
|
||||
<div><strong>Assignments</strong><span id="stat-assignments">—</span></div>
|
||||
<div><strong>Submissions</strong><span id="stat-submissions">—</span></div>
|
||||
<div><strong>Recordings</strong><span id="stat-recordings">—</span></div>
|
||||
</div>
|
||||
<p class="muted" id="backend-note">Loading backend…</p>
|
||||
<button id="sync-button" type="button">Refresh from D2L</button>
|
||||
<p class="muted" id="sync-status">No sync run loaded yet.</p>
|
||||
</div>
|
||||
<div class="card">
|
||||
<h2>What this app currently does</h2>
|
||||
<ul>
|
||||
<li>Reads current D2L scrape data</li>
|
||||
<li>Caches course and assignment rows</li>
|
||||
<li>Stores assignment upload intake records</li>
|
||||
<li>Stores recording upload intake records</li>
|
||||
<li>Builds Paperless/n8n handoff payloads</li>
|
||||
</ul>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="three-up">
|
||||
<div class="card">
|
||||
<h2>Recent assignments</h2>
|
||||
<div id="recent-assignments" class="list-block muted">Loading…</div>
|
||||
</div>
|
||||
<div class="card">
|
||||
<h2>Recent submissions</h2>
|
||||
<div id="recent-submissions" class="list-block muted">Loading…</div>
|
||||
</div>
|
||||
<div class="card">
|
||||
<h2>Recent recordings</h2>
|
||||
<div id="recent-recordings" class="list-block muted">Loading…</div>
|
||||
</div>
|
||||
</section>
|
||||
{% endblock %}
|
||||
19
home/doris-schoolhouse/app/templates/recording_upload.html
Normal file
19
home/doris-schoolhouse/app/templates/recording_upload.html
Normal file
@@ -0,0 +1,19 @@
|
||||
{% extends 'base.html' %}
|
||||
{% block content %}
|
||||
<section class="card form-card">
|
||||
<h2>Recording Upload</h2>
|
||||
<form class="stack" method="post" enctype="multipart/form-data" action="/api/recordings/intake">
|
||||
<label>Class
|
||||
<select name="class_id" id="recording-class-select" required>
|
||||
<option value="">Loading classes…</option>
|
||||
</select>
|
||||
<input type="hidden" name="class_name" id="recording-class-name-input">
|
||||
</label>
|
||||
<label>Session date <input type="date" name="session_date" required></label>
|
||||
<label>Related assignment ID (optional) <input type="text" name="assignment_id"></label>
|
||||
<label>Notes <textarea name="notes" rows="4" placeholder="Lecture, lab, exam review, etc."></textarea></label>
|
||||
<label>WAV file <input type="file" name="file" accept="audio/wav,.wav" required></label>
|
||||
<button type="submit">Upload and queue conversion</button>
|
||||
</form>
|
||||
</section>
|
||||
{% endblock %}
|
||||
Reference in New Issue
Block a user