feat: add Doris Kitchen import review workflow
This commit is contained in:
@@ -1,8 +1,11 @@
|
||||
{% extends 'base.html' %}
|
||||
{% block content %}
|
||||
<section class="hero-grid">
|
||||
<article class="card spotlight">
|
||||
<p class="section-label">Household taste</p>
|
||||
<section class="hero-grid evidence-board dossier-grid">
|
||||
<article class="card spotlight evidence-card">
|
||||
<div class="case-legend">
|
||||
<span class="section-label">Kitchen queue board</span>
|
||||
<span class="pill">Case focus: approvals</span>
|
||||
</div>
|
||||
<h2>Leanne picks. Doris learns.</h2>
|
||||
<p class="muted">Queue up web recipes, teach the household profile with yes/no decisions, and keep KitchenOwl for the final recipes worth keeping.</p>
|
||||
<div class="action-row">
|
||||
@@ -10,7 +13,11 @@
|
||||
<a class="button-link" href="/search">Search a recipe idea</a>
|
||||
</div>
|
||||
</article>
|
||||
<article class="card stats-card">
|
||||
<article class="card stats-card evidence-card">
|
||||
<div class="case-legend">
|
||||
<span class="section-label">Case counts</span>
|
||||
<span class="pill">Pantry Evidence</span>
|
||||
</div>
|
||||
<div class="stats-grid">
|
||||
<div><span>Suggested</span><strong id="count-suggested">0</strong></div>
|
||||
<div><span>Approved</span><strong id="count-approved">0</strong></div>
|
||||
@@ -18,19 +25,22 @@
|
||||
<div><span>Rejected</span><strong id="count-rejected">0</strong></div>
|
||||
<div><span>Plans</span><strong id="count-plans">0</strong></div>
|
||||
<div><span>Failures</span><strong id="count-failed-searches">0</strong></div>
|
||||
<div><span>Import flags</span><strong id="count-import-flags">0</strong></div>
|
||||
</div>
|
||||
<p class="muted" id="backend-note">Loading state…</p>
|
||||
<p class="muted dossier-note" id="backend-note">Loading state…</p>
|
||||
</article>
|
||||
</section>
|
||||
|
||||
<section class="split-grid">
|
||||
<article class="card">
|
||||
<section class="split-grid dossier-grid">
|
||||
<article class="card evidence-card">
|
||||
<div class="section-heading">
|
||||
<div>
|
||||
<p class="section-label">Soft blacklist</p>
|
||||
<h2>Terms to push down</h2>
|
||||
</div>
|
||||
<span class="pill">Lead filter</span>
|
||||
</div>
|
||||
<p class="muted case-legend">Mark ingredients, cuisines, or phrases Doris should treat like weak leads.</p>
|
||||
<form id="blacklist-form" class="inline-form">
|
||||
<input type="text" id="blacklist-name" placeholder="Add ingredient or term">
|
||||
<button type="submit">Add / enable</button>
|
||||
@@ -38,12 +48,13 @@
|
||||
<div id="blacklist-items" class="chip-list muted">Loading…</div>
|
||||
</article>
|
||||
|
||||
<article class="card">
|
||||
<article class="card evidence-card">
|
||||
<div class="section-heading">
|
||||
<div>
|
||||
<p class="section-label">Preference notes</p>
|
||||
<h2>Household guidance</h2>
|
||||
</div>
|
||||
<span class="pill">Witness notes</span>
|
||||
</div>
|
||||
<form id="settings-form" class="stack-form">
|
||||
<label>Notes
|
||||
@@ -61,17 +72,52 @@
|
||||
</article>
|
||||
</section>
|
||||
|
||||
<section class="card">
|
||||
<section class="card evidence-board">
|
||||
<div class="section-heading">
|
||||
<div>
|
||||
<p class="section-label">Queue</p>
|
||||
<h2>Recent recipe suggestions</h2>
|
||||
</div>
|
||||
<span class="pill">Kitchen queue board</span>
|
||||
</div>
|
||||
<div id="suggestion-list" class="suggestion-grid muted">Loading…</div>
|
||||
<p class="muted case-legend">Review the current stack like pinned case cards: promote the good leads, bury the junk.</p>
|
||||
<div id="suggestion-list" class="suggestion-grid muted dossier-grid">Loading…</div>
|
||||
</section>
|
||||
|
||||
<section class="card">
|
||||
<section class="card evidence-board">
|
||||
<div class="section-heading">
|
||||
<div>
|
||||
<p class="section-label">Import repair queue</p>
|
||||
<h2>Flag recipe import problems</h2>
|
||||
</div>
|
||||
<a class="button-link" href="/imports">Open import review</a>
|
||||
</div>
|
||||
<p class="muted case-legend">Bad imports get tagged like busted evidence bags so Doris can come back and repair them later.</p>
|
||||
<form id="import-flag-form" class="stack-form intake-docket">
|
||||
<label>Recipe URL or KitchenOwl link
|
||||
<input type="url" id="import-flag-url" placeholder="https://...">
|
||||
</label>
|
||||
<label>Recipe title (optional)
|
||||
<input type="text" id="import-flag-title" placeholder="Halal Guys Chicken over Rice But Better">
|
||||
</label>
|
||||
<label>Issue type
|
||||
<select id="import-flag-type">
|
||||
<option value="formatting">Formatting</option>
|
||||
<option value="ingredients">Ingredients</option>
|
||||
<option value="timings">Timings</option>
|
||||
<option value="duplicate">Duplicate</option>
|
||||
<option value="other">Other</option>
|
||||
</select>
|
||||
</label>
|
||||
<label>What went wrong
|
||||
<textarea id="import-flag-notes" rows="4" placeholder="Steps merged together, ingredients split badly, wrong yield, duplicate recipe, or whatever else looks off."></textarea>
|
||||
</label>
|
||||
<button type="submit">Flag for Doris review</button>
|
||||
</form>
|
||||
<div id="import-flag-preview" class="failure-list muted dossier-grid">Loading flagged imports…</div>
|
||||
</section>
|
||||
|
||||
<section class="card evidence-board">
|
||||
<div class="section-heading">
|
||||
<div>
|
||||
<p class="section-label">Troubleshooting</p>
|
||||
@@ -79,6 +125,7 @@
|
||||
</div>
|
||||
<a class="button-link" href="/failures">Open failure review</a>
|
||||
</div>
|
||||
<div id="failed-search-preview" class="failure-list muted">Loading…</div>
|
||||
<p class="muted case-legend">Search misses stay pinned on the board until Doris can turn them into usable dinner intelligence.</p>
|
||||
<div id="failed-search-preview" class="failure-list muted dossier-grid">Loading…</div>
|
||||
</section>
|
||||
{% endblock %}
|
||||
|
||||
Reference in New Issue
Block a user