From 08dc6b095e45752492734755dad36f6887601ff8 Mon Sep 17 00:00:00 2001 From: Barbara Ramiro Date: Tue, 29 Sep 2015 14:56:29 +0800 Subject: [PATCH 1/2] MDL-26429 Course completion icons for self, duration, and role. --- pix/i/completion_self.png | Bin 0 -> 264 bytes pix/i/completion_self.svg | 14 ++++++++++++++ pix/i/duration.png | Bin 0 -> 334 bytes pix/i/duration.svg | 15 +++++++++++++++ pix/i/role.png | Bin 0 -> 264 bytes pix/i/role.svg | 14 ++++++++++++++ 6 files changed, 43 insertions(+) create mode 100644 pix/i/completion_self.png create mode 100644 pix/i/completion_self.svg create mode 100644 pix/i/duration.png create mode 100644 pix/i/duration.svg create mode 100644 pix/i/role.png create mode 100644 pix/i/role.svg diff --git a/pix/i/completion_self.png b/pix/i/completion_self.png new file mode 100644 index 0000000000000000000000000000000000000000..f803c863605daa69fb5623ecf62fa91cbf66f022 GIT binary patch literal 264 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5XR(ZNOhE&{2N;$xkc5Y54!;)W(HyE`_7&^EwU%srrV0G$| zMUf01ciEE|O;++dtl=hIJ2j~-Vp2GFTu@p;+{eMsr^jO!_X1AW z28SJuCjKpwM>wv`V7R)%A&I4dH;GZ`^T{5^f=hBgT37@U80N)j7C0 literal 0 HcmV?d00001 diff --git a/pix/i/completion_self.svg b/pix/i/completion_self.svg new file mode 100644 index 00000000000..9fc00819b5f --- /dev/null +++ b/pix/i/completion_self.svg @@ -0,0 +1,14 @@ + + + +]> + + + + + diff --git a/pix/i/duration.png b/pix/i/duration.png new file mode 100644 index 0000000000000000000000000000000000000000..61dd4dba10823cd5281fcc56e901a029a7586613 GIT binary patch literal 334 zcmV-U0kQsxP)T1%E?=gv5Xlc>o0zP}+f@G3f5;8WLiqbw$Z zSRl-Bqt5LPuhD1=4M<+$nfw}jV_rm4S$OH1q%6#W-1;%m_~9b*9AV`324Wqj)GV5q zOv^-L#j}>Faa_&O-eboC?HMr((?*MXP3m*=*eVsp?FfxgpI$ub5wKd|><-snjUp#7 z{KxXX`2nwx69hrN&>#q}r6ByJr$$T=-f!Z1vI{YJ@GA{m={2auDh~iQVwEkM$E#fb g?=k)IoL>SA0I73hG+8jUp#T5?07*qoM6N<$f~De$CjbBd literal 0 HcmV?d00001 diff --git a/pix/i/duration.svg b/pix/i/duration.svg new file mode 100644 index 00000000000..f6c404182f2 --- /dev/null +++ b/pix/i/duration.svg @@ -0,0 +1,15 @@ + + + +]> + + + + + diff --git a/pix/i/role.png b/pix/i/role.png new file mode 100644 index 0000000000000000000000000000000000000000..f803c863605daa69fb5623ecf62fa91cbf66f022 GIT binary patch literal 264 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5XR(ZNOhE&{2N;$xkc5Y54!;)W(HyE`_7&^EwU%srrV0G$| zMUf01ciEE|O;++dtl=hIJ2j~-Vp2GFTu@p;+{eMsr^jO!_X1AW z28SJuCjKpwM>wv`V7R)%A&I4dH;GZ`^T{5^f=hBgT37@U80N)j7C0 literal 0 HcmV?d00001 diff --git a/pix/i/role.svg b/pix/i/role.svg new file mode 100644 index 00000000000..9fc00819b5f --- /dev/null +++ b/pix/i/role.svg @@ -0,0 +1,14 @@ + + + +]> + + + + + From 7062e7c6b3b493bafb04879bbf66f05e112e848f Mon Sep 17 00:00:00 2001 From: Cameron Ball Date: Thu, 5 Nov 2015 11:40:58 +0800 Subject: [PATCH 2/2] MDL-26429 usability: Add course completion icons. This patch adds a method to the course completion criteria classes which allows them to specify an icon for display in the course completion report table. There is a default implementation which simply looks for an icon in pix/i with a name matching the completion criteria type. --- completion/criteria/completion_criteria.php | 14 ++++++++++++ .../criteria/completion_criteria_activity.php | 11 ++++++++++ .../criteria/completion_criteria_date.php | 11 ++++++++++ .../criteria/completion_criteria_grade.php | 11 ++++++++++ .../criteria/completion_criteria_self.php | 11 ++++++++++ .../criteria/completion_criteria_unenrol.php | 11 ++++++++++ report/completion/index.php | 22 +++++++++---------- 7 files changed, 79 insertions(+), 12 deletions(-) diff --git a/completion/criteria/completion_criteria.php b/completion/criteria/completion_criteria.php index 3275587803a..bec45a2f5c9 100644 --- a/completion/criteria/completion_criteria.php +++ b/completion/criteria/completion_criteria.php @@ -232,6 +232,20 @@ abstract class completion_criteria extends data_object { */ abstract public function get_details($completion); + /** + * Return pix_icon for display in reports. + * + * @param string $alt The alt text to use for the icon + * @param array $attributes html attributes + * @return pix_icon + */ + public function get_icon($alt, array $attributes = null) { + global $COMPLETION_CRITERIA_TYPES; + + $criteriatype = $COMPLETION_CRITERIA_TYPES[$this->criteriatype]; + return new pix_icon('i/'.$criteriatype, $alt, 'moodle', $attributes); + } + /** * Return criteria status text for display in reports * diff --git a/completion/criteria/completion_criteria_activity.php b/completion/criteria/completion_criteria_activity.php index c64805e01cf..05eda152b10 100644 --- a/completion/criteria/completion_criteria_activity.php +++ b/completion/criteria/completion_criteria_activity.php @@ -288,4 +288,15 @@ class completion_criteria_activity extends completion_criteria { return $details; } + + /** + * Return pix_icon for display in reports. + * + * @param string $alt The alt text to use for the icon + * @param array $attributes html attributes + * @return pix_icon + */ + public function get_icon($alt, array $attributes = null) { + return new pix_icon('icon', $alt, 'mod_'.$this->module, $attributes); + } } diff --git a/completion/criteria/completion_criteria_date.php b/completion/criteria/completion_criteria_date.php index 883fa5a3273..93274661a0f 100644 --- a/completion/criteria/completion_criteria_date.php +++ b/completion/criteria/completion_criteria_date.php @@ -202,4 +202,15 @@ class completion_criteria_date extends completion_criteria { return $details; } + + /** + * Return pix_icon for display in reports. + * + * @param string $alt The alt text to use for the icon + * @param array $attributes html attributes + * @return pix_icon + */ + public function get_icon($alt, array $attributes = null) { + return new pix_icon('i/calendar', $alt, 'moodle', $attributes); + } } diff --git a/completion/criteria/completion_criteria_grade.php b/completion/criteria/completion_criteria_grade.php index 2e9655ff88a..e43d32435c7 100644 --- a/completion/criteria/completion_criteria_grade.php +++ b/completion/criteria/completion_criteria_grade.php @@ -248,4 +248,15 @@ class completion_criteria_grade extends completion_criteria { return $details; } + + /** + * Return pix_icon for display in reports. + * + * @param string $alt The alt text to use for the icon + * @param array $attributes html attributes + * @return pix_icon + */ + public function get_icon($alt, array $attributes = null) { + return new pix_icon('i/grades', $alt, 'moodle', $attributes); + } } diff --git a/completion/criteria/completion_criteria_self.php b/completion/criteria/completion_criteria_self.php index 065f00ff45b..9631f7f1ce1 100644 --- a/completion/criteria/completion_criteria_self.php +++ b/completion/criteria/completion_criteria_self.php @@ -149,4 +149,15 @@ class completion_criteria_self extends completion_criteria { return $details; } + + /** + * Return pix_icon for display in reports. + * + * @param string $alt The alt text to use for the icon + * @param array $attributes html attributes + * @return pix_icon + */ + public function get_icon($alt, array $attributes = null) { + return new pix_icon('i/completion_self', $alt, 'moodle', $attributes); + } } diff --git a/completion/criteria/completion_criteria_unenrol.php b/completion/criteria/completion_criteria_unenrol.php index 6eaab0ee245..b461cdf984a 100644 --- a/completion/criteria/completion_criteria_unenrol.php +++ b/completion/criteria/completion_criteria_unenrol.php @@ -131,4 +131,15 @@ class completion_criteria_unenrol extends completion_criteria { $details['status'] = ''; return $details; } + + /** + * Return pix_icon for display in reports. + * + * @param string $alt The alt text to use for the icon + * @param array $attributes html attributes + * @return pix_icon + */ + public function get_icon($alt, array $attributes = null) { + return new pix_icon('i/user', $alt, 'moodle', $attributes); + } } diff --git a/report/completion/index.php b/report/completion/index.php index 0d1d23a9048..5cd4f9e83b4 100644 --- a/report/completion/index.php +++ b/report/completion/index.php @@ -457,18 +457,16 @@ if (!$csv) { foreach ($criteria as $criterion) { // Generate icon details - $icon = ''; $iconlink = ''; - $icontitle = ''; // Required if $iconlink set $iconalt = ''; // Required + $iconattributes = array('class' => 'icon'); switch ($criterion->criteriatype) { case COMPLETION_CRITERIA_TYPE_ACTIVITY: // Display icon - $icon = $OUTPUT->pix_url('icon', $criterion->module); $iconlink = $CFG->wwwroot.'/mod/'.$criterion->module.'/view.php?id='.$criterion->moduleinstance; - $icontitle = $modinfo->cms[$criterion->moduleinstance]->get_formatted_name(); + $iconattributes['title'] = $modinfo->cms[$criterion->moduleinstance]->get_formatted_name(); $iconalt = get_string('modulename', $criterion->module); break; @@ -478,7 +476,7 @@ if (!$csv) { // Display icon $iconlink = $CFG->wwwroot.'/course/view.php?id='.$criterion->courseinstance; - $icontitle = format_string($crs->fullname, true, array('context' => context_course::instance($crs->id, MUST_EXIST))); + $iconattributes['title'] = format_string($crs->fullname, true, array('context' => context_course::instance($crs->id, MUST_EXIST))); $iconalt = format_string($crs->shortname, true, array('context' => context_course::instance($crs->id))); break; @@ -491,16 +489,16 @@ if (!$csv) { break; } + // Create icon alt if not supplied + if (!$iconalt) { + $iconalt = $criterion->get_title(); + } + // Print icon and cell print ''; - // Create icon if not supplied - if (!$icon) { - $icon = $OUTPUT->pix_url('i/'.$COMPLETION_CRITERIA_TYPES[$criterion->criteriatype]); - } - - print ($iconlink ? '' : ''); - print ''.$iconalt.''; + print ($iconlink ? '' : ''); + print $OUTPUT->render($criterion->get_icon($iconalt, $iconattributes)); print ($iconlink ? '' : ''); print '';