瀏覽代碼

#759 Ticket lists in CI: show only active tickets (exclude tickets in states rejected/resolved/closed) and display one list per leaf class so that the status column will be visible. It it not possible anymore to edit the ticket list from the CI.

git-svn-id: http://svn.code.sf.net/p/itop/code/trunk@3638 a333f486-631f-4898-b8df-5754b55c2be0
romainq 10 年之前
父節點
當前提交
5f6531ac37

+ 54 - 42
datamodels/2.x/itop-config-mgmt/datamodel.itop-config-mgmt.xml

@@ -1404,9 +1404,6 @@
             <item id="documents_list">
               <rank>70</rank>
             </item>
-            <item id="tickets_list">
-              <rank>80</rank>
-            </item>
             <item id="applicationsolution_list">
               <rank>90</rank>
             </item>
@@ -1462,6 +1459,60 @@
           <type>Overload-DBObject</type>
           <code><![CDATA[	public static function GetRelationQueries($sRelCode){return parent::GetRelationQueries($sRelCode);} ]]></code>
         </method>
+        <method id="DisplayBareRelations">
+          <static>false</static>
+          <access>public</access>
+          <type>Overload-cmdbAbstractObject</type>
+          <code><![CDATA[	function DisplayBareRelations(WebPage $oPage, $bEditMode = false)
+	{
+		parent::DisplayBareRelations($oPage, $bEditMode);
+
+		$sTicketListAttCode = 'tickets_list';
+
+		if (MetaModel::IsValidAttCode(get_class($this), $sTicketListAttCode))
+		{
+			// Display one list per leaf class (the only way to display the status as of now)
+
+			$oAttDef = MetaModel::GetAttributeDef(get_class($this), $sTicketListAttCode);
+			$sLnkClass = $oAttDef->GetLinkedClass();
+			$sExtKeyToMe = $oAttDef->GetExtKeyToMe();
+			$sExtKeyToRemote = $oAttDef->GetExtKeyToRemote();
+
+			$iTotal = 0;
+			$aSearches = array();
+
+			foreach (MetaModel::EnumChildClasses('Ticket') as $sSubClass)
+			{
+				if (!MetaModel::HasChildrenClasses($sSubClass))
+				{
+					$sStateAttCode = MetaModel::GetStateAttributeCode($sSubClass);
+					if ($sStateAttCode != '')
+					{
+						$oSearch = DBSearch::FromOQL("SELECT $sSubClass AS t JOIN $sLnkClass AS lnk ON lnk.$sExtKeyToRemote = t.id WHERE $sExtKeyToMe = :myself AND $sStateAttCode NOT IN ('rejected', 'resolved', 'closed')", array('myself' => $this->GetKey()));
+						$aSearches[$sSubClass] = $oSearch;
+
+						$oSet = new DBObjectSet($oSearch);
+						$iTotal += $oSet->Count();
+					}
+				}
+			}
+
+			$sCount = ($iTotal > 0) ? ' ('.$iTotal.')' : '';
+			$oPage->SetCurrentTab(Dict::S('Class:FunctionalCI/Tab:OpenedTickets').$sCount);
+
+			foreach ($aSearches as $sSubClass => $oSearch)
+			{
+				$sBlockId = __class__.'_opened_'.$sSubClass;
+		
+				$oPage->add('<fieldset>');
+				$oPage->add('<legend>'.MetaModel::GetName($sSubClass).'</legend>');
+				$oBlock = new DisplayBlock($oSearch, 'list', false);
+				$oBlock->Display($oPage, $sBlockId, array('menu' => false));
+				$oPage->add('</fieldset>');
+			}
+		}
+	}]]></code>
+        </method>
       </methods>
       <relations>
         <relation id="impacts">
@@ -1627,9 +1678,6 @@
             <item id="documents_list">
               <rank>150</rank>
             </item>
-            <item id="tickets_list">
-              <rank>160</rank>
-            </item>
           </items>
         </details>
         <search>
@@ -2216,9 +2264,6 @@
             <item id="documents_list">
               <rank>20</rank>
             </item>
-            <item id="tickets_list">
-              <rank>30</rank>
-            </item>
             <item id="applicationsolution_list">
               <rank>35</rank>
             </item>
@@ -2532,9 +2577,6 @@
             <item id="documents_list">
               <rank>30</rank>
             </item>
-            <item id="tickets_list">
-              <rank>40</rank>
-            </item>
             <item id="applicationsolution_list">
               <rank>45</rank>
             </item>
