果园合作

Orchard collaboration

最近在用orchard做网页,想用orchard collaboration做一个问答页面。我知道通过使用票务仪表板,我可以在单击票务仪表板时轻松得出 this.The questions will be divided into different groups according to the project it is about. But right now I am thinking of letting the administrator to see each project's project-dashboard 这样的结果。谁能告诉我该怎么做?非常感谢!

有一些选项可以帮助您。我想到的其中之一就是这个。

  1. 为像 "ProjectTicketDashboard" 这样的新 DisplayType 自定义 ProjectDriver。如果您查看 ProjectDriver.Display 方法,它会为 Detail 显示类型呈现 ProjectDetail(其中包含 portlet)。您可以在此处为新的 DisplayType 添加一个新的 "case statement"。对于新的显示类型,您可以代表一个工单仪表板。像这样:

                case "ProjectTicketDashboard":
                // Query the counts of the whole tickets in the system based on stateId
                dynamic state = new JObject();
    
                var contentQuery = this.services.ContentManager.HqlQuery().ForVersion(VersionOptions.Published);
    
                state.ContentTypes = "Ticket";
                contentQuery = this.projectionManagerWithDynamicSort.ApplyFilter(contentQuery, "Content", "ContentTypes", state);
    
                state.Project_Id = part.Id;
                contentQuery = this.projectionManagerWithDynamicSort.ApplyFilter(contentQuery, "AttachToProjectFilter", "Id", state);
    
                var ticketCountsByStateIds = groupQuery.GetCount(contentQuery, "TicketPartRecord", "StatusRecord.Id");
    
                model.AllTickets = new Collection<dynamic>();
                CRMHelper.AddStatusGroupRecordsToModel(statusRecords, ticketCountsByStateIds, model.AllTickets);
    
                state.MaxDueDate = DateTime.UtcNow.Date;
                contentQuery = this.projectionManagerWithDynamicSort.ApplyFilter(contentQuery, TicketFieldsFilter.CategoryName, TicketFieldsFilter.TicketDueDateType, state);
                model.AllOverrudeItemsCount = contentQuery.Count();
    
                return ContentShape("Parts_Project_Dashboard",
                       () => shapeHelper.Parts_Project_Dashboard(
                             Model: model
                          ));
    
    1. 您需要 Parts_Project_Dashboard 的相应视图和 placement.info 中的关联条目。对于视图,可以复用Orchard.CRM.Core/Views/Parts/Dashboard.cshtml
    2. 中视图的代码
    3. 下一步,您可以创建一个自定义查询,以获取具有形状布局和 DisplayType = "ProjectTicketDashboard" 的所有项目。
    4. 最后,使用投影在主页中显示之前的查询

如果您还有其他问题,请告诉我。 西亚曼德