function formMorphologyForThisModelInstance()
{
$oMorpho = new \Formal\Form\Morphology();
$oMorpho->add(new \Formal\Element\Listbox(["prop" => "PROJECT_TIMEZONE", "label" => "Server Time zone", "validation" => "required", "options" => \Baikal\Core\Tools::timezones()]));
$oMorpho->add(new \Formal\Element\Checkbox(["prop" => "BAIKAL_CAL_ENABLED", "label" => "Enable CalDAV"]));
$oMorpho->add(new \Formal\Element\Checkbox(["prop" => "BAIKAL_CARD_ENABLED", "label" => "Enable CardDAV"]));
$oMorpho->add(new \Formal\Element\Listbox(["prop" => "BAIKAL_DAV_AUTH_TYPE", "label" => "WebDAV authentication type", "options" => ["Digest", "Basic"]]));
$oMorpho->add(new \Formal\Element\Password(["prop" => "BAIKAL_ADMIN_PASSWORDHASH", "label" => "Admin password"]));
$oMorpho->add(new \Formal\Element\Password(["prop" => "BAIKAL_ADMIN_PASSWORDHASH_CONFIRM", "label" => "Admin password, confirmation", "validation" => "sameas:BAIKAL_ADMIN_PASSWORDHASH"]));
if (!defined("BAIKAL_ADMIN_PASSWORDHASH") || trim(BAIKAL_ADMIN_PASSWORDHASH) === "") {
# No password set (Form is used in install tool), so password is required as it has to be defined
$oMorpho->element("BAIKAL_ADMIN_PASSWORDHASH")->setOption("validation", "required");
} else {
$sNotice = "-- Leave empty to keep current password --";
$oMorpho->element("BAIKAL_ADMIN_PASSWORDHASH")->setOption("placeholder", $sNotice);
$oMorpho->element("BAIKAL_ADMIN_PASSWORDHASH_CONFIRM")->setOption("placeholder", $sNotice);
}
return $oMorpho;
}