@@ -2849,9 +2891,6 @@
             <item id="documents_list">
               <rank>80</rank>
             </item>
-            <item id="tickets_list">
-              <rank>90</rank>
-            </item>
             <item id="functionalcis_list">
               <rank>100</rank>
             </item>
@@ -2989,9 +3028,6 @@
             <item id="documents_list">
               <rank>80</rank>
             </item>
-            <item id="tickets_list">
-              <rank>90</rank>
-            </item>
             <item id="applicationsolutions_list">
               <rank>100</rank>
             </item>
@@ -3291,9 +3327,6 @@
             <item id="documents_list">
               <rank>120</rank>
             </item>
-            <item id="tickets_list">
-              <rank>130</rank>
-            </item>
             <item id="applicationsolution_list">
               <rank>140</rank>
             </item>
@@ -3438,9 +3471,6 @@
             <item id="documents_list">
               <rank>120</rank>
             </item>
-            <item id="tickets_list">
-              <rank>130</rank>
-            </item>
             <item id="applicationsolution_list">
               <rank>140</rank>
             </item>
@@ -3585,9 +3615,6 @@
             <item id="documents_list">
               <rank>120</rank>
             </item>
-            <item id="tickets_list">
-              <rank>130</rank>
-            </item>
             <item id="applicationsolution_list">
               <rank>140</rank>
             </item>
@@ -3725,9 +3752,6 @@
             <item id="documents_list">
               <rank>120</rank>
             </item>
-            <item id="tickets_list">
-              <rank>130</rank>
-            </item>
             <item id="applicationsolution_list">
               <rank>140</rank>
             </item>
@@ -3841,9 +3865,6 @@
             <item id="documents_list">
               <rank>120</rank>
             </item>
-            <item id="tickets_list">
-              <rank>130</rank>
-            </item>
             <item id="applicationsolution_list">
               <rank>140</rank>
             </item>
@@ -3954,9 +3975,6 @@
             <item id="documents_list">
               <rank>80</rank>
             </item>
-            <item id="tickets_list">
-              <rank>90</rank>
-            </item>
             <item id="applicationsolution_list">
               <rank>100</rank>
             </item>
@@ -4074,9 +4092,6 @@
             <item id="documents_list">
               <rank>80</rank>
             </item>
-            <item id="tickets_list">
-              <rank>90</rank>
-            </item>
             <item id="applicationsolution_list">
               <rank>100</rank>
             </item>
@@ -4203,9 +4218,6 @@
             <item id="documents_list">
               <rank>90</rank>
             </item>
-            <item id="tickets_list">
-              <rank>100</rank>
-            </item>
             <item id="applicationsolution_list">
               <rank>110</rank>
             </item>

+ 1 - 0
datamodels/2.x/itop-config-mgmt/en.dict.itop-config-mgmt.php

@@ -329,6 +329,7 @@ Dict::Add('EN US', 'English', 'English', array(
 	'Class:FunctionalCI/Attribute:tickets_list+' => 'All the tickets for this configuration item',
 	'Class:FunctionalCI/Attribute:finalclass' => 'CI Type',
 	'Class:FunctionalCI/Attribute:finalclass+' => '',
+	'Class:FunctionalCI/Tab:OpenedTickets' => 'Active Tickets',
 ));
 
 //

+ 1 - 0
datamodels/2.x/itop-config-mgmt/fr.dict.itop-config-mgmt.php

@@ -274,6 +274,7 @@ Dict::Add('FR FR', 'French', 'Français', array(
 	'Class:FunctionalCI/Attribute:tickets_list+' => '',
 	'Class:FunctionalCI/Attribute:finalclass' => 'Type de CI',
 	'Class:FunctionalCI/Attribute:finalclass+' => '',
+	'Class:FunctionalCI/Tab:OpenedTickets' => 'Tickets en cours',
 ));
 
 //

+ 0 - 12
datamodels/2.x/itop-datacenter-mgmt/datamodel.itop-datacenter-mgmt.xml

@@ -96,9 +96,6 @@
             <item id="documents_list">
               <rank>160</rank>
             </item>
-            <item id="tickets_list">
-              <rank>170</rank>
-            </item>
             <item id="enclosure_list">
               <rank>180</rank>
             </item>
@@ -297,9 +294,6 @@
             <item id="documents_list">
               <rank>170</rank>
             </item>
-            <item id="tickets_list">
-              <rank>180</rank>
-            </item>
             <item id="device_list">
               <rank>190</rank>
             </item>
@@ -649,9 +643,6 @@
             <item id="documents_list">
               <rank>160</rank>
             </item>
