ソースを参照

#464 While upgrading iTop, copy the values from change/start_date to ticket/start_date (iif the current value is null)

git-svn-id: http://svn.code.sf.net/p/itop/code/trunk@1537 a333f486-631f-4898-b8df-5754b55c2be0
romainq 13 年 前
コミット
1bd8804975
1 ファイル変更49 行追加0 行削除
  1. 49 0
      modules/itop-change-mgmt-1.0.0/module.itop-change-mgmt.php

+ 49 - 0
modules/itop-change-mgmt-1.0.0/module.itop-change-mgmt.php

@@ -18,6 +18,7 @@ SetupWebPage::AddModule(
 		),
 		'mandatory' => false,
 		'visible' => true,
+		'installer' => 'ChangeManagementInstaller',
 
 		// Components
 		//
@@ -43,4 +44,52 @@ SetupWebPage::AddModule(
 	)
 );
 
+// Module installation handler
+//
+class ChangeManagementInstaller extends ModuleInstallerAPI
+{
+	public static function BeforeWritingConfig(Config $oConfiguration)
+	{
+		// If you want to override/force some configuration values, do it here
+		return $oConfiguration;
+	}
+
+	/**
+	 * Handler called before creating or upgrading the database schema
+	 * @param $oConfiguration Config The new configuration of the application
+	 * @param $sPreviousVersion string PRevious version number of the module (empty string in case of first install)
+	 * @param $sCurrentVersion string Current version number of the module
+	 */
+	public static function BeforeDatabaseCreation(Config $oConfiguration, $sPreviousVersion, $sCurrentVersion)
+	{
+		// If you want to migrate data from one format to another, do it here
+	}
+	
+	/**
+	 * Handler called after the creation/update of the database schema
+	 * @param $oConfiguration Config The new configuration of the application
+	 * @param $sPreviousVersion string PRevious version number of the module (empty string in case of first install)
+	 * @param $sCurrentVersion string Current version number of the module
+	 */
+	public static function AfterDatabaseCreation(Config $oConfiguration, $sPreviousVersion, $sCurrentVersion)
+	{
+		// Bug #464 - start_date was both in Ticket and Change tables
+		//
+		$sSourceTable = 'change';
+		$sSourceKeyField = 'id';
+
+		$sTargetTable = 'ticket';
+		$sTargetKeyField = 'id';
+
+		$sField = 'start_date';
+
+		if (CMDBSource::IsField($sSourceTable, $sField) && CMDBSource::IsField($sTargetTable, $sField) && CMDBSource::IsField($sSourceTable, $sSourceKeyField) && CMDBSource::IsField($sTargetTable, $sTargetKeyField))
+		{
+			SetupWebPage::log_info("Issue #464 - Copying change/start_date into ticket/start_date"); 
+			$sRepair = "UPDATE `$sTargetTable`, `$sSourceTable` SET `$sTargetTable`.`$sField` = `$sSourceTable`.`$sField` WHERE `$sTargetTable`.`$sField` IS NULL AND`$sTargetTable`.`$sTargetKeyField` = `$sSourceTable`.`$sSourceKeyField`";
+			CMDBSource::Query($sRepair);
+		}
+	}
+}
+
 ?>