Commit Graph

28036 Commits

Author SHA1 Message Date
Eloy Lafuente (stronk7) 40d45ede41 MDL-56609 phpunit: Fix bogus expectation on DST changes day
Current test works ok every day of the year but the day of
DST begin changes (last Sunday of March currently).

That day, 01:00 Europe/London simply doesn't exist, because
the time is moved forward by 60 minutes.

Hence the expectation for the next cron execution is not 1 "normal"
day (24h) but 1 less hour.

Note this only happens for the current test on DST begins, the
opposite change (DST ends), happening the last Sunday of October
is not affected, because, at all effects, 01:00 is a perfectly normal
and existing hour.
2021-04-27 18:31:01 +02:00
Sara Arjona 72b6d0be84 Merge branch 'MDL-71136_310' of https://github.com/TomoTsuyuki/moodle into MOODLE_310_STABLE 2021-04-22 13:56:49 +02:00
Jun Pataleta 96ddfecda3 Merge branch 'MDL-71156-310' of git://github.com/lameze/moodle into MOODLE_310_STABLE 2021-04-22 11:53:39 +08:00
Simey Lameze 94259f8a7d MDL-71156 core: machinery to recover orphaned calendar events
The machinery to fix orphaned calendar events that were broken by MDL-67494.

The solution consists of:

1) Upgrade step that checks if this site has executed the problematic upgrade steps and
   if positive, it will schedule a new run for calendar_fix_orphaned_events adhoc task.

2) Adhoc task that will self-spawn calling the recovery machinery, running until
   all the orphaned calendar events are fixed. It also sets the maximum runtime of
   60 seconds. It is also possible to override that number by specifing the desired
   number setting the ->calendareventsmaxseconds in your config.php

3) CLI script that will look for all the calendar events which userids
   where broken by a wrong upgrade step, affecting to Moodle 3.9.5
   and up.

   It performs checks to both:
     a) Detect if the site was affected (ran the wrong upgrade step).
     b) Look for orphaned calendar events, categorising them as:
       - standard: site / category / course / group / user events
       - subscription: events created via subscriptions.
       - action: normal action events, created to show common important dates.
       - override: user and group override events, particular, that some activities support.
       - custom: other events, not being any of the above, common or particular.

   By specifying it (--fix) try to recover as many broken events (missing userid) as
   possible. Standard, subscription, action, override events in core are fully supported but
   override or custom events should be fixed by each plugin as far as there isn't any standard
   API (plugin-wise) to launch a rebuild of the calendar events.

4) Unit tests and helper functions to generate calendar events. We have decided to
   keep the tests simple, testing only true and false and not using data generators because
   the code is purely to recover the calendar events and won't turn into an API or something
   and also due to the urgency of this issue.
   The helpers have been created in calendar/tests/helpers.php since there are no data generators
   for calendar.
2021-04-22 10:43:37 +08:00
Andrew Nicols 855e7e9ede Merge branch 'MDL-70412-310' of git://github.com/aanabit/moodle into MOODLE_310_STABLE 2021-04-22 10:07:57 +08:00
Jun Pataleta 6d82a01438 Merge branch 'MDL-71364_310' of https://github.com/stronk7/moodle into MOODLE_310_STABLE 2021-04-20 09:23:43 +08:00
Víctor Déniz 7ccaf08d5a Merge branch 'MDL-71087-310' of https://github.com/NashTechOpenUniversity/moodle into MOODLE_310_STABLE 2021-04-19 23:45:02 +01:00
Eloy Lafuente (stronk7) 5d309ef2a8 Merge branch 'MDL-69256-310' of git://github.com/andrewnicols/moodle into MOODLE_310_STABLE 2021-04-20 00:05:05 +02:00
Sara Arjona c30923d77d Merge branch 'MDL-66475-310' of git://github.com/paulholden/moodle into MOODLE_310_STABLE 2021-04-19 09:49:23 +02:00
Eloy Lafuente (stronk7) 26e8b4a0fa MDL-71364 behat: fix randomness causes by "now" advancing
Some recent tests do set a date time element
to ##now## or tomorrow and, immediately after that
the look if, effectively, ##now## and #tomorrow#
have been set (with minutes resolution).

Problem is that, between the field is set and the field
is verified, it can happen that the time advances to
next minute (from H:M:59 to H:M+1:00) and then the
assertion fails.

To avoid this, we could have lowered the resolution to be
hours... but that doesn't solve the problem just makes it
to happen less often.

