mirror of
https://github.com/Combodo/iTop.git
synced 2026-04-22 10:08:45 +02:00
#1111 Could not attach a UserRequest to a Problem (1-N links). Could not detach either! This fix requires attention: it is assumed that an item of a link set, if it is "modified" then its key to the current object has already been set.
SVN:trunk[3693]
This commit is contained in:
@@ -1135,7 +1135,7 @@ class AttributeLinkedSet extends AttributeDefinition
|
||||
}
|
||||
|
||||
// Both values are Object sets
|
||||
return $val1->HasSameContents($val2, array($this->GetExtKeyToMe()));
|
||||
return $val1->HasSameContents($val2);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -1384,24 +1384,13 @@ abstract class DBObject implements iDisplay
|
||||
|
||||
foreach($aChanges['modified'] as $oLink)
|
||||
{
|
||||
// Make sure that the objects in the set point to "this"
|
||||
$oLink->Set($oAttDef->GetExtKeyToMe(), $this->m_iKey);
|
||||
// Objects in the set either remain attached or have been detached -> leave the link as is
|
||||
$oLink->DBWrite();
|
||||
}
|
||||
|
||||
foreach($aChanges['removed'] as $oLink)
|
||||
{
|
||||
// Objects can be removed from the set because:
|
||||
// 1) They should no longer exist
|
||||
// 2) They are about to be removed from the set BUT NOT deleted, their ExtKey has been reset
|
||||
if ($oLink->IsModified() && ($oLink->Get($sExtKeyToMe) != $this->m_iKey))
|
||||
{
|
||||
$oLink->DBWrite();
|
||||
}
|
||||
else
|
||||
{
|
||||
$oLink->DBDelete();
|
||||
}
|
||||
$oLink->DBDelete();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1318,7 +1318,7 @@ class DBObjectSetComparator
|
||||
// Already marked as modified above
|
||||
//$aResult['modified'][$oObj->GetKey()] = $oObj;
|
||||
}
|
||||
else if (!array_key_exists($sFingerprint, $this->aFingerprints1) && $oObj->IsNew())
|
||||
else if (!array_key_exists($sFingerprint, $this->aFingerprints1))
|
||||
{
|
||||
$aResult['added'][] = $oObj;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user