-            <item id="tickets_list">
-              <rank>170</rank>
-            </item>
             <item id="providercontracts_list">
               <rank>180</rank>
             </item>
@@ -838,9 +829,6 @@
             <item id="documents_list">
               <rank>170</rank>
             </item>
-            <item id="tickets_list">
-              <rank>180</rank>
-            </item>
             <item id="providercontracts_list">
               <rank>190</rank>
             </item>

+ 0 - 21
datamodels/2.x/itop-endusers-devices/datamodel.itop-enduser-devices.xml

@@ -230,9 +230,6 @@
             <item id="documents_list">
               <rank>160</rank>
             </item>
-            <item id="tickets_list">
-              <rank>170</rank>
-            </item>
             <item id="providercontracts_list">
               <rank>180</rank>
             </item>
@@ -402,9 +399,6 @@
             <item id="documents_list">
               <rank>180</rank>
             </item>
-            <item id="tickets_list">
-              <rank>190</rank>
-            </item>
             <item id="providercontracts_list">
               <rank>200</rank>
             </item>
@@ -563,9 +557,6 @@
             <item id="documents_list">
               <rank>160</rank>
             </item>
-            <item id="tickets_list">
-              <rank>170</rank>
-            </item>
             <item id="providercontracts_list">
               <rank>180</rank>
             </item>
@@ -712,9 +703,6 @@
             <item id="contacts_list">
               <rank>140</rank>
             </item>
-            <item id="tickets_list">
-              <rank>150</rank>
-            </item>
             <item id="documents_list">
               <rank>160</rank>
             </item>
@@ -876,9 +864,6 @@
             <item id="documents_list">
               <rank>20</rank>
             </item>
-            <item id="tickets_list">
-              <rank>30</rank>
-            </item>
             <item id="physicalinterface_list">
               <rank>40</rank>
             </item>
@@ -1082,9 +1067,6 @@
             <item id="documents_list">
               <rank>20</rank>
             </item>
-            <item id="tickets_list">
-              <rank>30</rank>
-            </item>
             <item id="physicalinterface_list">
               <rank>40</rank>
             </item>
@@ -1309,9 +1291,6 @@
             <item id="documents_list">
               <rank>150</rank>
             </item>
-            <item id="tickets_list">
-              <rank>160</rank>
-            </item>
             <item id="providercontracts_list">
               <rank>170</rank>
             </item>

+ 0 - 12
datamodels/2.x/itop-storage-mgmt/datamodel.itop-storage-mgmt.xml

@@ -43,9 +43,6 @@
             <item id="documents_list">
               <rank>20</rank>
             </item>
-            <item id="tickets_list">
-              <rank>30</rank>
-            </item>
             <item id="applicationsolution_list">
               <rank>35</rank>
             </item>
@@ -307,9 +304,6 @@
             <item id="documents_list">
               <rank>20</rank>
             </item>
-            <item id="tickets_list">
-              <rank>30</rank>
-            </item>
             <item id="applicationsolution_list">
               <rank>35</rank>
             </item>
@@ -570,9 +564,6 @@
             <item id="documents_list">
               <rank>30</rank>
             </item>
-            <item id="tickets_list">
-              <rank>45</rank>
-            </item>
             <item id="applicationsolution_list">
               <rank>35</rank>
             </item>
@@ -827,9 +818,6 @@
             <item id="documents_list">
               <rank>20</rank>
             </item>
-            <item id="tickets_list">
-              <rank>30</rank>
-            </item>
             <item id="applicationsolution_list">
               <rank>35</rank>
             </item>

+ 0 - 9
datamodels/2.x/itop-virtualization-mgmt/datamodel.itop-virtualization-mgmt.xml

@@ -332,9 +332,6 @@
             <item id="documents_list">
               <rank>90</rank>
             </item>
-            <item id="tickets_list">
-              <rank>100</rank>
-            </item>
             <item id="applicationsolution_list">
               <rank>110</rank>
             </item>
@@ -481,9 +478,6 @@
             <item id="documents_list">
               <rank>70</rank>
             </item>
-            <item id="tickets_list">
-              <rank>80</rank>
-            </item>
             <item id="applicationsolution_list">
               <rank>90</rank>
             </item>
@@ -658,9 +652,6 @@
             <item id="documents_list">
               <rank>30</rank>
             </item>
-            <item id="tickets_list">
-              <rank>40</rank>
-            </item>
             <item id="applicationsolution_list">
               <rank>45</rank>
             </item>