Optimizing Comments display in Admin

--HG--
branch : 1.x
This commit is contained in:
Sebastien Ros
2011-11-22 10:56:40 -08:00
parent 5f0f0a95f1
commit 24f136bd42
5 changed files with 19 additions and 11 deletions

View File

@@ -180,13 +180,13 @@ namespace Orchard.Blogs.Controllers {
if (blogPart == null) if (blogPart == null)
return HttpNotFound(); return HttpNotFound();
var blogPosts = _blogPostService.Get(blogPart, pager.GetStartIndex(), pager.PageSize, VersionOptions.Latest) var blogPosts = _blogPostService.Get(blogPart, pager.GetStartIndex(), pager.PageSize, VersionOptions.Latest).ToArray();
.Select(bp => _contentManager.BuildDisplay(bp, "SummaryAdmin")); var blogPostsShapes = blogPosts.Select(bp => _contentManager.BuildDisplay(bp, "SummaryAdmin")).ToArray();
dynamic blog = Services.ContentManager.BuildDisplay(blogPart, "DetailAdmin"); dynamic blog = Services.ContentManager.BuildDisplay(blogPart, "DetailAdmin");
var list = Shape.List(); var list = Shape.List();
list.AddRange(blogPosts); list.AddRange(blogPostsShapes);
blog.Content.Add(Shape.Parts_Blogs_BlogPost_ListAdmin(ContentItems: list), "5"); blog.Content.Add(Shape.Parts_Blogs_BlogPost_ListAdmin(ContentItems: list), "5");
var totalItemCount = _blogPostService.PostCount(blogPart, VersionOptions.Latest); var totalItemCount = _blogPostService.PostCount(blogPart, VersionOptions.Latest);

View File

@@ -18,13 +18,15 @@ namespace Orchard.Comments.Drivers {
if (part.CommentsShown == false) if (part.CommentsShown == false)
return null; return null;
var commentsForCommentedContent = _commentService.GetCommentsForCommentedContent(part.ContentItem.Id);
return Combined( return Combined(
ContentShape("Parts_Comments", ContentShape("Parts_Comments",
() => shapeHelper.Parts_Comments(ContentPart: part)), () => shapeHelper.Parts_Comments(ContentPart: part)),
ContentShape("Parts_Comments_Count", ContentShape("Parts_Comments_Count",
() => shapeHelper.Parts_Comments_Count(ContentPart: part, CommentCount: _commentService.GetCommentsForCommentedContent(part.ContentItem.Id).Count(), PendingCount: part.PendingComments.Count)), () => shapeHelper.Parts_Comments_Count(ContentPart: part, CommentCount: commentsForCommentedContent.Count(), PendingCount: commentsForCommentedContent.Where(x => x.Status == CommentStatus.Pending).Count())),
ContentShape("Parts_Comments_Count_SummaryAdmin", ContentShape("Parts_Comments_Count_SummaryAdmin",
() => shapeHelper.Parts_Comments_Count_SummaryAdmin(ContentPart: part, CommentCount: _commentService.GetCommentsForCommentedContent(part.ContentItem.Id).Count(), PendingCount: part.PendingComments.Count)) () => shapeHelper.Parts_Comments_Count_SummaryAdmin(ContentPart: part, CommentCount: commentsForCommentedContent.Count(), PendingCount: commentsForCommentedContent.Where(x => x.Status == CommentStatus.Pending).Count()))
); );
} }

View File

@@ -4,6 +4,10 @@ using Orchard.Data.Conventions;
namespace Orchard.Comments.Models { namespace Orchard.Comments.Models {
public class CommentsPartRecord : ContentPartRecord { public class CommentsPartRecord : ContentPartRecord {
public CommentsPartRecord() {
CommentPartRecords = new List<CommentPartRecord>();
}
public virtual bool CommentsShown { get; set; } public virtual bool CommentsShown { get; set; }
public virtual bool CommentsActive { get; set; } public virtual bool CommentsActive { get; set; }

View File

@@ -16,6 +16,6 @@
<Place Parts_Comments_Count="Meta:5" /> <Place Parts_Comments_Count="Meta:5" />
</Match> </Match>
<Match DisplayType="SummaryAdmin"> <Match DisplayType="SummaryAdmin">
<Place Parts_Comments_Count_SummaryAdmin="Sidebar" /> <Place Parts_Comments_Count_SummaryAdmin="Meta:4" />
</Match> </Match>
</Placement> </Placement>

View File

@@ -1,4 +1,6 @@
@using Orchard.Comments.Models; <ul class="pageStatus">
@using Orchard.Comments.ViewModels; <li>
@using Orchard.ContentManagement; @Display.CommentSummaryLinks(item: Model.ContentPart.ContentItem, count: Model.CommentCount, pendingCount: Model.PendingCount)
<span class="commentcount">@Display.CommentSummaryLinks(item: Model.ContentPart.ContentItem, count: Model.CommentCount, pendingCount: Model.PendingCount)@T(" | ")</span> @T(" | ")&nbsp;
</li>
</ul>