diff --git a/core/attributedef.class.inc.php b/core/attributedef.class.inc.php
index 3e27014a0..f409adfe2 100644
--- a/core/attributedef.class.inc.php
+++ b/core/attributedef.class.inc.php
@@ -3269,10 +3269,13 @@ class AttributeClassState extends AttributeString
$sClass = $oHostObj->Get($sTargetClass);
$aAllowedStates = array();
- $aValues = MetaModel::EnumStates($sClass);
- foreach(array_keys($aValues) as $sState)
+ foreach (MetaModel::EnumChildClasses($sClass, ENUM_CHILD_CLASSES_ALL) as $sChildClass)
{
- $aAllowedStates[$sState] = $sState.' ('.MetaModel::GetStateLabel($sClass, $sState).')';
+ $aValues = MetaModel::EnumStates($sChildClass);
+ foreach (array_keys($aValues) as $sState)
+ {
+ $aAllowedStates[$sState] = $sState.' ('.MetaModel::GetStateLabel($sChildClass, $sState).')';
+ }
}
return $aAllowedStates;
}
@@ -3291,9 +3294,15 @@ class AttributeClassState extends AttributeString
{
$sTargetClass = $this->Get('class_field');
$sClass = $oHostObject->Get($sTargetClass);
-
- $sHTML = ''.$sValue.'';
- return $sHTML;
+ foreach (MetaModel::EnumChildClasses($sClass, ENUM_CHILD_CLASSES_ALL) as $sChildClass)
+ {
+ $aValues = MetaModel::EnumStates($sChildClass);
+ if (in_array($sValue, $aValues))
+ {
+ $sHTML = ''.$sValue.'';
+ return $sHTML;
+ }
+ }
}
return $sValue;