Commit graph

138 commits

Author SHA1 Message Date
Cameron Ball
e798fa76f5 MDL-58110 core_calendar: Add proxy for modules
Modules associated with an event are stored in the event table
as the module's name and instance number not the actual ID of the instance
in the modules table.

So to lazy load them we need a proxy that uses the module name and instance
rather than the ID.

Part of MDL-55611 epic.
2017-04-03 11:37:06 +08:00
Cameron Ball
7aedfe32f4 MDL-58187 core_calendar: Skip callbacks when events module is invisible
Previously every event would get piped through the two callbacks
even when the associated course module was invisible. This patch
adds an early bail out check to avoid that.

Part of MDL-55611 epic.
2017-04-03 11:37:05 +08:00
Ryan Wyllie
1aeb58faad MDL-57503 calendat: test external function get action events by courses
Part of MDL-55611 epic.
2017-04-03 11:36:34 +08:00
Ryan Wyllie
5e026bb05f MDL-57503 calendar: test external function get action events by course
Part of MDL-55611 epic.
2017-04-03 11:36:34 +08:00
Ryan Wyllie
42ac7ac629 MDL-57503 calendar: test for api function for action events by courses
Part of MDL-55611 epic.
2017-04-03 11:36:34 +08:00
Ryan Wyllie
39e7bbaec4 MDL-57503 calendar: test for api function for action events by course
Part of MDL-55611 epic.
2017-04-03 11:36:34 +08:00
Cameron Ball
1d364a89e9 MDL-58060 core_calendar: Use static course cache in event factory
Part of MDL-55611 epic.
2017-04-03 11:36:33 +08:00
Mark Nelson
c91b4c0278 MDL-57730 core_calendar: fixed failing unit tests
Part of MDL-55611 epic.
2017-04-03 11:36:33 +08:00
Cameron Ball
aa457b7dee MDL-57730 core_calendar: Action interface aware of actionability
We need a way to decide whether an action can currently be completed
(e.g., an assignment where submissions are not yet open can not
be actioned, even though it may be displayed on the upcomming events
list).

To do this, the action interface now contains an is_actionable method.

Part of MDL-55611 epic.
2017-04-03 11:36:33 +08:00
Cameron Ball
42ec9f0d63 MDL-57730 core_calendar: Map action events to legacy events
Part of MDL-55611 epic.
2017-04-03 11:36:32 +08:00
Cameron Ball
2a5cce61ba MDL-57730 core_calendar: Allow modules to control event visibility
By implementing the mod_{modname}_core_calendar_is_event_visible callback
a module can decide whether or not a user should see an event.

Part of MDL-55611 epic.
2017-04-03 11:36:32 +08:00
Ryan Wyllie
4139f1311f MDL-57502 core_calendar: get calendar action events tests
Part of MDL-55611 epic.
2017-04-03 11:36:08 +08:00
Ryan Wyllie
1575194a5c MDL-57750 calendar: tests for api get_action_events_by_timesort
Part of MDL-55611 epic.
2017-04-03 11:36:07 +08:00
Ryan Wyllie
18a96325a7 MDL-57750 calendar: calendar event vault tests
Part of MDL-55611 epic.
2017-04-03 11:36:07 +08:00
Cameron Ball
5ca71c2dc3 MDL-57442 core_calendar: Allow course modules to create actions for events
Course modules can now implement the function mod_{module}_core_calendar_provide_event_action
which allows them to return an action to attach to an event.

Part of MDL-55611 epic.
2017-04-03 11:36:07 +08:00
Cameron Ball
c5478a5b6c MDL-57442 core_calendar: Update proxies to accept a 'base' class
The base class can contain information we would prefer not to
have to hit the database for.

Part of MDL-55611 epic.
2017-04-03 11:36:07 +08:00
Mark Nelson
12cbce0aa3 MDL-57888 core_calendar: moved functions from calendar/lib.php
Part of MDL-55611 epic.
2017-04-03 11:35:38 +08:00
Cameron Ball
e46efe3a72 MDL-57599 core_calendar: Add action event class
This patch adds a "regular" calendar event class, and a simple extension
of it which we are calling an action event.

Part of MDL-55611 epic.
2017-04-03 11:35:38 +08:00
Simey Lameze
a22fa7cb68 MDL-57545 core_calendar: remove visibility fields from calendar events
Part of MDL-55611 epic.
2017-04-03 11:35:38 +08:00
Mark Nelson
c45266d115 MDL-57545 core_calendar: trigger update event when toggling visibility
Part of MDL-55611 epic.
2017-04-03 11:35:38 +08:00
Mark Nelson
e057f279e4 MDL-57497 core_calendar: added new calendar event class
Moved calendar_event class to new location using replaceclasses.php

Part of MDL-55611 epic.
2017-04-03 11:33:55 +08:00
Jun Pataleta
620ffacea1 MDL-57658 calendar: Set sort order for fetched DB records 2017-03-15 11:18:21 +08:00
Dan Poltawski
bcd510e36d Merge branch 'MDL-57658-master-3' of git://github.com/junpataleta/moodle 2017-03-14 16:06:19 +00:00
Andrew Nicols
815c6b203f MDL-51853 calendar: Whitespace fix 2017-03-13 09:18:07 +08:00
Andrew Nicols
4c6edf9dd8 Merge branch 'MDL-51853_m33v3' of https://github.com/sbourget/moodle 2017-03-13 08:40:45 +08:00
Jun Pataleta
8ddc656739 MDL-57658 calendar: Fix rrulemanager and unit tests
Issues fixed:
* Additional rule validations.
* Rewrote recurrence logic.
* Additional unit tests, especially from the examples in the RFC.
* The date format "YmdThis" results into an incorrect date for the
  "UNTIL" parameter. The literal "T" should be escaped, and a literal
  "Z" is also needed at the end of the format string to indicate UTC.