So, instead of that... we are setting the 2 now and tomorrow
cases to be "today noon" and "tomorrow noon" (12:00:00) so
we ensure they won't be ever in the risk of jumping of minute.
2021-04-17 12:33:32 +02:00
Eloy Lafuente (stronk7) a1523774bc Merge branch 'MDL-70099-310' of git://github.com/paulholden/moodle into MOODLE_310_STABLE 2021-04-17 09:40:37 +02:00
Amaia Anabitarte 71613b1055 MDL-70412 groups: Improving create_group data generator
Increasing the size of the name for generated groups
to ensure we don't have problems with ordering.
2021-04-15 16:57:23 +02:00
Sara Arjona 0ecc30eb85 Merge branch 'MDL-71264_310' of https://github.com/stronk7/moodle into MOODLE_310_STABLE 2021-04-12 16:40:16 +02:00
Eloy Lafuente (stronk7) 06b3ac6ca1 Merge branch 'MDL-70802-310' of git://github.com/andrewnicols/moodle into MOODLE_310_STABLE 2021-04-08 18:37:39 +02:00
Eloy Lafuente (stronk7) 69455d835c Merge branch 'MDL-70959-310' of git://github.com/junpataleta/moodle into MOODLE_310_STABLE 2021-04-06 22:29:07 +02:00
Paul Holden ebfe1d5945 MDL-70099 enrol: increase accuracy of current enrolments by date.
By rounding the current time it was possible that the most recently
created user enrolments (e.g. self enrolments) were being excluded.

This would manifest itself in a user being enrolled on a course,
but it not appearing under "My courses" navigation or on their own
Dashboard until the rounded time had caught up with the current
time.
2021-04-05 19:32:15 +01:00
Paul Holden 3e30dffa31 MDL-66475 task: fix random timing failures in logger cleanup test. 2021-04-04 23:12:38 +01:00
Eloy Lafuente (stronk7) 215851c4c0 MDL-71264 behat: Change date(time) element update order
This includes 2 change to the order date(time) elements are filled,
each one addressing one type of problem, where current order is
problematic and can lead to unexpected dates.

1) Changing date, when current month only has X days and target
   month has more than X days. Example, being 1 April, change
   the date to 31 May.
     This is solved by changing the order of introduction
     from current D => M => Y to Y => M => D.
2) Changing date, when target month only has X days and current
   month has more that X days. Example, being 31 March, change
   the date to 28 Feb.
     This is solved by always setting the D to 1, before the
     Y => M => D sequence commented @ 1) begins.
2021-04-03 18:10:04 +02:00
Eloy Lafuente (stronk7) f751383a15 MDL-71264 behat: New feature covering all day/month/year date changes
Because of the order that dates and datetimes are filled by behat
sometimes there are some intermediate results that are impossible
and then the form (javascript) automatically reacts and fixes the
date, ultimate leading to a different date that the one we wanted
to set with Behat.

This is noticeable when switching between months (with some day
being the last day of the month) and the 2 months have a different
number of days. For example April date => March date (or the opposite).

