]> git.mjollnir.org Git - moodle.git/commitdiff
MDL-15498: Completion: added support for basic completion-on-view and on grade (where...
authorsam_marshall <sam_marshall>
Tue, 29 Jul 2008 17:22:47 +0000 (17:22 +0000)
committersam_marshall <sam_marshall>
Tue, 29 Jul 2008 17:22:47 +0000 (17:22 +0000)
12 files changed:
mod/assignment/lib.php
mod/assignment/view.php
mod/choice/lib.php
mod/choice/view.php
mod/data/lib.php
mod/data/view.php
mod/glossary/lib.php
mod/glossary/view.php
mod/lesson/lib.php
mod/lesson/view.php
mod/resource/lib.php
mod/resource/view.php

index 6e81b15ba2e7e0e05a10e135cb102e2770c9af1f..799bfa16c949f16cd212c21c2aad11a29fe0e0aa 100644 (file)
@@ -3180,5 +3180,15 @@ class assignment_portfolio_caller extends portfolio_module_caller_base {
     }
 }
 
-
+/**
+ * @param string $feature FEATURE_xx constant for requested feature
+ * @return mixed True if module supports feature, null if doesn't know
+ */
+function assignment_supports($feature) {
+    switch($feature) {
+        case FEATURE_COMPLETION_TRACKS_VIEWS: return true;
+        case FEATURE_GRADE_HAS_GRADE: return true;
+        default: return null;
+    }
+}
 ?>
index f12de92d52720a4a4315864c6f85ed38be15168d..ced9277537482471977a58d4744fc38c612c5d8f 100644 (file)
@@ -36,6 +36,9 @@
     $assignmentclass = "assignment_$assignment->assignmenttype";
     $assignmentinstance = new $assignmentclass($cm->id, $assignment, $cm, $course);
 
-    $assignmentinstance->view();   // Actually display the assignment!
+/// Mark as viewed
+    $completion=new completion_info($course);
+    $completion->set_module_viewed($cm);
 
+    $assignmentinstance->view();   // Actually display the assignment!
 ?>
index 8d9191918e02c502ae899bbdfcc406626a9b7e40..890eb8a13c567a4d4d958c0cf067121c27328ec3 100644 (file)
@@ -749,4 +749,14 @@ function chice_get_extra_capabilities() {
     return array('moodle/site:accessallgroups');
 }
 
+/**
+ * @param string $feature FEATURE_xx constant for requested feature
+ * @return mixed True if module supports feature, null if doesn't know
+ */
+function choice_supports($feature) {
+    switch($feature) {
+        case FEATURE_COMPLETION_TRACKS_VIEWS: return true;
+        default: return null;
+    }
+}
 ?>
index ded6d8197a0d012d9bb5e1b7aea76d4805a34aee..1344b71a275507bbe095325d2402006cb8a9208c 100644 (file)
 
     print_footer($course);
 
-
+/// Mark as viewed
+    $completion=new completion_info($course);
+    $completion->set_module_viewed($cm);
 ?>
index 0bf97254cfe5bf2bc7fb359ee60dc6d564b8af36..a6df608290f526bcc36b9b12ea01ff9f78b1edac 100755 (executable)
@@ -2270,4 +2270,15 @@ function data_get_extra_capabilities() {
     return array('moodle/site:accessallgroups', 'moodle/site:viewfullnames');
 }
 
+/**
+ * @param string $feature FEATURE_xx constant for requested feature
+ * @return mixed True if module supports feature, null if doesn't know
+ */
+function data_supports($feature) {
+    switch($feature) {
+        case FEATURE_COMPLETION_TRACKS_VIEWS: return true;
+        case FEATURE_GRADE_HAS_GRADE: return true;
+        default: return null;
+    }
+}
 ?>
index 983893c4bc694dc18ee36a05a8f090ae03e24536..c28b1fb8892f3bd2813c7411c49994f009d38f31 100755 (executable)
     }
 
     print_footer($course);
+
+/// Mark as viewed
+    $completion=new completion_info($course);
+    $completion->set_module_viewed($cm);
 ?>
index aa9d3eb20579c4fbcf40e41bd2ba1e988be575d2..6bc4f52a1367792e85f548bfdf9da87c85d25f53 100644 (file)
@@ -2306,4 +2306,16 @@ function glossary_get_extra_capabilities() {
     return array('moodle/site:accessallgroups', 'moodle/site:viewfullnames', 'moodle/site:trustcontent');
 }
 
+/**
+ * @param string $feature FEATURE_xx constant for requested feature
+ * @return mixed True if module supports feature, null if doesn't know
+ */
+function glossary_supports($feature) {
+    switch($feature) {
+        case FEATURE_COMPLETION_TRACKS_VIEWS: return true;
+        case FEATURE_GRADE_HAS_GRADE: return true;
+        default: return null;
+    }
+}
+
 ?>
index 31b8dfced1713cfe9c32efc38950f453c15aaba5..0641a3c8f6230000c8ba79324216d4cc69a11875 100644 (file)
     glossary_print_tabbed_table_end();
 
 /// Finish the page
-
     print_footer($course);
 
+/// Mark as viewed
+    $completion=new completion_info($course);
+    $completion->set_module_viewed($cm);
 ?>
index b1bbc30e79901321edec015198768eefa003f936..0dc9ed2f4e1a9e30f395988d790a9e5c2d77dafc 100644 (file)
@@ -705,4 +705,16 @@ function lesson_get_extra_capabilities() {
     return array('moodle/site:accessallgroups');
 }
 
+/**
+ * @param string $feature FEATURE_xx constant for requested feature
+ * @return mixed True if module supports feature, null if doesn't know
+ */
+function lesson_supports($feature) {
+    switch($feature) {
+        case FEATURE_COMPLETION_TRACKS_VIEWS: return true;
+        case FEATURE_GRADE_HAS_GRADE: return true;
+        default: return null;
+    }
+}
+
 ?>
index fb45236cdbe0b9a77637024e2c86b27187a3e47d..1b7802871f9beadb5c81e6411516234fb658037e 100644 (file)
 /// Finish the page
     print_footer($course);
 
+/// Mark as viewed
+    $completion=new completion_info($course);
+    $completion->set_module_viewed($cm);
 ?>
index 02d2dc71b2fde996e557b5e59eedc2783117dfee..1a28119889dde87aabd3d99cf06a6e66d5c8c6b7 100644 (file)
@@ -752,4 +752,15 @@ class resource_portfolio_caller extends portfolio_module_caller_base {
     }
 }
 
+/**
+ * @param string $feature FEATURE_xx constant for requested feature
+ * @return mixed True if module supports feature, null if doesn't know
+ */
+function resource_supports($feature) {
+    switch($feature) {
+        case FEATURE_COMPLETION_TRACKS_VIEWS: return true;
+        default: return null;
+    }
+}
+
 ?>
index d83e1ad7f80535da1e7066a2a4a3cb6e186f06a0..c603c1ce1824712ea0c8ebd010bf71d0ede83dce 100644 (file)
     $resourceclass = 'resource_'.$resource->type;
     $resourceinstance = new $resourceclass($cm->id);
 
-    $resourceinstance->display();
+    // Mark activity viewed before we display it because some resource types
+    // do not return from display()
+    $completion=new completion_info($course);
+    $completion->set_module_viewed($cm);
 
+    $resourceinstance->display();
 ?>