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:
defacer 2004-05-14 12:48:50 +00:00
parent 1bb9d624c4
commit 9ff136e503
2 changed files with 17 additions and 10 deletions

View file

@ -1145,8 +1145,12 @@ function calendar_edit_event_allowed($event) {
return false;
}
function calendar_get_default_courses() {
global $USER, $CFG;
function calendar_get_default_courses($overridereferer = true) {
global $USER, $CFG, $SESSION;
if(!empty($SESSION->cal_course_referer) && $overridereferer) {
return array($SESSION->cal_course_referer => 1);
}
$courses = array();
if(isadmin($USER->id)) {

View file

@ -123,19 +123,22 @@
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();
calendar_set_filters($courses, $groups, $users, $defaultcourses, $defaultcourses);
// Are we left with a bad filter in effect?
if($_GET['view'] != 'month') {
if(is_int($SESSION->cal_show_course)) {
// There is a filter in action that shows events from courses other than the current.
// Reset the filter... this effectively allows course filtering only in the month display.
// 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($_GET['view'] != 'month' && !empty($SESSION->cal_course_referer)) {
if(is_numeric($SESSION->cal_show_course)) {
if($SESSION->cal_course_referer != $SESSION->cal_show_course) {
$SESSION->cal_show_course = intval($SESSION->cal_course_referer);
}
}
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);
}
}