MDL-21687 Completion 'on view' not working on resource types after resource was rewritten
authorSam Marshall <s.marshall@open.ac.uk>
Tue, 23 Feb 2010 13:10:45 +0000 (13:10 +0000)
committerSam Marshall <s.marshall@open.ac.uk>
Tue, 23 Feb 2010 13:10:45 +0000 (13:10 +0000)
mod/folder/view.php
mod/imscp/view.php
mod/page/view.php
mod/resource/lib.php
mod/resource/view.php
mod/url/view.php

index b28ece9..f883886 100644 (file)
@@ -45,6 +45,10 @@ $context = get_context_instance(CONTEXT_MODULE, $cm->id);
 
 add_to_log($course->id, 'folder', 'view', 'view.php?id='.$cm->id, $folder->id, $cm->id);
 
+// Update 'viewed' state if required by completion system
+$completion = new completion_info($course);
+$completion->set_module_viewed($cm);
+
 $PAGE->set_url('/mod/folder/view.php', array('id' => $cm->id));
 
 $PAGE->set_title($course->shortname.': '.$folder->name);
index cecb681..9a25d0e 100644 (file)
@@ -45,6 +45,10 @@ $context = get_context_instance(CONTEXT_MODULE, $cm->id);
 
 add_to_log($course->id, 'imscp', 'view', 'view.php?id='.$cm->id, $imscp->id, $cm->id);
 
+// Update 'viewed' state if required by completion system
+$completion = new completion_info($course);
+$completion->set_module_viewed($cm);
+
 $PAGE->set_url('/mod/imscp/view.php', array('id' => $cm->id));
 $PAGE->requires->js('/mod/imscp/dummyapi.js', true);
 
index 77987db..226ac33 100644 (file)
@@ -52,6 +52,10 @@ $context = get_context_instance(CONTEXT_MODULE, $cm->id);
 
 add_to_log($course->id, 'page', 'view', 'view.php?id='.$cm->id, $page->id, $cm->id);
 
+// Update 'viewed' state if required by completion system
+$completion = new completion_info($course);
+$completion->set_module_viewed($cm);
+
 $PAGE->set_url('/mod/page/view.php', array('id' => $cm->id));
 
 $options = empty($page->displayoptions) ? array() : unserialize($page->displayoptions);
index 1e839f0..6f5eed7 100644 (file)
@@ -304,6 +304,18 @@ function resource_get_coursemodule_info($coursemodule) {
         $context = get_context_instance(CONTEXT_MODULE, $coursemodule->id);
         $path = '/'.$context->id.'/resource_content/'.$resource->revision.$resource->mainfile;
         $fullurl = addslashes_js(file_encode_url($CFG->wwwroot.'/pluginfile.php', $path, true));
+
+        // When completion information is enabled for download files, make
+        // the JavaScript version go to the view page with redirect set,
+        // instead of directly to the file, otherwise we can't make it tick
+        // the box for them
+        if (!$course = $DB->get_record('course', array('id'=>$coursemodule->course), 'id, enablecompletion')) {
+            return NULL;
+        }
+        $completion = new completion_info($course);
+        if ($completion->is_enabled($coursemodule) == COMPLETION_TRACKING_AUTOMATIC) {
+            $fullurl = "$CFG->wwwroot/mod/resource/view.php?id=$coursemodule->id&amp;redirect=1";
+        }
         $info->extra = "onclick=\"window.open('$fullurl'); return false;\"";
     }
 
index 2f46516..185531f 100644 (file)
@@ -52,6 +52,10 @@ $context = get_context_instance(CONTEXT_MODULE, $cm->id);
 
 add_to_log($course->id, 'resource', 'view', 'view.php?id='.$cm->id, $resource->id, $cm->id);
 
+// Update 'viewed' state if required by completion system
+$completion = new completion_info($course);
+$completion->set_module_viewed($cm);
+
 $PAGE->set_url('/mod/resource/view.php', array('id' => $cm->id));
 
 if ($resource->tobemigrated) {
index 5fdba57..5d6e05c 100644 (file)
@@ -46,6 +46,10 @@ $context = get_context_instance(CONTEXT_MODULE, $cm->id);
 
 add_to_log($course->id, 'url', 'view', 'view.php?id='.$cm->id, $url->id, $cm->id);
 
+// Update 'viewed' state if required by completion system
+$completion = new completion_info($course);
+$completion->set_module_viewed($cm);
+
 $PAGE->set_url('/mod/url/view.php', array('id' => $cm->id));
 
 if ($redirect) {