@model StoryIntelligenceProgressViewModel @{ ViewData["Title"] = "Review scenes"; }
@if (Model.HasActiveRuns) { }

@Model.BookTitle

Review scenes

PlotDirector is analysing the approved chapters. When a chapter is ready, you can create its scenes in PlotDirector.

@if (TempData["OnboardingStoryIntelligenceError"] is string error) {
@error
} @if (TempData["OnboardingStoryIntelligenceMessage"] is string message) {
@message
}
Chapters @Model.CompletedChapterCount / @Model.ChapterCount
Scenes detected @Model.TotalDetectedScenes
Scenes analysed @Model.TotalCompletedScenes
Failures @(Model.FailedChapterCount + Model.TotalFailedScenes)

Chapters

@foreach (var chapter in Model.Chapters.OrderBy(chapter => chapter.ChapterNumber)) {
@chapter.ChapterNumber. @chapter.ChapterTitle @ChapterStatusLabel(chapter)
Status @chapter.Status
Scenes @((chapter.CompletedScenes ?? 0).ToString("N0")) / @((chapter.TotalDetectedScenes ?? 0).ToString("N0"))
Failed @((chapter.FailedScenes ?? 0).ToString("N0"))
Tokens @(chapter.TotalTokens?.ToString("N0") ?? "-")
@if (!string.IsNullOrWhiteSpace(chapter.CurrentMessage)) {

@chapter.CurrentMessage

} @if (!string.IsNullOrWhiteSpace(chapter.ErrorMessage)) {

@chapter.ErrorMessage

} @if (chapter.Warnings.Any()) {
    @foreach (var warning in chapter.Warnings) {
  • @warning
  • }
} @if (chapter.Blockers.Any()) {
    @foreach (var blocker in chapter.Blockers) {
  • @blocker
  • }
}
@if (chapter.HasCompletedCommit) { @chapter.ScenesCreated scene(s) created } else if (chapter.CanCommit && Model.BatchID.HasValue) {
} else if (chapter.IsRunComplete) { Review needed }
}
@if (Model.BatchID.HasValue) {
Refresh Continue }
@functions { private static string ChapterStatusLabel(StoryIntelligenceOnboardingChapterViewModel chapter) { if (chapter.HasCompletedCommit) { return "Scenes created"; } if (chapter.CanCommit) { return "Ready to create"; } if (chapter.IsActive) { return "Analysing"; } if (chapter.IsFailed) { return "Needs attention"; } return "Reviewing"; } }