Browse Source

Add config survey_answered_at_field see BT#12909

Requires DB change:

ALTER TABLE c_survey_invitation ADD answered_at DATETIME DEFAULT NULL;
jmontoyaa 7 years ago
parent
commit
2f14ce19ab
2 changed files with 14 additions and 2 deletions
  1. 4 1
      main/install/configuration.dist.php
  2. 10 1
      main/survey/survey.lib.php

+ 4 - 1
main/install/configuration.dist.php

@@ -448,4 +448,7 @@ $_configuration['agenda_legend'] = [
 // information the browser includes with navigation away from a document
 // and should be set by all sites.
 //$_configuration['security_referrer_policy'] = 'origin-when-cross-origin';
-// HTTP headers security section ends here
+// HTTP headers security section ends here
+
+// Add answered_at field in table survey_invitation
+//$_configuration['survey_answered_at_field'] = 'false';

+ 10 - 1
main/survey/survey.lib.php

@@ -828,9 +828,18 @@ class SurveyManager
 		            survey_id = ".intval($survey_id);
         Database::query($sql);
 
+        $allow = api_get_configuration_value('survey_answered_at_field');
+        // Requires DB change:
+        // ALTER TABLE c_survey_invitation ADD answered_at DATETIME DEFAULT NULL;
+        $answeredAt = '';
+        if ($allow) {
+            $answeredAt = " answered_at = '".api_get_utc_datetime()."' AND";
+        }
+
         // Storing that the user has finished the survey.
         $sql = "UPDATE $table_survey_invitation SET answered='1'
                 WHERE
+                    $answeredAt
                     c_id = $course_id AND
                     session_id='".$session_id."' AND
                     user='".Database::escape_string($user)."' AND
@@ -1714,4 +1723,4 @@ class SurveyManager
         $code = self::generate_survey_hash($survey_id, $course_id, $session_id, $group_id);
         return api_get_path(WEB_CODE_PATH).'survey/link.php?h='.$code.'&i='.$survey_id.'&c='.intval($course_id).'&s='.intval($session_id).'&g='.$group_id;
     }
-}
+}