Survey: Allow creation or edition of survey without end date - refs #4240

pull/4439/head
Borja Sánchez 3 years ago committed by GitHub
parent 0a39f5288c
commit 0e014d6485
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 24
      main/survey/create_new_survey.php
  2. 12
      main/survey/survey.lib.php
  3. 3
      main/survey/surveyUtil.class.php

@ -74,9 +74,13 @@ if ($action == 'edit' && isset($survey_id) && is_numeric($survey_id)) {
if ($allowSurveyAvailabilityDatetime) {
$defaults['avail_from'] = api_get_local_time($defaults['avail_from']);
$defaults['avail_till'] = api_get_local_time($defaults['avail_till']);
if (!empty($defaults['avail_till'])) {
$defaults['avail_till'] = api_get_local_time($defaults['avail_till']);
} else {
$defaults['end_date'] = null;
}
$defaults['start_date'] = $defaults['avail_from'];
$defaults['end_date'] = $defaults['avail_till'];
}
$link_info = GradebookUtils::isResourceInCourseGradebook(
@ -176,7 +180,6 @@ if ($allowSurveyAvailabilityDatetime) {
}
$form->setRequired($startDateElement);
$form->setRequired($endDateElement);
$form->addElement('checkbox', 'anonymous', null, get_lang('Anonymous'));
$visibleResults = [
@ -344,12 +347,15 @@ if ($action == 'add') {
$form->addRule('survey_title', get_lang('ThisFieldIsRequired'), 'required');
$form->addRule('start_date', get_lang('InvalidDate'), $allowSurveyAvailabilityDatetime ? 'datetime' : 'date');
$form->addRule('end_date', get_lang('InvalidDate'), $allowSurveyAvailabilityDatetime ? 'datetime' : 'date');
$form->addRule(
['start_date', 'end_date'],
get_lang('StartDateShouldBeBeforeEndDate'),
'date_compare',
'lte'
);
if (!empty($endDateElement->getCleanValue())) {
$form->addRule(
['start_date', 'end_date'],
get_lang('StartDateShouldBeBeforeEndDate'),
'date_compare',
'lte'
);
}
// Setting the default values
$form->setDefaults($defaults);

@ -465,6 +465,14 @@ class SurveyManager
$extraParams['form_fields'] = '';
}
if (!empty($values['end_date'])) {
$availTill = $allowSurveyAvailabilityDatetime
? api_get_utc_datetime($values['end_date'].':59')
: $values['end_date'];
} else {
$availTill = null;
}
$params = [
'title' => $values['survey_title'],
'subtitle' => $values['survey_subtitle'],
@ -473,9 +481,7 @@ class SurveyManager
'avail_from' => $allowSurveyAvailabilityDatetime
? api_get_utc_datetime($values['start_date'].':00')
: $values['start_date'],
'avail_till' => $allowSurveyAvailabilityDatetime
? api_get_utc_datetime($values['end_date'].':59')
: $values['end_date'],
'avail_till' => $availTill,
'is_shared' => $shared_survey_id,
'template' => 'template',
'intro' => $values['survey_introduction'],

@ -4009,7 +4009,8 @@ class SurveyUtil
WHERE
survey_invitation.user = $user_id AND
survey.avail_from <= '$filterDate' AND
survey.avail_till >= '$filterDate' AND
(survey.avail_till >= '$filterDate' OR
survey.avail_till IS NULL) AND
survey.c_id = $course_id AND
survey_invitation.c_id = $course_id $sessionCondition
";

Loading…
Cancel
Save