N°2334 Fix unable to display finalClass on remote class in view/edit lnk relations

Don't filter finalClass anymore when viewing object in \MetaModel::GetZListAttDefsFilteredForIndirectRemoteClass
Also added some type hinting
This commit is contained in:
Pierre Goiffon
2021-02-03 13:00:51 +01:00
parent 34d9eb2d96
commit 2e2b7f96f2
2 changed files with 9 additions and 10 deletions

View File

@@ -102,8 +102,7 @@ class UILinksWidget
$this->m_aEditableFields[] = $this->m_sExtKeyToRemote; $this->m_aEditableFields[] = $this->m_sExtKeyToRemote;
$aRemoteAttDefsToDisplay = MetaModel::GetZListAttDefsFilteredForIndirectRemoteClass($this->m_sRemoteClass); $aRemoteAttDefsToDisplay = MetaModel::GetZListAttDefsFilteredForIndirectRemoteClass($this->m_sRemoteClass);
foreach ($aRemoteAttDefsToDisplay as $oRemoteAttDef) foreach ($aRemoteAttDefsToDisplay as $oRemoteAttDef) {
{
$sRemoteAttCode = $oRemoteAttDef->GetCode(); $sRemoteAttCode = $oRemoteAttDef->GetCode();
$this->m_aTableConfig['static::'.$sRemoteAttCode] = array( $this->m_aTableConfig['static::'.$sRemoteAttCode] = array(
'label' => $oRemoteAttDef->GetLabel(), 'label' => $oRemoteAttDef->GetLabel(),

View File

@@ -1977,19 +1977,17 @@ abstract class MetaModel
* *
* @return \AttributeDefinition[] list of attdefs to display by default for the remote class * @return \AttributeDefinition[] list of attdefs to display by default for the remote class
* *
* @throws \Exception
* @uses \MetaModel::GetZListItems 'list' zlist
*
* @since 3.0.0 N°2334 * @since 3.0.0 N°2334
*/ */
public static function GetZListAttDefsFilteredForIndirectRemoteClass($sRemoteClass) public static function GetZListAttDefsFilteredForIndirectRemoteClass(string $sRemoteClass): array
{ {
$aAttCodesToPrint = []; $aAttCodesToPrint = [];
foreach (MetaModel::GetZListItems($sRemoteClass, 'list') as $sFieldCode) foreach (MetaModel::GetZListItems($sRemoteClass, 'list') as $sFieldCode) {
{
//TODO: check the state of the attribute: hidden or visible ? //TODO: check the state of the attribute: hidden or visible ?
if ($sFieldCode == 'finalclass')
{
continue;
}
$oRemoteAttDef = MetaModel::GetAttributeDef($sRemoteClass, $sFieldCode); $oRemoteAttDef = MetaModel::GetAttributeDef($sRemoteClass, $sFieldCode);
$aAttCodesToPrint[] = $oRemoteAttDef; $aAttCodesToPrint[] = $oRemoteAttDef;
@@ -2005,9 +2003,11 @@ abstract class MetaModel
* @return \AttributeDefinition[] list of attdefs to display by default for lnk class * @return \AttributeDefinition[] list of attdefs to display by default for lnk class
* *
* @throws \CoreException * @throws \CoreException
* @uses \MetaModel::GetZListItems 'list' zlist
*
* @since 3.0.0 N°2334 * @since 3.0.0 N°2334
*/ */
public static function GetZListAttDefsFilteredForIndirectLinkClass($sClass, $sAttCode) public static function GetZListAttDefsFilteredForIndirectLinkClass(string $sClass, string $sAttCode): array
{ {
$aAttCodesToPrint = []; $aAttCodesToPrint = [];