Fix AttributeSet wrong error on number of tags in creation

This commit is contained in:
Eric
2018-12-03 11:01:54 +01:00
parent c15d626095
commit aca11ac966
5 changed files with 27 additions and 8 deletions

View File

@@ -3370,7 +3370,7 @@ EOF
$oSet = $this->Get($sAttCode);
if (is_null($oSet))
{
$oSet = new ormSet(get_class($this), $sAttCode);
$oSet = new ormSet(get_class($this), $sAttCode, $oAttDef->GetMaxItems());
}
$oSet->ApplyDelta($value);
$this->Set($sAttCode, $oSet);
@@ -3427,7 +3427,14 @@ EOF
{
$aFinalValues[$sAttCode] = $aValues[$sAttCode];
}
$this->UpdateObjectFromArray($aFinalValues);
try
{
$this->UpdateObjectFromArray($aFinalValues);
}
catch (CoreException $e)
{
$aErrors[] = $e->getMessage();
}
if (!$this->IsNew()) // for new objects this is performed in DBInsertNoReload()
{
InlineImage::FinalizeInlineImages($this);
@@ -3660,8 +3667,14 @@ EOF
$aFinalValues[$sAttCode] = $aValues[$sAttCode];
}
}
$this->UpdateObjectFromArray($aFinalValues);
try
{
$this->UpdateObjectFromArray($aFinalValues);
}
catch (CoreException $e)
{
$aErrors[] = $e->getMessage();
}
return $aErrors;
}

View File

@@ -185,7 +185,7 @@ class WizardHelper
else if ($oAttDef instanceof AttributeSet) // AttributeDate is derived from AttributeDateTime
{
$value = json_decode($value, true);
$oTagSet = new ormSet(get_class($oObj), $sAttCode);
$oTagSet = new ormSet(get_class($oObj), $sAttCode, $oAttDef->GetMaxItems());
$oTagSet->SetValues($value['orig_value']);
$oTagSet->ApplyDelta($value);
$oObj->Set($sAttCode, $oTagSet);

View File

@@ -1357,7 +1357,7 @@ abstract class DBObject implements iDisplay
{
if (is_string($toCheck))
{
$oTag = new ormSet(get_class($this), $sAttCode);
$oTag = new ormSet(get_class($this), $sAttCode, $oAtt->GetMaxItems());
try
{
$aValues = array();

View File

@@ -195,7 +195,7 @@ class ormSet
*/
public function GetDelta(ormSet $oOtherSet)
{
$oSet = new ormSet($this->sClass, $this->sAttCode);
$oSet = new ormSet($this->sClass, $this->sAttCode, $this->iLimit);
// Set the initial value
$aOrigItems = $this->GetValues();
$oSet->SetValues($aOrigItems);

View File

@@ -1071,6 +1071,7 @@ EOF
$sClass = utils::ReadPostedParam('class', '', 'class');
$sClassLabel = MetaModel::GetName($sClass);
$sTransactionId = utils::ReadPostedParam('transaction_id', '');
$aErrors = array();
if ( empty($sClass) ) // TO DO: check that the class name is valid !
{
throw new ApplicationException(Dict::Format('UI:Error:1ParametersMissing', 'class'));
@@ -1091,7 +1092,7 @@ EOF
$oObj->Set($sStateAttCode, $sTargetState);
}
}
$oObj->UpdateObjectFromPostedForm();
$aErrors = $oObj->UpdateObjectFromPostedForm();
}
if (isset($oObj) && is_object($oObj))
{
@@ -1100,6 +1101,11 @@ EOF
try
{
if (!empty($aErrors))
{
throw new CoreCannotSaveObjectException(array('id' => $oObj->GetKey(), 'class' => $sClass, 'issues' => $aErrors));
}
$oObj->DBInsertNoReload();// No need to reload
utils::RemoveTransaction($sTransactionId);