2016-07-26 68 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