2016-07-26 7 views
0

Vor kurzem mache ich eine Webseite mit Obstgarten, und ich versuche, eine Q & Eine Seite mit Obstgarten Collaboration zu erstellen. Ich weiß, mit Ticket-Dashboard kann ich leicht mit einem Ergebnis wie this kommen. Die Fragen werden in verschiedene Gruppen nach dem Projekt aufgeteilt werden, über die es geht. Aber momentan denke ich daran, den Administrator die project-dashboard des Projekts anzeigen zu lassen, wenn man auf das Ticket-Dashboard klickt. Kann mir jemand sagen, wie es geht? Danke vielmals!Obstgarten Collaboration

Antwort

0

Es gibt einige Optionen, die Ihnen helfen können. Einer von ihnen kommt mir in den Sinn.

  1. Anpassen von ProjectDriver für einen neuen DisplayType wie "ProjectTicketDashboard". Wenn Sie sich die ProjectDriver.Display-Methode ansehen, wird ProjectDetail (das Portlets enthält) für den Detailanzeigetyp gerendert. Sie können dort eine neue "case-Anweisung" für den neuen DisplayType hinzufügen. Für den neuen Anzeigetyp können Sie ein Ticket-Dashboard darstellen. Etwas wie folgt aus:

      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. Sie benötigen eine entsprechende Ansicht für die Parts_Project_Dashboard und den zugehörigen Eintrag im placement.info. Für die Ansicht können Sie den Code der Ansicht in Orchard.CRM.Core/Views/Parts/Dashboard.cshtml wiederverwenden.
    2. Im nächsten Schritt können Sie eine benutzerdefinierte Abfrage erstellen, die alle Projekte mit einem Shape-Layout und DisplayType = " ProjectTicketDashboard ".
    3. Und schließlich einen Vorsprung verwenden, um die vorherige Abfrage in der HomePage

Lassen Sie mich wissen, um anzuzeigen, wenn Sie weitere Fragen haben. Siyamand

+0

Ich werde es versuchen! Vielen Dank für Ihre Hilfe ~ –

+0

Hallo Siyamand, ich habe noch eine Frage an dich zu stellen. Wenn ich jetzt das Administratorkonto verwende, um das Ticket-Dashboard zu sehen, sehe ich zwei Ticket-Zusammenfassungen: "Ihre Ticketzusammenfassung" und die andere "Alle Ticketzusammenfassungen". Kann es mehr Zusammenfassung auf dem Dashboard hinzufügen? –

+0

Hallo Austin, es gibt mehrere Ansätze dazu. [Orchard Collaboration] (http://orchardcollaboration.com) verwendet ein Widget zur Darstellung von Ticket-Zusammenfassungen (sowohl für den Benutzer als auch für den Administrator). Die Hauptlogik befindet sich im DashboardDriver unter Module/Orchard.CRM.Core/Drivers. Sie müssen ein neues Widget ähnlich dem erstellen. DashboardDriver stellt Tickets des angemeldeten Benutzers sowie eine Zusammenfassung aller Tickets dar. In dem neuen Widget können Sie nur Zusammenfassungstickets des Benutzers darstellen. Das neue Widget muss über eine UserId-Eigenschaft verfügen und eine Ticketzusammenfassung dieses Benutzers anstelle des angemeldeten Benutzers darstellen. – siyamand

Verwandte Themen