2016-07-26 69 views
0

最近我正在使用果园做一个网页,并且我正尝试使用orchard协作创建一个Q & A页面。我知道通过使用票务仪表板,我可以很容易地得出一个结果,如this。根据项目的不同,将问题分为不同的组。但是现在我想让管理员在点击票据仪表板时看到每个项目的project-dashboard。任何人都可以让我知道如何做到这一点?非常感谢!果园合作

回答

0

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

  1. 为“DisplayTicketDashboard”之类的新DisplayType自定义ProjectDriver。如果您查看ProjectDriver.Display方法,则会为Detail显示类型呈现ProjectDetail(其中包含Portlet)。您可以在那里为新的DisplayType添加新的“case语句”。对于新的显示类型,您可以表示票据仪表板。是这样的:

      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 
            )); 
    
  2. 时,需要在Parts_Project_Dashboard的相应视图并且在placement.info相关条目。对于视图,您可以重复使用Orchard.CRM.Core/Views/Parts/Dashboard.cshtml中的视图代码
  3. 下一步,您可以创建一个自定义Query,以获取所有具有形状布局和DisplayType =“ ProjectTicketDashboard”。
  4. 最后,使用投影在首页显示上一查询

让我知道,如果你有任何问题。 Siyamand

+0

我会试试!谢谢你的帮助〜 –

+0

嗨Siyamand,我有另一个问题要问你。现在,当我使用管理员帐户查看票据仪表板时,我会看到两张票据摘要之一是“您的票据摘要”和另一张“所有票据摘要”,是否能够在仪表板上添加更多摘要? –

+0

嗨奥斯汀,有几种方法可以这样做。 [Orchard Collaboration](http://orchardcollaboration.com)使用一个小部件来表示Ticket Summaries(用户和管理员)。主要逻辑在Modules/Orchard.CRM.Core/Drivers中的DashboardDriver中。你需要创建一个类似于那个的新Widget。 DashboardDriver代表登录用户的门票以及所有门票的摘要。在新的小部件中,您只能表示用户的摘要故障单。新窗口小部件必须具有UserId属性并表示该用户的票证摘要,而不是登录的用户。 – siyamand