diff --git a/application/menunode.class.inc.php b/application/menunode.class.inc.php index 81927e921..32a039e18 100644 --- a/application/menunode.class.inc.php +++ b/application/menunode.class.inc.php @@ -1163,7 +1163,7 @@ class OQLMenuNode extends MenuNode $sIcon = MetaModel::GetClassIcon($sClass, false); if ($bSearchPane) { $aParams = array_merge(['open' => $bSearchOpen, 'table_id' => $sUsageId, 'submit_on_load' => false], $aExtraParams); - $oBlock = new DisplayBlock($oSearch, DisplayBlock::ENUM_STYLE_LIST_SEARCH, false /* Asynchronous */, $aParams); + $oBlock = new DisplayBlock($oSearch, DisplayBlock::ENUM_STYLE_SEARCH, false /* Asynchronous */, $aParams); $oBlock->Display($oPage, 0); $oPage->add("
"); } diff --git a/core/attributedef.class.inc.php b/core/attributedef.class.inc.php index cdc18d6ee..048363d5c 100644 --- a/core/attributedef.class.inc.php +++ b/core/attributedef.class.inc.php @@ -1715,8 +1715,8 @@ class AttributeLinkedSet extends AttributeDefinition public function GetEditMode() { return $this->GetOptional('edit_mode', LINKSET_EDITMODE_ACTIONS); - } - + } + /** * @return int see LINKSET_EDITWHEN_* constants * @since 3.1.1 3.2.0 N°6385 @@ -1758,7 +1758,7 @@ class AttributeLinkedSet extends AttributeDefinition { return $this->GetOptional('with_php_computation', false); } - + public function GetLinkedClass() { return $this->Get('linked_class'); @@ -9458,8 +9458,13 @@ class AttributeStopWatch extends AttributeDefinition case 'deadline': if ($value) { - $sDate = date(AttributeDateTime::GetInternalFormat(), $value); - $sRet = AttributeDeadline::FormatDeadline($sDate); + if (is_int($value)) + { + $sDate = date(AttributeDateTime::GetInternalFormat(), $value); + $sRet = AttributeDeadline::FormatDeadline($sDate); + } else { + $sRet = $value; + } } else { diff --git a/sources/Service/InterfaceDiscovery/InterfaceDiscovery.php b/sources/Service/InterfaceDiscovery/InterfaceDiscovery.php index 0568af58d..e492c0d08 100644 --- a/sources/Service/InterfaceDiscovery/InterfaceDiscovery.php +++ b/sources/Service/InterfaceDiscovery/InterfaceDiscovery.php @@ -58,7 +58,7 @@ class InterfaceDiscovery */ public function FindItopClasses(string $sInterface): array { - $aExcludedPaths = ['/lib/', '/node_modules/', '/test/', '/tests/']; + $aExcludedPaths = ['/lib/', '/node_modules/', '/test/', '/tests/', '/vendor/']; return $this->FindClasses($sInterface, $aExcludedPaths); } diff --git a/tests/php-unit-tests/unitary-tests/application/MenuNodeTest.php b/tests/php-unit-tests/unitary-tests/application/MenuNodeTest.php index 056f163bb..4c9961ece 100644 --- a/tests/php-unit-tests/unitary-tests/application/MenuNodeTest.php +++ b/tests/php-unit-tests/unitary-tests/application/MenuNodeTest.php @@ -20,6 +20,17 @@ class MenuNodeTest extends ItopDataTestCase { $this->oUR = $this->CreateUserRequest(666, $aUserRequestCustomParams); } + private function StartStopwatchInThePast(\UserRequest $oTicket, string $sAttCode, int $iSecDelay) + { + $iStartDate = time() - $iSecDelay; + /** @var \ormStopWatch $oStopwatch */ + $oStopwatch = $oTicket->Get($sAttCode); + $oAttDef = \MetaModel::GetAttributeDef(get_class($oTicket), $sAttCode); + $oStopwatch->Start($oTicket, $oAttDef, $iStartDate); + $oStopwatch->ComputeDeadlines($oTicket, $oAttDef); + $oTicket->Set($sAttCode, $oStopwatch); + } + public function RenderOQLSearchProvider() { $aUseCases = []; @@ -59,13 +70,15 @@ OQL; */ public function testRenderOQLSearchOqlWithDateFormatOnDeadline() { + $this->StartStopwatchInThePast($this->oUR, 'ttr', 10); + $sOql = <<CallRenderOQLSearch(true, true, true, $sOql); - $this->assertTrue(true); + $sContent = $this->CallRenderOQLSearch(true, true, true, $sOql); + $this->assertTrue(false !== strpos($sContent, $this->oUR->Get('title')), $sContent); } catch(\Exception $e){ echo($e->getMessage()); $this->fail('Without N°7750 fix Exception raised => TypeError : date(): Argument #2 ($timestamp) must be of type ?int, string given');