mirror of
https://github.com/Combodo/iTop.git
synced 2026-02-13 07:24:13 +01:00
N°7145 - UI - Init Value DateTime and Date with Day Time (use OQL syntax for default value)
This commit is contained in:
@@ -6346,13 +6346,6 @@ class AttributeDateTime extends AttributeDBField
|
|||||||
|
|
||||||
$oFormField = parent::MakeFormField($oObject, $oFormField);
|
$oFormField = parent::MakeFormField($oObject, $oFormField);
|
||||||
|
|
||||||
// After call to the parent as it sets the current value
|
|
||||||
$oValue = $oObject->Get($this->GetCode());
|
|
||||||
if ($oValue === $this->GetNullValue()) {
|
|
||||||
$oValue = $this->GetDefaultValue($oObject);
|
|
||||||
}
|
|
||||||
$oFormField->SetCurrentValue($this->GetFormat()->Format($oValue));
|
|
||||||
|
|
||||||
return $oFormField;
|
return $oFormField;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -6438,18 +6431,8 @@ class AttributeDateTime extends AttributeDBField
|
|||||||
public function GetDefaultValue(DBObject $oHostObject = null)
|
public function GetDefaultValue(DBObject $oHostObject = null)
|
||||||
{
|
{
|
||||||
$sDefaultValue = $this->Get('default_value');
|
$sDefaultValue = $this->Get('default_value');
|
||||||
if (!$this->IsNullAllowed() && utils::IsNotNullOrEmptyString($sDefaultValue)) {
|
if (utils::IsNotNullOrEmptyString($sDefaultValue)) {
|
||||||
try {
|
$oDate = new DateTimeImmutable(Expression::FromOQL($sDefaultValue)->Evaluate([]));
|
||||||
$oDate = new DateTimeImmutable($sDefaultValue);
|
|
||||||
}
|
|
||||||
catch (Exception $e) {
|
|
||||||
IssueLog::Error($e->getMessage(), null, [
|
|
||||||
'class' => get_class($this),
|
|
||||||
'name' => $this->GetCode(),
|
|
||||||
'stack' => $e->getTraceAsString()]);
|
|
||||||
return $this->GetNullValue();
|
|
||||||
}
|
|
||||||
|
|
||||||
return $oDate->format($this->GetInternalFormat());
|
return $oDate->format($this->GetInternalFormat());
|
||||||
}
|
}
|
||||||
return $this->GetNullValue();
|
return $this->GetNullValue();
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ class Event extends DBObject implements iDisplay
|
|||||||
MetaModel::Init_Params($aParams);
|
MetaModel::Init_Params($aParams);
|
||||||
//MetaModel::Init_InheritAttributes();
|
//MetaModel::Init_InheritAttributes();
|
||||||
MetaModel::Init_AddAttribute(new AttributeText("message", array("allowed_values"=>null, "sql"=>"message", "default_value"=>null, "is_null_allowed"=>false, "depends_on"=>array())));
|
MetaModel::Init_AddAttribute(new AttributeText("message", array("allowed_values"=>null, "sql"=>"message", "default_value"=>null, "is_null_allowed"=>false, "depends_on"=>array())));
|
||||||
MetaModel::Init_AddAttribute(new AttributeDateTime("date", array("allowed_values"=>null, "sql"=>"date", "default_value"=>"now", "is_null_allowed"=>false, "depends_on"=>array())));
|
MetaModel::Init_AddAttribute(new AttributeDateTime("date", array("allowed_values"=>null, "sql"=>"date", "default_value"=>"NOW()", "is_null_allowed"=>false, "depends_on"=>array())));
|
||||||
MetaModel::Init_AddAttribute(new AttributeString("userinfo", array("allowed_values"=>null, "sql"=>"userinfo", "default_value"=>null, "is_null_allowed"=>true, "depends_on"=>array())));
|
MetaModel::Init_AddAttribute(new AttributeString("userinfo", array("allowed_values"=>null, "sql"=>"userinfo", "default_value"=>null, "is_null_allowed"=>true, "depends_on"=>array())));
|
||||||
// MetaModel::Init_AddAttribute(new AttributeString("userinfo", array("allowed_values"=>null, "sql"=>"userinfo", "default_value"=>null, "is_null_allowed"=>true, "depends_on"=>array())));
|
// MetaModel::Init_AddAttribute(new AttributeString("userinfo", array("allowed_values"=>null, "sql"=>"userinfo", "default_value"=>null, "is_null_allowed"=>true, "depends_on"=>array())));
|
||||||
|
|
||||||
|
|||||||
@@ -246,15 +246,12 @@ PHP
|
|||||||
// Given
|
// Given
|
||||||
$oDateAttribute = new AttributeDateTime('start_date', ['sql' => 'start_date', 'is_null_allowed' => false, 'default_value' => '', 'allowed_values' => null, 'depends_on' => [], 'always_load_in_tables' => false]);
|
$oDateAttribute = new AttributeDateTime('start_date', ['sql' => 'start_date', 'is_null_allowed' => false, 'default_value' => '', 'allowed_values' => null, 'depends_on' => [], 'always_load_in_tables' => false]);
|
||||||
$oDateAttribute->SetHostClass('WorkOrder');
|
$oDateAttribute->SetHostClass('WorkOrder');
|
||||||
$oWorkOrder = MetaModel::NewObject('WorkOrder');
|
|
||||||
|
|
||||||
//When
|
//When
|
||||||
$defaultValue = $oDateAttribute->GetDefaultValue();
|
$defaultValue = $oDateAttribute->GetDefaultValue();
|
||||||
$oField = $oDateAttribute->MakeFormField($oWorkOrder);
|
|
||||||
|
|
||||||
// Then
|
// Then
|
||||||
self::assertNull($defaultValue, 'Empty default value for DateTime attribute should give null default value');
|
self::assertNull($defaultValue, 'Empty default value for DateTime attribute should give null default value');
|
||||||
self::assertEmpty($oField->GetCurrentValue(), 'Empty default value for DateTime attribute should give empty form field');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testDateEmptyDefaultReturnsNullAsDefaultValue()
|
public function testDateEmptyDefaultReturnsNullAsDefaultValue()
|
||||||
@@ -262,87 +259,86 @@ PHP
|
|||||||
// Given
|
// Given
|
||||||
$oDateAttribute = new AttributeDate('start_date', ['sql' => 'start_date', 'is_null_allowed' => false, 'default_value' => '', 'allowed_values' => null, 'depends_on' => [], 'always_load_in_tables' => false]);
|
$oDateAttribute = new AttributeDate('start_date', ['sql' => 'start_date', 'is_null_allowed' => false, 'default_value' => '', 'allowed_values' => null, 'depends_on' => [], 'always_load_in_tables' => false]);
|
||||||
$oDateAttribute->SetHostClass('WorkOrder');
|
$oDateAttribute->SetHostClass('WorkOrder');
|
||||||
$oWorkOrder = MetaModel::NewObject('WorkOrder');
|
|
||||||
|
|
||||||
//When
|
//When
|
||||||
$defaultValue = $oDateAttribute->GetDefaultValue();
|
$defaultValue = $oDateAttribute->GetDefaultValue();
|
||||||
$oField = $oDateAttribute->MakeFormField($oWorkOrder);
|
|
||||||
|
|
||||||
// Then
|
// Then
|
||||||
self::assertNull($defaultValue, 'Empty default value for Date attribute should give null default value');
|
self::assertNull($defaultValue, 'Empty default value for Date attribute should give null default value');
|
||||||
self::assertEmpty($oField->GetCurrentValue(), 'Empty default value for DateTime attribute should give empty form field');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public function testDateTimeNowAsDefaultGivesCurrentDateAsDefaultValue()
|
public function testDateTimeNowAsDefaultGivesCurrentDateAsDefaultValue()
|
||||||
{
|
{
|
||||||
// Given
|
// Given
|
||||||
$oDateAttribute = new AttributeDateTime('start_date', ['sql' => 'start_date', 'is_null_allowed' => false, 'default_value' => 'now', 'allowed_values' => null, 'depends_on' => [], 'always_load_in_tables' => false]);
|
$oDateAttribute = new AttributeDateTime('start_date', [
|
||||||
|
'sql' => 'start_date',
|
||||||
|
'is_null_allowed' => false,
|
||||||
|
'default_value' => 'NOW()',
|
||||||
|
'allowed_values' => null,
|
||||||
|
'depends_on' => [],
|
||||||
|
'always_load_in_tables' => false
|
||||||
|
]);
|
||||||
$oDateAttribute->SetHostClass('WorkOrder');
|
$oDateAttribute->SetHostClass('WorkOrder');
|
||||||
$oWorkOrder = MetaModel::NewObject('WorkOrder');
|
|
||||||
|
|
||||||
//When
|
//When
|
||||||
$defaultValue = $oDateAttribute->GetDefaultValue();
|
$defaultValue = $oDateAttribute->GetDefaultValue();
|
||||||
$oField = $oDateAttribute->MakeFormField($oWorkOrder);
|
|
||||||
|
|
||||||
// Then
|
// Then
|
||||||
$sNow = date($oDateAttribute->GetInternalFormat());
|
$sNow = date($oDateAttribute->GetInternalFormat());
|
||||||
self::assertEquals($sNow, $defaultValue, 'Now as default value for DateTime attribute should give current date as default value');
|
self::assertEquals($sNow, $defaultValue, 'Now as default value for DateTime attribute should give current date as default value');
|
||||||
self::assertEquals($sNow, $oField->GetCurrentValue(), 'Now as default value for DateTime attribute should give current date as form field');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public function testDateNowAsDefaultGivesCurrentDateAsDefaultValue()
|
public function testDateNowAsDefaultGivesCurrentDateAsDefaultValue()
|
||||||
{
|
{
|
||||||
// Given
|
// Given
|
||||||
$oDateAttribute = new AttributeDate('start_date', ['sql' => 'start_date', 'is_null_allowed' => false, 'default_value' => 'now', 'allowed_values' => null, 'depends_on' => [], 'always_load_in_tables' => false]);
|
$oDateAttribute = new AttributeDate('start_date', [
|
||||||
|
'sql' => 'start_date',
|
||||||
|
'is_null_allowed' => false,
|
||||||
|
'default_value' => 'NOW()',
|
||||||
|
'allowed_values' => null,
|
||||||
|
'depends_on' => [],
|
||||||
|
'always_load_in_tables' => false
|
||||||
|
]);
|
||||||
$oDateAttribute->SetHostClass('WorkOrder');
|
$oDateAttribute->SetHostClass('WorkOrder');
|
||||||
$oWorkOrder = MetaModel::NewObject('WorkOrder');
|
|
||||||
|
|
||||||
//When
|
//When
|
||||||
$defaultValue = $oDateAttribute->GetDefaultValue();
|
$defaultValue = $oDateAttribute->GetDefaultValue();
|
||||||
$oField = $oDateAttribute->MakeFormField($oWorkOrder);
|
|
||||||
|
|
||||||
// Then
|
// Then
|
||||||
$sNow = date($oDateAttribute->GetInternalFormat());
|
$sNow = date($oDateAttribute->GetInternalFormat());
|
||||||
self::assertEquals($sNow, $defaultValue, 'Now as default value for Date attribute should give current date as default value');
|
self::assertEquals($sNow, $defaultValue, 'Now as default value for Date attribute should give current date as default value');
|
||||||
self::assertEquals($sNow, $oField->GetCurrentValue(), 'Now as default value for Date attribute should give current date as form field');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testDateTimeIntervalAsDefaultGivesCorrectDateAsDefaultValue()
|
public function testDateTimeIntervalAsDefaultGivesCorrectDateAsDefaultValue()
|
||||||
{
|
{
|
||||||
// Given
|
// Given
|
||||||
$oDateAttribute = new AttributeDateTime('start_date', ['sql' => 'start_date', 'is_null_allowed' => false, 'default_value' => '+1day', 'allowed_values' => null, 'depends_on' => [], 'always_load_in_tables' => false]);
|
$oDateAttribute = new AttributeDateTime('start_date', ['sql' => 'start_date', 'is_null_allowed' => false, 'default_value' => 'DATE_ADD(NOW(), INTERVAL 1 DAY)', 'allowed_values' => null, 'depends_on' => [], 'always_load_in_tables' => false]);
|
||||||
$oDateAttribute->SetHostClass('WorkOrder');
|
$oDateAttribute->SetHostClass('WorkOrder');
|
||||||
$oWorkOrder = MetaModel::NewObject('WorkOrder');
|
|
||||||
|
|
||||||
//When
|
//When
|
||||||
$defaultValue = $oDateAttribute->GetDefaultValue();
|
$defaultValue = $oDateAttribute->GetDefaultValue();
|
||||||
$oField = $oDateAttribute->MakeFormField($oWorkOrder);
|
|
||||||
|
|
||||||
// Then
|
// Then
|
||||||
$oDate = new \DateTimeImmutable('+1day');
|
$oDate = new \DateTimeImmutable('+1day');
|
||||||
$sExpected = $oDate->format($oDateAttribute->GetInternalFormat());
|
$sExpected = $oDate->format($oDateAttribute->GetInternalFormat());
|
||||||
self::assertEquals($sExpected, $defaultValue, 'Interval as default value for DateTime attribute should give correct date as default value');
|
self::assertEquals($sExpected, $defaultValue, 'Interval as default value for DateTime attribute should give correct date as default value');
|
||||||
self::assertEquals($sExpected, $oField->GetCurrentValue(), 'Interval as default value for DateTime attribute should give correct date as form field');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testDateIntervalAsDefaultGivesCorrectDateAsDefaultValue()
|
public function testDateIntervalAsDefaultGivesCorrectDateAsDefaultValue()
|
||||||
{
|
{
|
||||||
// Given
|
// Given
|
||||||
$oDateAttribute = new AttributeDate('start_date', ['sql' => 'start_date', 'is_null_allowed' => false, 'default_value' => '+1day', 'allowed_values' => null, 'depends_on' => [], 'always_load_in_tables' => false]);
|
$oDateAttribute = new AttributeDate('start_date', ['sql' => 'start_date', 'is_null_allowed' => false, 'default_value' => 'DATE_ADD(NOW(), INTERVAL 1 DAY)', 'allowed_values' => null, 'depends_on' => [], 'always_load_in_tables' => false]);
|
||||||
$oDateAttribute->SetHostClass('WorkOrder');
|
$oDateAttribute->SetHostClass('WorkOrder');
|
||||||
$oWorkOrder = MetaModel::NewObject('WorkOrder');
|
|
||||||
|
|
||||||
//When
|
//When
|
||||||
$defaultValue = $oDateAttribute->GetDefaultValue();
|
$defaultValue = $oDateAttribute->GetDefaultValue();
|
||||||
$oField = $oDateAttribute->MakeFormField($oWorkOrder);
|
|
||||||
|
|
||||||
// Then
|
// Then
|
||||||
$oDate = new \DateTimeImmutable('+1day');
|
$oDate = new \DateTimeImmutable('+1day');
|
||||||
$sExpected = $oDate->format($oDateAttribute->GetInternalFormat());
|
$sExpected = $oDate->format($oDateAttribute->GetInternalFormat());
|
||||||
self::assertEquals($sExpected, $defaultValue, 'Interval as default value for Date attribute should give correct date as default value');
|
self::assertEquals($sExpected, $defaultValue, 'Interval as default value for Date attribute should give correct date as default value');
|
||||||
self::assertEquals($sExpected, $oField->GetCurrentValue(), 'Interval as default value for Date attribute should give correct date as form field');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user