* Implemented handling of negative modifier values for BYxxx rules.
* Implemented handling of BYWEEKNO, BYYEARDAY, BYSETPOS, BYHOUR,
  BYMINUTE, BYSECOND rules.
2017-03-09 16:10:08 +08:00
Jun Pataleta
f52459bbbe MDL-55956 calendar: Show only one of duplicate events relevant to user
If there are multiple, non-repeating events with the same module name,
instance and event type. The most specific event or the event with the
highest priority will be shown.
The ordering of event priorities:
  User override events > Group override events > Course events.
If there are no user override events and there are multiple group
overrides for an event, then the one with the highest priority will be
shown.
2017-03-07 11:33:17 +08:00
Stephen Bourget
c3feaf269e MDL-51853 calendar: allow entries imported from a file to be updated. 2017-02-28 10:14:25 -05:00
Rajesh Taneja
57bee542ab
MDL-56519 behat: Fixed lint errors 2017-01-03 09:12:54 +08:00
David Monllao
b35c209d76 MDL-56551 calendar: Update behat test according to DOM changes 2016-11-25 10:06:36 +08:00
Adrian Greeve
cbbca0d00f MDL-56120 Calendar: Unit tests for getting events.
Added a unit test for checking that calendar_get_events
will only return events for activated activities.
2016-11-07 16:48:16 +08:00
Damyon Wiese
ba5c5083c5 MDL-55074 theme_boost: Behat fixes for latest theme changes
Fix I edit profile steps
Apply fixed header in css
Remove transitions from menus for behat
Be more specific about some "I follow" steps
Navigation path changes
"Current course" node removed from nav tree
Adapt tests because there are no default blocks
Force some space between action menu items
2016-10-21 16:06:54 +08:00
David Monllao
80180e0f92 MDL-55804 forms: Return exported data through _prepareValue 2016-09-27 08:11:56 +08:00
Eloy Lafuente (stronk7)
ed55d47d03 Merge branch 'wip-MDL-55123-master' of git://github.com/marinaglancy/moodle 2016-09-12 19:37:40 +02:00
Marina Glancy
64c45a2928 MDL-55123 forms: correctly create elements in unittests 2016-09-12 11:56:04 +08:00
Stephen Bourget
9629790b1b MDL-52798 calendar: Move calendar preferences to a user preferences page
This is based on the work of Shamim Rezaie and will also resolve
MDL-52375 and MDL-50378
2016-09-06 21:29:34 -04:00
Stephen Bourget
756e3c55c0 MDL-44369 Calendar: add events for subscriptions 2016-07-29 08:56:20 -04:00
David Monllao
837cec00f9 Merge branch 'wip-mdl-55091-m' of https://github.com/rajeshtaneja/moodle
Conflicts:
	lib/upgrade.txt
2016-07-26 10:14:30 +08:00
Rajesh Taneja
52f3e060e4
MDL-55091 phpunit: Following has been deprecated.
1. getMock()
2. setExpectedException()
3. checkForUnintentionallyCoveredCode renamed to beStrictAboutCoversAnnotation
4. beStrictAboutTestSize renamed to enforceTimeLimit
5. UnitTestCase class is now fully removed.
2016-07-26 10:11:30 +08:00
Rajesh Taneja
d89dc6b123 MDL-55111 behat: Use option which is available everytime for export
recentupcoming option is always available everytime calendar export
is called, rest week and month is optionally shown and may not be
visible. So use recentupcoming event option and export calendar for test
2016-07-10 11:11:31 +08:00
Dan Poltawski
d7c9327d48 Merge branch 'MDL-51749-master' of git://github.com/junpataleta/moodle 2016-06-16 09:04:11 +01:00
Juan Leyva
871988b0b4 MDL-54049 core_message: Add missing external format text 2016-05-04 12:52:45 +02:00
Jun Pataleta
3de445bb56 MDL-51749 calendar: Behat tests for calendar export and additional fixes 2016-04-18 15:02:50 +08:00
Rajesh Taneja
eb9ca848fa MDL-53381 behat: Replaced chained steps with api.
Behat 3.x doesn't support chained steps and hence
this is first step to get rid of chained steps in core.
2016-04-06 11:32:49 +08:00
Rajesh Taneja
42ad096fdb MDL-46891 Behat: Added support for behat 3 2016-03-11 10:51:15 +08:00
Juan Leyva
39b8513763 MDL-52808 calendar: Do not return events for hidden activities 2016-03-07 22:36:31 +01:00
Stephen Bourget
a721339193 MDL-52383 Calendar: Allow users to set lookahead to 1 year 2016-01-15 13:14:56 -05:00
Eloy Lafuente (stronk7)
fdca1a1dd3 Merge branch 'MDL-51495' of https://github.com/NeillM/moodle 2015-11-11 16:56:27 +01:00
Neill Magill
11dc7c1c3d MDL-51495 calendar: Unit test to get an individual course event
If is user requests a single event on a course via the web service they should be able to retrieve it.
2015-11-11 15:18:37 +00:00
Rajesh Taneja
27c99f5007 MDL-52066 unittest: Use ics file from external repo 2015-11-10 13:27:00 +08:00