Merge branch 'MDL-54607-master' of git://github.com/ankitagarwal/moodle

This commit is contained in:
David Monllao 2017-07-17 09:31:53 +02:00
commit 35d27924f9
4 changed files with 11 additions and 5 deletions

View File

@ -216,10 +216,14 @@ foreach($events as $event) {
//dtend is better than duration, because it works in Microsoft Outlook and works better in Korganizer
$ev->add_property('dtstart', Bennu::timestamp_to_datetime($event->timestart)); // when event starts.
$ev->add_property('dtend', Bennu::timestamp_to_datetime($event->timestart + $event->timeduration));
} else if ($event->timeduration == 0) {
// When no duration is present, the event is instantaneous event, ex - Due date of a module.
// Moodle doesn't support all day events yet. See MDL-56227.
$ev->add_property('dtstart', Bennu::timestamp_to_datetime($event->timestart));
$ev->add_property('dtend', Bennu::timestamp_to_datetime($event->timestart));
} else {
// When no duration is present, ie an all day event, VALUE should be date instead of time and dtend = dtstart + 1 day.
$ev->add_property('dtstart', Bennu::timestamp_to_date($event->timestart), array('value' => 'DATE')); // All day event.
$ev->add_property('dtend', Bennu::timestamp_to_date($event->timestart + DAYSECS), array('value' => 'DATE')); // All day event.
// This can be used to represent all day events in future.
throw new coding_exception("Negative duration is not supported yet.");
}
if ($event->courseid != 0) {
$coursecontext = context_course::instance($event->courseid);

View File

@ -2944,7 +2944,8 @@ function calendar_add_icalendar_event($event, $courseid, $subscriptionid, $timez
// Check to see if the event started at Midnight on the imported calendar.
date_default_timezone_set($timezone);
if (date('H:i:s', $eventrecord->timestart) === "00:00:00") {
// This event should be an all day event.
// This event should be an all day event. This is not correct, we don't do anything differently for all day events.
// See MDL-56227.
$eventrecord->timeduration = 0;
}
\core_date::set_default_server_timezone();

View File

@ -411,7 +411,7 @@ class iCalendar_event extends iCalendar_component {
// DTEND must be later than DTSTART
// The standard is not clear on how to hande different value types though
// TODO: handle this correctly even if the value types are different
if($this->properties['DTEND'][0]->value <= $this->properties['DTSTART'][0]->value) {
if($this->properties['DTEND'][0]->value < $this->properties['DTSTART'][0]->value) {
return false;
}

View File

@ -8,3 +8,4 @@ modifications:
5/ updated DTEND;TZID and DTSTAR;TZID values to support quotations (7 Nov 2014)
6/ MDL-49032: fixed rfc2445_fold() to fix incorrect RFC2445_WSP definition (16 Sep 2015)
7/ added timestamp_to_date function to support zero duration events (16 Sept 2015)
8/ Updated \iCalendar_event::invariant_holds() to allow for same dtstart and dtend timestamps (13 July 2017)