mirror of
https://github.com/moodle/moodle.git
synced 2025-08-05 00:46:50 +02:00
Behavior change, according to Gustav's remarks on the forums. Events from
courses other than the one you are browsing are not displayed in the month views or as upcoming events, except only if you explicitly do it in the full month view. However, if you manually go to a day with such an event and get a day view, you will see the event. Should I find a way to hide that too?
This commit is contained in:
parent
1bb9d624c4
commit
9ff136e503
2 changed files with 17 additions and 10 deletions
|
@ -1145,8 +1145,12 @@ function calendar_edit_event_allowed($event) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
function calendar_get_default_courses() {
|
function calendar_get_default_courses($overridereferer = true) {
|
||||||
global $USER, $CFG;
|
global $USER, $CFG, $SESSION;
|
||||||
|
|
||||||
|
if(!empty($SESSION->cal_course_referer) && $overridereferer) {
|
||||||
|
return array($SESSION->cal_course_referer => 1);
|
||||||
|
}
|
||||||
|
|
||||||
$courses = array();
|
$courses = array();
|
||||||
if(isadmin($USER->id)) {
|
if(isadmin($USER->id)) {
|
||||||
|
|
|
@ -123,19 +123,22 @@
|
||||||
|
|
||||||
echo '<td width="100%" valign="top">';
|
echo '<td width="100%" valign="top">';
|
||||||
|
|
||||||
$defaultcourses = calendar_get_default_courses();
|
$conform = ($_GET['view'] == 'month' && $SESSION->cal_show_course === true);
|
||||||
|
|
||||||
|
$defaultcourses = calendar_get_default_courses(!$conform);
|
||||||
$courses = array();
|
$courses = array();
|
||||||
|
|
||||||
calendar_set_filters($courses, $groups, $users, $defaultcourses, $defaultcourses);
|
calendar_set_filters($courses, $groups, $users, $defaultcourses, $defaultcourses);
|
||||||
|
|
||||||
// Are we left with a bad filter in effect?
|
// Are we left with a bad filter in effect?
|
||||||
if($_GET['view'] != 'month') {
|
if($_GET['view'] != 'month' && !empty($SESSION->cal_course_referer)) {
|
||||||
if(is_int($SESSION->cal_show_course)) {
|
if(is_numeric($SESSION->cal_show_course)) {
|
||||||
// There is a filter in action that shows events from courses other than the current.
|
if($SESSION->cal_course_referer != $SESSION->cal_show_course) {
|
||||||
// Reset the filter... this effectively allows course filtering only in the month display.
|
$SESSION->cal_show_course = intval($SESSION->cal_course_referer);
|
||||||
// This filter resetting is also done in the course sideblock display, in case someone
|
}
|
||||||
// sets a filter for course X and then goes to view course Y.
|
}
|
||||||
$SESSION->cal_show_course = true;
|
if(is_array($SESSION->cal_show_course) && !in_array($SESSION->cal_course_referer, $SESSION->cal_show_course)) {
|
||||||
|
$SESSION->cal_show_course = intval($SESSION->cal_course_referer);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue