Skip to content

Commit

Permalink
MDL-64855 block_myoverview: add setting for course categories display
Browse files Browse the repository at this point in the history
Added an administrator setting to set the visibility of the course category for the my overview
block on the users dashboard to support usage scenarios where displaying the course categories will
clutter course overviews.
  • Loading branch information
Tom Dickman committed Mar 29, 2019
1 parent 0920f35 commit 5ae4db8
Show file tree
Hide file tree
Showing 10 changed files with 90 additions and 7 deletions.
2 changes: 1 addition & 1 deletion blocks/myoverview/amd/build/view.min.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

13 changes: 11 additions & 2 deletions blocks/myoverview/amd/src/view.js
Expand Up @@ -90,7 +90,8 @@ function(
return {
display: courseRegion.attr('data-display'),
grouping: courseRegion.attr('data-grouping'),
sort: courseRegion.attr('data-sort')
sort: courseRegion.attr('data-sort'),
displaycategories: courseRegion.attr('data-displaycategories'),
};
};

Expand Down Expand Up @@ -370,9 +371,17 @@ function(
currentTemplate = TEMPLATES.COURSES_SUMMARY;
}

// Delete the course category if it is not to be displayed
if (filters.displaycategories != 'on') {
coursesData.courses = coursesData.courses.map(function(course) {
delete course.coursecategory;
return course;
});
}

if (coursesData.courses.length) {
return Templates.render(currentTemplate, {
courses: coursesData.courses
courses: coursesData.courses,
});
} else {
var nocoursesimg = root.find(Selectors.courseView.region).attr('data-nocoursesimg');
Expand Down
10 changes: 10 additions & 0 deletions blocks/myoverview/block_myoverview.php
Expand Up @@ -72,4 +72,14 @@ public function get_content() {
public function applicable_formats() {
return array('my' => true);
}

/**
* Allow the block to have a configuration page
*
* @return boolean
*/
public function has_config() {
return true;
}
}

16 changes: 15 additions & 1 deletion blocks/myoverview/classes/output/main.php
Expand Up @@ -66,6 +66,13 @@ class main implements renderable, templatable {
*/
private $paging;

/**
* Store the display categories config setting
*
* @var boolean
*/
private $displaycategories;

/**
* main constructor.
* Initialize the user preferences
Expand All @@ -79,6 +86,12 @@ public function __construct($grouping, $sort, $view, $paging) {
$this->sort = $sort ? $sort : BLOCK_MYOVERVIEW_SORTING_TITLE;
$this->view = $view ? $view : BLOCK_MYOVERVIEW_VIEW_CARD;
$this->paging = $paging ? $paging : BLOCK_MYOVERVIEW_PAGING_12;
$config = get_config('block_myoverview');
if (!$config->displaycategories) {
$this->displaycategories = BLOCK_MYOVERVIEW_DISPLAY_CATEGORIES_OFF;
} else {
$this->displaycategories = BLOCK_MYOVERVIEW_DISPLAY_CATEGORIES_ON;
}
}

/**
Expand Down Expand Up @@ -110,7 +123,8 @@ public function export_for_template(renderer_base $output) {
'grouping' => $this->grouping,
'sort' => $this->sort == BLOCK_MYOVERVIEW_SORTING_TITLE ? 'fullname' : 'ul.timeaccess desc',
'view' => $this->view,
'paging' => $this->paging
'paging' => $this->paging,
'displaycategories' => $this->displaycategories,
];

$preferences = $this->get_preferences_as_booleans();
Expand Down
2 changes: 2 additions & 0 deletions blocks/myoverview/lang/en/block_myoverview.php
Expand Up @@ -49,6 +49,8 @@
$string['cards'] = 'Cards';
$string['courseprogress'] = 'Course progress:';
$string['completepercent'] = '{$a}% complete';
$string['displaycategories'] = 'Display Categories';
$string['displaycategories_help'] = 'Display the Course Category on dashboard course items including cards, list items and summary items';
$string['favourites'] = 'Starred';
$string['future'] = 'Future';
$string['inprogress'] = 'In progress';
Expand Down
6 changes: 6 additions & 0 deletions blocks/myoverview/lib.php
Expand Up @@ -55,6 +55,12 @@
define('BLOCK_MYOVERVIEW_PAGING_24', 24);
define('BLOCK_MYOVERVIEW_PAGING_48', 48);

/**
* Constants for the admin category display setting
*/
define('BLOCK_MYOVERVIEW_DISPLAY_CATEGORIES_ON', 'on');
define('BLOCK_MYOVERVIEW_DISPLAY_CATEGORIES_OFF', 'off');

/**
* Get the current user preferences that are available
*
Expand Down
37 changes: 37 additions & 0 deletions blocks/myoverview/settings.php
@@ -0,0 +1,37 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.

/**
* Settings for the myoverview block
*
* @package block_myoverview
* @copyright 2019 Tom Dickman <tomdickman@catalyst-au.net>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/

defined('MOODLE_INTERNAL') || die;

if ($ADMIN->fulltree) {
require_once($CFG->dirroot . '/blocks/myoverview/lib.php');

// Display Course Categories on Dashboard course items (cards, lists, summary items).
$settings->add(new admin_setting_configcheckbox(
'block_myoverview/displaycategories',
get_string('displaycategories', 'block_myoverview'),
get_string('displaycategories_help', 'block_myoverview'),
1));

}
3 changes: 2 additions & 1 deletion blocks/myoverview/templates/courses-view.mustache
Expand Up @@ -34,7 +34,8 @@
data-sort="{{sort}}"
data-prev-display="{{view}}"
data-paging="{{paging}}"
data-nocoursesimg="{{nocoursesimg}}">
data-nocoursesimg="{{nocoursesimg}}"
data-displaycategories="{{displaycategories}}">
<div data-region="course-view-content">
{{> block_myoverview/placeholders }}
</div>
Expand Down
4 changes: 3 additions & 1 deletion blocks/myoverview/templates/view-list.mustache
Expand Up @@ -47,7 +47,9 @@
<span class="sr-only">
{{#str}}aria:coursecategory, core_course{{/str}}
</span>
<div>{{{coursecategory}}}</div>
{{#displaycategories}}
<div>{{{coursecategory}}}</div>
{{/displaycategories}}
{{#showshortname}}
<div class="pl-1 pr-1">|</div>
<span class="sr-only">
Expand Down
4 changes: 3 additions & 1 deletion blocks/myoverview/templates/view-summary.mustache
Expand Up @@ -54,7 +54,9 @@
<span class="sr-only">
{{#str}}aria:coursecategory, core_course{{/str}}
</span>
<div>{{{coursecategory}}}</div>
{{#displaycategories}}
<div>{{{coursecategory}}}</div>
{{/displaycategories}}
{{#showshortname}}
<div class="pl-1 pr-1">|</div>
<span class="sr-only">
Expand Down

0 comments on commit 5ae4db8

Please sign in to comment.