PlotDirector/PlotLine/Views/Writing/_WritingIntentChecklist.cshtml

54 lines
2.0 KiB
Plaintext

@model WritingIntentDisplayViewModel
@{
var scene = Model.Context?.Scene;
var workflow = scene?.Workflow;
var checklist = scene?.ChecklistItems.OrderBy(x => x.IsCompleted).ThenBy(x => x.SortOrder).ThenBy(x => x.ItemText).ToList() ?? [];
var completed = checklist.Count(x => x.IsCompleted);
}
<div class="writing-context-grid">
<article class="writing-context-card">
<p class="eyebrow">Workflow</p>
@if (workflow is null || scene is null)
{
<p>No current scene workflow.</p>
}
else
{
<dl class="writing-context-facts">
<dt>Status</dt><dd>@workflow.DraftStatus</dd>
<dt>Priority</dt><dd>@(workflow.Priority?.ToString() ?? "None")</dd>
<dt>Estimate</dt><dd>@(workflow.EstimatedWordCount?.ToString("N0") ?? "Not set")</dd>
<dt>Actual</dt><dd>@(workflow.ActualWordCount?.ToString("N0") ?? "Not set")</dd>
<dt>Blocked</dt><dd>@(workflow.IsBlocked ? (workflow.BlockedReason ?? "Blocked") : "No")</dd>
</dl>
}
</article>
<article class="writing-context-card">
<p class="eyebrow">Checklist</p>
@if (!checklist.Any())
{
<p>No checklist items.</p>
}
else
{
<p>@completed / @checklist.Count completed</p>
<ul class="writing-context-list writing-intent-checklist">
@foreach (var item in checklist)
{
<li class="@(item.IsCompleted ? "is-complete" : "")">
<span>@(item.IsCompleted ? "Done" : "Planned")</span>
<span>@item.ItemText</span>
</li>
}
</ul>
}
</article>
<article class="writing-context-card writing-context-card--wide">
<p class="eyebrow">Future Fulfilment</p>
<p>Stored checklist and workflow states are shown as recorded. Automatic fulfilment detection is not enabled here.</p>
</article>
</div>