diff --git a/datamodels/1.x/itop-config-mgmt-1.0.0/main.itop-config-mgmt.php b/datamodels/1.x/itop-config-mgmt-1.0.0/main.itop-config-mgmt.php
index 1733ea0cd..afe056803 100644
--- a/datamodels/1.x/itop-config-mgmt-1.0.0/main.itop-config-mgmt.php
+++ b/datamodels/1.x/itop-config-mgmt-1.0.0/main.itop-config-mgmt.php
@@ -17,8 +17,8 @@
// along with iTop. If not, see
-MetaModel::RegisterRelation("impacts", array("description"=>"Objects impacted by", "verb_down"=>"impacts", "verb_up"=>"depends on"));
-MetaModel::RegisterRelation("depends on", array("description"=>"That impacts ", "verb_down"=>"depends on", "verb_up"=>"impacts"));
+MetaModel::RegisterRelation('impacts');
+MetaModel::RegisterRelation('depends on');
// Starting with iTop 1.2 you can restrict the list of organizations displayed in the drop-down list
// by specifying a query as shown below. Note that this is NOT a security settings, since the
diff --git a/datamodels/2.x/itop-config-mgmt/main.itop-config-mgmt.php b/datamodels/2.x/itop-config-mgmt/main.itop-config-mgmt.php
index 1733ea0cd..d2c96cbd8 100755
--- a/datamodels/2.x/itop-config-mgmt/main.itop-config-mgmt.php
+++ b/datamodels/2.x/itop-config-mgmt/main.itop-config-mgmt.php
@@ -17,9 +17,6 @@
// along with iTop. If not, see
-MetaModel::RegisterRelation("impacts", array("description"=>"Objects impacted by", "verb_down"=>"impacts", "verb_up"=>"depends on"));
-MetaModel::RegisterRelation("depends on", array("description"=>"That impacts ", "verb_down"=>"depends on", "verb_up"=>"impacts"));
-
// Starting with iTop 1.2 you can restrict the list of organizations displayed in the drop-down list
// by specifying a query as shown below. Note that this is NOT a security settings, since the
// choice 'All Organizations' will always be available in the menu
diff --git a/setup/compiler.class.inc.php b/setup/compiler.class.inc.php
index ad035a68f..cfbac002d 100644
--- a/setup/compiler.class.inc.php
+++ b/setup/compiler.class.inc.php
@@ -34,6 +34,7 @@ class MFCompiler
protected $aLog;
protected $sMainPHPCode; // Code that goes into core/main.php
protected $aSnippets;
+ protected $aRelations;
public function __construct($oModelFactory)
{
@@ -45,6 +46,7 @@ class MFCompiler
$this->sMainPHPCode .= " * This file was automatically generated by the compiler on ".date('Y-m-d H:i:s')." -- DO NOT EDIT\n";
$this->sMainPHPCode .= " */\n";
$this->aSnippets = array();
+ $this->aRelations = array();
}
protected function Log($sText)
@@ -443,7 +445,20 @@ EOF;
$this->sMainPHPCode .= $aSnippet['content']."\n";
}
}
-
+
+ if (count($this->aRelations) > 0)
+ {
+ $this->sMainPHPCode .= "\n";
+ $this->sMainPHPCode .= "/**\n";
+ $this->sMainPHPCode .= " * Relations\n";
+ $this->sMainPHPCode .= " */\n";
+ foreach($this->aRelations as $sRelationCode => $aData)
+ {
+ $sRelCodeSafe = addslashes($sRelationCode);
+ $this->sMainPHPCode .= "MetaModel::RegisterRelation('$sRelCodeSafe');\n";
+ }
+ }
+
// Write core/main.php
SetupUtils::builddir($sTempTargetDir.'/core');
$sPHPFile = $sTempTargetDir.'/core/main.php';
@@ -1397,6 +1412,7 @@ EOF;
if ($oRelation->tagName != 'relation') continue;
$sRelationId = $oRelation->getAttribute('id');
+ $this->aRelations[$sRelationId] = array('id' => $sRelationId);
$oNeighbours = $oRelation->GetUniqueElement('neighbours');
foreach($oNeighbours->childNodes as $oNeighbour)