MDL-58557 mod_choice: only check responses if event is actionable
authorRyan Wyllie <ryan@moodle.com>
Thu, 27 Apr 2017 07:00:03 +0000 (07:00 +0000)
committerRyan Wyllie <ryan@moodle.com>
Thu, 27 Apr 2017 07:00:03 +0000 (07:00 +0000)
mod/choice/lib.php

index c4149a0..3d16999 100644 (file)
@@ -1205,15 +1205,15 @@ function mod_choice_core_calendar_provide_event_action(calendar_event $event,
         return null;
     }
 
         return null;
     }
 
-    if (choice_get_my_response($choice)) {
-        // There is no action if the user has already submitted their choice.
-        return null;
-    }
-
     // The choice is actionable if we don't have a start time or the start time is
     // in the past.
     $actionable = (!$choice->timeopen || $choice->timeopen <= $now);
 
     // The choice is actionable if we don't have a start time or the start time is
     // in the past.
     $actionable = (!$choice->timeopen || $choice->timeopen <= $now);
 
+    if ($actionable && choice_get_my_response($choice)) {
+        // There is no action if the user has already submitted their choice.
+        return null;
+    }
+
     return $factory->create_instance(
         get_string('viewchoices', 'choice'),
         new \moodle_url('/mod/choice/view.php', array('id' => $cm->id)),
     return $factory->create_instance(
         get_string('viewchoices', 'choice'),
         new \moodle_url('/mod/choice/view.php', array('id' => $cm->id)),