Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

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?
  • Loading branch information...
commit 9ff136e50382069d498f63956ecee04cc2087188 1 parent 1bb9d62
defacer authored
Showing with 17 additions and 10 deletions.
  1. +6 −2 calendar/lib.php
  2. +11 −8 calendar/view.php
View
8 calendar/lib.php
@@ -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
19 calendar/view.php
@@ -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);
}
}
Please sign in to comment.
Something went wrong with that request. Please try again.