MDL-42023 Assign: Edit PDF plugin - fix unit tests
authorDamyon Wiese <damyon@moodle.com>
Thu, 3 Oct 2013 06:03:44 +0000 (14:03 +0800)
committerDamyon Wiese <damyon@moodle.com>
Thu, 3 Oct 2013 06:05:28 +0000 (14:05 +0800)
mod/assign/feedback/editpdf/classes/annotation.php
mod/assign/feedback/editpdf/classes/comment.php
mod/assign/feedback/editpdf/classes/page_editor.php
mod/assign/feedback/editpdf/locallib.php

index af44aba..f6bd313 100644 (file)
@@ -67,14 +67,16 @@ class annotation {
      * Convert a compatible stdClass into an instance of this class.
      * @param stdClass $record
      */
-    public function __construct(\stdClass $record) {
-        $intcols = array('endx', 'endy', 'x', 'y');
-        foreach ($this as $key => $value) {
-            if (isset($record->$key)) {
-                if (in_array($key, $intcols)) {
-                    $this->$key = intval($record->$key);
-                } else {
-                    $this->$key = $record->$key;
+    public function __construct(\stdClass $record = null) {
+        if ($record) {
+            $intcols = array('endx', 'endy', 'x', 'y');
+            foreach ($this as $key => $value) {
+                if (isset($record->$key)) {
+                    if (in_array($key, $intcols)) {
+                        $this->$key = intval($record->$key);
+                    } else {
+                        $this->$key = $record->$key;
+                    }
                 }
             }
         }
index d3dd7a5..d0cfded 100644 (file)
@@ -59,14 +59,16 @@ class comment {
      * Convert a compatible stdClass into an instance of a comment.
      * @param \stdClass $record
      */
-    public function __construct(\stdClass $record) {
-        $intcols = array('width', 'x', 'y');
-        foreach ($this as $key => $value) {
-            if (isset($record->$key)) {
-                if (in_array($key, $intcols)) {
-                    $this->$key = intval($record->$key);
-                } else {
-                    $this->$key = $record->$key;
+    public function __construct(\stdClass $record = null) {
+        if ($record) {
+            $intcols = array('width', 'x', 'y');
+            foreach ($this as $key => $value) {
+                if (isset($record->$key)) {
+                    if (in_array($key, $intcols)) {
+                        $this->$key = intval($record->$key);
+                    } else {
+                        $this->$key = $record->$key;
+                    }
                 }
             }
         }
index 4b6d53a..ed95f62 100644 (file)
@@ -73,7 +73,11 @@ class page_editor {
         $added = 0;
         foreach ($comments as $record) {
             // Force these.
-            $comment = new comment($record);
+            if ($record instanceof stdClass) {
+                $comment = new comment($record);
+            } else {
+                $comment = $record;
+            }
             if (trim($comment->rawtext) === '') {
                 continue;
             }
@@ -159,7 +163,11 @@ class page_editor {
         $added = 0;
         foreach ($annotations as $record) {
             // Force these.
-            $annotation = new annotation($record);
+            if ($record instanceof stdClass) {
+                $annotation = new annotation($record);
+            } else {
+                $annotation = $record;
+            }
             $annotation->gradeid = $gradeid;
             $annotation->pageno = $pageno;
             $annotation->draft = 1;
index 9eeb84a..d1d3cf5 100644 (file)
@@ -244,10 +244,13 @@ class assign_feedback_editpdf extends assign_feedback_plugin {
      */
     public function delete_instance() {
         global $DB;
-        $grades = $DB->get_records('assign_grades', array('assignment'=>$this->assignment->id), '', 'id');
-        list($gradeids, $params) = $DB->get_in_or_equal(array_keys($grades), SQL_PARAMS_NAMED);
-        $DB->delete_records_select('assignfeedback_editpdf_annot', $gradeids, $params);
-        $DB->delete_records_select('assignfeedback_editpdf_cmnt', $gradeids, $params);
+        $grades = $DB->get_records('assign_grades', array('assignment'=>$this->assignment->get_instance()->id), '', 'id');
+        if ($grades) {
+            list($gradeids, $params) = $DB->get_in_or_equal(array_keys($grades), SQL_PARAMS_NAMED);
+            $DB->delete_records_select('assignfeedback_editpdf_annot', 'gradeid ' . $gradeids, $params);
+            $DB->delete_records_select('assignfeedback_editpdf_cmnt', 'gradeid ' . $gradeids, $params);
+        }
+        return true;
     }
 
 }