Recent Activity
View allNo project activity has been recorded yet.
} else {@item.EntityName
} @if (!string.IsNullOrWhiteSpace(item.Description)) {@item.Description
}@item.UserLabel
@model ProjectDetailViewModel
@{
ViewData["Title"] = Model.Project.ProjectName;
ViewData["ProjectSection"] = "Overview";
var summaryCards = new[]
{
("Total Books", Model.Summary.TotalBooks.ToString("N0")),
("Published Books", Model.Summary.PublishedBooks.ToString("N0")),
("Drafting Books", Model.Summary.DraftingBooks.ToString("N0")),
("Planning Books", Model.Summary.PlanningBooks.ToString("N0")),
("Total Words", Model.Summary.TotalWords.ToString("N0")),
("Characters", Model.Summary.CharacterCount.ToString("N0")),
("Locations", Model.Summary.LocationCount.ToString("N0")),
("Active Plot Threads", Model.Summary.ActivePlotThreadCount.ToString("N0")),
("Continuity Warnings", Model.Summary.ContinuityWarningCount.ToString("N0"))
};
}
Series Dashboard
@Model.Project.Description
}@card.Item1
@card.Item2No project activity has been recorded yet.
} else {@item.EntityName
} @if (!string.IsNullOrWhiteSpace(item.Description)) {@item.Description
}@item.UserLabel
Nothing needs attention right now.
} else { @if (Model.NeedsAttention.Warnings.Any()) {@warning.Message
@if (!string.IsNullOrWhiteSpace(warning.LocationLabel)) {@warning.LocationLabel
}@thread.PlotLineName / @thread.ThreadStatusName
Create a schedule when you are ready to plan writing sessions.
Target completion was @book.TargetCompletionDate.ToString("dd MMM yyyy")
Add the first book to begin shaping this series.
Book @book.BookNumber
@book.Subtitle
}@book.WordCountLabel
@if (book.ProgressPercentage.HasValue) { var progressValue = Math.Round(book.ProgressPercentage.Value);