This test covers all the critical changes (day, month and year),
back and forth. All times are Perth/Australia.
2021-04-03 10:59:45 +02:00
Tomo Tsuyuki ed1ce9cf9b MDL-71136 backup: Fix moodle_exception path. 2021-03-30 10:56:09 +11:00
Víctor Déniz 325915ef34 Merge branch 'MDL-70537-m310' of https://github.com/sammarshallou/moodle into MOODLE_310_STABLE 2021-03-26 20:15:29 +00:00
Noel De Martin aa07315267 MDL-71194 behat: Fix app tests 2021-03-25 13:51:01 +01:00
Andrew Nicols 06c9de6b05 MDL-70802 javascript: Normalise component consistently in templates 2021-03-24 11:18:33 +08:00
Simey Lameze 7a09d64104 MDL-71182 calendar: Revert "Merge branch 'MDL-67494-310' of git://github.com/lameze/moodle into MOODLE_310_STABLE"
This reverts commit 5a407772c7, reversing
changes made to 82f2fe02e6.
2021-03-24 09:22:04 +08:00
Víctor Déniz 3278f5ca50 Merge branch 'MDL-70727-310' of https://github.com/NashTechOpenUniversity/moodle into MOODLE_310_STABLE 2021-03-23 18:24:19 +00:00
Andrew Nicols 43520e3eaa Merge branch 'MDL-71039-310' of git://github.com/marinaglancy/moodle into MOODLE_310_STABLE 2021-03-23 11:18:39 +08:00
Andrew Nicols a8d18f88a1 MDL-69256 tests: Fix random slow test failures in completion cron 2021-03-23 08:08:29 +08:00
Thinh Pham 3567998cfd MDL-71087 File picker: Focus lost after 'Create folder' 2021-03-22 14:30:43 +07:00
Jun Pataleta 35f368a1b4 MDL-70959 completion: Fix completion_info::get_data() unit tests
* Fixed inverted $sameuser test data.
* Fixed caching expectation check. Caching only relies on whether the
user accessing the completion data is the same user or not.
* Fixed checking for the caching of other modules. Should have been
checking cm ID and not instance ID.
* Additional test case when whole course parameter is passed as
true, but the requesting user is different from the target user.
2021-03-19 11:50:14 +08:00
sam marshall 31aedd4c1c MDL-70537 Availability: Avoid recursive calls to $cm->name
These recursive calls didn't work in PHP 7.3 and below, but in PHP
7.4 they also cause a fatal error which means if you have invalid
availability data, the whole page might die.
2021-03-18 15:56:28 +00:00
Jun Pataleta 348d2c66df Merge branch 'MDL-70992-310' of https://github.com/NashTechOpenUniversity/moodle into MOODLE_310_STABLE 2021-03-18 12:23:27 +08:00
Adrian Greeve cdc875c25c Merge branch 'MDL-70924-310' of git://github.com/paulholden/moodle into MOODLE_310_STABLE 2021-03-18 11:51:59 +08:00
Adrian Greeve a3c38be96b Merge branch 'MDL-71048-310' of https://github.com/paulholden/moodle into MOODLE_310_STABLE 2021-03-18 11:10:13 +08:00
sangnguyen ba0a487685 MDL-70992 Folder: Unnecessary tab stops to the left of files 2021-03-17 09:37:21 +07:00
Paul Holden 23fd19658d MDL-70924 course: ensure required fields present when getting courses. 2021-03-15 12:46:49 +00:00
Mihail Geshoski 7726160ef3 MDL-44613 behat: strftime format in time to timestamp transformation
Modifies the 'string time to timestamp' behat trasformation to use
userdate() instead of date(). The userdate() method is generally used
throught Moodle for constructing formatted date strings and this change
will provide more consistency and prevent any potential behat failures.
Therefore, if the date format is defined in the given trasformation, it
has to be strftime compatible. Example:
'I should see "##tomorrow noon##%A, %d %B %Y, %I:%M %p##"'
2021-03-15 20:01:36 +08:00
Jun Pataleta 7eb9ddc5ae MDL-70959 completion: Fix unit tests for get_data()
The unit tests for completion_info::get_data() does not make a lot of
sense with mocking being incorrectly used and the actual functionality
is not being properly tested. I have rewritten the test to use actual
cm_info instances and data providers for better coverage.
2021-03-12 13:34:58 +08:00
Jun Pataleta 3afc0edaf9 MDL-70959 completion: Documentation improvements
* Fix typo in $cm parameter's type in PHPDoc
* Improve the comment to better explain the logic why fetching the
completion data for the whole course can only be done when caching is
used.
Even if $wholecourse is set to true, there's no point in fetching the
completion data for all the course modules unless we're caching the
results.
2021-03-12 13:34:55 +08:00
Eloy Lafuente (stronk7) dc9f2d2509 Merge branch 'MDL-70726-3.10' of https://github.com/NashTechOpenUniversity/moodle into MOODLE_310_STABLE 2021-03-11 00:11:52 +01:00
Paul Holden 627fcc0ebc MDL-71048 lang: fix null equality check of lang string args. 2021-03-04 19:43:55 +00:00
Marina Glancy 37ff88f18d MDL-71039 core_form: support valuehtmlcallback in autocomplete inline 2021-03-04 13:39:51 +01:00
Thinh Pham bbdd616d5c MDL-70727 Behat: function scrollIntoView not working in the app 2021-03-04 13:37:13 +07:00
Ilya Tregubov 0e0b494d4a MDL-69680 lib: Replace deprecated jQuery functions 2021-03-04 12:47:56 +08:00
Ilya Tregubov b61c7fe0f9 MDL-69680 lib: Update jQuery version in Moodle files 2021-03-04 12:47:56 +08:00
Ilya Tregubov 044754dddb MDL-69680 lib: Upgrade jQuery lib to 3.5.1 2021-03-04 12:47:56 +08:00
Eloy Lafuente (stronk7) c25ae6986c Merge branch 'MDL-70424-auth-avoid-changes-MOODLE_310_STABLE' of https://github.com/brendanheywood/moodle into MOODLE_310_STABLE 2021-03-04 00:29:21 +01:00
Brendan Heywood f5e822222d MDL-70424 auth: Avoid random changes to $CFG->auth 2021-03-04 09:30:17 +11:00
Marina Glancy 9c29fcaae0 MDL-65552 user: escape idnumber and email in table_sql 2021-03-03 23:14:47 +08:00
Paul Holden bee5d9d27e MDL-65552 user: escape idnumber field on output.
This commit also corrects parameter definition of the field to
match core_user.
2021-03-03 23:14:47 +08:00
Sara Arjona 695e05f1e8 Merge branch 'MDL-70125_310-3' of git://github.com/mdjnelson/moodle into MOODLE_310_STABLE 2021-03-03 15:47:37 +01:00