From 7cd65bcb766f16237f324c6daae8d0df17935c27 Mon Sep 17 00:00:00 2001 From: Simey Lameze Date: Fri, 22 Jul 2016 11:54:40 +0800 Subject: [PATCH] MDL-55308 mod_feedback: Convert analysis chart to the new library Part of MDL-54987 epic. --- mod/feedback/analysis.php | 2 -- mod/feedback/item/info/lib.php | 2 ++ mod/feedback/item/multichoice/lib.php | 37 ++++++++++---------- mod/feedback/item/multichoicerated/lib.php | 40 ++++++++++++---------- mod/feedback/item/numeric/lib.php | 2 ++ mod/feedback/item/textarea/lib.php | 2 ++ mod/feedback/item/textfield/lib.php | 2 ++ 7 files changed, 48 insertions(+), 39 deletions(-) diff --git a/mod/feedback/analysis.php b/mod/feedback/analysis.php index ed57ac5809a..7628d5bab95 100644 --- a/mod/feedback/analysis.php +++ b/mod/feedback/analysis.php @@ -78,11 +78,9 @@ echo '
'; if ($check_anonymously) { // Print the items in an analysed form. foreach ($items as $item) { - echo "typ}\">"; $itemobj = feedback_get_item_class($item->typ); $printnr = ($feedback->autonumbering && $item->itemnr) ? ($item->itemnr . '.') : ''; $itemobj->print_analysed($item, $printnr, $mygroupid); - echo '
'; } } else { echo $OUTPUT->heading_with_help(get_string('insufficient_responses_for_this_group', 'feedback'), diff --git a/mod/feedback/item/info/lib.php b/mod/feedback/item/info/lib.php index 2e47674e7a9..b96772cff27 100644 --- a/mod/feedback/item/info/lib.php +++ b/mod/feedback/item/info/lib.php @@ -152,6 +152,7 @@ class feedback_item_info extends feedback_item_base { } public function print_analysed($item, $itemnr = '', $groupid = false, $courseid = false) { + echo "typ}\">"; $analysed_item = $this->get_analysed($item, $groupid, $courseid); $data = $analysed_item->data; if (is_array($data)) { @@ -170,6 +171,7 @@ class feedback_item_info extends feedback_item_base { echo ''; } } + echo '
'; } public function excelprint_item(&$worksheet, $row_offset, diff --git a/mod/feedback/item/multichoice/lib.php b/mod/feedback/item/multichoice/lib.php index bd15d3e10c0..bbc2986c3c1 100644 --- a/mod/feedback/item/multichoice/lib.php +++ b/mod/feedback/item/multichoice/lib.php @@ -207,6 +207,7 @@ class feedback_item_multichoice extends feedback_item_base { $analysed_item = $this->get_analysed($item, $groupid, $courseid); if ($analysed_item) { $itemname = $analysed_item[1]; + echo "typ}\">"; echo ''; - + echo "
'; echo $itemnr . ' '; if (strval($item->label) !== '') { @@ -214,32 +215,32 @@ class feedback_item_multichoice extends feedback_item_base { } echo $itemname; echo '
"; $analysed_vals = $analysed_item[2]; - $pixnr = 0; + $count = 0; + $data = []; foreach ($analysed_vals as $val) { - $intvalue = $pixnr % 10; - $pix = $OUTPUT->pix_url('multichoice/' . $intvalue, 'feedback'); - $pixspacer = $OUTPUT->pix_url('spacer'); - $pixnr++; - $pixwidth = max(2, intval($val->quotient * FEEDBACK_MAX_PIX_LENGTH)); - $pixwidthspacer = FEEDBACK_MAX_PIX_LENGTH + 1 - $pixwidth; $quotient = format_float($val->quotient * 100, 2); $str_quotient = ''; if ($val->quotient > 0) { $str_quotient = ' ('. $quotient . ' %)'; } - echo ''; - echo '' . - format_text(trim($val->answertext), FORMAT_HTML, array('noclean' => true, 'para' => false)).': - - - '. - ' - '.$val->answercount.$str_quotient.' - '; - echo ''; + $answertext = format_text(trim($val->answertext), FORMAT_HTML, + array('noclean' => true, 'para' => false)); + + $data['labels'][$count] = $answertext; + $data['series'][$count] = $val->answercount; + $data['series_labels'][$count] = $str_quotient; + $count++; } + $chart = new \core\chart_bar(); + $chart->set_horizontal(true); + $series = new \core\chart_series(format_string(get_string("responses", "feedback")), $data['series']); + $series->set_labels($data['series_labels']); + $chart->add_series($series); + $chart->set_labels($data['labels']); + + echo $OUTPUT->render($chart); } } diff --git a/mod/feedback/item/multichoicerated/lib.php b/mod/feedback/item/multichoicerated/lib.php index 6e59f1ef75d..20531965757 100644 --- a/mod/feedback/item/multichoicerated/lib.php +++ b/mod/feedback/item/multichoicerated/lib.php @@ -178,6 +178,7 @@ class feedback_item_multichoicerated extends feedback_item_base { global $OUTPUT; $analysed_item = $this->get_analysed($item, $groupid, $courseid); if ($analysed_item) { + echo "typ}\">"; echo ''; + echo '
'; echo $itemnr . ' '; if (strval($item->label) !== '') { @@ -185,34 +186,35 @@ class feedback_item_multichoicerated extends feedback_item_base { } echo $analysed_item[1]; echo '
'; $analysed_vals = $analysed_item[2]; - $pixnr = 0; $avg = 0.0; + $count = 0; + $data = []; foreach ($analysed_vals as $val) { - $intvalue = $pixnr % 10; - $pix = $OUTPUT->pix_url('multichoice/' . $intvalue, 'feedback'); - $pixspacer = $OUTPUT->pix_url('spacer'); - $pixnr++; - $pixwidth = intval($val->quotient * FEEDBACK_MAX_PIX_LENGTH); - $pixwidthspacer = FEEDBACK_MAX_PIX_LENGTH + 1 - $pixwidth; - $avg += $val->avg; $quotient = format_float($val->quotient * 100, 2); - echo ''; - echo ''; - echo '('.$val->value.') '. - format_text(trim($val->answertext), FORMAT_HTML, array('noclean' => true, 'para' => false)).':'; - echo ''; - echo ''; - echo ' '; - echo $val->answercount; + $answertext = format_text(trim($val->answertext), FORMAT_HTML, + array('noclean' => true, 'para' => false)); if ($val->quotient > 0) { - echo ' ('.$quotient.' %)'; + $str_quotient = ' ('.$quotient.' %)'; } else { - echo ''; + $str_quotient = ''; } - echo ''; + + $data['labels'][$count] = $answertext; + $data['series'][$count] = $val->answercount; + $data['series_labels'][$count] = $str_quotient; + $count++; } + $chart = new \core\chart_bar(); + $chart->set_horizontal(true); + $series = new \core\chart_series(format_string(get_string("responses", "feedback")), $data['series']); + $series->set_labels($data['series_labels']); + $chart->add_series($series); + $chart->set_labels($data['labels']); + echo $OUTPUT->render($chart); + $avg = format_float($avg, 2); echo ''; echo get_string('average', 'feedback').': '.$avg.''; diff --git a/mod/feedback/item/numeric/lib.php b/mod/feedback/item/numeric/lib.php index fb5f6fc5698..add58cb88ae 100644 --- a/mod/feedback/item/numeric/lib.php +++ b/mod/feedback/item/numeric/lib.php @@ -142,6 +142,7 @@ class feedback_item_numeric extends feedback_item_base { $values = $this->get_analysed($item, $groupid, $courseid); if (isset($values->data) AND is_array($values->data)) { + echo "typ}\">"; echo ''; + echo '
'; echo $itemnr . ' '; if (strval($item->label) !== '') { @@ -164,6 +165,7 @@ class feedback_item_numeric extends feedback_item_base { echo '
'; echo get_string('average', 'feedback').': '.$avg; echo '
'; } } diff --git a/mod/feedback/item/textarea/lib.php b/mod/feedback/item/textarea/lib.php index c9198b1d28e..30172ca5f7a 100644 --- a/mod/feedback/item/textarea/lib.php +++ b/mod/feedback/item/textarea/lib.php @@ -133,6 +133,7 @@ class feedback_item_textarea extends feedback_item_base { public function print_analysed($item, $itemnr = '', $groupid = false, $courseid = false) { $values = feedback_get_group_values($item, $groupid, $courseid); if ($values) { + echo "typ}\">"; echo ''; } + echo '
'; echo $itemnr . ' '; if (strval($item->label) !== '') { @@ -148,6 +149,7 @@ class feedback_item_textarea extends feedback_item_base { echo ''; echo '
'; } } diff --git a/mod/feedback/item/textfield/lib.php b/mod/feedback/item/textfield/lib.php index dbff6a6da0d..cf0b3b0b1b2 100644 --- a/mod/feedback/item/textfield/lib.php +++ b/mod/feedback/item/textfield/lib.php @@ -129,6 +129,7 @@ class feedback_item_textfield extends feedback_item_base { public function print_analysed($item, $itemnr = '', $groupid = false, $courseid = false) { $values = feedback_get_group_values($item, $groupid, $courseid); if ($values) { + echo "typ}\">"; echo ''; } + echo '
'; echo $itemnr . ' '; if (strval($item->label) !== '') { @@ -142,6 +143,7 @@ class feedback_item_textfield extends feedback_item_base { echo str_replace("\n", '
', $value->value); echo '
'; } }