Learnpath: Improve dates as item prerequisites - refs BT#20639

pull/4674/head
Christian 2 years ago
parent b3f92b0885
commit 6ccdfbb20c
  1. 2
      main/inc/lib/extra_field.lib.php
  2. 11
      main/lp/blank.php
  3. 17
      main/lp/learnpath.class.php

@ -1239,7 +1239,7 @@ class ExtraField extends Model
$field_details['display_text']
);
$defaults['extra_'.$field_details['variable']] = api_get_local_time();
$defaults['extra_'.$field_details['variable']] = (EntityExtraField::LP_ITEM_FIELD_TYPE == $field_details['extra_field_type'] ? '' : api_get_local_time());
if (!isset($form->_defaultValues['extra_'.$field_details['variable']])) {
$form->setDefaults($defaults);
}

@ -34,6 +34,17 @@ if (isset($_GET['error'])) {
$message = Display::return_message(Security::remove_XSS($prerequisiteMessage), 'warning');
}
// Validates and display error message for prerequisite dates.
/** @var learnpath $lp */
$lp = Session::read('oLP');
$itemId = $lp->get_current_item_id();
$datesMatch = $lp->prerequistesDatesMatch($itemId);
if (!$datesMatch) {
$currentItem = $lp->getItem($itemId);
if (!empty($currentItem->prereq_alert)) {
$message = Display::return_message($currentItem->prereq_alert, 'warning');
}
}
break;
case 'document_not_found':
$message = Display::return_message(get_lang('FileNotFound'), 'warning');

@ -4463,19 +4463,30 @@ class learnpath
'end_date'
);
$now = time();
$start = 0;
$end = 0;
$result = true;
if (
!empty($startDate) && isset($startDate['value']) && !empty($startDate['value']) &&
!empty($endDate) && isset($endDate['value']) && !empty($endDate['value'])
) {
$now = time();
$start = api_strtotime($startDate['value']);
$end = api_strtotime($endDate['value']);
$result = ($now > $start && $now < $end);
}
if (!$result) {
$this->set_error_msg(get_lang('ItemCanNotBeAccessedPrerequisiteDates'));
$errMsg = get_lang('ItemCanNotBeAccessedPrerequisiteDates');
if ($start > $now) {
$errMsg = get_lang('AccessibleFrom').' '.api_format_date($start, DATE_TIME_FORMAT_LONG);
}
if ($end < $now) {
$errMsg = get_lang('NoMoreAccessible');
}
$this->set_error_msg($errMsg);
$currentItem = $this->getItem($itemId);
$currentItem->prereq_alert = $errMsg;
}
return $result;
@ -10247,7 +10258,7 @@ class learnpath
$form->addHidden('type', TOOL_STUDENTPUBLICATION);
$form->addHidden('post_time', time());
$this->setAuthorLpItem($form);
$form->setDefaults(['title' => $item_title]);
$form->setDefaults(['title' => $item_title, 'start_date' => null]);
$return = '<div class="sectioncomment">';
$return .= $form->returnForm();

Loading…
Cancel
Save