Phase 9A cleanup
This commit is contained in:
parent
42b5ed371c
commit
b2cfcd08fa
@ -1159,9 +1159,6 @@ public sealed class SceneService(
|
||||
model.StorageUsage = model.SceneID == 0 ? null : await storage.GetSceneStorageUsageAsync(model.SceneID);
|
||||
model.SceneNoteTypeOptions = ChapterService.ToSelectList(noteTypes, x => x.SceneNoteTypeID, x => x.TypeName);
|
||||
model.SceneAttachmentTypeOptions = ChapterService.ToSelectList(attachmentTypes, x => x.SceneAttachmentTypeID, x => x.TypeName);
|
||||
model.DraftStatusOptions = DraftStatuses()
|
||||
.Select(x => new SelectListItem(x, x, string.Equals(x, model.Workflow.DraftStatus, StringComparison.OrdinalIgnoreCase)))
|
||||
.ToList();
|
||||
model.PlotLineOptions = ToOptionalSelectList(plotLines, x => x.PlotLineID, x => x.PlotLineName);
|
||||
model.PlotThreadOptions = ToOptionalSelectList(plotThreads, x => x.PlotThreadID, x => $"{x.PlotLineName}: {x.ThreadTitle}");
|
||||
model.PlotLineEventOptions = plotLines;
|
||||
@ -1307,18 +1304,6 @@ public sealed class SceneService(
|
||||
return model;
|
||||
}
|
||||
|
||||
internal static IReadOnlyList<string> DraftStatuses() =>
|
||||
[
|
||||
"Planned",
|
||||
"Ready To Draft",
|
||||
"Drafting",
|
||||
"Drafted",
|
||||
"Revising",
|
||||
"Polishing",
|
||||
"Complete",
|
||||
"On Hold"
|
||||
];
|
||||
|
||||
private static IReadOnlyList<SelectListItem> ToOptionalSelectList<T>(IEnumerable<T> rows, Func<T, int> value, Func<T, string> text)
|
||||
=> rows.Select(x => new SelectListItem(text(x), value(x).ToString())).ToList();
|
||||
|
||||
@ -3153,7 +3138,6 @@ public sealed class WriterWorkspaceService(
|
||||
ProjectOptions = projectRows.Select(x => new SelectListItem(x.ProjectName, x.ProjectID.ToString(), x.ProjectID == projectId)).ToList(),
|
||||
WriteNext = await GetDashboardScenesAsync(projectIds, "WriteNext"),
|
||||
ContinueWriting = await GetDashboardScenesAsync(projectIds, "ContinueWriting"),
|
||||
NeedsAttention = await GetDashboardScenesAsync(projectIds, "NeedsAttention"),
|
||||
RevisionQueue = await GetDashboardScenesAsync(projectIds, "RevisionQueue"),
|
||||
PolishingQueue = await GetDashboardScenesAsync(projectIds, "PolishingQueue"),
|
||||
StoryHealthReminders = await GetDashboardRemindersAsync(projectIds)
|
||||
@ -3212,21 +3196,29 @@ public sealed class WriterWorkspaceService(
|
||||
RisksOrConcerns = model.RisksOrConcerns
|
||||
});
|
||||
|
||||
public Task SaveSceneWorkflowAsync(SceneWorkflowEditViewModel model) => writerWorkspace.SaveWorkflowAsync(new SceneWorkflow
|
||||
public async Task SaveSceneWorkflowAsync(SceneWorkflowEditViewModel model)
|
||||
{
|
||||
SceneID = model.SceneID,
|
||||
DraftStatus = model.DraftStatus,
|
||||
EstimatedWordCount = model.EstimatedWordCount,
|
||||
ActualWordCount = model.ActualWordCount,
|
||||
DraftedDate = model.DraftedDate,
|
||||
LastWorkedOn = model.LastWorkedOn,
|
||||
ReadyForDraft = model.ReadyForDraft,
|
||||
ReadyForRevision = model.ReadyForRevision,
|
||||
ReadyForPolish = model.ReadyForPolish,
|
||||
IsBlocked = model.IsBlocked,
|
||||
BlockedReason = model.BlockedReason,
|
||||
Priority = model.Priority
|
||||
});
|
||||
var existing = await writerWorkspace.GetWorkflowAsync(model.SceneID);
|
||||
var priority = model.Priority.HasValue
|
||||
? Math.Clamp(model.Priority.Value, 1, 10)
|
||||
: (int?)null;
|
||||
|
||||
await writerWorkspace.SaveWorkflowAsync(new SceneWorkflow
|
||||
{
|
||||
SceneID = model.SceneID,
|
||||
DraftStatus = existing.DraftStatus,
|
||||
EstimatedWordCount = model.EstimatedWordCount,
|
||||
ActualWordCount = model.ActualWordCount,
|
||||
DraftedDate = model.DraftedDate,
|
||||
LastWorkedOn = model.LastWorkedOn,
|
||||
ReadyForDraft = existing.ReadyForDraft,
|
||||
ReadyForRevision = existing.ReadyForRevision,
|
||||
ReadyForPolish = existing.ReadyForPolish,
|
||||
IsBlocked = model.IsBlocked,
|
||||
BlockedReason = model.BlockedReason,
|
||||
Priority = priority
|
||||
});
|
||||
}
|
||||
|
||||
public Task<int> SaveNoteAsync(SceneNoteEditViewModel model) => writerWorkspace.SaveNoteAsync(new SceneNote
|
||||
{
|
||||
|
||||
@ -217,7 +217,6 @@ public sealed class SceneEditViewModel
|
||||
public SceneAttachmentEditViewModel NewAttachment { get; set; } = new();
|
||||
public IReadOnlyList<SelectListItem> SceneNoteTypeOptions { get; set; } = [];
|
||||
public IReadOnlyList<SelectListItem> SceneAttachmentTypeOptions { get; set; } = [];
|
||||
public IReadOnlyList<SelectListItem> DraftStatusOptions { get; set; } = [];
|
||||
public StorageUsage? StorageUsage { get; set; }
|
||||
|
||||
public int? ReturnProjectID { get; set; }
|
||||
@ -317,7 +316,6 @@ public sealed class WriterDashboardViewModel
|
||||
public IReadOnlyList<SelectListItem> ProjectOptions { get; set; } = [];
|
||||
public IReadOnlyList<WriterDashboardScene> WriteNext { get; set; } = [];
|
||||
public IReadOnlyList<WriterDashboardScene> ContinueWriting { get; set; } = [];
|
||||
public IReadOnlyList<WriterDashboardScene> NeedsAttention { get; set; } = [];
|
||||
public IReadOnlyList<WriterDashboardScene> RevisionQueue { get; set; } = [];
|
||||
public IReadOnlyList<WriterDashboardScene> PolishingQueue { get; set; } = [];
|
||||
public IReadOnlyList<StoryBibleAttentionItem> StoryHealthReminders { get; set; } = [];
|
||||
|
||||
@ -1208,10 +1208,6 @@
|
||||
<input type="hidden" name="ReturnProjectID" value="@Model.ReturnProjectID" />
|
||||
<input type="hidden" name="ReturnBookID" value="@Model.ReturnBookID" />
|
||||
<div class="row g-2">
|
||||
<input type="hidden" name="DraftStatus" value="@Model.Workflow.DraftStatus" />
|
||||
<input type="hidden" name="ReadyForDraft" value="false" />
|
||||
<input type="hidden" name="ReadyForRevision" value="false" />
|
||||
<input type="hidden" name="ReadyForPolish" value="false" />
|
||||
<div class="col-12">
|
||||
<label class="form-label" for="Priority">Priority</label>
|
||||
<div class="writer-priority-control">
|
||||
|
||||
@ -77,7 +77,7 @@
|
||||
<article class="writer-queue-card">
|
||||
<div class="writer-queue-title">
|
||||
<h3>Scene @scene.SceneNumber: @scene.SceneTitle</h3>
|
||||
<span class="status-pill">@(string.IsNullOrWhiteSpace(scene.RevisionStatusName) ? scene.DraftStatus : scene.RevisionStatusName)</span>
|
||||
<span class="status-pill">@scene.RevisionStatusName</span>
|
||||
</div>
|
||||
<div class="story-bible-meta">
|
||||
@if (scene.Priority.HasValue) { <span>Priority @scene.Priority</span> }
|
||||
|
||||
@ -40,17 +40,6 @@
|
||||
<partial name="_WriterSceneQueue" model="Model.ContinueWriting" />
|
||||
</section>
|
||||
|
||||
<section class="writer-dashboard-panel">
|
||||
<div class="story-bible-section-heading">
|
||||
<div>
|
||||
<p class="eyebrow">Practical blockers</p>
|
||||
<h2>Needs Attention <help-icon key="workspace.practicalBlockers" /></h2>
|
||||
</div>
|
||||
<span class="soft-count">@Model.NeedsAttention.Count scenes</span>
|
||||
</div>
|
||||
<partial name="_WriterSceneQueue" model="Model.NeedsAttention" />
|
||||
</section>
|
||||
|
||||
<section class="writer-dashboard-panel">
|
||||
<div class="story-bible-section-heading">
|
||||
<div>
|
||||
|
||||
@ -15,7 +15,7 @@ else
|
||||
<span class="eyebrow">@scene.BookTitle / Chapter @scene.ChapterNumber</span>
|
||||
<h3>Scene @scene.SceneNumber: @scene.SceneTitle</h3>
|
||||
</div>
|
||||
<span class="status-pill">@(string.IsNullOrWhiteSpace(scene.RevisionStatusName) ? scene.DraftStatus : scene.RevisionStatusName)</span>
|
||||
<span class="status-pill">@scene.RevisionStatusName</span>
|
||||
</div>
|
||||
@if (!string.IsNullOrWhiteSpace(scene.Summary))
|
||||
{
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user