Compare commits

...

1295 Commits

Author SHA1 Message Date
Eloy Lafuente (stronk7) dc7b914677 Moodle release 2.8.6 2015-05-10 11:39:22 +02:00
Eloy Lafuente (stronk7) 8f018d49ac weekly release 2.8.5+ 2015-05-08 12:14:47 +02:00
Eloy Lafuente (stronk7) 5a71a6b7e5 Merge branch 'install_28_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_28_STABLE 2015-05-08 12:14:30 +02:00
Andrew Nicols 0fee379892 MDL-50153 messageinbound: Normalise line endings instead of rtrim 2015-05-08 16:20:44 +08:00
Andrew Nicols 51483fe057 Merge branch 'wip-mdl-50154-m28' of https://github.com/rajeshtaneja/moodle into MOODLE_28_STABLE 2015-05-08 13:42:17 +08:00
Rajesh Taneja cb2cf4a6a7 MDL-50154 behat: Click on Grades link under navigation 2015-05-08 13:08:38 +08:00
Rajesh Taneja b9acc1422a MDL-50154 behat: Resize pdf window so toolbar is always visible 2015-05-08 13:08:13 +08:00
Andrew Nicols 2ca3c8ad0d MDL-50153 messageinbound: Make messageinbound tests dos-safe 2015-05-08 12:17:21 +08:00
Andrew Nicols c1108ed7fc MDL-50153 core: Use directory_separator when autoloading psr0 classes 2015-05-08 12:17:20 +08:00
Adrian Greeve b3ec0280ea MDL-50039 tool_monitor: Behat update to fix error.
The teacher does not have the option to select Site
level rules so this section has been removed.
2015-05-07 13:13:21 +08:00
Adrian Greeve ac6f7b18be MDL-50039 tool_monitor: Additional checks for subscription.
Additional capability checks are now in place to stop unauthorised
users from accessing the event monitor subscription page.
2015-05-07 13:13:21 +08:00
Frederic Massart c3bec9f51e MDL-50128 mod_data: String needed escaping before being used in regex 2015-05-07 11:21:09 +08:00
Andrew Nicols d186a97e10 Merge branch 'm28_MDL-50133' of https://github.com/danmarsden/moodle into MOODLE_28_STABLE 2015-05-07 10:25:18 +08:00
Andrew Nicols c1452371db Merge branch 'MDL-49783-28' of git://github.com/mastnym/moodle into MOODLE_28_STABLE 2015-05-07 09:42:51 +08:00
Martin Mastny 835bbc41fd MDL-49783 forms: Collapsed form section is opened on error 2015-05-07 09:14:34 +08:00
Dan Marsden 1a0d12e4a2 MDL-50133 mod_scorm: use correct captypes 2015-05-07 11:46:23 +12:00
Marina Glancy 032f18c4a5 MDL-49788 navigation: Ensure we only check active enrolments 2015-05-06 08:02:45 +01:00
Salih Gedik d7f66ebe07 MDL-49789 mod_book: filter book chapter content 2015-05-06 13:55:07 +08:00
Marina Glancy 7f5bd0da0e MDL-49718 externallib: unittest correction 2015-05-06 13:01:53 +08:00
Marina Glancy 98c38993fd MDL-50090 user: suspended user can login upon conrimation 2015-05-06 11:01:20 +08:00
Juan Leyva 77067fbb3a MDL-49718 webservices: Fix forced format and force external text cleaning 2015-05-06 10:56:17 +08:00
Juan Leyva 8e8ee75304 MDL-49994 files: Prevent to browse private files when are disabled 2015-05-06 10:27:32 +08:00
AMOS bot 9a1dc85511 Automatically generated installer lang files 2015-05-06 00:03:57 +08:00
Marina Glancy e2e7e35da3 MDL-50099 auth: less verbose account confirmed message 2015-05-05 15:33:50 +01:00
Frederic Massart 8c45d46d36 MDL-49179 setuplib: print_error() uses local URLs exclusively 2015-05-05 18:31:14 +08:00
Frederic Massart 17b8efa585 MDL-49179 weblib: Secure the direct usage of $_SERVER['HTTP_REFERER'] 2015-05-05 18:31:14 +08:00
Frederic Massart 71c1cfb143 MDL-49179 mod_forum, mod_quiz: Prevent misuse of get_referer() 2015-05-05 18:31:14 +08:00
Tim Hunt 1ce4f44df7 MDL-49941 quiz: mod/quiz:grade should declare RISK_XSS 2015-05-05 18:31:14 +08:00
Frederic Massart 9bf7fea937 MDL-49401 moodlelib: PARAM_LOCALURL supports loginhttps 2015-05-05 18:31:14 +08:00
Eloy Lafuente (stronk7) f3895b00a5 weekly release 2.8.5+ 2015-05-05 12:28:47 +02:00
David Monllao 1b1d0419a4 Merge branch 'wip-MDL-49778-28' of git://github.com/abgreeve/moodle into MOODLE_28_STABLE 2015-05-05 15:05:50 +08:00
David Monllao a86de7c0d9 Merge branch 'MDL-49227-28' of git://github.com/andrewnicols/moodle into MOODLE_28_STABLE 2015-05-05 14:36:55 +08:00
Adrian Greeve ec2a1ba2fe MDL-49778 lib: Update to upgrade_stale_php_files_present() 2015-05-05 12:45:24 +08:00
Andrew Nicols 9b94fabcb0 MDL-48002 inbound: Tidy up language in unit test 2015-05-05 10:59:49 +08:00
David Monllao 2cd81b11b1 Merge branch 'MDL-50055-28' of git://github.com/andrewnicols/moodle into MOODLE_28_STABLE 2015-05-05 10:52:07 +08:00
David Monllao 6cb5fe8472 Merge branch 'MDL-49848-28' of git://github.com/xow/moodle into MOODLE_28_STABLE 2015-05-05 10:38:45 +08:00
John Okely 33b16dd3cd MDL-49848 message: Make messaging interface responsive 2015-05-05 10:31:52 +08:00
Andrew Nicols d4b4f96e6c MDL-50055 enrol: Stop requiring javascript for behat tests 2015-05-05 10:24:30 +08:00
Andrew Nicols 5e3fca4d3b MDL-50055 tests: Add new step to deal with Single Selects 2015-05-05 10:24:29 +08:00
David Monllao eaa13b3809 Merge branch 'MDL-48002-28' of git://github.com/ankitagarwal/moodle into MOODLE_28_STABLE 2015-05-05 10:21:46 +08:00
Ankit Agarwal a2d176c2ed MDL-48002: inbound: Add outlook fixture 2015-05-04 15:21:51 +05:30
Ankit Agarwal d9e191b89e MDL-48002 inbound: Update regex for token matching 2015-05-04 15:21:51 +05:30
Ankit Agarwal 813c1136bc MDL-48002: inbound: Add ios fixture 2015-05-04 15:21:51 +05:30
Ankit Agarwal 149017a96c MDL-48002 inbound: Update fixtures to add client info 2015-05-04 15:21:51 +05:30
Ankit Agarwal e945517d66 MDL-48002 inbound: add tests for evolution 2015-05-04 15:21:51 +05:30
Andrew Nicols c712250d6b MDL-48002 inbound Unit tests from fixtures for quoted text 2015-05-04 15:21:51 +05:30
Ankit Agarwal e39a1db7b6 MDL-48002 inbound: Remove quoted text from forum emails 2015-05-04 15:21:51 +05:30
David Monllao d63c8ec710 Merge branch 'MDL-49954-28' of git://github.com/jleyva/moodle into MOODLE_28_STABLE 2015-05-04 15:16:19 +08:00
Andrew Nicols 62383073f5 MDL-49227 mod_forum: Improve discussion subscription on post
If the user has posted in the forum before, follow their previous
discussion preference.

If the user has not posted before, but is subscribed to the forum, follow
their forum preference.

Otherwise, follow their user-preference.

This has the result that if a user has unsubscribed from a forum and writes
their first response; the user preference will be followed. This may
override the forum subscription.

This commit also changes from a dropdown to a checkbox in the post form.

This is a backport of MDL-48221
2015-05-04 09:56:05 +08:00
Andrew Nicols 0013192227 Merge branch 'wip-mdl-50103-m28' of https://github.com/rajeshtaneja/moodle into MOODLE_28_STABLE 2015-05-04 09:39:03 +08:00
David Monllao 1be0ead2d4 MDL-50103 mod_assign: Fixing behat test
The participant number is dynamically generated so it is not possible to
match known values.

Match on the submission text instead.
2015-05-04 09:33:05 +08:00
Andrew Nicols 5c8bc25cd1 Merge branch 'wip-MDL-50066-m28' of git://github.com/marinaglancy/moodle into MOODLE_28_STABLE 2015-05-04 09:14:48 +08:00
David Monllao 0706e7ac17 weekly release 2.8.5+ 2015-05-01 16:47:25 +08:00
David Monllao 8069916549 MDL-49232 enrol_self: Adapting unit test to new can_self_enrol() output 2015-05-01 15:49:10 +08:00
Andrew Nicols f293278132 Merge branch 'MDL-49232_m28' of git://github.com/markn86/moodle into MOODLE_28_STABLE 2015-05-01 09:27:41 +08:00
Dan Poltawski e6a09c5359 Merge branch 'MDL-50028_28' of git://github.com/timhunt/moodle into MOODLE_28_STABLE 2015-04-30 16:07:16 +01:00
Marina Glancy ed402015bb MDL-50066 strings: unable to deprecate string from moodle.php 2015-04-30 16:15:24 +08:00
Andrew Nicols 9495b310e5 Merge branch 'MDL-49583-m28' of https://github.com/NeillM/moodle into MOODLE_28_STABLE 2015-04-30 15:11:42 +08:00
Andrew Nicols e3a371a7a1 Merge branch 'MDL-50038-28' of git://github.com/FMCorz/moodle into MOODLE_28_STABLE 2015-04-30 14:56:30 +08:00
David Monllao a3a4c4f028 Merge branch 'MDL-49281-28' of git://github.com/mastnym/moodle into MOODLE_28_STABLE 2015-04-30 14:54:04 +08:00
Martin Mastny 986ee9fd2a MDL-49281 grades: Calculation settings upgraded 2015-04-30 13:43:45 +08:00
Andrew Nicols 95bfd8108b Merge branch 'MDL-50033-28-enfix' of git://github.com/mudrd8mz/moodle into MOODLE_28_STABLE 2015-04-30 10:51:37 +08:00
Andrew Nicols 23eee911ef MDL-49232 enrol_self: Add behat test for non-guest self-enrolment 2015-04-29 18:02:45 -07:00
Mark Nelson bbaf38b921 MDL-49232 enrol_self: display continue button 2015-04-29 18:02:44 -07:00
David Mudrák a0deded716 MDL-50033 lang: Update Behat scenario to use the new string 2015-04-29 23:35:28 +02:00
Helen Foster cdf4ba9549 MDL-50033 lang: Merge English strings from the en_fix language pack 2015-04-29 23:22:36 +02:00
Frederic Massart 4127b60cb5 MDL-50038 my: Redirect admin users to the notifications page when needed 2015-04-29 19:05:36 +08:00
Neill Magill eaba80f68d MDL-49583 enrol: enrol/index.php page doesn't handle direct access well
Before this patch if a user who is not logged in to Moodle accesses the
enrol/index.php page directly they were redirected to the Moodle front
page after login, rather than back to a page that would allow them to
self enrol, if it is enabled on the course.

This change will cause a user who directly accesses the page to be
redirected back to it after they have logged in, unless the course has guest
access enabled.

Thanks to Marina Glancy for suggesting the use of get_referer()
2015-04-29 09:19:00 +01:00
David Monllao 32f86cd8e9 Merge branch 'MDL-49637-m28' of git://github.com/NeillM/moodle into MOODLE_28_STABLE 2015-04-29 12:05:09 +08:00
Tim Hunt 00d5b5c9a3 MDL-50028 qtype_match: fix correct answer display
Atto's stupid tendency to create HTML like
<p>You don't need a br at the end of a paragraph!</br></p>
was breaking it.
2015-04-28 13:08:24 +01:00
Tim Hunt a81b8267c7 MDL-50028 questions: split into one testcase class per file 2015-04-28 13:08:22 +01:00
Dan Poltawski 9fb9aa7215 weekly release 2.8.5+ 2015-04-28 09:28:06 +01:00
Dan Poltawski 0309e1e39d Merge branch 'install_28_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_28_STABLE 2015-04-28 09:28:04 +01:00
Neill Magill 895d6c75a4 MDL-49637 assign: Workflow & blind marking do not always show feedback
Before this patch if an assignment has workflow and blind marking enabled if a teacher
sets a submission to have its grades released to students before they reveal student
identities the feedback they have given is not displayed to the student.

The patch causes the reveal_identities() method to pass the correct value to the
get_feedback_plugin_by_type() function in the assign class.
2015-04-28 09:09:08 +01:00
Neill Magill 4358b705e5 MDL-49637 assign: Behat test for blind marking with workflow
This test checks that that if reveal student identities is used before or after the submissions grades have
been set released that the teacher's feedback is displayed to students.
2015-04-28 09:08:53 +01:00
David Monllao 39daab950a Merge branch 'MDL-42449-2.8' of git://github.com/andrewhancox/moodle into MOODLE_28_STABLE 2015-04-28 11:08:29 +08:00
Andrew Nicols 3c3c41682c Merge branch 'MDL-49926-28' of git://github.com/mastnym/moodle into MOODLE_28_STABLE 2015-04-28 10:27:12 +08:00
Martin Mastny 93e4b10b8e MDL-49926 gradereport: Cursor changes to pointer on hover 2015-04-28 10:23:03 +08:00
David Monllao f8ef412113 Merge branch 'MDL-49911-28' of git://github.com/FMCorz/moodle into MOODLE_28_STABLE 2015-04-28 09:47:01 +08:00
Juan Leyva 0c19d0828a MDL-49954 forum: Use clean_returnvalue properly in external unit tests 2015-04-27 18:26:06 +02:00
AMOS bot ee0cb8eb8d Automatically generated installer lang files 2015-04-28 00:04:14 +08:00
Dan Poltawski 5ff4e7ad7b Merge branch 'MDL-49993_28' of git://github.com/grabs/moodle into MOODLE_28_STABLE 2015-04-27 14:48:00 +01:00
Dan Poltawski 08c051c00b Merge branch 'MDL-49913_28' of git://github.com/jmvedrine/moodle into MOODLE_28_STABLE 2015-04-27 14:28:28 +01:00
Dan Poltawski 6a2192e887 Merge branch 'MDL-49977_m28' of git://github.com/markn86/moodle into MOODLE_28_STABLE 2015-04-27 10:53:18 +01:00
Andreas Grabs 6a7b2dd0cb MDL-49993 mod_feedback: Question auto numbers have no space between number and question 2015-04-26 19:04:21 +02:00
AMOS bot 796987c5f6 Automatically generated installer lang files 2015-04-25 00:04:08 +08:00
Andrew Hancox 8a5908a9b3 MDL-42449 backup: Fix for activity grade category
Retain grade category when restoring an activity into the course that
it came from
2015-04-24 14:01:31 +01:00
Dan Poltawski ee056895a3 weekly release 2.8.5+ 2015-04-24 12:10:52 +01:00
Dan Poltawski e61f453067 Merge branch 'MDL-49960-28' of git://github.com/FMCorz/moodle into MOODLE_28_STABLE 2015-04-24 09:06:40 +01:00
Frederic Massart 2607a4e671 MDL-49911 admin: Prevent notices when updatenotifications is disabled 2015-04-24 14:49:15 +08:00
Martin Mastny 1ac7e7e5c8 MDL-49926 gradereport: Feedback gets saved when editing grade in ajax mode 2015-04-24 13:17:01 +08:00
Andrew Nicols e5bb411fe4 Merge branch 'MDL-49311-28' of git://github.com/lameze/moodle into MOODLE_28_STABLE 2015-04-24 11:40:37 +08:00
papillon a65ba62f66 MDL-49311 user: fix default sorting problem 2015-04-24 09:13:53 +08:00
Mark Nelson 197824b5f8 MDL-49977 mod_assign: added missing page titles 2015-04-23 17:08:49 -07:00
Dan Poltawski 4a1a78244e Merge branch 'MDL-49946_28' of https://github.com/jmvedrine/moodle into MOODLE_28_STABLE 2015-04-23 13:32:36 +01:00
Frederic Massart 53318d9fce MDL-49960 message: Adding behat test for recent conversations 2015-04-23 14:55:52 +08:00
Jean-Michel Vedrine a1be2ce57d MDL-49913 mod_lesson: studentanswer format should be HTML 2015-04-23 08:28:36 +02:00
Jean-Michel Vedrine 19a6d37b9f MDL-49913 mod_lesson: fix import scores and jumps 2015-04-23 08:28:34 +02:00
Jean-Michel Vedrine 34acf52a3f MDL-49913 mod_lesson: defaultanswer to avoid duplication 2015-04-23 08:28:31 +02:00
Jean-Michel Vedrine 837c7f5696 MDL-49913 mod_lesson: round question grades on import 2015-04-23 08:28:28 +02:00
Andrew Nicols 1498e02eba Merge branch 'MDL-49319_backport_28' of https://github.com/andyjdavis/moodle into MOODLE_28_STABLE 2015-04-23 14:13:51 +08:00
Andrew Nicols 1007677df4 Merge branch 'MDL-49477-28' of git://github.com/FMCorz/moodle into MOODLE_28_STABLE 2015-04-23 13:52:15 +08:00
Andrew Nicols 38bf1824f8 Merge branch 'MDL-34921_28_unwanted-sitehome-redirects' of https://github.com/colin-umn/moodle into MOODLE_28_STABLE 2015-04-23 12:28:21 +08:00
Andrew Nicols e08df28765 Merge branch 'MDL-49613-m28' of https://github.com/NeillM/moodle into MOODLE_28_STABLE 2015-04-23 11:20:50 +08:00
Jean-Michel Vedrine 0de51e6ad1 MDL-49946 mod_lesson: improve qformat_default::defaultquestion 2015-04-22 19:49:59 +02:00
Dan Poltawski 52388b1bb4 Merge branch 'MDL-49921-28' of git://github.com/jleyva/moodle into MOODLE_28_STABLE 2015-04-22 16:41:35 +01:00
Andrew Davis 19a4bdb7f4 MDL-49319 core_registration: altered registration strings 2015-04-22 20:00:05 +08:00
Viduranga Wijesooriya cfd867e7d9 MDL-49477 availability_grade-form: checkbox disable problem fixed
Signed-off-by: Viduranga Wijesooriya <vpowerrc@gmail.com>
2015-04-22 17:35:41 +08:00
Tony Butler e8062e2cfe MDL-49933 mod_assign: Sort marker select lists alphabetically by name 2015-04-22 17:02:39 +08:00
Neill Magill e115db6dce MDL-49613 access: count_role_users gives unexpected results
The count_role_users function in lib/accesslib.php gives the wrong results if a user has the
same role at multiple levels in a context path.

For example a user is a coursecreator on a course and the category that the course is in,
in this case they would be counted twice, rather than being recognised as the same user.

This change will make the function only count unique users.
2015-04-22 09:31:27 +01:00
Neill Magill dd97173944 MDL-49613 access: Unit test for count_role_users 2015-04-22 09:31:26 +01:00
Juan Leyva 5f155af825 MDL-49921 forum: Handle exceptions correctly in get_forums_by_courses 2015-04-22 09:48:31 +02:00
Andrew Nicols c40fbd5e14 Merge branch 'MDL-49753-m28' of https://github.com/alexmitin/moodle into MOODLE_28_STABLE 2015-04-22 11:05:07 +08:00
Dan Poltawski 8fc43b0d64 weekly release 2.8.5+ 2015-04-21 11:16:27 +01:00
Dan Poltawski 8543e7c0d0 Merge branch 'install_28_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_28_STABLE 2015-04-21 11:16:25 +01:00
Andrew Nicols fa35ed9955 MDL-40811 uploaduser: Optimise testuser code 2015-04-21 11:35:48 +08:00
Andrew Nicols b6f2ac8c59 Merge branch 'MDL-40881_M28' of https://github.com/nadavkav/moodle into MOODLE_28_STABLE 2015-04-21 11:34:20 +08:00
Brian Barnes c41e9a3312 MDL-49782 general: removed uses of window.status 2015-04-21 10:46:02 +08:00
AMOS bot 0ccc3820c4 Automatically generated installer lang files 2015-04-21 00:04:20 +08:00
Andrew Nicols 42adb9f74a Merge branch 'wip-mdl-49799-m28' of https://github.com/rajeshtaneja/moodle into MOODLE_28_STABLE 2015-04-20 12:27:41 +08:00
David Monllao 5e67fb9442 Merge branch 'MDL-48187_m28' of git://github.com/markn86/moodle into MOODLE_28_STABLE 2015-04-20 12:20:04 +08:00
David Monllao 4d83fde993 Merge branch 'wip-MDL-49880-28' of git://github.com/abgreeve/moodle into MOODLE_28_STABLE 2015-04-20 12:13:00 +08:00
Mark Nelson fb3a9ecb92 MDL-48187 core_course: use updated '$grade_item' 2015-04-19 20:30:34 -07:00
Rajesh Taneja 768d7fca5f MDL-49799 behat: replaced asd.com with example.com
asd.com is a valid domain, we should use reserved domain names for testing
2015-04-20 11:23:28 +08:00
David Monllao f5095227d3 Merge branch 'm28_MDL-49904' of git://github.com/totara/moodle into MOODLE_28_STABLE 2015-04-20 10:40:57 +08:00
Adrian Greeve 0485403978 MDL-49880 mod_lesson: Fixed notice while importing questions.
Cloze questions (not supported by lesson) threw up a notice saying that
the course wasn't set.
2015-04-20 08:41:09 +08:00
Dan Poltawski 81e0be88e9 weekly release 2.8.5+ 2015-04-17 10:53:53 +01:00
Dave Cooper da1af82875 MDL-49573 gradereport_singleview: Add tests for bulk grade inserts 2015-04-17 12:56:15 +08:00
David Monllao 52c475e082 Merge branch 'MDL-48723_28_forum-plagiarism_errors' of git://github.com/colin-umn/moodle into MOODLE_28_STABLE 2015-04-17 10:41:35 +08:00
Brian Barnes 2f2e2a3cc2 MDL-49904 user: set title when editing another user 2015-04-17 11:57:23 +12:00
Dan Poltawski 4140295c9f Merge branch 'MDL-49894-28' of git://github.com/jleyva/moodle into MOODLE_28_STABLE 2015-04-16 16:10:26 +01:00
Dan Poltawski 9d40bd98be Merge branch 'MDL-49573-28' of git://github.com/gurgus/moodle into MOODLE_28_STABLE 2015-04-16 16:08:24 +01:00
Juan Leyva c58cafbbaa MDL-49894 forum: Add deprecated information for get_forum_discussions 2015-04-16 15:21:58 +02:00
Dan Poltawski d902884587 Merge branch 'MDL-49837-28' of git://github.com/jleyva/moodle into MOODLE_28_STABLE 2015-04-16 12:17:51 +01:00
David Monllao 2a5a747fec Merge branch 'MDL-45131-28' of git://github.com/jleyva/moodle into MOODLE_28_STABLE 2015-04-16 17:04:56 +08:00
Juan Leyva 19ddaeb782 MDL-45131 notes: Add validation for returned parameters in WS tests 2015-04-16 10:35:52 +02:00
Juan Leyva 43d7576332 MDL-45131 course: Add validation for returned parameters in WS tests 2015-04-16 10:34:48 +02:00
Juan Leyva a1b54310e1 MDL-45131 user: Add validation for returned parameters in WS tests 2015-04-16 10:33:40 +02:00
Juan Leyva 728b068e24 MDL-45131 message: Add validation for returned parameters in WS tests 2015-04-16 10:33:40 +02:00
Juan Leyva 772f17a280 MDL-45131 files: Add validation for returned parameters in WS tests 2015-04-16 10:33:39 +02:00
Juan Leyva db4f496b52 MDL-45131 enrol: Add validation for returned parameters in WS tests 2015-04-16 10:33:38 +02:00
Juan Leyva 58611999f3 MDL-45131 cohort: Add validation for returned parameters in WS tests 2015-04-16 10:32:42 +02:00
Juan Leyva 1bfd51f16b MDL-45131 calendar: Add validation for returned parameters in WS tests 2015-04-16 10:32:41 +02:00
Dave Cooper c40624308f MDL-49573 gradereport_singleview: Add tests for bulk grade inserts 2015-04-16 13:26:47 +08:00
Dave Cooper 7fc9e24121 MDL-49573 gradereport_singleview: Fixed bulk insert override logic. 2015-04-16 13:26:46 +08:00
Skylar Kelty 4b55cb7109 MDL-49489 caching: Prevent full coursecontact purge 2015-04-16 07:49:59 +08:00
Dan Poltawski 27b7886b44 Merge branch 'MDL-49763-28' of git://github.com/jleyva/moodle into MOODLE_28_STABLE 2015-04-15 15:53:18 +01:00
Dan Poltawski 5ac077568d Merge branch 'MDL-49803_28' of git://github.com/dmonllao/moodle into MOODLE_28_STABLE 2015-04-15 15:06:18 +01:00
David Monllao 1927f330c4 Revert "MDL-46963 core_upgrade: change the call to guess_antelope_row_size"
This reverts commit 55f4e4c9cf.
2015-04-15 15:52:51 +08:00
David Monllao e9e274d60b MDL-49803 mod_quiz: Fixing overrides restore 2015-04-15 15:30:26 +08:00
Simey Lameze 55f4e4c9cf MDL-46963 core_upgrade: change the call to guess_antelope_row_size 2015-04-15 15:01:34 +08:00
David Monllao e712433e97 Merge branch 'MDL-46963-28' of git://github.com/lameze/moodle into MOODLE_28_STABLE 2015-04-15 13:36:48 +08:00
Nadav Kavalerchik e5e43e747a MDL-40881 uploaduser: Validate profile fields unique values 2015-04-14 19:12:10 +03:00
Dan Poltawski eb5fab4fd9 weekly release 2.8.5+ 2015-04-14 16:49:13 +01:00
Dan Poltawski 10787caae9 Merge branch 'install_28_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_28_STABLE 2015-04-14 16:49:10 +01:00
Rajesh Taneja e2ca0b6e67 MDL-44611 behat: Description is required field and should be set 2015-04-14 12:16:49 +08:00
AMOS bot 36e07617ed Automatically generated installer lang files 2015-04-14 00:04:15 +08:00
Juan Leyva 7dedfc8b79 MDL-49837 assign: Use correct assertions and fix return params cleaning 2015-04-13 17:38:09 +02:00
Juan Leyva 88045d94ae MDL-49837 assign: Fix external functions return declaration
Incorrect use of external_warnings function
2015-04-13 17:38:00 +02:00
Dan Poltawski 1cc2d506aa Merge branch 'MDL-48702_backport_log' of https://github.com/andyjdavis/moodle into MOODLE_28_STABLE 2015-04-13 16:26:46 +01:00
Dan Poltawski 2d21dc38c6 Merge branch 'MDL-49166_site_rego_28' of https://github.com/andyjdavis/moodle into MOODLE_28_STABLE 2015-04-13 15:34:26 +01:00
Dan Poltawski d09ef20526 Merge branch 'MDL-49756-28' of git://github.com/mr-russ/moodle into MOODLE_28_STABLE 2015-04-13 15:05:42 +01:00
Andrew Nicols 351460000d Merge branch 'MDL-49426-28' of git://github.com/jleyva/moodle into MOODLE_28_STABLE 2015-04-13 14:32:35 +08:00
Simey Lameze 742bb09d38 MDL-46963 environment: add check for antelope row format 2015-04-13 14:24:50 +08:00
Andrew Nicols 71d8fb3c66 Merge branch 'MDL-33328_search_enrol_users_MDL28' of https://github.com/barrysspace/moodle into MOODLE_28_STABLE 2015-04-13 13:47:36 +08:00
Andrew Nicols 7955764966 Merge branch 'MDL-49762_M28' of git://github.com/nadavkav/moodle into MOODLE_28_STABLE 2015-04-13 13:39:36 +08:00
Andrew Nicols 7d621c689b Merge branch 'MDL-48836_m28' of https://github.com/markn86/moodle into MOODLE_28_STABLE 2015-04-13 13:28:53 +08:00
Ramindu Deshapriya eced61f6d1 MDL-44611 core_course: Added Behat test to automate MDLQA 5252 2015-04-13 11:12:57 +08:00
AMOS bot 11d14cacb9 Automatically generated installer lang files 2015-04-13 00:04:14 +08:00
Russell Smith 5ff1820a1f MDL-49756 course: Add unit tests for section_options. 2015-04-11 07:44:44 +10:00
Russell Smith 886fc0ba20 MDL-48836 backup: Use a trie for grouped path detection.
Backport of MDL-41674.
2015-04-10 14:11:47 -07:00
Juan Leyva e51a432d0f MDL-49763 webservices: Handle correctly deleted users for forums 2015-04-10 22:28:15 +02:00
Juan Leyva c8d1553d0e MDL-49426 webservices: Allow upload to draft area always 2015-04-10 10:44:47 +02:00
David Monllao 538b837c62 Merge branch 'MDL-49575-28' of git://github.com/FMCorz/moodle into MOODLE_28_STABLE 2015-04-10 15:11:25 +08:00
Barry Oosthuizen b99dcf40fd MDL-33328 enrol_manual: use correct parameter in search function
Searching for user from "Enrol users" panel causes blocks to dock in IE
2015-04-09 19:01:24 +01:00
Nadav Kavalerchik 1ae727b538 MDL-49762 Atto: Set HTML directionality to LTR, in RTL mode. 2015-04-09 16:10:43 +03:00
Dan Poltawski d705b4abb4 weekly release 2.8.5+ 2015-04-09 10:27:07 +01:00
Dan Poltawski c3c06055f0 Merge branch 'install_28_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_28_STABLE 2015-04-09 10:27:05 +01:00
Frederic Massart 6d2a555f8e MDL-49575 gradereport_singleview: Regrade item when (un)overriding 2015-04-09 16:26:19 +08:00
Colin Campbell 08fe5496d1 MDL-48723 mod/forum: Fix cron task error on digest attachments. 2015-04-08 13:06:13 -05:00
Andrew Davis 2721dc593e MDL-49166 registration: now states whether or not site is registered 2015-04-08 20:51:05 +08:00
AMOS bot 8efba305f2 Automatically generated installer lang files 2015-04-08 00:04:15 +08:00
Damyon Wiese 7d33c56890 Merge branch 'MDL-49736_m28' of git://github.com/markn86/moodle into MOODLE_28_STABLE 2015-04-07 21:43:47 +08:00
Eloy Lafuente (stronk7) 6dbfaf2235 Merge branch 'MDL-48205_28' of https://github.com/totara/openbadges into MOODLE_28_STABLE 2015-04-07 14:21:31 +02:00
Brendan Heywood be72c3df67 MDL-49740 Lock: Fixed task lock release bugs 2015-04-07 13:09:36 +01:00
David Monllao 996e83fdd4 MDL-43558 theme_base: We don't need edit toggle if modeditingmenu is disabled 2015-04-07 16:25:31 +08:00
David Monllao 1758e6efc0 Merge branch 'MDL-37984-28' of git://github.com/mastnym/moodle into MOODLE_28_STABLE 2015-04-07 16:08:43 +08:00
Alex Mitin c1e53206d1 MDL-49753 enrolments: preselct status filter if needed 2015-04-07 15:53:45 +08:00
Andrew Nicols 8527d33766 MDL-49395 core: add more unit tests for get_enrolled_sql 2015-04-07 15:29:07 +08:00
Andrew Nicols c7b415e792 Merge branch 'suspended_userids_memory_28' of git://github.com/tlevi/moodle into MOODLE_28_STABLE 2015-04-07 15:29:01 +08:00
Dan Poltawski 2615ec14ad Merge branch 'mdl38210-moodle28' of https://github.com/tlock/moodle into MOODLE_28_STABLE 2015-04-06 12:36:07 +01:00
Colin Campbell cf862db4bc MDL-34921 course/format: Fix unwanted redirects from Site home 2015-04-03 16:00:19 -05:00
AMOS bot 608ab1c385 Automatically generated installer lang files 2015-04-04 00:04:10 +08:00
Eloy Lafuente (stronk7) badfcb70e4 weekly release 2.8.5+ 2015-04-02 11:49:02 +02:00
David Monllao c582672225 MDL-46805 mod_scorm: Re-fix as previous object was removed in 2.8 2015-04-02 09:21:26 +01:00
Rajesh Taneja d406c3893e MDL-46805 scorm: Set user_id if scorm|aiccuserid config is set 2015-04-02 15:43:49 +08:00
Tony Levi 8e602172ff MDL-49395 accesslib: Make get_suspended_userids more efficient 2015-04-02 13:54:50 +10:30
Rajesh Taneja d21f9cc2dd MDL-49513 behat: Updated step name to match new step 2015-04-02 09:47:26 +08:00
Andrew Nicols 240d90b149 Merge branch 'MDL-49686-28' of git://github.com/merrill-oakland/moodle into MOODLE_28_STABLE
Conflicts:
	lib/editor/atto/yui/build/moodle-editor_atto-editor/moodle-editor_atto-editor-min.js
2015-04-01 18:47:53 +08:00
Andrew Nicols 47f8e3e117 Merge branch 'wip-mdl-49513-m28' of https://github.com/rajeshtaneja/moodle into MOODLE_28_STABLE 2015-04-01 18:34:08 +08:00
Rajesh Taneja f57728674e MDL-49513 behat: Set admin config using php api
Added a new set to set config using set_config() api
to make steps faster and more efficient
2015-04-01 14:28:27 +08:00
Mark Nelson 0f2786da69 MDL-49736 core_question: fixed ability to unhide questions 2015-03-31 23:06:07 -07:00
Andrew Nicols cd32489d7a Merge branch 'MDL-49693-28' of git://github.com/merrill-oakland/moodle into MOODLE_28_STABLE
Conflicts:
	lib/editor/atto/yui/build/moodle-editor_atto-editor/moodle-editor_atto-editor-min.js
2015-04-01 12:37:37 +08:00
Tim Lock 0ea62d56c4 MDL-38210 report_participation: implement get view/post actions 2015-04-01 10:28:41 +10:30
Eloy Lafuente (stronk7) 16008dfd92 Merge branch 'wip-mdl-48605-m28' of https://github.com/rajeshtaneja/moodle into MOODLE_28_STABLE 2015-04-01 01:13:20 +02:00
Dan Poltawski 811b80a4c5 Merge branch 'MDL-49564-28' of git://github.com/merrill-oakland/moodle into MOODLE_28_STABLE
Conflicts:
	lib/editor/atto/yui/build/moodle-editor_atto-editor/moodle-editor_atto-editor-min.js
2015-03-31 19:29:23 +01:00
Dan Poltawski bbc9f54a6b Merge branch 'MDL-49666_28' of git://github.com/timhunt/moodle into MOODLE_28_STABLE 2015-03-31 19:18:11 +01:00
Tim Hunt 8d7fa47e0d MDL-49666 qbehaviour_informationitem: respect $options->readonly 2015-03-31 15:19:56 +01:00
Dan Poltawski 32623b4d3c Merge branch 'MDL-49671-28' of git://github.com/merrill-oakland/moodle into MOODLE_28_STABLE 2015-03-31 15:11:06 +01:00
Rajesh Taneja c01741c8cc MDL-48605 unit_test: Only touch real file/dir 2015-03-31 21:46:21 +08:00
Dan Poltawski d128e18674 Merge branch 'MDL-49547_28' of git://github.com/timhunt/moodle into MOODLE_28_STABLE 2015-03-31 14:44:09 +01:00
Dan Poltawski 8794018916 Merge branch 'MDL-49645_m28' of git://github.com/markn86/moodle into MOODLE_28_STABLE 2015-03-31 13:28:20 +01:00
Dan Poltawski 664749aaea Merge branch 'MDL-49641-get_external_files_m28' of https://github.com/jpahullo/moodle into MOODLE_28_STABLE 2015-03-31 13:15:10 +01:00
Dan Poltawski c2ca02e489 Merge branch 'MDL-49674-28-commentformat' of git://github.com/mudrd8mz/moodle into MOODLE_28_STABLE 2015-03-31 12:17:25 +01:00
Dan Poltawski 55d31273e3 Merge branch 'MDL-48880_28' of git://github.com/jmvedrine/moodle into MOODLE_28_STABLE 2015-03-31 11:19:21 +01:00
Dan Poltawski ccd4382245 Merge branch 'm28_MDL-43818_Unable_Download_Package_Via_URL' of https://github.com/scara/moodle into MOODLE_28_STABLE 2015-03-31 09:27:54 +01:00
Andrew Nicols e47d8445b9 Merge branch 'MDL-49695_m28' of git://github.com/markn86/moodle into MOODLE_28_STABLE 2015-03-31 15:15:15 +08:00
Rajesh Taneja f93ff30cde MDL-48605 unit_test: Fixed file_temp_cleanup_task
touch should only work on temp and below
dir's. With path we get temp/.. and temp/.
So we were modfying moodledata dir as well
and it was failing because of permission issues.
2015-03-31 14:58:51 +08:00
Andrew Nicols bc8acaffc1 MDL-49294 logging: Improve cleanup tests 2015-03-31 14:12:54 +08:00
Andrew Nicols eb9845115b Merge branch 'log_cleanup_28' of https://github.com/tlevi/moodle into MOODLE_28_STABLE 2015-03-31 14:01:30 +08:00
Andrew Nicols f2512fddb3 MDL-49669 badges: Add comment to explain CURLOPT_POSTREDIR 2015-03-31 12:24:32 +08:00
Andrew Nicols a3d579f922 Merge branch 'MDL-49669_28' of https://github.com/totara/openbadges into MOODLE_28_STABLE 2015-03-31 12:24:22 +08:00
Yuliya Bozhko d9dbcdf893 MDL-48205 badges: Get rid of ucfirst() and make modnames translatable
Signed-off-by: Yuliya Bozhko <yuliya.bozhko@totaralms.com>
2015-03-31 16:46:01 +13:00
David Monllao ec148b2574 Merge branch 'MDL-49114-28' of git://github.com/lameze/moodle into MOODLE_28_STABLE 2015-03-31 11:29:30 +08:00
David Monllao b7df272247 Merge branch 'MDL-49474_28' of git://github.com/jmvedrine/moodle into MOODLE_28_STABLE 2015-03-31 10:15:03 +08:00
Andrew Nicols 6ba6b23280 Merge branch 'm28_MDL-46805' of https://github.com/danmarsden/moodle into MOODLE_28_STABLE 2015-03-31 08:18:01 +08:00
Dan Marsden d444af3d74 MDL-46805 SCORM: AICC restricts allowed characters in the username 2015-03-31 10:39:26 +13:00
Matteo Scaramuccia a9e99ebd02 MDL-43818 SCORM: unable to download the Package via URL. 2015-03-30 20:38:50 +02:00
Eloy Lafuente (stronk7) b4e4c37e52 Merge branch 'wip-mdl-49708-m28' of https://github.com/rajeshtaneja/moodle into MOODLE_28_STABLE 2015-03-30 13:27:32 +02:00
Dan Poltawski f9212fb311 Merge branch 'wip-MDL-47337-m28' of git://github.com/marinaglancy/moodle into MOODLE_28_STABLE 2015-03-30 11:06:38 +01:00
Rajesh Taneja b070387e03 MDL-49708 behat: Resize window back to default
Leaving window size to large fails in chrome
Reset it to default size works to ensure stamp
is visible by selenium driver
2015-03-30 17:30:08 +08:00
Rajesh Taneja e0d460673a MDL-49708 behat: Fix chromedriver failure
Chromedriver tries to click in center of link
As these links wrap on next line it fails to
click on links on small screen
2015-03-30 12:35:32 +08:00
David Monllao 808836c60b Merge branch 'mdl36506-moodle28' of git://github.com/tlock/moodle into MOODLE_28_STABLE 2015-03-30 10:32:12 +08:00
Simey Lameze e22f5c6d87 MDL-49114 environment: add slasharguments warning message 2015-03-30 10:07:14 +08:00
Jean-Michel Vedrine e807911c99 MDL-48880 mod_lesson: clean lesson_branch on upgrade and restore 2015-03-29 21:37:01 +02:00
Jean-Michel Vedrine 0619c4ecc4 MDL-48880 mod_lesson: clean lesson_branch when a page is deleted 2015-03-29 21:37:01 +02:00
Mark Nelson 8624dcbc4d MDL-49695 tool_behat: fixed URL 2015-03-27 16:54:46 -07:00
Eric Merrill 93e80c9b45 MDL-49693 atto: Clean textarea contents before inserting into editor 2015-03-27 12:27:47 -04:00
Eric Merrill 42fb2c1b70 MDL-49686 atto: Process style and class attributes in sub-functions
To ensure we only clean style and classes, first we select the inside
of those attributes and "replace" them with handler functions. Those
functions scan the actual attribute values for class or styles that
we want to exclude.

The first level regex has 3 groups. group1 selects everything in the
tag leading up to the attribute values, group2 has the attributes,
group3 has the trailing quote mark. We work on group2 then return
the combination of group1, group2, and group3.
2015-03-27 11:36:26 -04:00
Eric Merrill fbcc8eba37 MDL-49671 atto: Any pastes that don't have html should clean everything
Browsers may not provide html content in the clipboard object event
though it will really be pasted as such. This includes Firefox on
Windows, Internet Explorer, and some niche cases in Safari.

Because of this, we need to scrub the entire editor anytime we can't
intercept a paste event.

In some magical day in the future when there is better cross browser
support, we can undo this.
2015-03-26 23:59:06 -04:00
Eric Merrill 0f9a1675cd MDL-49564 atto: Improve empty span removal
Paste from MS word, followed by cleaning, may leave many many unused
spans. Try to remove them.
2015-03-26 23:08:22 -04:00
Marina Glancy 7f1b995194 MDL-47337 course: merge section options during restore 2015-03-27 08:50:26 +08:00
Mark Nelson 1d663d1776 MDL-49645 core_backup: fixed 'expirythreshold' setting not being saved 2015-03-26 16:38:59 -07:00
Yuliya Bozhko b9aa500ea9 MDL-49669 badges: Handle curl redirects when posting to backpack
Signed-off-by: Yuliya Bozhko <yuliya.bozhko@totaralms.com>
2015-03-27 09:30:12 +13:00
Tim Hunt 94fa39d226 MDL-49547 question restore: avoid tag-related notices. 2015-03-26 15:30:13 +00:00
David Mudrák 64bef5f9f6 MDL-49674 comment: Use correct format when displaying the comment
The plugin callback executed above can eventually change the format. We
need to use that one to have the formatting of the first AJAX response
consistent with following displays.
2015-03-26 13:00:56 +01:00
Eloy Lafuente (stronk7) 0a4b99f35b weekly release 2.8.5+ 2015-03-26 10:48:15 +01:00
Eloy Lafuente (stronk7) 36843ff28b Merge branch 'install_28_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_28_STABLE 2015-03-26 10:48:09 +01:00
David Monllao 49fad98ab2 MDL-47002 editor_atto: Remove all after html when pasting 2015-03-26 10:07:57 +01:00
David Monllao 5baa2de21e MDL-47002 editor_atto: Clean the comments separately 2015-03-26 14:50:17 +08:00
Tony Levi fd7dd8f237 MDL-49294 logging: Cleanup runs in smaller chunks
Just running a huge log cleanup will probably cause big problems on large sites.
So we break this down into smaller day-by-day chunks until reaching the target.
2015-03-26 12:01:53 +10:30
Eloy Lafuente (stronk7) ea1dba053d Merge branch 'MDL-47002-int-28' of git://github.com/merrill-oakland/moodle into MOODLE_28_STABLE 2015-03-25 18:19:46 +01:00
Eric Merrill 0c2d24e908 MDL-47002 atto: Prevent removal of Rangy spans 2015-03-25 10:02:13 -04:00
David Monllao 751fe02a01 MDL-49558 gradereport_user: Fixing table border 2015-03-25 08:41:38 +00:00
Eric Merrill b8bf3fe36b MDL-47003 atto: Update behat test for copyright symbol 2015-03-25 15:20:39 +08:00
Jordi Pujol Ahulló b94e9188e7 MDL-49641 repository_dropbox: preventing poor performance.
get_external_files placed with second argument as '' to prevent poor performance.
2015-03-25 08:02:24 +01:00
Martin Mastny 08d18b09c1 MDL-37984 portfolio: Google drive using official client library 2015-03-25 12:40:40 +08:00
David Monllao be39358439 MDL-45619 repository: Don't allow repository_recent to be uninstalled
We have tests that depends on it and it
is a simple repo that can just be disabled.
2015-03-25 09:39:59 +08:00
David Monllao c34e3ca994 Merge branch 'MDL-45619_m28' of git://github.com/sbourget/moodle into MOODLE_28_STABLE 2015-03-25 09:39:48 +08:00
Dan Poltawski 12fd2baec7 Merge branch 'MDL-49354-28' of https://github.com/mtavella-netspot/moodle into MOODLE_28_STABLE 2015-03-24 15:14:11 +00:00
Andrew Nicols 16dab5d9c7 MDL-48918 course: Fix keyboard drag/drop after dropped resource 2015-03-24 15:11:24 +00:00
Eloy Lafuente (stronk7) 3209753b78 Merge branch 'MDL-48795_28' of https://github.com/apsdehal/moodle into MOODLE_28_STABLE 2015-03-24 15:44:54 +01:00
Dan Poltawski 54924b24c7 Merge branch 'wip-mdl-49374-m28' of https://github.com/rajeshtaneja/moodle into MOODLE_28_STABLE 2015-03-24 13:36:58 +00:00
Dan Poltawski 05de057c00 Merge branch 'MDL-49070_scheduled_28' of https://github.com/andyjdavis/moodle into MOODLE_28_STABLE 2015-03-24 13:33:53 +00:00
Dan Poltawski f7751d8cd6 Merge branch 'wip_MDL-49631_28_utfregex' of https://github.com/skodak/moodle into MOODLE_28_STABLE 2015-03-24 11:11:37 +00:00
Dan Poltawski 9e84f9063e Merge branch 'MDL-46746-28' of git://github.com/merrill-oakland/moodle into MOODLE_28_STABLE
Conflicts:
	lib/editor/atto/yui/build/moodle-editor_atto-editor/moodle-editor_atto-editor-min.js
2015-03-24 11:04:18 +00:00
Dan Poltawski 932d1d33d1 Merge branch 'MDL-49565-28' of git://github.com/merrill-oakland/moodle into MOODLE_28_STABLE 2015-03-24 09:57:20 +00:00
Dan Poltawski c4862951d8 Merge branch 'wip_MDL-49327_2.8_guide_getinstance' of https://github.com/nixorv/moodle into MOODLE_28_STABLE
Conflicts:
	grade/grading/form/guide/tests/guide_test.php
2015-03-24 09:31:13 +00:00
Nadav Kavalerchik 7204bbf743 MDL-49558 user grades: Fix range & percent grade display in RTL mode 2015-03-24 14:51:47 +08:00
David Monllao d794cb3935 Merge branch 'MDL-49555-28' of git://github.com/FMCorz/moodle into MOODLE_28_STABLE 2015-03-24 11:00:27 +08:00
David Monllao 0a79d25826 Merge branch 'MDL-47003-28' of git://github.com/merrill-oakland/moodle into MOODLE_28_STABLE 2015-03-24 10:17:40 +08:00
Tim Lock 4101e04265 MDL-36506 mod_book: Skip legacy files migration if missing a CM record 2015-03-24 12:47:18 +10:30
Mohamed Alsharaf 99046d557e MDL-35482 lesson: return to previous page after edit and page save 2015-03-24 00:41:17 +01:00
Nikita Kalinin 4ef8b1d07e MDL-49327 marking guide: Added condition on definitionid. 2015-03-24 00:12:17 +03:00
AMOS bot b1660e619b Automatically generated installer lang files 2015-03-24 00:06:32 +08:00
Dan Poltawski a3fcd87495 Merge branch 'wip_MDL-49327_2.8_guide_getinstance' of https://github.com/nixorv/moodle into MOODLE_28_STABLE 2015-03-23 15:49:05 +00:00
Dan Poltawski be8c5c6944 Merge branch 'MDL-48443-28' of git://github.com/jleyva/moodle into MOODLE_28_STABLE 2015-03-23 15:03:59 +00:00
Dan Poltawski c3ae3253d9 Merge branch 'wip-mdl-49432-m28' of https://github.com/rajeshtaneja/moodle into MOODLE_28_STABLE 2015-03-23 12:37:06 +00:00
Dan Poltawski 77d0becd77 Merge branch 'm28_MDL-48419' of https://github.com/danmarsden/moodle into MOODLE_28_STABLE 2015-03-23 11:17:05 +00:00
Dan Poltawski 4bc1c5994d Merge branch 'MDL-21201-28-feedback_anon' of https://github.com/DSI-Universite-Rennes2/moodle into MOODLE_28_STABLE 2015-03-23 11:03:29 +00:00
David Monllao 01f0148c64 MDL-48456 course: Using default max int value 2015-03-23 15:18:06 +08:00
David Monllao 02a9c25040 Merge branch 'MDL-48456-28' of git://github.com/dkns/moodle into MOODLE_28_STABLE 2015-03-23 15:17:56 +08:00
David Monllao c0339626a2 Merge branch 'MDL-47002-28' of git://github.com/merrill-oakland/moodle into MOODLE_28_STABLE 2015-03-23 14:59:23 +08:00
Petr Skoda 4f431ffe43 MDL-49631 fix incorrect whitespace remplacements 2015-03-23 17:40:45 +13:00
AMOS bot 727bbbfa03 Automatically generated installer lang files 2015-03-23 00:04:20 +08:00
Daniel Kosinski 482ad496c7 MDL-48456 course: increase timeout when deleting all courses in category 2015-03-22 16:24:13 +01:00
AMOS bot b1a5caec65 Automatically generated installer lang files 2015-03-21 00:04:08 +08:00
AMOS bot 4c7ec86fcd Automatically generated installer lang files 2015-03-21 00:04:08 +08:00
Julien Boulen b8e75114c9 MDL-21201 Feedback: hide anonymous responses in recent activity reports 2015-03-20 16:27:25 +01:00
Andrew Davis 3a389c1d46 MDL-49070 core_registration: removed now unused config setting 2015-03-20 20:58:57 +08:00
Andrew Davis 592608b287 MDL-49070 core_registration: improved site registration scheduled task 2015-03-20 20:55:06 +08:00
Nikita Kalinin 8060eb6fc7 MDL-49327 marking guide: Added condition on definitionid. 2015-03-20 12:20:46 +03:00
Rajesh Taneja cc8cc5c8b0 MDL-49374 behat: Get install or re-install error code after composer
After composer is installed make sure we just process only
install or re-install
2015-03-20 14:05:28 +08:00
Rajesh Taneja 895661bf74 MDL-49432 behat: guzzle packages has been unified
Current version of goutte is pointing to old guzzle packages
guzzle/common, guzzle/stream, guzzle/parser and guzzle/http.
They have been unified to guzzlehttp/guzzle, so include it to
avoid using old packages
2015-03-20 12:09:55 +08:00
Eloy Lafuente (stronk7) 3ea79917c9 weekly release 2.8.5+ 2015-03-19 12:42:13 +01:00
Eloy Lafuente (stronk7) 87a27b23a1 NOBUG: Fixed file access permissions 2015-03-19 12:42:13 +01:00
Jean-Michel Vedrine 53aad1f086 MDL-49474 mod_lesson: intro and introformat missing from backup/restore
Conflicts:
	mod/lesson/backup/moodle2/backup_lesson_stepslib.php
	mod/lesson/backup/moodle2/restore_lesson_stepslib.php
2015-03-18 23:27:13 +01:00
Marina Glancy 9cdcf8748d MDL-45619 repository: corrections to uninstall, display link 2015-03-18 13:45:09 -04:00
Stephen Bourget fad0019cb2 MDL-45619 Repository: Allow repositories to be uninstalled 2015-03-18 13:45:06 -04:00
Eric Merrill cf539782c0 MDL-49565 atto: Allow html comments in editor code 2015-03-18 12:30:06 -04:00
Eric Merrill d6ee0f6897 MDL-46746 atto: Remove unnecessary filtering of unicode characters 2015-03-18 12:09:51 -04:00
Eric Merrill 016c76ec57 MDL-47003 atto: Make code cleanup more targeted
Apply different, stricter, code cleanup when we receive HTML (WYSIWYG)
paste events, but be more lax the rest of the time.

Also, update the regexes to be more targeted for specific code patterns
pasted from office packages.
2015-03-18 11:47:22 -04:00
Eric Merrill 5cb7093166 MDL-47002 atto: Improve paste behaviour to ensure propper cleanup
Old code failed to clean the editor div which resulted in
undesirable code being being left in the div for editing. To properly
handel incoming code, we should try to intercept and clean before the
paste, or clean the entire editable div.
2015-03-18 09:29:43 -04:00
info@ewallah.net bb04cfe20e MDL-49555 enrol_paypal: Only display icon if method available 2015-03-18 14:23:25 +01:00
Juan Leyva abde87bf41 MDL-48443 webservices: Prevent duplicated user devices 2015-03-18 11:43:56 +01:00
Dan Marsden 5663c1771f MDL-48419 mod_scorm: Check net script too agressive
in some cases high latency and network issues result in longer
than 2 sec responses from a server, increase this to avoid
excessive warnings.
2015-03-18 20:05:36 +13:00
David Monllao 67258145ea Revert "Merge branch 'MDL-49445_28' of git://github.com/timhunt/moodle into MOODLE_28_STABLE"
This reverts commit ea505f1b35, reversing
changes made to bad69e63f5.
2015-03-18 10:51:15 +08:00
Eloy Lafuente (stronk7) 23be970b7f Merge branch 'MDL-49296_m28v3' of https://github.com/sbourget/moodle into MOODLE_28_STABLE 2015-03-17 12:05:25 +01:00
Dan Poltawski 58873bcae3 Merge branch 'MDL-49359_m28' of https://github.com/markn86/moodle into MOODLE_28_STABLE 2015-03-17 08:53:31 +00:00
Mark Nelson 3c2c8a0628 MDL-49359 install: warn against using MyISAM 2015-03-16 20:41:56 -07:00
Stephen Bourget 6ec0c5fba5 MDL-49296 Lesson: Add titles to action links 2015-03-16 20:35:15 -04:00
Eloy Lafuente (stronk7) 39a765703e Merge branch 'MDL-49389_28' of git://github.com/timhunt/moodle into MOODLE_28_STABLE 2015-03-17 00:29:22 +01:00
Mike Grant 87fd4f6b0d MDL-49276 config-dist: Removed legacy config options
Both $CFG->logsql and $CFG->dblogerror had no use in moodle core
since ages ago (just the former had one use for nothing). Good time
to get rid of both as they are 100% misleading.
2015-03-16 23:42:57 +01:00
Dan Poltawski 21acd586a8 Merge branch 'MDL-48965_28' of git://github.com/jmvedrine/moodle into MOODLE_28_STABLE 2015-03-16 21:05:57 +00:00
Dan Poltawski 8d8124fa9f Merge branch 'wip-MDL-49267-m28' of git://github.com/marinaglancy/moodle into MOODLE_28_STABLE 2015-03-16 15:52:38 +00:00
Dan Poltawski b6c5e8f790 Merge branch 'MDL-49104-28' of git://github.com/DanBennettUK/moodle into MOODLE_28_STABLE 2015-03-16 15:05:13 +00:00
Dan Poltawski 8736f9b956 Merge branch 'MDL-49187-28' of https://github.com/spvickers/moodle into MOODLE_28_STABLE 2015-03-16 14:52:05 +00:00
Dan Poltawski d8088471b0 Merge branch 'MDL-49442-28' of git://github.com/jethac/moodle into MOODLE_28_STABLE 2015-03-16 13:31:07 +00:00
David Monllao ea505f1b35 Merge branch 'MDL-49445_28' of git://github.com/timhunt/moodle into MOODLE_28_STABLE 2015-03-16 15:38:13 +08:00
David Monllao bad69e63f5 MDL-47712 question_multianswer: Concat as string 2015-03-16 13:51:17 +08:00
David Monllao 54fbcc3105 Merge branch 'MDL-47712-m28-master' of git://github.com/dthies/moodle into MOODLE_28_STABLE 2015-03-16 10:33:40 +08:00
David Monllao c35f3e97da Merge branch 'm28_MDL-44548' of git://github.com/danmarsden/moodle into MOODLE_28_STABLE 2015-03-16 10:04:34 +08:00
David Monllao 9455b8b96b Merge branch 'wip-MDL-47729-m28' of git://github.com/marinaglancy/moodle into MOODLE_28_STABLE 2015-03-16 09:50:31 +08:00
Dan Marsden 4050f60b55 MDL-44548 mod_scorm: force an external sync to check for updated files. 2015-03-16 09:03:01 +13:00
Daniel Thies 55526a8a53 MDL-47712 qtype_multianswer: Move mathjaxloader spans to outer question 2015-03-13 21:33:16 -05:00
Tim Hunt 44242e1a40 MDL-49446 behat: should_not_be_visible steps were not working
I fixed all similar problems in this class, even ones where it did
actually work becuase the two exceptions were of different types.
This pattern seems to have been copied and pasted a lot in this class,
and I am sure that will happen again, so I did not want to leave any
dangerous potential examples around.
2015-03-13 14:22:52 +00:00
Tim Hunt 6d01dfe627 MDL-49445 behat: selectors should match the most specific tr or li
I also fixed the text rule, which already did this, to use the same
idiom. It is unnecessarily inefficient to count all the things and
compare to 0. Not exists should be faster.

Also, updated all the selectors here to consistently start relative to
the current node (.//, not //).
2015-03-13 14:22:44 +00:00
Tim Hunt d8ace7dd74 MDL-49389 blocklib: avoid notices when moving blocks to the bottom 2015-03-13 14:22:35 +00:00
Marina Glancy 1a17ca8bdd MDL-47729 repository_filesystem: smarter sync of references
It was noticed that if file content was once imported the following
synchronisations do not discover the changes
2015-03-13 11:21:14 +08:00
David Monllao 79dfb73824 weekly release 2.8.5+ 2015-03-13 10:27:41 +08:00
David Monllao 4d82d742c5 Merge branch 'install_28_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_28_STABLE 2015-03-13 10:27:39 +08:00
David Monllao 4bb1c9764e Merge branch 'MDL-48897_28' of git://github.com/jmvedrine/moodle into MOODLE_28_STABLE 2015-03-11 08:51:57 +08:00
David Monllao 135aeaacc4 Merge branch 'MDL-48858-28' of git://github.com/mastnym/moodle into MOODLE_28_STABLE 2015-03-11 08:46:50 +08:00
Tim Hunt 0612ff1f56 MDL-49315 questions: unit tests for each behaviour type class 2015-03-11 08:28:18 +08:00
Eloy Lafuente (stronk7) 807e21f64e Merge branch 'MDL-49159-28' of https://github.com/spvickers/moodle into MOODLE_28_STABLE 2015-03-11 00:18:28 +01:00
AMOS bot 2229917a8f Automatically generated installer lang files 2015-03-11 00:04:06 +08:00
Dan Poltawski 1a72a44f97 Merge branch 'wip_MDL-49074_M28' of git://github.com/gjb2048/moodle into MOODLE_28_STABLE 2015-03-10 11:51:45 +00:00
David Monllao 0d87b1f548 Merge branch 'MDL-49256-28' of git://github.com/andrewnicols/moodle into MOODLE_28_STABLE
Conflicts:
	lib/editor/atto/yui/build/moodle-editor_atto-editor/moodle-editor_atto-editor-min.js
2015-03-10 17:46:01 +08:00
Dan Poltawski f09cb26d51 Merge branch 'wip-mdl-49402-m28' of https://github.com/rajeshtaneja/moodle into MOODLE_28_STABLE 2015-03-10 08:33:35 +00:00
Dan Poltawski dd8b3324ef Merge branch 'MDL-48682_28' of git://github.com/dmonllao/moodle into MOODLE_28_STABLE 2015-03-10 08:25:30 +00:00
David Monllao 3fca7fd7c7 Merge branch 'MDL-49346-28' of git://github.com/jleyva/moodle into MOODLE_28_STABLE 2015-03-10 15:32:05 +08:00
David Monllao 3622940192 Merge branch 'MDL-49351-28' of git://github.com/jleyva/moodle into MOODLE_28_STABLE 2015-03-10 15:21:30 +08:00
David Monllao 655193dc84 Merge branch 'MDL-49366_28' of git://github.com/timhunt/moodle into MOODLE_28_STABLE 2015-03-10 14:41:29 +08:00
Jetha Chan a34b18ad21 MDL-49442 javascript: add handlebars hashtable to support get_string 2015-03-10 13:07:28 +08:00
David Monllao 65b61b07e0 Merge branch 'MDL-49107-28' of git://github.com/FMCorz/moodle into MOODLE_28_STABLE 2015-03-10 11:43:31 +08:00
David Monllao f61d29c317 Merge branch 'MDL-49332-28' of git://github.com/merrill-oakland/moodle into MOODLE_28_STABLE 2015-03-10 10:43:11 +08:00
David Monllao 62d334e985 Merge branch 'MDL-48572_28' of git://github.com/rlorenzo/moodle into MOODLE_28_STABLE 2015-03-10 10:35:37 +08:00
David Monllao 0f9b21a5d7 Merge branch 'MDL-39262_28' of git://github.com/jmvedrine/moodle into MOODLE_28_STABLE 2015-03-10 10:13:00 +08:00
Eloy Lafuente (stronk7) be3e6f6202 Moodle release 2.8.5 2015-03-10 00:42:44 +01:00
Dan Bennett 116f2c5714 MDL-49104 repository_s3: backport of MDL-43725 2015-03-09 16:03:12 +00:00
Eloy Lafuente (stronk7) 49f4e7c976 weekly release 2.8.4+ 2015-03-09 16:47:53 +01:00
Marina Glancy 2d73956d8e MDL-49418 core: partial revert of MDL-48804
this is a quick fix for the issue 'Course module with two or more availability restrictions is not accessible'
MDL-49434 is created to deal with the renderer access inside availability check
2015-03-09 11:26:18 +08:00
Jean-Michel Vedrine a4ff234c80 MDL-39262 mod_lesson: disable shortforms in lesson question display
Conflicts:
	mod/lesson/pagetypes/shortanswer.php
2015-03-08 11:20:22 +01:00
Amanpreet Singh b2959e1323 MDL-48795 lang: Update message for nothingnew
In lang/en/moodle.php file
2015-03-08 10:06:39 +05:30
Jean-Michel Vedrine 10a40946c6 MDL-48897 mod_lesson: behat tests for pages edition
This is a backport of MDL-48675.
2015-03-07 22:52:02 +01:00
Jean-Michel Vedrine 5d911423dc MDL-48897 mod_lesson: Error displayed while editing content page jumps
This change also fix MDL-32343 and MDL-31778 related to problems
when editing cluster pages.

This is a backport of MDL-48675.
2015-03-07 22:52:02 +01:00
Jean-Michel Vedrine fbfa01b847 MDL-48965 mod_lesson: avoid short answer question without any answers 2015-03-07 22:07:00 +01:00
Eloy Lafuente (stronk7) f4dc567e79 Moodle release 2.8.4 2015-03-07 11:23:46 +01:00
Juan Leyva 4567c1c3a0 MDL-49346 ratings: ratingarea should be a required parameter 2015-03-06 11:45:03 +01:00
Juan Leyva b610727b5b MDL-49351 ratings: Correct check of viewallratings permission 2015-03-06 11:43:05 +01:00
Marina Glancy 1118c28a51 MDL-49267 mod_wiki: always apply filters to the wiki name 2015-03-06 13:54:29 +08:00
Andrew Nicols 1879f64350 MDL-49256 atto: Check form existence before resetAutosave 2015-03-06 12:01:50 +08:00
Rajesh Taneja 8b215b4110 MDL-49402 behat: Fixed feature file with same scenario name
1. We should not have same scanrio name in 1 feature file
   As it doesn't explain what is being tested. So modified.
2. Removed empty line, to keep it consistnet with other features
2015-03-06 11:47:56 +08:00
David Monllao 69023cd3e9 MDL-48682 behat: Changing window size on specific tests 2015-03-06 11:03:17 +08:00
David Monllao f4a201cdf2 MDL-49376 behat: Fixing resize step regex 2015-03-06 10:59:47 +08:00
Rex Lorenzo 086f4b6e4f MDL-48572 gradereport_grader: Average wrong with suspended users 2015-03-05 11:38:09 -08:00
Eric Merrill cf1a558531 MDL-49332 gradebook: Raise time limit if we get into regrade
Because all regrading should (and does) start from this point, it
is safe and best to call it just once, from this point.
2015-03-05 10:10:13 -05:00
Tim Hunt 3338ba48d9 MDL-49366 questions: avoid PHP notices from bad pluginfile URLs 2015-03-05 12:17:43 +00:00
Eloy Lafuente (stronk7) 67bbf0d422 weekly release 2.8.3+ 2015-03-05 11:26:48 +01:00
Eloy Lafuente (stronk7) 89784be6ff Merge branch 'MDL-49379_m28' of git://github.com/markn86/moodle into MOODLE_28_STABLE 2015-03-04 10:50:12 +01:00
Mark Nelson 8f938ff9a6 MDL-49379 core_webservice: fixed ability to edit services 2015-03-04 01:37:07 -08:00
David Monllao c35df119a5 MDL-49204 core_message: Checking current user 2015-03-04 10:05:44 +08:00
spvickers f9db06b107 MDL-49187 mod_lti: Fix tool config lookup
Changed code to look for a tool ID before then matching on the URL.
2015-03-03 18:56:41 -07:00
Andrew Nicols 98dfa7cae8 Merge branch 'MDL-49364_28' of git://github.com/timhunt/moodle into MOODLE_28_STABLE 2015-03-04 08:53:03 +08:00
Andrew Nicols 4d7ecf45a1 Merge branch 'mdl28_MDL-46390' of https://github.com/danmarsden/moodle into MOODLE_28_STABLE 2015-03-04 07:55:59 +08:00
Dan Marsden 2e12b4cffb MDL-46390 mod_scorm: Find correct sco to launch when org based sco is selected
Also tidies up some redundant code in scorm_format_toc_for_droplist()
2015-03-04 09:28:53 +13:00
Eloy Lafuente (stronk7) c2383703ea Merge branch 'MDL-49214_M28' of git://github.com/lazydaisy/moodle into MOODLE_28_STABLE 2015-03-03 19:36:19 +01:00
Dan Poltawski 9db4890064 Merge branch 'MDL-49335_28' of git://github.com/timhunt/moodle into MOODLE_28_STABLE 2015-03-03 14:46:34 +00:00
Dan Poltawski c6e925dbf0 Merge branch 'MDL-49334_28' of git://github.com/timhunt/moodle into MOODLE_28_STABLE 2015-03-03 13:25:33 +00:00
Dan Poltawski 35a615aa33 Merge branch 'MDL-47000-28' of git://github.com/merrill-oakland/moodle into MOODLE_28_STABLE 2015-03-03 13:21:30 +00:00
Tim Hunt f1fb96b698 MDL-49364 quiz statistics: escape output in the response analysis 2015-03-03 13:04:59 +00:00
Tim Hunt b6f112957e MDL-49335 quiz behat: new test of attempting a quiz
This separates out attempting the quiz into a separate .feature, away
from the monolithic add_quiz.feature. At some point we should clean that
up, but for now I am just adding this.

Really, the main reason for this test is to verify the two Behat
enhancememnts I just did.
2015-03-03 11:23:55 +00:00
Tim Hunt ccc1e11099 MDL-49335 quiz behat: improved step for adding questions to a quiz
Explicit headings make the script more readable, and pave the way for
new options that are due to be added.
2015-03-03 11:23:54 +00:00
Tim Hunt 44f6bc4ead MDL-49335 Behat: new question selector
So you can say things like
    And I click on "True" "radio" in the "First question" "question"
2015-03-03 11:23:54 +00:00
Tim Hunt 6e650b4c0a MDL-49334 behat: sort selector lists 2015-03-03 11:20:55 +00:00
Dan Poltawski 84fd0fd52c Merge branch 'MDL-34006_m28v7' of https://github.com/sbourget/moodle into MOODLE_28_STABLE 2015-03-03 11:03:12 +00:00
Gareth J Barnard f300e1021b MDL-49074 themes: WOFF2 fonts are not supported. Backport of MDL-46728. 2015-03-03 10:45:30 +00:00
Stephen Bourget 2a433ad067 MDL-45621 Portfolio: Allow portfolios to be uninstalled 2015-03-03 10:59:48 +01:00
Dan Poltawski e527aff4d2 Merge branch 'MDL-49160-28' of git://github.com/merrill-oakland/moodle into MOODLE_28_STABLE 2015-03-03 08:34:50 +00:00
Andrew Nicols da9dfe70d4 Merge branch 'wip-mdl-49110-m28' of https://github.com/rajeshtaneja/moodle into MOODLE_28_STABLE 2015-03-03 16:27:03 +08:00
Andrew Nicols e2d00f5195 MDL-49285 mod_quiz: Remove unnecessary linebreak 2015-03-03 16:24:02 +08:00
Andrew Nicols 6afe470648 Merge branch 'MDL-49285-28' of git://github.com/merrill-oakland/moodle into MOODLE_28_STABLE 2015-03-03 16:23:24 +08:00
Andrew Nicols 76bd7cea87 Merge branch 'MDL-38485-28' of git://github.com/ankitagarwal/moodle into MOODLE_28_STABLE 2015-03-03 16:15:06 +08:00
Andrew Nicols 2b6bb87e59 Merge branch 'MDL-49075-28' of https://github.com/lucisgit/moodle into MOODLE_28_STABLE 2015-03-03 15:43:44 +08:00
pau.ferrer-ocana d259d014bb MDL-49234 oracle: Remove variables passed by reference error 2015-03-03 15:14:38 +08:00
Andrew Nicols fba097e3ce Merge branch 'MDL-49247_28' of git://github.com/timhunt/moodle into MOODLE_28_STABLE 2015-03-03 15:07:35 +08:00
Andrew Nicols 21b910b487 Merge branch 'MDL-49284_28' of git://github.com/timhunt/moodle into MOODLE_28_STABLE 2015-03-03 13:48:13 +08:00
Adrian Greeve 49308a3f57 MDL-48858 mod_data: Update to behat tests
A bulk delete of entries has been added to
the behat tests.
2015-03-03 11:34:14 +08:00
Eloy Lafuente (stronk7) 83866c3c2a MDL-49087 mdeploy: now relying on config.php documented 2015-03-03 02:44:49 +01:00
Andrew Nicols 4475f1e478 MDL-49087 mnet: Ensure typeroot is in dirroot 2015-03-03 02:40:50 +01:00
Andrew Nicols c353a62026 MDL-49087 mnet: Use real dataroot instead of user-provided 2015-03-03 02:40:50 +01:00
Eloy Lafuente (stronk7) 1a67f29f38 Merge branch 'MDL-37470_28' of https://github.com/mike-grant/moodle into MOODLE_28_STABLE 2015-03-03 01:43:54 +01:00
Eloy Lafuente (stronk7) 50f2d4d645 Merge branch 'MDL-49240-28' of git://github.com/damyon/moodle into MOODLE_28_STABLE 2015-03-03 01:11:24 +01:00
Matthew Tavella 0d2a4f8ee9 MDL-49354 YUI: Remove event-autohide module from yui-moodlesimple rollup 2015-03-03 10:29:18 +10:30
Dan Poltawski f479a30931 Merge branch 'MOODLE_28_STABLE' of https://github.com/mitstek/moodle into MOODLE_28_STABLE 2015-03-02 17:27:15 +00:00
Dan Poltawski a62cc33c1f Merge branch '28_MDL-49303' of https://github.com/danmarsden/moodle into MOODLE_28_STABLE 2015-03-02 16:57:54 +00:00
Marina Glancy 4ab4ec652c MDL-48804 core: do not set current course until login validated 2015-03-02 16:49:44 +01:00
Juan Leyva 0899c0adc0 MDL-48691 webservices: Check if the user must be changing password 2015-03-02 14:40:01 +00:00
Simey Lameze 64e2179478 MDL-49084 core_tag: add capability check to flag as inappropriate action 2015-03-02 12:52:13 +00:00
Andrew Nicols 51094c6560 MDL-49144 blocks: Sanitise alt and title for block controls 2015-03-02 12:09:52 +00:00
Andrew Nicols 3f316035b4 MDL-49144 blocks: Add behat test to ensury sanity of block title 2015-03-02 12:09:52 +00:00
Dan Poltawski 0dedf765e0 Merge branch 'MDL-47911-28' of git://github.com/damyon/moodle into MOODLE_28_STABLE 2015-03-02 11:06:19 +00:00
Ankit Agarwal 5219605a81 MDL-38466 filters: Redos protection and unit tests 2015-03-02 11:30:45 +01:00
Zachary Durber 1b24951778 MDL-38466 filters: ReDoS protection for text to URL conversion. 2015-03-02 11:30:44 +01:00
Dan Poltawski 952bc6c5a6 Merge branch 'MDL-23273-28' of git://github.com/zbdd/moodle into MOODLE_28_STABLE 2015-03-02 09:34:57 +00:00
Mary Evans 3cf5c751ed MDL-49214 theme_bootstrapbase: OL list numbers cut off in Clean theme
Conflicts:

	theme/bootstrapbase/style/moodle.css
2015-03-01 19:40:58 +00:00
spvickers 06085cc6d4 MDL-49159 mod_lti: Incorrect IDs in tools table
The "_tools" suffix for the IDs of tabs in the tools settings table was
being duplicated.
2015-02-27 11:32:34 -07:00
Eric Merrill fb50700b4e MDL-47911 gradebook: Improve the performance of set_usedinaggregation
This function is called many many times during grade calculation, so it
should be as efficient as possible.
2015-02-27 11:53:54 +08:00
Tony Butler 7c0e5b20b6 MDL-49075 mod_assign: Add assertions to marking workflow unit test
Make sure grades aren't pushed to gradebook for marking workflow
states other than 'released'.
2015-02-26 11:56:20 +00:00
Tony Butler bb790b84ca MDL-49075 mod_assign: Keep unreleased assign grades out of gradebook 2015-02-26 11:56:20 +00:00
Dan Marsden e1c81e5284 MDL-49303 mod_scorm: Initialise student preferences on re-entry. 2015-02-26 20:39:07 +13:00
Tim Hunt e89a286905 MDL-49284 formslib: fix strict validation of HTML. 2015-02-25 17:39:23 +00:00
Frederic Massart 7b414d50a8 MDL-49107 atto_link: Insert link even when selection is empty 2015-02-25 16:38:10 +01:00
Stephen Bourget c80f356bca MDL-34006 Lesson: Behat tests 2015-02-25 10:29:14 -05:00
Stephen Bourget cf49d1850e MDL-34006 Lesson: Resume lesson loads wrong page. 2015-02-25 10:29:01 -05:00
Dan Poltawski 2abfecbc8c weekly release 2.8.3+ 2015-02-25 14:57:39 +00:00
Dan Poltawski 6fe7343a94 Merge branch 'install_28_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_28_STABLE 2015-02-25 14:57:36 +00:00
Mitsuhiro Yoshida 9b1c53771a MDL-49259 lib: Fix for unzipped Japanese filename character corruption 2015-02-25 23:28:29 +09:00
Andrew Nicols f18a66f1ea MDL-49008 lang: Revert unnecessary rename warning
This was failing unit tests because it does not check for the presence of
the source directory first. If there is no source directory, it cannot be
moved.
2015-02-25 08:55:56 +08:00
Eric Merrill 3272e14576 MDL-47000 session: Update memcached version referecnes to 2.2.0 2015-02-24 15:19:30 -05:00
Eric Merrill 181269bf32 MDL-49285 quiz: Include lib.php for phpunit test 2015-02-24 14:54:37 -05:00
Eric Merrill fc63b8cf81 MDL-49160 quiz: Make sure to not select an outcome grade item
When we are computing completion, make sure we select only the true
grade_item, not outcome grade items.
2015-02-24 14:43:37 -05:00
Dan Poltawski 84be895b94 Merge branch 'MDL-49241-28-enfix' of git://github.com/mudrd8mz/moodle into MOODLE_28_STABLE 2015-02-24 16:50:15 +00:00
Dan Poltawski 8732862bb5 Merge branch 'wip_MDL-49184_m28_choice' of https://github.com/skodak/moodle into MOODLE_28_STABLE 2015-02-24 10:43:32 +00:00
Brian Barnes ede8ae0399 MDL-48519 accessibility: improved accessibility of user filters 2015-02-24 17:53:27 +08:00
Andrew Nicols 2d7c31b550 Merge branch 'MDL-49078_m28' of git://github.com/shashirepo/moodle into MOODLE_28_STABLE 2015-02-24 17:05:53 +08:00
Shashikant Vaishnav 9a055f40c2 MDL-49078 theme_bootstrapbase: 'Create new course' text too high
Thanks to  Gareth J Barnard  for the code suggestion
2015-02-24 14:21:09 +05:30
Dan Poltawski 40b53bda8c Merge branch 'MDL-49216-28' of git://github.com/andrewnicols/moodle into MOODLE_28_STABLE 2015-02-24 08:31:54 +00:00
Andrew Davis c49003263e MDL-29008 lang: reintroduced error silencing to prevent unit test failures 2015-02-24 16:16:20 +08:00
Zachary Durber c9e9862ed6 MDL-23273 mod_choice: error continue button redirects back to choice
Locks only occur when a choice is using limits.
2015-02-24 12:16:29 +08:00
Zachary Durber a455f2fa45 MDL-23273 mod_choice: Using locks to ensure choice limits 2015-02-24 12:16:29 +08:00
Andrew Nicols b34fc1800a Merge branch 'mdl28_MDL-46408' of https://github.com/danmarsden/moodle into MOODLE_28_STABLE 2015-02-24 11:35:53 +08:00
Ankit Agarwal 8a15bcf759 MDL-38485 calendar: Carry over line breaks on imports
Thanks to Matthias Schwabe for the patch suggestion
2015-02-24 08:55:40 +05:30
Andrew Nicols 4f2308d541 Merge branch 'MDL-49008_lang_vanish_28' of https://github.com/andyjdavis/moodle into MOODLE_28_STABLE 2015-02-24 11:08:28 +08:00
Andrew Nicols 41ab3ae676 MDL-49216 mod_forum: Move subquery to outer component
It is not possible to order sub-query results with some RDBMs, and the
subquery is not necessary anyway.
2015-02-24 08:30:24 +08:00
Andrew Nicols d2782c3d4b MDL-49216 mod_forum: Add tests for discussion reply count 2015-02-24 08:30:23 +08:00
Helen Foster b907bc26f6 MDL-49241 lang: Merge English strings from the en_fix language pack 2015-02-23 21:15:18 +01:00
Dan Poltawski 105e1af010 Merge branch 'MDL-49198_m28' of https://github.com/markn86/moodle into MOODLE_28_STABLE 2015-02-23 16:29:25 +00:00
Dan Poltawski 06b5e1f1e1 Merge branch 'MDL-49200_m28' of https://github.com/markn86/moodle into MOODLE_28_STABLE 2015-02-23 16:21:33 +00:00
Dan Poltawski 9c2e581e82 Merge branch 'MOODLE_28_STABLE' of https://github.com/eberhardt/moodle into MOODLE_28_STABLE 2015-02-23 15:55:37 +00:00
Andrew Nicols 0c8096792d MDL-48807 accesslib: Change create_level_instance to recordset 2015-02-23 16:03:17 +08:00
Andrew Nicols aa2b7c3b48 Merge branch 'MDL-48807-28' of git://github.com/lameze/moodle into MOODLE_28_STABLE 2015-02-23 15:08:09 +08:00
Simey Lameze 56145a4d6e MDL-48807 core_task: change create_contexts_task to daily frequency 2015-02-23 14:40:37 +08:00
Simey Lameze 34fcdf2da4 MDL-48807 accesslib: table locking fix on all create_level_instance 2015-02-23 14:36:52 +08:00
David Monllao 5e872af220 MDL-49145 report_log: Moving conditions
Now get_url() does not need to be resolved when
we are downloading.
2015-02-23 10:38:47 +08:00
Andrew Nicols 40155b1ca0 Merge branch 'MDL-49174-28' of git://github.com/jleyva/moodle into MOODLE_28_STABLE 2015-02-23 09:36:21 +08:00
Andrew Nicols 75b594848e Merge branch 'MDL-35392-28' of git://github.com/zbdd/moodle into MOODLE_28_STABLE 2015-02-23 09:21:55 +08:00
Zachary Durber ad4d28ff76 MDL-35392 mod_assign: Push feedback to gradebook when releasing grades
When bulk changing workflow status a mismatch in variable
names meant that feedback wasn't being sent to the gradebook.
2015-02-23 09:17:30 +08:00
Andrew Nicols a721901beb Merge branch 'MDL-49145_28' of git://github.com/dmonllao/moodle into MOODLE_28_STABLE 2015-02-23 09:05:58 +08:00
David Monllao e0c5923c07 MDL-49145 report_log: Fixing condition
Credit and thanks to Tyler Bannister and Renaat Debleu.
2015-02-23 08:46:56 +08:00
Andrew Davis bbc7df8d52 MDL-49008 lang: removed preemptive deleting of old language files 2015-02-22 21:08:31 +01:00
Andrew Davis 1ab376e86f MDL-49008 lang: made lang update error reporting work 2015-02-22 21:06:38 +01:00
Dan Marsden 4c30d78891 MDL-46408 mod_scorm: check param is set before using.
The default org is only set if it exists in the imsmanifest.xml
2015-02-20 13:42:23 +13:00
Tim Hunt 87e581f91a MDL-49247 question restore: avoid unique key errors from old bad data
Several tables have had unique keys added to enforce a constraint that
should always have been there. It is possible for old sites to have
data that violate the constraints, and sometimes people want to backup
data from those old sites, and restore them into a new Moodle.
Therefore, we need to guard agains the unique key violation errors.
2015-02-19 21:50:47 +00:00
AMOS bot 4571805430 Automatically generated installer lang files 2015-02-20 00:04:08 +08:00
Jan Eberhardt ec943fe107 MDL-31578 auth_shibboleth: Custom fields added to shibboleth settings
Since LDAP is able to sync custom user profile fields, this feature was
requested for Shibboleth.
2015-02-19 13:56:42 +00:00
Eloy Lafuente (stronk7) 8235b610bb weekly release 2.8.3+ 2015-02-19 10:44:47 +01:00
Eloy Lafuente (stronk7) aff125ae03 Merge branch 'install_28_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_28_STABLE 2015-02-19 10:44:41 +01:00
Damyon Wiese 41adb95781 MDL-49240 webservices: core_get_string and friends bad lang handling
The core_get_string webservice and friends have never passed lang values
properly, (so never worked) and when I fixed that I found they were passing
lang parameter into the lazyload parameter.
2015-02-19 17:42:50 +08:00
Andrew Nicols 7546d2e1c3 Revert "Merge branch 'MDL-49154_28' of git://github.com/timhunt/moodle into MOODLE_28_STABLE"
This reverts commit f5a176c125, reversing
changes made to cf015aa1f0.
2015-02-19 09:18:06 +08:00
Rajesh Taneja 282fdb22ca MDL-48841 admin: Behat table row should start with first row 2015-02-18 15:34:12 +08:00
Botond Hegedus dac942ff58 MDL-49198 core_webservice: Fix error when using existing service name 2015-02-17 23:14:22 -08:00
David Monllao 38a219301e Merge branch 'MDL-49034_m28' of git://github.com/mattporritt/moodle into MOODLE_28_STABLE 2015-02-18 09:36:38 +08:00
Eloy Lafuente (stronk7) 7001bf9a8c Merge branch 'MDL-49211_M28' of git://github.com/lazydaisy/moodle into MOODLE_28_STABLE 2015-02-18 00:03:59 +01:00
Eloy Lafuente (stronk7) 7f8ae8f54e Merge branch 'MDL-48973_28' of https://github.com/pauln/moodle into MOODLE_28_STABLE 2015-02-17 23:52:48 +01:00
Eloy Lafuente (stronk7) f5a176c125 Merge branch 'MDL-49154_28' of git://github.com/timhunt/moodle into MOODLE_28_STABLE 2015-02-17 23:46:47 +01:00
Eloy Lafuente (stronk7) cf015aa1f0 Merge branch 'MDL-49170_28' of https://github.com/totara/openbadges into MOODLE_28_STABLE 2015-02-17 23:43:38 +01:00
Eloy Lafuente (stronk7) d34122424c Merge branch 'MDL-49205_28' of git://github.com/timhunt/moodle into MOODLE_28_STABLE 2015-02-17 22:18:51 +01:00
Juan Leyva 6c1a52e67c MDL-49174 webservices: Return front page contents in get_contents ws 2015-02-17 21:33:42 +01:00
Eloy Lafuente (stronk7) 373252e7da Merge branch 'MDL-49041_28' of git://github.com/timhunt/moodle into MOODLE_28_STABLE 2015-02-17 21:09:26 +01:00
Eloy Lafuente (stronk7) 2f4dfae509 Merge branch 'MDL-49059-split_28' of https://github.com/pauln/moodle into MOODLE_28_STABLE 2015-02-17 20:58:39 +01:00
Eric Merrill 68adf314ec MDL-48993 gradebook: When importing new items, treat blank or - as empty 2015-02-17 17:21:49 +08:00
David Monllao 1c703690cd Merge branch 'MDL-49167-28' of git://github.com/damyon/moodle into MOODLE_28_STABLE 2015-02-17 17:01:26 +08:00
David Monllao 0289d8c766 MDL-48991 gradebook: Return value according to coding style 2015-02-17 16:48:44 +08:00
David Monllao a4e657878b Merge branch 'MDL-48991-28' of git://github.com/merrill-oakland/moodle into MOODLE_28_STABLE 2015-02-17 16:43:44 +08:00
David Monllao b7a6e68906 Merge branch 'MDL-48884_m28' of git://github.com/markn86/moodle into MOODLE_28_STABLE 2015-02-17 14:44:05 +08:00
David Monllao 65b48f6850 Merge branch 'MDL-48841-MOODLE_28_STABLE' of git://github.com/lucisgit/moodle into MOODLE_28_STABLE 2015-02-17 14:25:02 +08:00
Andrew Nicols 6e84137b30 Merge branch 'wip-mdl-48670-m28' of https://github.com/rajeshtaneja/moodle into MOODLE_28_STABLE 2015-02-17 14:07:15 +08:00
David Monllao e9a6191801 Merge branch 'MDL-49169_28' of git://github.com/grabs/moodle into MOODLE_28_STABLE 2015-02-17 14:01:14 +08:00
Mark Nelson 376d6d9bc0 MDL-49200 core_form: corrected string 2015-02-16 21:59:41 -08:00
David Monllao 94b3cc37aa Merge branch 'MDL-48215_m28' of git://github.com/markn86/moodle into MOODLE_28_STABLE 2015-02-17 13:24:36 +08:00
Petr Skoda 401465fe7c MDL-49184 choice: fix block actions
The problems was that blocks editing breaks if you redirect
after if (data_submitted()) - all form actions must make sure
it is really their form, otherwise they may hijack the post from
block actions.

Note that this is not a problem for mforms, only legacy forms
are affected.

# Conflicts:
#	mod/choice/view.php
2015-02-17 16:56:45 +13:00
David Monllao 95337e5974 Merge branch 'MDL-48543-28' of git://github.com/damyon/moodle into MOODLE_28_STABLE 2015-02-17 11:15:12 +08:00
David Monllao a9e2dd494b Merge branch 'MDL-48709_28' of git://github.com/jmvedrine/moodle into MOODLE_28_STABLE 2015-02-17 09:17:25 +08:00
AMOS bot d153a4a39d Automatically generated installer lang files 2015-02-17 00:04:18 +08:00
Michael Hughes 5b7e7362a9 MDL-48215 gradingform_guide: Name length validation
Validating both criterion name and guide name to be 255 chars.
2015-02-15 21:52:56 -08:00
David Monllao 5eed950dd2 Merge branch 'MDL-47529-28' of git://github.com/FMCorz/moodle into MOODLE_28_STABLE 2015-02-16 11:55:39 +08:00
Damyon Wiese fe5ecacb2b MDL-49167 YUI: Fix for theme/yui_combo.php and $CFG->yuislashargs
It was too aggressively cleaning it's params (broken in MDL-48980).
2015-02-16 11:26:11 +08:00
Frederic Massart 84b1aeba07 MDL-47529 lock: Fix typo on lock factory in config-dist 2015-02-16 11:14:20 +08:00
Frederic Massart d940409a40 MDL-47529 task: Remove usage of lock when editing a task 2015-02-16 11:14:20 +08:00
Frederic Massart 58ebc0a42d MDL-47529 task: Do not use lock when updating task records 2015-02-16 11:14:20 +08:00
David Monllao 6eba5f4dfa Merge branch 'MDL-40776_28' of git://github.com/s-cenni/moodle into MOODLE_28_STABLE 2015-02-16 10:35:26 +08:00
Yuliya Bozhko a99654771f MDL-49170 badges: Backpack connection missing a port colon in URL
Signed-off-by: Yuliya Bozhko <yuliya.bozhko@totaralms.com>
2015-02-16 09:34:39 +13:00
Mary Evans 27a5f957ba MDL-49211 theme_bootstrapbase: Text alignment issue in CLOZE questions.
Conflicts:

	theme/bootstrapbase/style/moodle.css
2015-02-15 19:18:17 +00:00
Jean-Michel Vedrine 1a825a276e MDL-48709 mod_lesson: subclusters are not working 2015-02-14 18:21:40 +01:00
Tim Hunt dabbf48f50 MDL-49205 behat: fix I set the field with xpath fail message. 2015-02-13 16:16:18 +00:00
Paul Nicholls 10a382f1c8 MDL-48973 Atto: Atto does not listen to the drop event
The 'drop' event fires before the native ContentEditable drop handler, so
in order to update the underlying textarea we need to call updateOriginal
with a brief delay so that the dropped content has actually been added to
the editor.
2015-02-13 14:50:14 +13:00
Rajesh Taneja 21e8f813dc MDL-48670 behat: Set timezone to Australia/perth
Behat tests might rely on time related tests
Ensure we have default timezone set to Australia/Perth
2015-02-13 08:12:42 +08:00
Eric Merrill 49f1acf174 MDL-48991 gradebook: Fix style problems 2015-02-12 16:50:17 -05:00
Matt Switlik 4f9ccc21d8 MDL-48991 gradebook: Properly import multiple new grade items
Work done in MDL-46547 caused a problem where multiple new grade items
were not imported. Fix up the passing of new grade objects.
2015-02-12 16:50:17 -05:00
Paul Nicholls a92cd1e420 MDL-49059 medialib: Add test cases for invalid Youtube URL param values
Tests to ensure that we're not allowing injection via invalid values of
the Youtube start time and playlist parameters.
2015-02-13 09:46:02 +13:00
Paul Nicholls 40b72c27e8 MDL-49059 medialib: Support links to Youtube videos within playlists
As well as embedding playlists, you can embed specific videos from them -
resulting in the playlist UI displaying, but starting with the specified
video rather than the first in the playlist.  Previously, just the
specified video would embed - without the playlist UI.
2015-02-13 09:46:02 +13:00
Paul Nicholls f266c90917 MDL-49059 medialib: Support start time params in Youtube URLs
Medialib (and thus the Multimedia Plugins filter) was ignoring start time
parameters on YouTube video URLs, meaning that the video would always
start at the start, even when the appropriate parameter was present.
2015-02-13 09:46:02 +13:00
Paul Nicholls 71ce7d03ee MDL-49059 medialib: Add tests for Youtube videos within playlists
As well as embedding playlists, you can embed specific videos from them -
resulting in the playlist UI displaying, but starting with the specified
video rather than the first in the playlist.  These URLs should be covered
by the tests to ensure that we're handling them properly.
2015-02-13 09:46:01 +13:00
Paul Nicholls 7c339df7cb MDL-49059 medialib: Add test cases for Youtube start times
Add test cases to core_medialib_testcase to cover YouTube videos with
start times.
2015-02-13 09:46:01 +13:00
Tim Hunt 8f990cc5bf MDL-49154 behat: step to type with focus on a given element 2015-02-12 20:15:49 +00:00
Andreas Grabs 51112014d2 MDL-49169 user - After MDL-48978-Fix description is not saved anymore 2015-02-12 12:26:03 +01:00
Mike Grant 361370bae3 MDL-37470 blocklib: Respect block weight and offset 2015-02-12 09:43:13 +00:00
David Monllao 201f5085c6 weekly release 2.8.3+ 2015-02-12 15:30:23 +08:00
David Monllao ea836818a5 Merge branch 'install_28_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_28_STABLE 2015-02-12 15:30:21 +08:00
David Monllao 2fb32e8591 Revert "Merge branch 'MDL-36009-28' of git://github.com/jethac/moodle into MOODLE_28_STABLE"
This reverts commit e89bda0f80, reversing
changes made to bec8c20cab.
2015-02-12 13:46:31 +08:00
Ruslan Kabalin d7e275f123 MDL-48841 admin: Fix scheduled task reset to defaults finctionality.
It is safe to make fields as non-required, because form validation will not
pass through any empty field anyway.
2015-02-11 11:18:40 +00:00
Marina Glancy 0a976df90c MDL-49003 login: prevent signup when user is logged in 2015-02-11 00:04:25 +01:00
AMOS bot 924ef95068 Automatically generated installer lang files 2015-02-11 00:04:12 +08:00
Eloy Lafuente (stronk7) 67c51ec7ec Merge branch 'MDL-48910_block_my_28' of https://github.com/andyjdavis/moodle into MOODLE_28_STABLE 2015-02-10 13:22:51 +01:00
Sara Cenni 6473207888 MDL-40776 grade: fix query for report outcomes
Add a missing space to the query for report outcomes to avoid error with Oracle.
2015-02-10 11:52:02 +01:00
David Monllao da6815741e MDL-48679 gradebook: Fixing trailing whitespace 2015-02-10 17:54:40 +08:00
David Monllao 537fd32c02 Merge branch 'MDL-48679-28' of git://github.com/lameze/moodle into MOODLE_28_STABLE 2015-02-10 17:53:19 +08:00
Simey Lameze 9461ad93fd MDL-48679 gradebook: fix grade publishing feature 2015-02-10 17:40:29 +08:00
Simey Lameze 32a491a8d2 MDL-48679 gradebook: helper methods for grade publishing 2015-02-10 17:40:29 +08:00
Dan Poltawski f4241a5974 Merge branch 'wip-mdl-49081-m28' of https://github.com/rajeshtaneja/moodle into MOODLE_28_STABLE 2015-02-10 09:17:58 +00:00
David Monllao 1c65824b82 MDL-48805 theme: Fixing trailing whitespace 2015-02-10 15:46:31 +08:00
David Monllao f556dce6a5 Merge branch 'm28_MDL-48805' of git://github.com/totara/moodle into MOODLE_28_STABLE 2015-02-10 15:27:04 +08:00
Andrew Davis 0cce3ea50d MDL-48910 core_block: user_can_addto() respects applicable formats 2015-02-10 08:17:32 +01:00
Mark Nelson 52781ec82f MDL-48884 mod_assign: prevented setting gradebook feedback unnecessarily 2015-02-09 22:18:15 -08:00
David Monllao 2ee301e041 Merge branch 'm28_MDL-49064' of git://github.com/totara/moodle into MOODLE_28_STABLE 2015-02-10 11:57:47 +08:00
David Monllao fdc6ac362e Merge branch 'MDL-48960-28' of git://github.com/danpoltawski/moodle into MOODLE_28_STABLE 2015-02-10 11:12:33 +08:00
Matt Porritt ceee804962 MDL-49034 enrol_self: Enforce maxlength in self enrolment form fields.
Alter self enrolment creation form to enforce max field lengths.
Limit "Custom instance name" (name) form field to 255 characters via maxlength.
Limit "Enrolment key" (password) form field to 50 characters via maxlength.

Fix for when the form is submitted causing a database write error to be thrown
as corresponding field "name" in the table mdl_enrol is set to varchar(255) and
database field "password" is varying(50).
2015-02-10 13:21:02 +11:00
Eloy Lafuente (stronk7) f16383191b Merge branch 'MDL-48964_28' of git://github.com/jmvedrine/moodle into MOODLE_28_STABLE 2015-02-10 01:10:17 +01:00
Eloy Lafuente (stronk7) 1e968e2d27 Merge branch 'MDL-49073-28' of git://github.com/jethac/moodle into MOODLE_28_STABLE 2015-02-10 01:04:57 +01:00
Dan Poltawski fa75bb63e3 Merge branch 'MDL-48544-28' of git://github.com/andrewnicols/moodle into MOODLE_28_STABLE 2015-02-09 22:42:14 +00:00
Eloy Lafuente (stronk7) d71119dbc5 Merge branch 'wip_MDL-49125_m28_install' of https://github.com/skodak/moodle into MOODLE_28_STABLE 2015-02-09 20:02:05 +01:00
Eloy Lafuente (stronk7) b60a617d3d Merge branch 'MDL-48357-28' of git://github.com/jleyva/moodle into MOODLE_28_STABLE 2015-02-09 15:51:56 +01:00
Dan Poltawski a1504fd7bc Merge branch 'wip-MDL-47558-m28' of git://github.com/marinaglancy/moodle into MOODLE_28_STABLE 2015-02-09 14:50:37 +00:00
Andrew Nicols 531cc5c727 MDL-48544 blocks: Only add docked tags if all blocks are docked
Previously, if all blocks were hidden, then the region was reported as
being docked eroniously and it was not possible to unhide the blocks.

Docking should have no relation to the presence of block content.
2015-02-09 20:55:44 +08:00
Eloy Lafuente (stronk7) 17f0e2a4af Merge branch 'wip-MDL-48794-m28' of git://github.com/marinaglancy/moodle into MOODLE_28_STABLE 2015-02-09 13:05:16 +01:00
Dan Poltawski 6561015165 Merge branch 'MDL-44520-28' of git://github.com/xow/moodle into MOODLE_28_STABLE 2015-02-09 11:33:14 +00:00
Dan Poltawski 69d4a9b94f Merge branch 'MDL-48294-28' of git://github.com/jleyva/moodle into MOODLE_28_STABLE 2015-02-09 11:28:21 +00:00
Dan Poltawski de90103193 Merge branch 'MDL_47085_28' of https://github.com/totara/openbadges into MOODLE_28_STABLE 2015-02-09 10:29:19 +00:00
Dan Poltawski e470238304 Merge branch 'MDL-47953-28' of git://github.com/FMCorz/moodle into MOODLE_28_STABLE 2015-02-09 10:21:42 +00:00
David Monllao 4d31580f93 Merge branch 'MDL-42138-28' of git://github.com/xow/moodle into MOODLE_28_STABLE 2015-02-09 17:18:48 +08:00
David Monllao e89bda0f80 Merge branch 'MDL-36009-28' of git://github.com/jethac/moodle into MOODLE_28_STABLE 2015-02-09 16:59:28 +08:00
Damyon Wiese 68b7d5ce4a MDL-48543 Mathjax: Update default config for JAWS Math player
JAWS Maths player does not recognise the math content when manually specifying the config for MathJax.
If you use one of the default config files it works.
So - we switch our config to the Accessible.js config that it is based off anyway.
There are no features changes with this approach.
2015-02-09 16:32:32 +08:00
Jetha Chan 1f70c8582d MDL-36009 grader_gradereport: filler and extra user cells should not be headers 2015-02-09 13:53:21 +08:00
Yuliya Bozhko 6db8c22913 MDL-47085 badges: Fix badges file download issues
Signed-off-by: Yuliya Bozhko <yuliya.bozhko@totaralms.com>
2015-02-09 16:01:09 +13:00
Petr Skoda 8b198fec72 MDL-49125 install: fix installer notices 2015-02-07 13:13:27 +13:00
Adrian Greeve bec8c20cab MDL-48038 mod_tag: Unit tests for tag cron functions. 2015-02-06 14:50:11 +08:00
Adrian Greeve 3359719ce9 MDL-48038 mod_tag: Improvement of tag cron. 2015-02-06 14:50:11 +08:00
Marina Glancy 9c6dab862a MDL-47558 resource: allow to edit module without being redirected
Thanks to Nathan Lewis for the code suggestion
2015-02-06 13:14:18 +08:00
Rajesh Taneja 6da3248b9f MDL-49110 behat: No expand form required in non-js mode 2015-02-06 13:06:52 +08:00
Tony Levi bd8926f9f3 MDL-49110 behat: Do not poll within spin for non-javascript mode 2015-02-06 13:06:44 +08:00
John Okely 93aa18b8de MDL-44520 behat: Change behat features to use new section selectors 2015-02-06 10:34:59 +08:00
John Okely 4dd5623f18 MDL-44520 behat: Add behat selectors for section, activity 2015-02-06 10:34:59 +08:00
John Okely 722e179f30 MDL-42138 user: Require custom profile fields when registering as guest
Previously when someone registers after logging in as a guest, required
custom profile fields would not be required.

Thanks to Andreas Diendorfer for providing the patch.
2015-02-06 10:11:42 +08:00
Tim Hunt c3ab0b8bbf MDL-49041 qtype_multianswer: don't reveal marks on partial responses
This commit also fixes MDL-32049 about the lack or valdiation message
when an incomplete respnses is submitted.

AMOS BEGIN
 CPY [pleaseananswerallparts,qtype_match],[pleaseananswerallparts,qtype_multianswer]
AMOS END
2015-02-05 20:00:53 +00:00
Jean-Michel Vedrine cc8ac87f01 MDL-48964 mod_lesson: Errors when updating matching questions 2015-02-05 13:23:51 +01:00
Dan Poltawski 96dc38c46a weekly release 2.8.3+ 2015-02-05 10:07:22 +00:00
Dan Poltawski 354e304f29 Merge branch 'install_28_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_28_STABLE 2015-02-05 10:07:20 +00:00
Dan Poltawski 89b92ecbb9 MDL-48960 output: use nofollow attribute to stop crawling invalid links
Both the calendar set url and switch theme links are displayed to
non-logged in users which mean they get crawled by search bots. This
prevents the search bots following these links.
2015-02-05 08:14:02 +00:00
Frederic Massart 37dd88e750 MDL-47953 gradereport_grader: Accurate pagination with suspended users
Thanks to Zvonko Martinovic for pointing out the source of the bug.
2015-02-05 15:08:21 +08:00
AMOS bot 1e826d374e Automatically generated installer lang files 2015-02-05 00:04:10 +08:00
Juan Leyva 14a59f1eee MDL-48294 settings: enablemobilewebservice appears twice 2015-02-04 10:27:00 +01:00
Jetha Chan f4966d09b2 MDL-49073 timezones: update to 2015a (2323 rules) 2015-02-04 13:19:31 +08:00
Rajesh Taneja d603a9c792 MDL-49081 tests: Removed dev option from composer
dev option is enabled by default in composer, so not required.
https://github.com/composer/composer/blob/master/CHANGELOG.md
2015-02-04 10:21:01 +08:00
Dan Poltawski 7606f81a88 Merge branch 'MDL-48942_survey_28' of https://github.com/andyjdavis/moodle into MOODLE_28_STABLE 2015-02-03 15:55:24 +00:00
Dan Poltawski abb61b1a65 Merge branch 'MDL-48955-28' of https://github.com/vadimonus/moodle into MOODLE_28_STABLE 2015-02-03 14:04:37 +00:00
Dan Poltawski 14caa61bd4 Merge branch 'wip-mdl-49002-m28' of https://github.com/rajeshtaneja/moodle into MOODLE_28_STABLE 2015-02-03 13:16:53 +00:00
Dan Poltawski 45acb77a3f Merge branch 'm28_MDL-48799_Incorrect_Legacy_Dir_Fallback' of https://github.com/scara/moodle into MOODLE_28_STABLE 2015-02-03 13:13:25 +00:00
Dan Poltawski 9e98e66cb2 Merge branch 'm28_MDL-48907' of https://github.com/totara/moodle into MOODLE_28_STABLE 2015-02-03 12:56:44 +00:00
Eloy Lafuente (stronk7) b7f6f1c601 MDL-48920 tool_generator: fix unit tests 2015-02-03 12:39:30 +00:00
Dan Poltawski 8bde103118 Merge branch 'MDL-44071-28' of git://github.com/zbdd/moodle into MOODLE_28_STABLE 2015-02-03 12:17:20 +00:00
Dan Poltawski ed67b6fb06 Merge branch 'MDL-48533_m28' of https://github.com/markn86/moodle into MOODLE_28_STABLE 2015-02-03 11:13:50 +00:00
Dan Poltawski 4151d0aa1f MDL-48624 behat: fix trailing whitespace 2015-02-03 11:02:20 +00:00
Dan Poltawski 8bca20b7ec Merge branch 'wip-mdl-48624-m28' of https://github.com/rajeshtaneja/moodle into MOODLE_28_STABLE 2015-02-03 11:01:57 +00:00
Eloy Lafuente (stronk7) a6de116442 Merge branch 'wip-mdl-48403-m28' of https://github.com/rajeshtaneja/moodle into MOODLE_28_STABLE 2015-02-03 11:57:53 +01:00
Eloy Lafuente (stronk7) 314c64ef2f Merge branch 'wip-mdl-49015-m28' of https://github.com/rajeshtaneja/moodle into MOODLE_28_STABLE 2015-02-03 11:52:22 +01:00
Andrew Nicols a43f2c6338 Merge branch 'MDL-48865-28' of git://github.com/xow/moodle into MOODLE_28_STABLE 2015-02-03 16:41:30 +08:00
Neill Magill 401697c397 MDL-48865 core_block: Show regions with only hidden blocks when editing
Before this patch if all the blocks in a block region are set to hidden the region will be docked even when editing is enabled.
This meant that as a user I would need to add a new block to the page and move it to that region via the configuration
menu before I could manipulate the hidden blocks again.
2015-02-03 16:14:36 +08:00
Andrew Nicols 8060291174 Merge branch 'MDL-48920-28' of git://github.com/FMCorz/moodle into MOODLE_28_STABLE 2015-02-03 16:11:44 +08:00
Andrew Nicols 45c07b94fd Merge branch 'tgz_fixing28' of https://github.com/tlevi/moodle into MOODLE_28_STABLE 2015-02-03 16:03:48 +08:00
Andrew Nicols 5b8a93a867 Merge branch '48968-28' of git://github.com/samhemelryk/moodle into MOODLE_28_STABLE 2015-02-03 14:24:42 +08:00
Andrew Nicols 93e95c2579 Merge branch 'MDL-48929-28' of git://github.com/FMCorz/moodle into MOODLE_28_STABLE 2015-02-03 14:09:53 +08:00
Andrew Nicols 8298719c51 MDL-48484 admin: Improve coding style 2015-02-03 13:43:29 +08:00
Andrew Nicols 76ec958619 Merge branch 'm28_MDL-48484' of https://github.com/totara/moodle into MOODLE_28_STABLE 2015-02-03 13:16:36 +08:00
Andrew Nicols fa224641d8 Merge branch 'm28_MDL-46467' of https://github.com/totara/moodle into MOODLE_28_STABLE 2015-02-03 12:59:12 +08:00
Andrew Nicols d9324ce9ee Merge branch 'MDL-48608_m28' of git://github.com/markn86/moodle into MOODLE_28_STABLE 2015-02-03 12:31:06 +08:00
Mark Nelson 7728a2cae3 MDL-48608 mod_assign: correctly display grades for group assignments 2015-02-02 20:16:18 -08:00
Eloy Lafuente (stronk7) 36125f82fa Merge branch 'MDL-48525-28' of git://github.com/jleyva/moodle into MOODLE_28_STABLE 2015-02-03 00:57:46 +01:00
Eloy Lafuente (stronk7) 9555ae2d10 Merge branch 'MDL-48578-28' of git://github.com/jleyva/moodle into MOODLE_28_STABLE 2015-02-03 00:47:40 +01:00
Brian Barnes 8ead44805a MDL-49064 bootstrapbase: fixed rtl alignment of leftalign CSS class 2015-02-03 09:19:29 +13:00
David Monllao e2d914b204 Merge branch 'MDL-31036-28' of git://github.com/zbdd/moodle into MOODLE_28_STABLE 2015-02-02 14:55:01 +08:00
David Monllao 47c6fb2bd3 Merge branch 'MDL-48772-28' of git://github.com/xow/moodle into MOODLE_28_STABLE 2015-02-02 12:29:42 +08:00
David Monllao 8bb969d6cc Merge branch 'wip-mdl-46626-m28' of git://github.com/rajeshtaneja/moodle into MOODLE_28_STABLE 2015-02-02 12:08:37 +08:00
Brian Barnes dcde7ca176 MDL-48484 admin: Added labels to configtime settings 2015-02-02 16:34:36 +13:00
AMOS bot 798790c4e8 Automatically generated installer lang files 2015-02-02 00:04:06 +08:00
Matteo Scaramuccia 48a515c37b MDL-48799 Files API: fixed legacy directory fallback. 2015-02-01 09:16:41 +01:00
Eloy Lafuente (stronk7) 68b1fd2c55 Moodle release 2.8.3 2015-01-30 12:35:40 +01:00
Zachary Durber 07f99ca6d6 MDL-31036 mod_assign: Don't strip quickgrading feedback of special chars 2015-01-30 14:37:55 +08:00
John Okely b4ac530cf2 MDL-48772 enrol_cohort: Replace hardcoded language with language strings 2015-01-30 11:36:06 +08:00
Rajesh Taneja b3486b0192 MDL-48403 behat: Select text in atto editor before inserting image 2015-01-30 10:10:46 +08:00
Tyler Bannister ab4a3e8cb1 MDL-46626 report_log: Removed HTML from log report export
This is a partial backport of MDL-34867
2015-01-30 09:09:37 +08:00
Rajesh Taneja c9d53c1e17 MDL-49002 mod_lesson: Added @_file_upload tag to avoid random fails 2015-01-30 09:01:13 +08:00
Rajesh Taneja 66293e8414 MDL-49015 mod_lesson: Removed unused image insert step in behat 2015-01-30 08:58:52 +08:00
Rajesh Taneja f8fe046fb5 MDL-49015 mod_lesson: Don't rely on external links in behat 2015-01-30 08:58:52 +08:00
Rajesh Taneja a686d8374a MDL-48624 behat: Added page load check in workshop step
i_allocate_submissions_in_workshop_as step sometimes
fails because of server speed. Added page load check
with extended timout.
2015-01-30 08:55:30 +08:00
Rajesh Taneja c441c21e7a MDL-48624 behat: Added extended timeout to ensure step pass
following_should_download_between_and_bytes step sometimes
fails because of server speed. Added extended timout
ensuring they wait enough before failing.
Also, not calling force download while running behat site
2015-01-30 08:55:29 +08:00
Vadim Dvorovenko d3f49a8c84 MDL-48955 filter_mathjax: Regexp fix for texfiltercompatibility mode
Fixing incorrect regexp for replacing text like
"$$a$$ and $$b$$" to "\(a\) and \(b\)". This is needed for
texfiltercompatibility to work as expected.
2015-01-29 23:16:51 +07:00
AMOS bot e5cfbd85d8 Automatically generated installer lang files 2015-01-30 00:04:12 +08:00
Juan Leyva 060c2d3c9c MDL-48357 webservices: Missing instance property in course contents ws 2015-01-29 14:15:16 +01:00
Tony Levi 846711d69f MDL-48924 backup: Fix some get_file_packer() calls for enabletgzbackups 2015-01-29 22:53:14 +10:30
Eloy Lafuente (stronk7) 6e1308b948 weekly release 2.8.2+ 2015-01-29 10:28:18 +01:00
Eloy Lafuente (stronk7) c889f1b592 Merge branch 'install_28_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_28_STABLE 2015-01-29 10:28:13 +01:00
Andrew Nicols 4d3403d5a7 Merge branch 'MDL-36877_28' of https://github.com/jmvedrine/moodle into MOODLE_28_STABLE 2015-01-29 09:10:04 +08:00
Jean-Michel Vedrine fc0613cb0c MDL-36877 mod_lesson: Fix while MDL-38578 is not solved 2015-01-28 21:25:55 +01:00
Juan Leyva 6dbf42a600 MDL-48525 webservices: Fixed profile user image is not always returned 2015-01-28 17:20:37 +01:00
Juan Leyva 4a97b8476b MDL-48578 webservices: Fixed missing required library 2015-01-28 14:44:48 +01:00
Simon Coggins 9b59baccb1 MDL-48855 dev: Fix ctags command to handle extra whitespace 2015-01-28 12:42:15 +01:00
Marina Glancy d08b45781f MDL-48978 user: fixed regression from MDL-37704 2015-01-28 11:58:48 +01:00
David Monllao 43439ea041 Merge branch 'MDL-48914-28' of git://github.com/rtcn2/moodle into MOODLE_28_STABLE 2015-01-28 17:44:49 +08:00
Andrew Nicols 2ceba911aa MDL-48542 user_menu: Handle invalid strings better 2015-01-28 15:38:56 +08:00
Damyon Wiese a72f2cca7f MDL-48980 Security: Always clean the result from min_get_slash_argument
The result from this function is used in send_file calls and if unclean
(windows dir separators, or .. path components) it could expose sensitive
files (e.g. .php files). Now we always clean the result from this function
even if it means double cleaning.

I also fixed the unit test for this function and added a new test for this cleaning.

I also updated the comments to point to get_file_argument as the full version of
min_get_slash_argument.
2015-01-28 14:38:11 +08:00
Andrew Nicols 2f12e58ce4 Merge branch 'MDL-41026-28-fixes' of git://github.com/andrewnicols/moodle into MOODLE_28_STABLE 2015-01-28 13:59:15 +08:00
Andrew Nicols e86817b76c MDL-41026 webservices: Correct unit tests 2015-01-28 13:58:46 +08:00
Andrew Nicols f6ab2b1ccf MDL-48542 user_menu: Increment index for all menu items
The invalid type was not causing the idx to incremented, thus missing off
the final divider.
2015-01-28 12:10:45 +08:00
Andrew Nicols ba43cfbd21 MDL-48542 user_menu: Improve user menu tests
Add additional test cases, and actually test that the output is roughly
what we expect.
2015-01-28 12:10:44 +08:00
Andrew Nicols cd1ea20389 Merge branch 'MDL-48542-28' of git://github.com/jethac/moodle into MOODLE_28_STABLE 2015-01-28 12:09:46 +08:00
Andrew Nicols 412aa0210b Merge branch 'MDL-41026-28' of git://github.com/ankitagarwal/moodle into MOODLE_28_STABLE 2015-01-28 10:06:28 +08:00
Eloy Lafuente (stronk7) 7e67e4d619 Merge branch 'MDL-48685-28' of git://github.com/andrewnicols/moodle into MOODLE_28_STABLE 2015-01-28 00:46:29 +01:00
Eloy Lafuente (stronk7) 510ffce704 Merge branch 'MDL-48660-m28' of https://github.com/sammarshallou/moodle into MOODLE_28_STABLE 2015-01-27 21:13:45 +01:00
AMOS bot ad93802610 Automatically generated installer lang files 2015-01-28 00:04:23 +08:00
Eloy Lafuente (stronk7) 8d4ef0df4b Merge branch 'MDL-40285_m28' of git://github.com/markn86/moodle into MOODLE_28_STABLE 2015-01-27 12:21:11 +01:00
Eloy Lafuente (stronk7) 01f200ad39 Merge branch 'MDL-48383-28' of git://github.com/FMCorz/moodle into MOODLE_28_STABLE 2015-01-27 12:01:24 +01:00
sam marshall b749aaa935 MDL-48660 Availability: filter_user_list() should respect 'view hidden'
Updated filter_user_list and get_user_list_sql to account for
the viewhiddenactivities and viewhiddensections capabilities.
2015-01-27 10:59:53 +00:00
Mark Nelson 041dd2902d MDL-40285 mod_assign: added extra group submissions behat scenario
Thanks a lot to Jody Steele for providing the basis for the scenario.
2015-01-27 00:35:31 -08:00
Mark Nelson 790eb7ee05 MDL-40285 mod_assign: show details for all default group members 2015-01-27 00:35:31 -08:00
Andrew Nicols 97f243a916 Merge branch 'MDL-47871_m28' of https://github.com/markn86/moodle into MOODLE_28_STABLE 2015-01-27 13:13:57 +08:00
Jerome Mouneyrac 27acee5df2 MDL-41026 webservices: use correct param format in external apis 2015-01-27 10:08:25 +05:30
James Henestofel 9f5571d405 MDL-44071 webservices: Sorting courses post deletion.
Signed-off-by: Zachary Durber <zdurber@gmail.com>
2015-01-27 11:40:58 +08:00
Mark Nelson aee1045f7e MDL-47871 tool_monitor: allow teachers to duplicate site rules 2015-01-26 19:36:27 -08:00
Frederic Massart fa5aa434bd MDL-48920 tool_generator: Use 'real' names during course generation 2015-01-27 11:27:55 +08:00
Andrew Nicols d110033f81 Merge branch 'MDL-48491-28' of git://github.com/zbdd/moodle into MOODLE_28_STABLE 2015-01-27 10:57:57 +08:00
Brian Barnes 1ff8d56a2e MDL-46467 forms: Labels have "for" attribute even when frozen 2015-01-27 14:55:26 +13:00
Andrew Nicols eeaf95494f MDL-48685 core_useragent: Correct IE 5.0 issues 2015-01-27 08:36:28 +08:00
Andrew Nicols 483bdb5c24 MDL-48685 tests: Add testing for supports_json_contenttype 2015-01-27 08:36:28 +08:00
Andrew Nicols 54d3ed0357 MDL-48685 tests: Add additional User Agents
* Firefox 33; Mac OS X 10.10
* Chrome 39; Mac OS X
* Safari; iPhone 6 Plus; iOS 8.1; Build 12B411
* Opera 12.15 (Build 1748); Mac OS X
2015-01-27 08:36:28 +08:00
Andrew Nicols 89cb4f9f35 MDL-48685 tests: Rewrite useragent tests 2015-01-27 08:36:27 +08:00
Eloy Lafuente (stronk7) 0c6add5bf9 Merge branch 'MDL-48916_28' of https://github.com/wesleysitu/moodle into MOODLE_28_STABLE 2015-01-27 01:09:35 +01:00
Eloy Lafuente (stronk7) f3a8098268 Merge branch 'MDL-48921-28-2nd' of git://github.com/FMCorz/moodle into MOODLE_28_STABLE 2015-01-27 01:02:46 +01:00
Eloy Lafuente (stronk7) c3e2b05d40 Merge branch 'wip-MDL-48325-28' of git://github.com/abgreeve/moodle into MOODLE_28_STABLE 2015-01-27 00:25:57 +01:00
Eloy Lafuente (stronk7) 7458e60445 Merge branch 'MDL-48720-28' of git://github.com/andrewnicols/moodle into MOODLE_28_STABLE 2015-01-26 19:11:34 +01:00
Eloy Lafuente (stronk7) bf986b9e45 Merge branch 'MDL-35765-28' of git://github.com/merrill-oakland/moodle into MOODLE_28_STABLE 2015-01-26 17:32:25 +01:00
Eloy Lafuente (stronk7) e534402886 Merge branch 'MDL-36877_28' of git://github.com/jmvedrine/moodle into MOODLE_28_STABLE 2015-01-26 16:04:37 +01:00
Andrew Davis 2e77d5ec7b MDL-48942 mod_survey: synced security checks in view.php and graph.php 2015-01-26 15:06:28 +01:00
Eloy Lafuente (stronk7) 22896c10ba Merge branch 'MDL-48711-28' of git://github.com/merrill-oakland/moodle into MOODLE_28_STABLE 2015-01-26 11:14:42 +01:00
Eloy Lafuente (stronk7) 58ad8a2321 Merge branch 'MDL-43421-28' of git://github.com/mr-russ/moodle into MOODLE_28_STABLE 2015-01-26 10:24:59 +01:00
Brian Barnes e5a35eb25f MDL-48805 theme: Collapse now collapses all data-target 2015-01-26 11:32:10 +13:00
Valerii Kuznetsov d5da6e42c2 MDL-48968 blocks: fixed bug with pagetype handling 2015-01-26 09:28:41 +13:00
Jean-Michel Vedrine cbc028dbae MDL-36877 Lesson: final page not displayed if show gradebook set to no 2015-01-25 19:44:19 +01:00
Rod Norfor fc811dd468 MDL-48914 admin: check maxuserperpage in existingroleholders->find_users 2015-01-23 15:59:34 +00:00
Nelson Moller 116dd8a02f MDL-48929 repository_filesystem: Valide relative path against realpath
On Windows systems, there could have been a mix of back and forward
slashes, causing the validation of the relative path to fail. Now
we will always get the realpath before comparing.
2015-01-23 17:28:19 +08:00
Andrew Nicols c06aa292b1 weekly release 2.8.2+ 2015-01-23 08:28:04 +08:00
Andrew Nicols e52a55c407 Merge branch 'install_28_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_28_STABLE 2015-01-23 08:27:57 +08:00
Dan Poltawski 0b331a73c6 Merge branch 'MDL-48949_28' of git://github.com/timhunt/moodle into MOODLE_28_STABLE 2015-01-22 17:53:23 +00:00
Tim Hunt a52b56b719 MDL-48949 mod_lti: tidy mod/lti/upgrade.txt 2015-01-22 17:29:39 +00:00
Adrian Greeve a6acd5ff4f MDL-48325 mod_data: Export to portfolio button uses capability.
The Export to portfolio button now checks the mod/data:exportownentry
capability to see if the export button should be shown.
2015-01-22 14:59:33 +08:00
Zachary Durber 3a57e2a532 MDL-48491 enrolments: Paypal enrolments send email as support user. 2015-01-22 13:47:45 +08:00
Andrew Nicols a1d1479ff1 Revert "Merge branch 'wip-mdl-48624-m28' of https://github.com/rajeshtaneja/moodle into MOODLE_28_STABLE"
This reverts commit 48549b6515, reversing
changes made to 87802c924f.
2015-01-22 12:16:27 +08:00
Frederic Massart 737a5f7fe4 MDL-48383 task: Indicate when a task will not run if plugin is disabled 2015-01-22 11:08:10 +08:00
Eloy Lafuente (stronk7) a51d8d8560 Merge branch 'MDL-48823_28' of git://github.com/dmonllao/moodle into MOODLE_28_STABLE 2015-01-21 12:32:28 +01:00
Frederic Massart b71598cf81 MDL-48921 admin: Keep the search string in the URL after form submission 2015-01-21 15:50:51 +08:00
Andrew Nicols 9a0284c657 MDL-48720 mod_forum: Tidy up whitespace to comply with coding style 2015-01-21 12:42:42 +08:00
Andrew Nicols 9a220d7976 MDL-48720 mod_forum: Only copy discussion preferences when moving posts
Rather than adding discussion preferences to a user based upon their
subscription to the source forum, only respect any actively selected
preference. That is to say that:
* if a user has opted into a discussion and following a move would be
  unsubscribed, re-subscribe them;
* if a user has opted out of a discussion and following a move would be
  subscribed once more, unsubscribe them; and
* if a user has not made an active choice, follow the discussion preference
  for the target forum.
2015-01-21 12:42:41 +08:00
David Monllao b550538ce3 MDL-48823 admin: Just one admin tree reload after settings changes 2015-01-21 10:42:17 +08:00
Andrew Nicols 89b5e52ba8 Merge branch 'wip-mdl-48761-m28' of https://github.com/rajeshtaneja/moodle into MOODLE_28_STABLE 2015-01-21 10:22:01 +08:00
Rajesh Taneja e947035dc7 MDL-48761 behat: Added new step for debugging scenarios 2015-01-21 10:17:39 +08:00
Wesley Situ 0c8e82aade MDL-48916 atto_undo: Clarify text for "Undo/Redo" 2015-01-20 16:21:02 -08:00
Eloy Lafuente (stronk7) af04908d0d Merge branch 'wip-MDL-48847-m28' of git://github.com/marinaglancy/moodle into MOODLE_28_STABLE 2015-01-21 00:28:38 +01:00
Eloy Lafuente (stronk7) 4c8fae005e Merge branch 'MDL-48830-m28' of https://github.com/micaherne/moodle into MOODLE_28_STABLE 2015-01-21 00:04:14 +01:00
Brian Barnes 044b689308 MDL-48907 grades: fixed display of grade tabs 2015-01-21 10:37:54 +13:00
Eric Merrill 2c1f64c0da MDL-48711 gradebook: Properly compute extra-redit status for cat grades
When seeing if a grade item for a category is computed for extra-credit
status, we need to use the *grandparent* of the item.
2015-01-20 16:06:02 -05:00
Eric Merrill e8a979d4bb MDL-35765 availability: Use category total full names 2015-01-20 15:38:07 -05:00
Eloy Lafuente (stronk7) c41fe79c85 Merge branch 'MDL-48873_moodle28' of https://github.com/StudiUM/moodle into MOODLE_28_STABLE 2015-01-20 19:27:22 +01:00
Eloy Lafuente (stronk7) 189dee55d4 Merge branch 'MDL-48813_m28' of git://github.com/sbourget/moodle into MOODLE_28_STABLE 2015-01-20 19:20:39 +01:00
Eloy Lafuente (stronk7) 7f2083fadf Merge branch 'wip-mdl-48837-m28' of https://github.com/rajeshtaneja/moodle into MOODLE_28_STABLE 2015-01-20 18:52:14 +01:00
Dan Poltawski f11c6059ea Merge branch 'MDL-48798-28' of https://github.com/vadimonus/moodle into MOODLE_28_STABLE 2015-01-20 17:50:24 +00:00
Eloy Lafuente (stronk7) 45b68d3cdd Merge branch 'MDL-48477_28' of git://github.com/timhunt/moodle into MOODLE_28_STABLE 2015-01-20 18:44:43 +01:00
Eloy Lafuente (stronk7) 38e8b26234 Merge branch 'MDL-48779-28' of https://github.com/vadimonus/moodle into MOODLE_28_STABLE 2015-01-20 18:41:21 +01:00
Eloy Lafuente (stronk7) dfe44858da Merge branch 'MDL-47792_28' of git://github.com/dmonllao/moodle into MOODLE_28_STABLE 2015-01-20 18:38:06 +01:00
Dan Poltawski 2f0f15c2e7 Merge branch 'wip-mdl-48831-m28' of https://github.com/rajeshtaneja/moodle into MOODLE_28_STABLE 2015-01-20 17:30:50 +00:00
Dan Poltawski f40423c766 Merge branch 'MDL-48829_28' of git://github.com/timhunt/moodle into MOODLE_28_STABLE 2015-01-20 17:07:54 +00:00
Eloy Lafuente (stronk7) 48549b6515 Merge branch 'wip-mdl-48624-m28' of https://github.com/rajeshtaneja/moodle into MOODLE_28_STABLE 2015-01-20 17:34:04 +01:00
Eloy Lafuente (stronk7) 87802c924f Merge branch 'MDL-47166-28' of git://github.com/andrewnicols/moodle into MOODLE_28_STABLE 2015-01-20 16:15:46 +01:00
David Monllao e31f7ac7b9 Merge branch 'MDL-48765-28' of git://github.com/gurgus/moodle into MOODLE_28_STABLE 2015-01-20 17:08:57 +08:00
David Monllao f3b0ba7c8f Merge branch 'MDL-48776-28' of git://github.com/gurgus/moodle into MOODLE_28_STABLE 2015-01-20 16:07:54 +08:00
Andrew Nicols 8b6412b1f7 Merge branch 'MDL-42172-28' of https://github.com/vadimonus/moodle into MOODLE_28_STABLE 2015-01-20 15:43:15 +08:00
Patrik Granlöv f9d5676c10 MDL-35486 outputlib: Fix typos in comments
Just a copy-past text error in two comments.
2015-01-20 14:03:34 +08:00
Andrew Nicols af152f8d1e Merge branch 'MDL-44560-28' of git://github.com/xow/moodle into MOODLE_28_STABLE 2015-01-20 13:26:02 +08:00
Andrew Nicols 628109a9cf Merge branch 'MDL-38277_m28' of https://github.com/sbourget/moodle into MOODLE_28_STABLE 2015-01-20 12:44:40 +08:00
Aaron Barnes 6aca5dd717 MDL-47792 javascript: Fix for cropped headers and horizontal align 2015-01-20 11:40:19 +08:00
Jean-Michel Vedrine 7e11f1b2f5 MDL-48596 mod_lesson: editing interface won't expand to full screen 2015-01-20 11:05:04 +08:00
Andrew Nicols 054221331a Merge branch 'MDL-48741_28' of git://github.com/stronk7/moodle into MOODLE_28_STABLE 2015-01-20 09:56:47 +08:00
Jetha Chan 2dfdb127b6 MDL-48542 user_menu: add proper divider support
Added divider support to the user menu; hardened the custom user menu against invalid input.
2015-01-19 23:58:40 +08:00
Jetha Chan 3014b8cb60 MDL-48542 user_menu: add custom user menu unit test 2015-01-19 23:58:40 +08:00
Dave Cooper 5c703c83fd MDL-48776 core_message: Fixed userid check.
Thanks to Oleg Demeshev for providing the patch.
2015-01-19 15:21:03 +08:00
Andrew Nicols 24b7c67edb Merge branch 'MDL-46976-28' of git://github.com/danpoltawski/moodle into MOODLE_28_STABLE 2015-01-19 12:19:16 +08:00
Andrew Nicols 695503a7f1 Merge branch 'MDL-48073-28' of git://github.com/gurgus/moodle into MOODLE_28_STABLE 2015-01-19 11:37:22 +08:00
Nivedita Setru 542db0f6fe MDL-48073 enrol: Fixed group filter resetting erroneously. 2015-01-19 11:26:07 +08:00
Rajesh Taneja 33211ce256 MDL-48624 behat: Added extended timeout in workshop step
i_allocate_submissions_in_workshop_as step sometimes
fails because of server speed. Added extended timout
ensuring they wait enough before failing.
2015-01-19 10:18:49 +08:00
Rajesh Taneja 20a095345b MDL-48624 behat: Added extended timeout to ensure step pass
following_should_download_between_and_bytes step sometimes
fails because of server speed. Added extended timout
ensuring they wait enough before failing.
Also, not calling force download while running behat site
2015-01-19 10:18:42 +08:00
Jean-Michel Vedrine 175b34c45d MDL-43386 Lesson: Grade essay student response formatting not correct 2015-01-18 20:41:51 +01:00
Vadim Dvorovenko a8808ad7ba MDL-42172 Authentification: Adding alternate names to "Lock user fields"
Adding alternate name fields (firstnamephonetic, lastnamephonetic,
middlename, alternatename) to "Lock user fields" for all
authentification plugins. This is needed to sync alternate name fields
with external data sources and to lock them for editing.
2015-01-17 23:10:09 +07:00
Vadim Dvorovenko 5e25d5630b MDL-48798 Statistics: Adding lang string for user activity.
New lang string for 'Activity' (meaning count of user actions) in stats
reports to disambiguate it with 'Activity' (meaning course module).

AMOS BEGIN
 CPY [activity,core],[useractivity,core]
AMOS END
2015-01-17 23:04:11 +07:00
AMOS bot 778e83669f Automatically generated installer lang files 2015-01-18 00:03:58 +08:00
Vadim Dvorovenko ad2c1a2156 MDL-48779 MNet: multibyte substr in certificate generation
Using core_text::substr instead of substr for trimming certificate
data. Is needed for sites with long unicode sitename to prevent
breaking line between unicode pair.
2015-01-17 23:01:47 +07:00
Gilles-Philippe Leblanc 6dc66f5a48 MDL-48873 auth_cas: Wrong redirection with bad multiauth login 2015-01-16 11:55:08 -05:00
Ray Bon 54ea4bee35 MDL-48837 phpunit: Restore system default timezone 2015-01-16 12:47:13 +08:00
John Okely 3bb4665841 MDL-44560 glossary: Fix pagination on glossary category view
Credit to Sebastian B for this fix
2015-01-16 11:12:42 +08:00
Rajesh Taneja f0724d200a MDL-48831 behat: Added behat test for label activity
Thanks to Neill Magill, for providing test feature.
2015-01-16 10:39:05 +08:00
Rajesh Taneja a43bbc7838 MDL-48831 behat: Fixed activity show hide for label
Labels are not links and have dimmed_text class
So updated find query for show/hide activity check
2015-01-16 10:39:05 +08:00
Eloy Lafuente (stronk7) 7e5840e4b6 MDL-48741 behat: add new moodle_list formatter (rerun compatible) 2015-01-16 03:14:56 +01:00
Stephen Bourget 521af16fe5 MDL-38277 Lesson: Fix strings on activity report 2015-01-15 12:56:25 -05:00
Tim Hunt 27fc1831e8 MDL-48829 quiz nav: add a data attr to buttons giving the page
This way, if you need to know which page each button goes to in
JavaScript, you can find out.
2015-01-15 10:18:39 +00:00
Tim Hunt 142c67ce07 MDL-48477 questions: no delete icon for only top-level category
The back end code already threw an exception if you clicked the icon,
so you could not delete the category, but we should not have shown the
icon in the first place.

Thanks to Pramith Dayananda for working out the fix for this issue. I am
just committing it.
2015-01-15 10:18:31 +00:00
Michael Aherne 5b469142de MDL-48830 accesslib: Add sort field to query 2015-01-15 10:17:08 +00:00
Andrew Nicols 2ea6a2b161 weekly release 2.8.2+ 2015-01-15 14:20:20 +08:00
Andrew Nicols 273eec1330 Merge branch 'install_28_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_28_STABLE 2015-01-15 14:20:09 +08:00
Charles Fulton 147d54f9ff MDL-48765 enrol: do not use a non-breaking space as a separator 2015-01-15 11:21:19 +08:00
Marina Glancy a9bac80cac MDL-48847 groups: fixed incorrect user count 2015-01-15 11:12:25 +08:00
Dan Poltawski 1dcf25db8b MDL-46976 user: trim whitespace from input email address
Don't complain about invalid email address, we are a computer, we
love the jobs users hate.

ref: https://www.youtube.com/watch?v=5tquSbZEP-g
2015-01-14 17:14:50 +00:00
AMOS bot e6b538e2a2 Automatically generated installer lang files 2015-01-15 00:04:03 +08:00
Dan Poltawski c5203c98bf Merge branch 'MDL-14730_28' of git://github.com/jmvedrine/moodle into MOODLE_28_STABLE 2015-01-14 10:27:46 +00:00
John Okely 27cf863db5 MDL-47761 enrol: Show more detail for self-enrolment errors
Thanks to Mirko Otto for the solution
2015-01-14 00:30:15 +01:00
Eloy Lafuente (stronk7) 76da38fd5c Merge branch 'M28_MDL-48574_workflow_state_updated_batch_single' of https://github.com/Dave-B/moodle into MOODLE_28_STABLE 2015-01-14 00:14:45 +01:00
Eloy Lafuente (stronk7) 87caaf87e3 Merge branch 'MDL-41166-28' of git://github.com/danpoltawski/moodle into MOODLE_28_STABLE 2015-01-13 23:42:25 +01:00
Eloy Lafuente (stronk7) bb1aaadf48 Merge branch 'MDL-48753_m28' of git://github.com/markn86/moodle into MOODLE_28_STABLE 2015-01-13 15:48:42 +01:00
Dan Poltawski 601c8883c8 Merge branch 'MDL-36824_m28' of https://github.com/sbourget/moodle into MOODLE_28_STABLE 2015-01-13 13:15:06 +00:00
Dan Poltawski f049403ed1 Merge branch 'MDL-39103-28' of git://github.com/xow/moodle into MOODLE_28_STABLE
Conflicts:
	mod/lesson/lib.php
2015-01-13 12:54:53 +00:00
Dan Poltawski 7e6be7ba1f Merge branch 'MDL-45784-28' of git://github.com/xow/moodle into MOODLE_28_STABLE 2015-01-13 12:34:45 +00:00
Dan Poltawski 1d0a5a5be9 Merge branch 'MDL-48474_28' of git://github.com/timhunt/moodle into MOODLE_28_STABLE 2015-01-13 11:47:53 +00:00
Stephen Bourget 871a756d06 MDL-48750 Lesson: Behat test for lesson attempt info
behat test provided by Jean-Michel Vedrine
2015-01-13 10:59:53 +00:00
Stephen Bourget 6c5b72e889 MDL-48750 Lesson: Fix attempt info displayed by course overview block 2015-01-13 10:59:29 +00:00
Dan Poltawski 7f3932c840 Merge branch 'MDL-40326_28' of git://github.com/jmvedrine/moodle into MOODLE_28_STABLE 2015-01-13 10:08:18 +00:00
Dan Poltawski 4ed7ae68a0 Merge branch 'MDL-48510-28' of git://github.com/ankitagarwal/moodle into MOODLE_28_STABLE 2015-01-13 08:29:11 +00:00
Ankit Agarwal 64a15b04b1 MDL-48510 inbound: use 0 expiration for private files handler 2015-01-13 09:29:13 +05:30
Ankit Agarwal 8293f6c86f MDL-48510 inbound: Support disabling of expiration changes in UI 2015-01-13 09:26:20 +05:30
Ankit Agarwal 5a8291753a MDL-48510 inbound: Use correct value of expiration 2015-01-13 09:26:20 +05:30
Andrew Nicols 312163cd26 Merge branch 'MDL-43898-28' of git://github.com/danpoltawski/moodle into MOODLE_28_STABLE 2015-01-13 10:28:12 +08:00
Stephen Bourget 282c5c2b7d MDL-48813 Lesson: Remove unused GROUPMEMBERSONLY 2015-01-12 16:38:47 -05:00
Eloy Lafuente (stronk7) de12ede98e MDL-35155 database: better sql_substr() impl. for mssql/sqlsrv + unit tests
MSSQL's substring() implementation is somehow silly/strict and unable to
perform implicit casts to integer both for the start and length parameters.

This hits Moodle badly because of another problems (MDL-23997) we decided
to cast to string all bound placeholders long ago.

So this commit just enforces the cast of the start and length parameters to
integer. And includes unit tests for using placeholders on all positions in
the sql_substr() method.
2015-01-12 18:26:38 +01:00
Eloy Lafuente (stronk7) 817f22818b Merge branch 'MDL-35155-28' of git://github.com/danpoltawski/moodle into MOODLE_28_STABLE 2015-01-12 18:26:29 +01:00
AMOS bot 2aaab5b275 Automatically generated installer lang files 2015-01-13 00:04:00 +08:00
AMOS bot 3571d0a90e Automatically generated installer lang files 2015-01-13 00:04:00 +08:00
Dan Poltawski d926178366 Merge branch 'MDL-31774_28' of git://github.com/jmvedrine/moodle into MOODLE_28_STABLE 2015-01-12 14:37:51 +00:00
Dan Poltawski 1cc4ac0486 Merge branch 'MDL-47935-28' of git://github.com/gurgus/moodle into MOODLE_28_STABLE 2015-01-12 12:59:39 +00:00
Dan Poltawski f7ae8d3b11 Merge branch 'MDL-44907-28' of git://github.com/FMCorz/moodle into MOODLE_28_STABLE 2015-01-12 11:30:32 +00:00
Marina Glancy 054609f8b0 MDL-48794 report_log: make sure y-axis gridlines in graphs are integers 2015-01-12 16:21:37 +08:00
Andrew Nicols 595b56d28d Merge branch 'MDL-46671-28' of https://github.com/pjking07/moodle into MOODLE_28_STABLE 2015-01-12 13:57:10 +08:00
Andrew Nicols 55f84c72b4 Merge branch 'MDL-47425-28' of git://github.com/zbdd/moodle into MOODLE_28_STABLE 2015-01-12 13:44:26 +08:00
Sam Hemelryk 2dcc434f67 MDL-48753 badges: converted func to named params
Converted the SQL params within badges_get_user_badges to
named params.
Unit tests added for this function at the same time.
UI covered by behat already.
2015-01-11 20:12:29 -08:00
Andrew Nicols 80eec75b85 Merge branch 'MDL-38142-28' of git://github.com/FMCorz/moodle into MOODLE_28_STABLE 2015-01-12 11:56:30 +08:00
Andrew Nicols 270c4a7fa3 Merge branch 'MDL-47692_m28' of git://github.com/markn86/moodle into MOODLE_28_STABLE 2015-01-12 11:30:00 +08:00
Jean-Michel Vedrine db63d99dbf MDL-31774 mod_lesson: Wrong jumps in lessons with mutiple clusters 2015-01-10 18:41:00 +01:00
AMOS bot 362834051b Automatically generated installer lang files 2015-01-11 00:04:06 +08:00
Eloy Lafuente (stronk7) f2c730fecf Moodle release 2.8.2 2015-01-10 13:12:58 +01:00
Stephen Bourget 26879477ce MDL-36824 Lesson: Media File should be displayed as a block 2015-01-09 18:17:15 -05:00
David Balch aed75e9597 MDL-48574 assign: Test workflow_state_updated fired on batch and single. 2015-01-09 15:24:25 +00:00
Jean-Michel Vedrine 6d4858392b MDL-14730 mod_lesson: allow linking to pages inside a lesson 2015-01-09 11:39:40 +01:00
Dave Cooper 19f78c1c84 MDL-47935 Atto: Moved atto notification message position 2015-01-09 15:55:18 +08:00
Zachary Durber b79691baea MDL-47425 mod_assign: Allow sorting by state without submissions.
Special thanks to Antton Rodriguez for the suggested patch.
2015-01-09 14:49:45 +08:00
Frederic Massart fec61db075 MDL-38142 mod_forum: Allow viewing of student posts in hidden courses 2015-01-09 11:38:12 +08:00
Andrew Nicols dde9be79c3 MDL-47166 atto_indent: Swap Outdent and Indent 2015-01-09 09:21:59 +08:00
Tim Hunt c38eb4e6e6 MDL-48474 qtype_shortanswer: answers were not being trimmed.
This fix is based on Oleg Sychev's suggestion. Thanks.
2015-01-08 17:43:18 +00:00
AMOS bot 812779dfa2 Automatically generated installer lang files 2015-01-09 00:04:08 +08:00
Dan Poltawski ed46f0deb1 weekly release 2.8.1+ 2015-01-08 10:00:28 +00:00
Dan Poltawski 9c1f1cda90 Merge branch 'install_28_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_28_STABLE 2015-01-08 10:00:26 +00:00
Frederic Massart 2981fb45a0 MDL-44907 admin: Better styling of admin settings validation errors
Conflicts:
	theme/bootstrapbase/style/moodle.css
2015-01-08 16:23:34 +08:00
Dan Poltawski fa01f2b45a MDL-35155 dml: add unit test which exposes substr problem
Previously, when using parameters, substring broke on mssql.
2015-01-08 08:14:10 +00:00
Simon Coggins 48ddb7968f MDL-35155: Fix MSSQL bug in sql_substr() 2015-01-08 08:14:09 +00:00
Andrew Davis 73639b4124 MDL-48702 logs: switched retrieval to get_recordset_select() 2015-01-08 09:08:50 +01:00
Mark Nelson 7bc0151a4c MDL-48533 report_backups: added ability to view backup logs 2015-01-07 22:25:04 -08:00
Mark Nelson 85f5d4ac95 MDL-48533 core_backup: use default log level when none specified 2015-01-07 22:25:03 -08:00
John Okely fd648fd5f0 MDL-45784 lesson: Remove preview link for students viewing lesson
Credit to Pete Jones for the fix.
2015-01-08 13:28:48 +08:00
Eloy Lafuente (stronk7) b78438abc0 Merge branch 'MDL-37584-28' of git://github.com/ankitagarwal/moodle into MOODLE_28_STABLE 2015-01-08 00:46:41 +01:00
Eloy Lafuente (stronk7) 19389fc511 Merge branch '37680-28' of git://github.com/samhemelryk/moodle into MOODLE_28_STABLE 2015-01-08 00:40:52 +01:00
Zachary Durber 63ed941a93 MDL-48546 filters: Split on all tags for multimedia filter check. 2015-01-07 18:56:49 +01:00
Eloy Lafuente (stronk7) 2d90c646be Merge branch 'MDL-48748-28-enfix' of git://github.com/mudrd8mz/moodle into MOODLE_28_STABLE 2015-01-07 17:23:19 +01:00
AMOS bot 324dfc764c Automatically generated installer lang files 2015-01-08 00:03:59 +08:00
David Balch 0697df81aa MDL-48574 assign: Fire workflow_state_updated event on batch and single.
This change adds the workflow_state_updated event when changing workflow
state using the single grading page and the quick grading mechanisms.
Previously, it only fired for batch updates using
process_set_batch_marking_workflow_state().
2015-01-07 14:47:22 +00:00
Ankit Agarwal f517d1c20b MDL-48688: inbound: remove spaces from exception 2015-01-07 13:44:25 +08:00
Mark Nelson f7f477a65d MDL-46498 mod_assign: fixed failing behat test due to GS 2015-01-07 13:30:12 +08:00
Zachary Durber 01da07a42b MDL-48546 filters: ReDoS protection for multimedia links. 2015-01-07 12:28:22 +08:00
Andrew Nicols 5cb84b5ba4 Merge branch 'MDL-45930-28' of git://github.com/danpoltawski/moodle into MOODLE_28_STABLE 2015-01-07 12:08:16 +08:00
David Monllao fb270fd5de Merge branch 'MDL-48549_m28' of git://github.com/markn86/moodle into MOODLE_28_STABLE 2015-01-07 09:40:22 +08:00
David Monllao 2111c597ac Merge branch 'wip-MDL-48523-28' of git://github.com/abgreeve/moodle into MOODLE_28_STABLE 2015-01-07 09:21:53 +08:00
Eloy Lafuente (stronk7) cd663df1ad Merge branch 'MDL-32088-28' of git://github.com/danpoltawski/moodle into MOODLE_28_STABLE 2015-01-07 02:11:48 +01:00
David Monllao b68c14c98d Merge branch 'MDL-48697-28' of git://github.com/ankitagarwal/moodle into MOODLE_28_STABLE 2015-01-07 09:07:13 +08:00
David Monllao 2fe7bf0585 Merge branch 'MDL-48688-28' of git://github.com/ankitagarwal/moodle into MOODLE_28_STABLE 2015-01-07 08:48:05 +08:00
Mark Nelson 7cadfa8e86 MDL-47692 mod_quiz: added additional question_manually_graded trigger 2015-01-06 15:13:28 -08:00
Helen Foster 59ea75fd37 MDL-48748 lang: Merge English strings from the en_fix language pack 2015-01-06 21:57:11 +01:00
Jean-Michel Vedrine c80603ddc4 MDL-48034 mod_lesson: grade capability missing RISK_XSS 2015-01-06 12:52:21 +00:00
Dan Poltawski 8b7e92206c Merge branch 'MDL-44393-28' of git://github.com/ankitagarwal/moodle into MOODLE_28_STABLE 2015-01-06 12:21:04 +00:00
Dan Poltawski 787d05f3d3 Merge branch 'MDL-46015_28' of git://github.com/jmvedrine/moodle into MOODLE_28_STABLE 2015-01-06 12:04:09 +00:00
Dan Poltawski acb579245a Merge branch 'MDL-48372-28' of git://github.com/ankitagarwal/moodle into MOODLE_28_STABLE 2015-01-06 11:24:30 +00:00
Dan Poltawski f704c30f8a Merge branch 'MDL-48442-28' of git://github.com/ankitagarwal/moodle into MOODLE_28_STABLE 2015-01-06 11:19:33 +00:00
Dan Poltawski e54fe38e2b Merge branch 'MDL-48534_m28' of https://github.com/markn86/moodle into MOODLE_28_STABLE 2015-01-06 11:11:43 +00:00
Dan Poltawski 921e63c880 Merge branch 'MDL-48655-28' of git://github.com/merrill-oakland/moodle into MOODLE_28_STABLE 2015-01-06 11:09:43 +00:00
Simey Lameze 693918c30e MDL-47964 auth_shibboleth: Fix DOS on the shibboleth logout 2015-01-06 11:05:25 +00:00
Marco Rougeth 6bb02c27d5 MDL-48640 report_configchanges: Remove duplicated code 2015-01-06 15:52:57 +08:00
John Okely 502a403b43 MDL-39103 lesson: Fix lesson administration block
Credit to Joseph Rézeau for the fix
2015-01-06 14:53:29 +08:00
David Monllao 63a07d3a21 Merge branch 'MDL-38222_28' of git://github.com/jmvedrine/moodle into MOODLE_28_STABLE 2015-01-06 12:27:20 +08:00
Andrew Nicols ac1c429ebd Merge branch 'MDL-48701-28' of git://github.com/ankitagarwal/moodle into MOODLE_28_STABLE 2015-01-06 12:06:01 +08:00
Andrew Nicols 42f3477091 Merge branch 'MDL-48704-28' of git://github.com/ankitagarwal/moodle into MOODLE_28_STABLE 2015-01-06 11:59:15 +08:00
Andrew Nicols 9b2438597a Merge branch 'MDL-48707_28' of git://github.com/jmvedrine/moodle into MOODLE_28_STABLE 2015-01-06 11:51:14 +08:00
Andrew Nicols 7a5e665072 Merge branch '28067-28' of git://github.com/samhemelryk/moodle into MOODLE_28_STABLE 2015-01-06 10:53:50 +08:00
Andrew Nicols 2c908ec30b MDL-20304 lesson: Uncomment tests following MDL-48631 2015-01-06 10:37:42 +08:00
Andrew Nicols f595e3cbae Merge branch 'MDL-20304-28' of git://github.com/danpoltawski/moodle into MOODLE_28_STABLE 2015-01-06 10:37:37 +08:00
David Monllao 1bacd164c3 Merge branch 'MDL-35078-28' of git://github.com/danpoltawski/moodle into MOODLE_28_STABLE 2015-01-06 10:34:50 +08:00
David Monllao 76dd58bb4f Merge branch 'MDL-48631_28' of git://github.com/jmvedrine/moodle into MOODLE_28_STABLE 2015-01-06 09:09:24 +08:00
Dan Poltawski 8e293f17cf Merge branch 'MDL-48441_profile_guest_28' of https://github.com/andyjdavis/moodle into MOODLE_28_STABLE 2015-01-05 18:30:25 +00:00
Dan Poltawski 4afd408b55 Merge branch 'MDL-46498_m28' of https://github.com/markn86/moodle into MOODLE_28_STABLE 2015-01-05 17:48:39 +00:00
Andrew Nicols 8d9a3b3b62 MDL-48104 mod_assign: Strip out use of eval() for string parsing
I've also replaced other  occurrences of M.str with the correct use of
M.util.get_string() instead.
2015-01-05 17:21:14 +00:00
Dan Poltawski 0aee829cd3 Merge branch 'MDL-43679-28' of git://github.com/FMCorz/moodle into MOODLE_28_STABLE 2015-01-05 15:49:26 +00:00
Simey Lameze 88929ca824 MDL-48017 core_calendar: add context validation to get_calendar_events 2015-01-05 14:13:48 +00:00
Andrew Nicols 5770e51478 MDL-48106 mod_glossary: Add missing sesskey checks 2015-01-05 13:38:01 +00:00
David Monllao e72516ccde MDL-48329 core_message: Checking that messaging system is enabled 2015-01-05 13:14:03 +00:00
Simey Lameze 38ca8793b6 MDL-48368 course: fix xss on course request pending page 2015-01-05 12:58:53 +00:00
Jetha Chan faf0cd9098 MDL-47920 mod_lti: add capability checks, http headers 2015-01-05 12:50:18 +00:00
Andrew Nicols f7714bb67b Merge branch 'MDL-42519_28' of git://github.com/timhunt/moodle into MOODLE_28_STABLE 2015-01-05 16:18:13 +08:00
Andrew Nicols 764247be6b Merge branch 'MDL-48582-28' of git://github.com/merrill-oakland/moodle into MOODLE_28_STABLE 2015-01-05 15:27:44 +08:00
Andrew Nicols 289ac435d1 Merge branch 'MDL-48644_restoreLegacyLogs28' of https://github.com/moodlerooms/moodle into MOODLE_28_STABLE 2015-01-05 14:32:28 +08:00
Andrew Nicols dcfe7694d4 Merge branch 'MDL-46183-28' of git://github.com/FMCorz/moodle into MOODLE_28_STABLE 2015-01-05 13:58:12 +08:00
Andrew Nicols 34d16a7737 Merge branch 'wip-MDL-40097-28' of git://github.com/abgreeve/moodle into MOODLE_28_STABLE 2015-01-05 13:41:28 +08:00
Andrew Nicols 863ffc884f Merge branch 'MDL-48700-28' of git://github.com/merrill-oakland/moodle into MOODLE_28_STABLE 2015-01-05 13:31:42 +08:00
Aaron Barnes f8bebe363d MDL-40097 completion: Apply robust role detection to samesite restores. 2015-01-05 10:34:49 +08:00
Adrian Greeve 45151248c4 MDL-40097 completion: Update of code to meet guidlines. 2015-01-05 10:34:38 +08:00
Aaron Barnes 39ed46b158 MDL-40097 completion: Make restoring grade criteria more robust 2015-01-05 10:34:27 +08:00
Russell Smith 6e8d598cff MDL-43421 logging: Ignore race condition in access update. 2015-01-03 20:42:09 +11:00
PJ King 39afb9e4b3 MDL-46671 availability: DEBUG when course_module does not exist.
There was a fatal error when calendar event linked to non-extant activities.

Now, instead of throwing an exception when a course_module does not exist, is_user_visible() will print a debug statement.
2015-01-02 10:32:30 -05:00
Ankit Agarwal de290738c9 MDL-48442 tasks: Make sure first run is as per schedule 2015-01-02 14:55:22 +05:30
Ankit Agarwal 004ec71505 MDL-44393 tasks: Add unit tests for cron field validations 2015-01-02 11:03:03 +05:30
Ankit Agarwal 045b5235f2 MDL-44393 tasks: Validate cron fields 2015-01-02 11:03:03 +05:30
Ankit Agarwal 2d066f19ba MDL-48372 mod_data: Add http to urls without it during import 2015-01-02 10:47:34 +05:30
Frederic Massart b4e7dcaa8a MDL-43679 core: Handle Meridio user agents with MS Word 2015-01-02 11:24:00 +08:00
Frederic Massart e618263437 MDL-43679 core: Never use HTTP redirect when the user agent is MS Word 2015-01-02 11:24:00 +08:00
Paul Nicholls 04a2fc7427 MDL-43679 core_useragent: add test cases for MS Word
The new is_msword() check should always return false for regular browsers.
It should return true for known MS Word, but false for known MS Outlook.
2015-01-02 11:24:00 +08:00
Paul Nicholls 7ed6f826ad MDL-43679 core_useragent: add basic MS Word detection
Basic detection for MS Word's internal link checker.  This is not perfect,
as older versions use IE6/7 user agent string with no identifying marks,
and newer versions don't necessarily identify themselves as Word (just as
Office).  Version information is not reliably available, even when there
is sufficient other information to identify it as Word's link checker.
This is also based on a small sample of Word / OS version pairings, so
there may be some which are identifiable but not currently covered.
2015-01-02 11:23:59 +08:00
Jean-Michel Vedrine 986cc05789 MDL-40326 mod_lesson: progress bar is not reset by course reset 2015-01-01 13:22:28 +01:00
Lloyd Powell 7f15ca3eab MDL-43898 lesson: Fix for positioning of blocks on continue.php 2014-12-31 09:09:44 +00:00
Ankit Agarwal 07a06264dc MDL-37584 tasks: Use a senisible maximum time window for the task 2014-12-31 14:03:09 +05:30
Dan Poltawski 15252c8803 MDL-41166 assign: don't display portfolio button when no permissions
Thanks to Katja Krüger for the basis of the patch.
2014-12-30 16:48:44 +00:00
Dan Poltawski 73416d1b9a MDL-45930 filemanager: Don't display filesize when unknown
Thanks to Marina Glancy for the patch

Conflicts:
	theme/bootstrapbase/style/moodle.css
2014-12-30 14:24:29 +00:00
Vishal Raheja f70a6d3245 MDL-32088 user: Correct the Moodle docs link
This patch links the moodle docs link to user profile Moodle doc when
the user sees the user profile for a particular course. The page is set
to course view type to load course specific blocks. So, we use
set_docs_path to change the Moodle docs link instead of changing the
pagetype.
2014-12-30 13:47:41 +00:00
Mark Nielsen 2d18472382 MDL-48644 backup tool_log: Fixing coding style
Wrap long function definition
to next line.
2014-12-29 11:26:37 -08:00
Dan Poltawski 04babc675b MDL-43198 folder: respect ignorefilesizelimits permission
Thanks to Miryan Salas for the patch.
2014-12-29 12:13:37 +00:00
Jean-Michel Vedrine eeae1784c6 MDL-48631 mod_lesson: tables 'grade' item have incorrect precision
Conflicts:
	mod/lesson/db/upgrade.php
	mod/lesson/version.php
2014-12-29 10:54:01 +01:00
Ankit Agarwal 112e95f6b4 MDL-48704 inbound: Fix notices in pickup task 2014-12-29 14:40:41 +05:30
Eugene Venter 3e061bf55d MDL-46015 lesson: Optimise report - use recordsets
Change-Id: I61f3ed30c6dbd8f88d1dfb1adfe2fc291853e0e1
2014-12-28 11:09:38 +01:00
AMOS bot deb3e69e37 Automatically generated installer lang files 2014-12-28 00:04:15 +08:00
Mark Nelson 0532dad71b MDL-48549 mod_assign: added upgrade to clean the tables 2014-12-26 18:55:53 -08:00
Mark Nelson a0102708b6 MDL-48549 mod_assign: delete entries from the flags/mapping tables 2014-12-26 18:54:51 -08:00
Mark Nelson a12afaf7dd MDL-46498 mod_assign: added behat tests 2014-12-26 17:49:58 -08:00
Mark Nelson 57897685c0 MDL-46498 mod_assign: display correct grading status 2014-12-26 17:17:25 -08:00
Jean-Michel Vedrine 216655b54d MDL-48707 mod_lesson: ignore plugins question types during import 2014-12-26 08:29:33 +01:00
Jean-Michel Vedrine 899d7c1bb2 MDL-38222 mod_lesson: Error in Lesson Cluster for Unseen Questions 2014-12-25 21:19:33 +01:00
Dan Poltawski 440085ecf8 weekly release 2.8.1+ 2014-12-24 13:22:29 +00:00
Dan Poltawski a5e8cb4aea Merge branch 'install_28_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_28_STABLE 2014-12-24 13:22:26 +00:00
Mark Nelson d8d912443f MDL-48534 mod_assign: display correct workflow state and marker 2014-12-23 22:58:32 -08:00
Ankit Agarwal e3effa63fd MDL-48701 inbound: Use correct method in invalid email handler
Invalid email handler doesn't allow alteration in validate sender config. Make sure this is reflected in the UI as well
2014-12-24 10:20:43 +05:30
Ankit Agarwal 870e0fb822 MDL-48697 libraries: Use proper path for core_completion 2014-12-24 08:10:36 +05:30
Eric Merrill 4e8c1f2681 MDL-48700 gradereport_history: Don't limit downloads by pages. 2014-12-23 16:11:23 -05:00
Dan Poltawski 12f025749a MDL-20304 lesson: add behat test for practice lessons 2014-12-23 17:05:36 +00:00
Dan Poltawski 29006301ed MDL-20304 lesson: do not display gradebook link when in practice mode
Practice mode means the grades do not go to the gradebook, so do not
display the gradebook link at the end of the lesson
2014-12-23 17:05:35 +00:00
Atanas Atanasov c1eb2c3ddf MDL-20304 lesson: do not send practice lesson grades to gradebook 2014-12-23 17:05:35 +00:00
Dan Poltawski 7783fcd76f Merge branch 'MDL-48213-m28-master' of https://github.com/dthies/moodle into MOODLE_28_STABLE 2014-12-23 16:13:14 +00:00
AMOS bot 4dbc9b18b4 Automatically generated installer lang files 2014-12-24 00:04:15 +08:00
Eloy Lafuente (stronk7) e9b36ac653 MDL-45699 behat: Don't use behat/lib.php functions in core.
behat/lib.php script should not be usually included, neither any of its functions
used within mooodle code at all. It's for exclusive use of behat and
moodle setup.php. For places requiring a different/special behavior
needing to check if are being run  as part of behat tests, use:
    if (defined('BEHAT_SITE_RUNNING')) { ...
2014-12-23 13:28:46 +01:00
Dan Poltawski db5fb4ce76 Revert "Merge branch 'MDL-48534_m28' of https://github.com/markn86/moodle into MOODLE_28_STABLE"
This reverts commit 7c4b6a84dd, reversing
changes made to 03d3dfbfc5.
2014-12-23 10:46:30 +00:00
Dan Poltawski 008e28478d Revert "Merge branch 'MDL-48591_m28' of https://github.com/jrchamp/moodle into MOODLE_28_STABLE"
This reverts commit a6af290ea4, reversing
changes made to 267ac74ef3.
2014-12-23 10:43:37 +00:00
Frederic Massart 510fafed8a MDL-46183 theme_more: Background is seen through the activity chooser 2014-12-23 17:16:58 +08:00
Eloy Lafuente (stronk7) 7e911af220 Merge branch '45699-28' of git://github.com/samhemelryk/moodle into MOODLE_28_STABLE
Conflicts:
	cache/upgrade.txt
2014-12-23 02:04:12 +01:00
Eloy Lafuente (stronk7) d25a7f21a3 MDL-48568 cache: make tests aware of default application store
When an alternative cache configuration is used, aka:

define('TEST_CACHE_USING_ALT_CACHE_CONFIG_PATH', true);
$CFG->altcacheconfigpath = '/tmp/xxxxx.php';

the get_expected_application_cache_store() method was not able of
retroffiting the default application store being used.

This commit just implements that functionality so, when
executing unit tests using alternative configuration, assertions
looking for that will pass without a problem.
2014-12-23 02:03:06 +01:00
Eloy Lafuente (stronk7) 3c6dac879f Merge branch '48568-28' of git://github.com/samhemelryk/moodle into MOODLE_28_STABLE 2014-12-23 02:02:47 +01:00
Eloy Lafuente (stronk7) d81cdaaf13 Merge branch 'MDL-48593-28' of git://github.com/andrewnicols/moodle into MOODLE_28_STABLE 2014-12-22 21:51:20 +01:00
Tim Hunt 4a057abc11 MDL-42519 qformat_xml: Correctly export questions containing ]]> 2014-12-22 19:47:10 +00:00
Eloy Lafuente (stronk7) d102926592 Merge branch 'MDL-48639_28' of git://github.com/timhunt/moodle into MOODLE_28_STABLE 2014-12-22 19:09:52 +01:00
Dan Poltawski 05ea4e002d Merge branch 'MDL28-48421' of https://github.com/timpricecatalyst/moodle into MOODLE_28_STABLE 2014-12-22 17:01:06 +00:00
Dan Poltawski c6c1b3596f MDL-48638 course: update unit test to new message 2014-12-22 16:25:47 +00:00
Dan Poltawski bf671547ab Merge branch 'MDL-48638-28' of git://github.com/merrill-oakland/moodle into MOODLE_28_STABLE 2014-12-22 15:25:35 +00:00
Dan Poltawski 1b78a209a0 Merge branch 'MDL-48643-28' of git://github.com/merrill-oakland/moodle into MOODLE_28_STABLE 2014-12-22 15:22:33 +00:00
Dan Poltawski 42486cac98 MDL-43004 blog: fix upgrade.txt typo 2014-12-22 15:14:05 +00:00
Dan Poltawski 9b27f063c8 Merge branch 'MDL-48062-m28-master' of https://github.com/dthies/moodle into MOODLE_28_STABLE 2014-12-22 14:36:42 +00:00
Brian Barnes 83a36ad89b MDL-48423 messages: improved accessibility of contacts list 2014-12-22 14:16:31 +00:00
Dan Poltawski 61040870bb Merge branch 'MDL-48224-28' of git://github.com/xow/moodle into MOODLE_28_STABLE 2014-12-22 14:04:23 +00:00
Josh Marshall 999f4ac9fa MDL-48445 report_loguser: Include logstore parameter for pagination 2014-12-22 13:56:59 +00:00
Dan Poltawski 7c4b6a84dd Merge branch 'MDL-48534_m28' of https://github.com/markn86/moodle into MOODLE_28_STABLE 2014-12-22 13:52:41 +00:00
Dan Poltawski 03d3dfbfc5 Merge branch 'm28_MDL-48483' of https://github.com/totara/moodle into MOODLE_28_STABLE 2014-12-22 13:44:29 +00:00
Dan Poltawski cf447b8c0f Merge branch 'MDL-48580-28' of git://github.com/lameze/moodle into MOODLE_28_STABLE 2014-12-22 13:41:13 +00:00
Dan Poltawski a6af290ea4 Merge branch 'MDL-48591_m28' of https://github.com/jrchamp/moodle into MOODLE_28_STABLE 2014-12-22 13:38:06 +00:00
Dan Poltawski 267ac74ef3 MDL-48653 behat: fix incorrect phpdoc 2014-12-22 13:13:51 +00:00
Dan Poltawski a4b06536fb Merge branch 'MDL-48653_28' of git://github.com/timhunt/moodle into MOODLE_28_STABLE 2014-12-22 13:10:46 +00:00
Dan Poltawski 6303e895e4 Merge branch 'MDL-48088-28' of git://github.com/jethac/moodle into MOODLE_28_STABLE 2014-12-22 13:07:46 +00:00
Dan Poltawski db6bbcbc16 Merge branch 'MDL-48666_28' of git://github.com/timhunt/moodle into MOODLE_28_STABLE 2014-12-22 12:09:18 +00:00
Andrew Davis 55f1261257 MDL-48441 core_user: profile.php, view.php now handle guests the same 2014-12-22 09:56:04 +01:00
Ankit Agarwal 6227a1f3e7 MDL-48688 inbound: Fix incorrect class names 2014-12-22 13:50:43 +05:30
Adrian Greeve 0f60d011dc MDL-48523 gradebook: Fix for incorrect behat steps. 2014-12-22 15:05:18 +08:00
Eric Merrill 21fa68e52f MDL-48643 Javascript: Create modals hidden, then show, to prevent scroll
Modal dialogs need to be created with visible: false and then call
.show() on it to make it visible. This prevents the page from jumping to
the top.
2014-12-21 22:58:59 -05:00
AMOS bot 085df3ed05 Automatically generated installer lang files 2014-12-22 00:04:10 +08:00
AMOS bot 4645ff7ddc Automatically generated installer lang files 2014-12-20 00:04:14 +08:00
Tim Hunt 2a6e070cd4 MDL-48666 quiz: let JS to get a Qs slot number on the summary page 2014-12-19 14:39:40 +00:00
Tim Hunt 3e8e8641b3 MDL-48639 behat upload: support absolute paths & better errors
In a custom step I needed to be able to upload a file I had previously
saved to $CFG->dataroot/temp, but that was not possible.

Also, the failure was not at all obvious. I have made it throw a clear
exception if the file you are trying to upload does not exist.
2014-12-19 12:00:17 +00:00
Brian Barnes 6f1e7d2db2 MDL-48483 admin: attached color label to input control 2014-12-19 14:19:39 +13:00
Daniel Thies 330ac09e0d MDL-48062 atto_image: Add image select on single click 2014-12-18 18:29:46 -06:00
Daniel Thies 37e2d30c84 MDL-48213 filter_algebra,filter_tex: Require sesskey for debug actions 2014-12-18 16:40:46 -06:00
Tim Price 4105c6c329 MDL-48421 navigation: accounting for potential regression 2014-12-19 09:18:35 +11:00
Tim Price 07bd586492 MDL-48421 navigation: correctly load child categories if parent is loaded 2014-12-19 09:18:35 +11:00
Eric Merrill ada9b1ed77 MDL-48655 gradebook: Don't treat a scale with a gradepass of 0 as passed 2014-12-18 16:18:28 -05:00
Mark Nielsen 60c034fe27 MDL-48644 backup: Preserve log IP and time during restore 2014-12-18 11:36:47 -08:00
Tim Hunt 8850deb74d MDL-48653 behat: Steps to click and dismiss a dialogue.
We already had the corresponding
    I click on "Home" "link" confirming the dialogue
but I needed the opposite
    I click on "Home" "link" dismissing the dialogue
2014-12-18 19:31:27 +00:00
Eric Merrill 4077b738a0 MDL-48582 gradereport_grader: Adding back grade pass/fail CSS 2014-12-18 14:13:21 -05:00
Eric Merrill 0ab4c9d029 MDL-48638 database SQL: Fix typo in exception constructor 2014-12-18 13:34:20 -05:00
jrchamp 3925c74634 MDL-48591 calendar: Mini Cal Display DST Events 2014-12-18 09:28:09 -05:00
Dan Poltawski 2c48f2ed4c weekly release 2.8.1+ 2014-12-18 11:25:09 +00:00
Dan Poltawski 88d1474104 Merge branch 'install_28_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_28_STABLE 2014-12-18 11:25:07 +00:00
Mark Nelson b621820ea1 MDL-45324 mod_assign: always notify students when requested 2014-12-18 14:09:23 +08:00
Mark Nelson a2a8653aa2 MDL-48534 mod_assign: display correct workflow state and marker 2014-12-17 20:43:27 -08:00
David Monllao bfa4e840d8 Merge branch 'MDL-48235-28-fixes' of git://github.com/xow/moodle into MOODLE_28_STABLE 2014-12-18 12:37:01 +08:00
Zachary Durber dda30b1906 MDL-47442 mod_assign: Notify student when quick-grading grade 2014-12-18 12:15:41 +08:00
Marina Glancy c0070d8d88 MDL-48452 Completion: js correction to behat test 2014-12-18 11:28:31 +08:00
John Okely 582ab13d73 MDL-48235 mod_assign: Fix grade of 0 not showing on feedback page in oracle 2014-12-18 10:25:39 +08:00
Wiktor Wandachowicz f826599632 MDL-35078 enrol: allow times to be chose on bulk enrolment forms
Previously only a date was available, which made it ambigious whether
the the enrolment was inclusive of the date. Now we use a time to make
it less ambigious.

This matches changes done in other forms in MDL-41173.
2014-12-17 12:02:30 +00:00
Dan Poltawski cf7167cbae Merge branch 'MDL-44829_MOODLE_28_STABLE' of git://github.com/BenKelada/moodle into MOODLE_28_STABLE 2014-12-17 10:11:41 +00:00
BKelada 999f2b3aea MDL-44829 libraries: Update android user agent detection 2014-12-17 16:37:03 +11:00
David Monllao 5ef46dad4b Merge branch 'MDL-48243_M28' of git://github.com/lazydaisy/moodle into MOODLE_28_STABLE 2014-12-17 11:49:15 +08:00
Andrew Nicols 724b6446d1 MDL-48593 messageinbound: Correct header retrieval from IMAP server
Header retrieval should only be performed on the base message, and not each
part of the message as is currently performed.

This came to light because Google changed their IMAP server such that, if
you inform the data query that you wish to retrieve the headerText for a
part which does not contain a MIME header, then no message is retrieved in
the search causing a general failure of the IMAP fetch.

In normal circumstances, headers should only be a part of the base message
part.
2014-12-17 09:35:38 +08:00
Dan Poltawski 535a794f90 Merge branch 'MDL-43462_landscape_pdf_28' of git://github.com/davosmith/moodle into MOODLE_28_STABLE 2014-12-16 19:20:23 +00:00
Dan Poltawski fa59a794f6 Merge branch 'MDL-42501-28' of git://github.com/lameze/moodle into MOODLE_28_STABLE 2014-12-16 19:18:03 +00:00
Eloy Lafuente (stronk7) f48a890017 Merge branch 'MDL-48452-m28' of https://github.com/sammarshallou/moodle into MOODLE_28_STABLE 2014-12-16 19:09:18 +01:00
sam marshall 78d8dc13c8 MDL-48452 Completion: Expected date doesn't save when form is locked
The completion fields are locked when a user has already completed the
task, to prevent you accidentally causing it to recalculate the data.

This lock doesn't apply to the expected date field, as this doesn't
affect user completion. However, changes to the field in this
situation were incorrectly not saved.
2014-12-16 17:31:36 +00:00
Dan Poltawski e42056413c Merge branch 'MDL-48587-28' of git://github.com/xow/moodle into MOODLE_28_STABLE 2014-12-16 17:05:04 +00:00
Eloy Lafuente (stronk7) e61ab464f3 Merge branch 'm28_MDL-48532' of https://github.com/totara/moodle into MOODLE_28_STABLE 2014-12-16 15:47:29 +01:00
Dan Poltawski f0066ff80c Merge branch 'MDL-46442-28' of git://github.com/zbdd/moodle into MOODLE_28_STABLE 2014-12-16 13:54:12 +00:00
Dan Poltawski 5ef5c6c1e2 Merge branch 'MDL-47610-28' of git://github.com/zbdd/moodle into MOODLE_28_STABLE 2014-12-16 13:00:02 +00:00
Davo Smith a4c72b69e8 MDL-43462 assignfeedback_editpdf: fix display of landscape PDFs
The size of the drawing canvas is now set from the size of the generated page image, with automatic
scrolling if it is too wide to display
Absolutely-positioned nodes (comments + stamps) are repositioned as the drawing canvas is scrolled
2014-12-16 12:01:42 +00:00
Dan Poltawski a95cd718f9 Merge branch 'MDL-46651-MOODLE_28_STABLE-restore-course-completion-duplicate-key' of https://github.com/Trii/moodle into MOODLE_28_STABLE 2014-12-16 11:58:47 +00:00
Zachary Durber df91b1d861 MDL-47694 mod_assign: Grades require a grade to show as graded
Special thanks to Howard Miller.
2014-12-16 11:20:09 +01:00
Frederic Massart f34fc42d9b MDL-48495 curl: Limit usage of curl to HTTP and HTTPS protocols 2014-12-16 10:08:47 +00:00
David Monllao 43c3b0ec7b Merge branch 'MDL-48318-28' of git://github.com/lameze/moodle into MOODLE_28_STABLE 2014-12-16 16:41:21 +08:00
Zachary Durber 2a841b12fd MDL-46442 mod_assign: Notify users when grades are changed 2014-12-16 14:49:53 +08:00
David Monllao 73c991dd3f Merge branch 'MDL-48547-28' of git://github.com/danpoltawski/moodle into MOODLE_28_STABLE 2014-12-16 14:13:54 +08:00
David Monllao ecc60ffeb7 Merge branch 'm28_MDL-48567' of git://github.com/totara/moodle into MOODLE_28_STABLE 2014-12-16 13:34:41 +08:00
Brian Barnes 83ef244a83 MDL-48286 core_files: Improved accessibility of file management 2014-12-16 13:26:30 +08:00
Simey Lameze f6c149226f MDL-48580 report_log: fix site errors dropdown
Thanks Renaat Debleu for pointing this bug and share a solution.
2014-12-16 12:39:17 +08:00
David Monllao c0c2921586 Merge branch 'wip-MDL-48569-m28' of git://github.com/marinaglancy/moodle into MOODLE_28_STABLE 2014-12-16 12:27:02 +08:00
David Monllao 2abcbc0251 Merge branch 'MDL-48164-28' of git://github.com/andrewnicols/moodle into MOODLE_28_STABLE 2014-12-16 12:03:35 +08:00
Andrew Nicols 270705c279 Merge branch 'MDL-46472_28' of git://github.com/dmonllao/moodle into MOODLE_28_STABLE 2014-12-16 10:39:56 +08:00
Andrew Nicols 26156e72d9 MDL-48164 messageinbound: Attempt to detect autoreplies
Any message which includes:
* Precedence: bulk
* X-Autoreply: !no
* X-Autoresponse: !no
* Auto-Submitted: !no

Will not be detected as a bulk message and therefore ignored.
2014-12-16 09:35:58 +08:00
Andrew Nicols 7a56557c45 MDL-48164 mod_forum: Add additional headers to prevent OOF replies
This adds the X-Auto-Response-Suppress header to outbound messages.
2014-12-16 09:35:58 +08:00
Zachary Durber 4c23fb82ab MDL-47610 gradebook: Show extra credit icon in grades column 2014-12-16 09:17:00 +08:00
Eloy Lafuente (stronk7) 30fbe29595 Merge branch 'MDL-47037-28' of git://github.com/jethac/moodle into MOODLE_28_STABLE 2014-12-16 01:42:39 +01:00
Eloy Lafuente (stronk7) 5e425cc89b Merge branch 'MDL-46491-28' of git://github.com/andrewnicols/moodle into MOODLE_28_STABLE 2014-12-16 00:36:18 +01:00
Eloy Lafuente (stronk7) b2a786539e Merge branch 'MDL-48556-28' of git://github.com/ankitagarwal/moodle into MOODLE_28_STABLE 2014-12-15 17:54:04 +01:00
Dan Poltawski 744dc6e647 Merge branch 'MDL-38128_28' of https://github.com/dmonllao/moodle into MOODLE_28_STABLE 2014-12-15 16:10:17 +00:00
Dan Poltawski 0e956b0452 Merge branch 'MDL-45324_28' of git://github.com/jonof/moodle into MOODLE_28_STABLE 2014-12-15 14:59:37 +00:00
Dan Poltawski 82dd025984 Merge branch 'MDL-47176_MOODLE_28_STABLE' of https://github.com/crazyserver/moodle into MOODLE_28_STABLE 2014-12-15 14:14:24 +00:00
Dan Poltawski b2e9074f3c Merge branch 'MDL-48169-28' of git://github.com/jethac/moodle into MOODLE_28_STABLE 2014-12-15 12:32:13 +00:00
Dan Poltawski 73ed5ce9fb Merge branch 'MDL-47475-28' of git://github.com/andrewnicols/moodle into MOODLE_28_STABLE 2014-12-15 12:21:11 +00:00
Joseph Rezeau cd16f43ba1 MDL-36673 mod_lesson: slideshow mode not working 2014-12-15 11:55:34 +00:00
David Monllao 49b881c876 Merge branch 'MDL-48235-assign-reopen-until-pass-28_STABLE' of git://github.com/mpetrowi/moodle into MOODLE_28_STABLE 2014-12-15 17:33:09 +08:00
John Okely ef19d61d4d MDL-48587 core: Fix error in getremoteaddr for unsupported php versions 2014-12-15 16:56:44 +08:00
Simey Lameze a54229b629 MDL-42501 course: add help icon on delete gradebook options 2014-12-15 16:23:11 +08:00
David Monllao 373fd13876 Merge branch 'wip-MDL-48347-28' of git://github.com/abgreeve/moodle into MOODLE_28_STABLE 2014-12-15 13:45:22 +08:00
Jetha Chan 244c69709e MDL-48088 calendar: normalize DTEND, add romance standard time
Thanks to Cedric Mortiers (cmortiers@stjohns.be) for providing the patch.
2014-12-15 12:10:29 +08:00
Andrew Nicols 675564277d MDL-47475 mod_assign: Copy files to other group members for editpdf 2014-12-15 08:50:48 +08:00
AMOS bot 3e7b053221 Automatically generated installer lang files 2014-12-13 00:03:57 +08:00
Pau Ferrer Ocaña abcec0fe9a MDL-47176 qtype_match: Avoid sql_compare to solve problems with Oracle 2014-12-12 16:04:24 +01:00
David Monllao fa0a765c20 MDL-38128 mod_assign: Counts and groups unit tests 2014-12-12 15:07:57 +08:00
David Monllao 5ad9e84664 MDL-46472 theme: Removing standard as an uninstallable theme 2014-12-12 13:33:46 +08:00
David Monllao 79a143130b MDL-38128 mod_assign: Fixing count teams and submissions with status
We should restrict the groups to the activity active group. Also
improving performance caching get_submission_group() results.
2014-12-12 13:28:14 +08:00
David Monllao 08b7d0bacc MDL-38128 mod_assign: Adding group selector to grading summary page
Thanks to Pau Ferrer Ocaña and Avi Levy for
their work on this issue.
2014-12-12 13:28:14 +08:00
Andrew Nicols b1a381ffcf MDL-48224 cron: Buffer SMTP connections around tasks 2014-12-12 10:39:19 +08:00
Marina Glancy 3719994057 MDL-48569 profile: behat test for user full profile access 2014-12-12 10:29:22 +08:00
Marina Glancy be2641dc8c MDL-48569 profile: show link to full profile if anybody can see it 2014-12-12 10:29:22 +08:00
Daniel Thies 3c726433cc MDL-48213 filter_algebra: Allow cookies in debug script 2014-12-11 20:00:45 -06:00
Sam Hemelryk 78a4b45ffc MDL-28067 navigation: my private files in profile only 2014-12-12 13:48:10 +13:00
Sam Hemelryk 3900f28e28 MDL-37680 repositories: added blocks to manage page 2014-12-12 13:37:01 +13:00
Joshua Johnston 48d0e75068 MDL-46651 Backup: Handle duplicate course completions during restore
Cron can cause duplicate completion records if triggered during a long
running restore process. If this is the case, replace the new record
with the record from the backup file
2014-12-11 15:58:00 -05:00
Sam Hemelryk c7a0fb64a0 MDL-48568 cache: stores now determine testing
Cache stores are now responsible for deciding if they are suitable
for use as the primary cache store during unit and acceptance tests

Changes are as follows:
* New method: cache_store::ready_to_be_used_for_testing
* Core cache store have been updated to override this method as
  required.
* MongoDB usesafe default changed to true to match actual default
  behaviour.
2014-12-12 09:34:25 +13:00
Dan Poltawski 8542d1875f weekly release 2.8.1+ 2014-12-11 09:55:19 +00:00
Dan Poltawski 087fd13442 Merge branch 'install_28_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_28_STABLE 2014-12-11 09:55:17 +00:00
Ankit Agarwal dd96737556 MDL-48556 backup: Use correct conditions before checking dir permissions 2014-12-11 14:34:10 +05:30
Andrew Nicols fde7c5f003 MDL-46491 course: Correct activity visibility on section show 2014-12-11 14:50:50 +08:00
Brian Barnes 4afb72f2de MDL-48567 core_badges: fixed display of badge created date 2014-12-11 14:50:33 +13:00
Avi Levy 23f751ee38 MDL-47037 grader_gradereport: Enable sort in other language then English 2014-12-11 07:39:42 +08:00
Frederic Massart 79fc19f5d7 MDL-48496 block_rss_client: Do not display curl error messages 2014-12-11 00:26:30 +01:00
AMOS bot f89ee726b4 Automatically generated installer lang files 2014-12-11 00:04:05 +08:00
Jonathon Fowler 9592c8e99c MDL-45324 assign: notify when workflow is Off, or if state is Released
When marking workflow is enabled, students will be notified only when
the workflow state transitions to 'Released'. Until that happens,
sending of messages will be held and the 'Notify students' grading
form option will be locked.

Additionally, the batch set marking workflow state facility gains
the 'Notify students' option.

Credit to Steve Upton and David Balch for the basis of this patch.
2014-12-10 22:28:20 +10:00
Sam Hemelryk 18453fec76 MDL-48430 customment: improved exception handling 2014-12-10 13:26:11 +01:00
pau.ferrer-ocana 4656c6ab53 MDL-48430 custom_menu: Malformed url in custom menu cannot break the platform 2014-12-10 13:26:11 +01:00
Dan Poltawski 36700a125e MDL-48547 thirdparty: remove incorrect entry 2014-12-09 23:12:36 +00:00
Dan Poltawski 80154bd033 Merge branch 'MDL-47323-enrol-plugin-backup-28_STABLE' of https://github.com/mpetrowi/moodle into MOODLE_28_STABLE 2014-12-09 22:30:01 +00:00
Dan Poltawski fd37fba94b Merge branch 'MDL-45430-28' of git://github.com/ankitagarwal/moodle into MOODLE_28_STABLE 2014-12-09 21:22:18 +00:00
Sam Hemelryk f3586f59c4 Merge branch 'm28_MDL-48389' of https://github.com/totara/moodle into MOODLE_28_STABLE 2014-12-10 09:27:28 +13:00
Matt Petro 384f71b42c MDL-48235 mod_assign: Fix reopen until pass behavior 2014-12-09 10:45:23 -05:00
Eloy Lafuente (stronk7) 55f47d94f7 Merge branch 'MDL-31822_28' of https://github.com/dmonllao/moodle into MOODLE_28_STABLE 2014-12-09 16:12:24 +01:00
Dan Poltawski 673d38078c MDL-45679 mod_lesson: do not overqualify styles 2014-12-09 12:35:18 +00:00
Dan Poltawski e732d0d9ca Merge branch 'MDL-45679_28' of git://github.com/jmvedrine/moodle into MOODLE_28_STABLE 2014-12-09 12:34:20 +00:00
Dan Poltawski 28e38410c5 Merge branch 'MDL-48394-28' of git://github.com/jethac/moodle into MOODLE_28_STABLE 2014-12-09 10:53:38 +00:00
Dan Poltawski b16b0a61a4 Merge branch 'MDL-41846-28' of git://github.com/xow/moodle into MOODLE_28_STABLE 2014-12-09 10:35:10 +00:00
Sam Hemelryk 19f5623bf6 Merge branch 'wip_MDL-36499_M28' of git://github.com/gjb2048/moodle into MOODLE_28_STABLE 2014-12-09 16:57:11 +13:00
David Monllao 6967547062 MDL-31822 course: Formatting the section name 2014-12-09 11:52:30 +08:00
David Balch 519413892e MDL-31822 course: Show custom Section name on Front page. 2014-12-09 11:52:28 +08:00
Sam Hemelryk ceee447066 Merge branch 'wip-MDL-46486-m28' of git://github.com/marinaglancy/moodle into MOODLE_28_STABLE 2014-12-09 16:20:50 +13:00
Dan Poltawski 934c72979b MDL-40552 course: fixup unit test
Previously there was an assertion which was never used, now
we ensure to test the course themes functionality each time.
2014-12-09 16:14:23 +13:00
Sam Hemelryk bf42737370 Merge branch 'MDL-34437-28' of git://github.com/ankitagarwal/moodle into MOODLE_28_STABLE 2014-12-09 15:58:56 +13:00
Sam Hemelryk 6966842459 Merge branch 'm28_MDL-46172' of https://github.com/greg-or/moodle-mod_assign into MOODLE_28_STABLE 2014-12-09 15:38:51 +13:00
Brian Barnes 9e06074bbe MDL-48389 forms: added page title to help text 2014-12-09 15:18:54 +13:00
Sam Hemelryk 41ea5affc4 Merge branch 'mdl48517_28' of https://github.com/tlevi/moodle into MOODLE_28_STABLE 2014-12-09 15:16:00 +13:00
Brian Barnes 8e0c012bbb MDL-48532 core_roles: Set correct heading on user roles page 2014-12-09 14:24:42 +13:00
Sam Hemelryk f071a177b0 Merge branch 'wip-MDL-48366-m28' of git://github.com/marinaglancy/moodle into MOODLE_28_STABLE 2014-12-09 13:43:38 +13:00
Sam Hemelryk e0b7f5492a Merge branch 'wip-mdl-48426-m28' of https://github.com/rajeshtaneja/moodle into MOODLE_28_STABLE 2014-12-09 12:13:36 +13:00
Sam Hemelryk 664d834cd1 MDL-45699 cache: renamed cache_config_phpunittest
Renamed cache_config_phpunittest to cache_config_testing
2014-12-09 10:51:20 +13:00
Sam Hemelryk faa3b4022f MDL-45699 cache: acceptance test improvements
We now use the unit test cache config class when running
acceptance tests so that the same defines are applicable there.
2014-12-09 10:51:17 +13:00
Eloy Lafuente (stronk7) 2d16c385d7 Merge branch 'MDL-48255-28' of git://github.com/lameze/moodle into MOODLE_28_STABLE 2014-12-08 19:15:12 +01:00
Eloy Lafuente (stronk7) b2959dbe9b Merge branch 'wip-MDL-48390-m28' of git://github.com/marinaglancy/moodle into MOODLE_28_STABLE 2014-12-08 18:49:09 +01:00
Dan Poltawski 5eb62533cd Merge branch 'MDL-48410_28' of git://github.com/timhunt/moodle into MOODLE_28_STABLE 2014-12-08 15:19:11 +00:00
Dan Poltawski 7e5947b986 Merge branch 'MDL-48373_28' of git://github.com/timhunt/moodle into MOODLE_28_STABLE 2014-12-08 15:15:41 +00:00
Dongsheng Cai 592f05a064 MDL-35983 Try to use real file name from EQUELLA 2014-12-08 14:24:09 +00:00
Dan Poltawski 4f2e496184 Merge branch 'MDL-47246_28' of git://github.com/dmonllao/moodle into MOODLE_28_STABLE 2014-12-08 13:34:03 +00:00
Dan Poltawski 793e74fef3 Merge branch 'MDL-14908-28' of git://github.com/FMCorz/moodle into MOODLE_28_STABLE 2014-12-08 13:22:17 +00:00
Dan Poltawski bc11b6c138 MDL-48273 upgrade.txt version fix 2014-12-08 11:23:11 +00:00
Simey Lameze 788727862d MDL-48273 singleview: unit tests of load_user method 2014-12-08 11:22:38 +00:00
Simey Lameze adbbc7bd9e MDL-48273 singleview: add load_user method and other group validations
All credits goes to Damyon, thanks!
2014-12-08 11:22:38 +00:00
David Monllao 18450eab27 MDL-47246 mod_forum: Limit last post restriction to Q and A 2014-12-08 14:50:42 +08:00
Adrian Greeve aef3679316 MDL-48347 gradebook: More behat tests for single view. 2014-12-08 14:25:39 +08:00
Adrian Greeve fe32471819 MDL-48347 gradebook: Single view shows all grade items.
Manual grade items, course totals, and categroy totals
were not being displayed in the single view.
2014-12-08 14:24:39 +08:00
Jetha Chan c8316e2894 MDL-48169 themes: extra upgrade notes 2014-12-08 14:08:05 +08:00
Tony Levi 13dfdb0b5f MDL-48517: behat: Fix reset ordering reversal (MDL-48302) 2014-12-08 13:08:31 +10:30
Sam Hemelryk 36814aaec6 Merge branch 'MDL-37704-28' of git://github.com/ankitagarwal/moodle into MOODLE_28_STABLE 2014-12-08 14:51:01 +13:00
Sam Hemelryk fef242fa65 Merge branch 'MDL-48058-28' of git://github.com/andrewnicols/moodle into MOODLE_28_STABLE 2014-12-08 13:58:24 +13:00
Gareth J Barnard 422d1c4625 MDL-36499 javascript: Expand height of the file element in embedded view. 2014-12-06 12:11:56 +00:00
Sam Hemelryk 0bd78bb334 MDL-45699 behat: can now use alt cache config 2014-12-06 12:09:49 +13:00
Gregory Faller 14cd37913c MDL-46172 mod/assign: Stop suspended users getting assign group emails 2014-12-06 08:29:08 +10:30
AMOS bot 3cca19d176 Automatically generated installer lang files 2014-12-06 00:03:54 +08:00
Jean-Michel Vedrine 468efb3171 MDL-45679 mod_lesson: Essay grading page has no mark for essay status 2014-12-05 15:04:58 +01:00
Tim Hunt b56a1518ad MDL-48410 behat, quiz: step for efficiently adding questions 2014-12-05 12:18:06 +00:00
Tim Hunt fed2e156e2 MDL-48373 behat, questions: convert tests to use the new steps
The new steps make it more efficient to create questions.

While making the changes, I took the opportunity to alter the tests to
follow Behat best practices, and only test one thing per scenario.
2014-12-05 12:18:05 +00:00
Tim Hunt 51a0c7cda7 MDL-48373 behat: generators for questions and categories 2014-12-05 12:18:05 +00:00
Tim Hunt 6292878644 MDL-48373 behat: find table columns better.
It was not possible to select the question bank 'Created by'
or 'Modified by' columns without this change.
2014-12-05 12:18:04 +00:00
Tim Hunt 201e19d7b6 MDL-48373 behat: new container selector for list items. 2014-12-05 12:18:04 +00:00
Eloy Lafuente (stronk7) ae2a9c0e66 weekly release 2.8.1+ 2014-12-05 11:05:30 +01:00
Eloy Lafuente (stronk7) dc2dd0cf72 Merge branch 'install_28_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_28_STABLE 2014-12-05 11:05:24 +01:00
Mark Nielsen 9c08bf4a6a MDL-48058 core_message: Default message outputs: Maintain Forced status 2014-12-05 14:43:57 +08:00
Ankit Agarwal ba1f0fbd39 MDL-45430 mod_book: Automate MDLQA-2428
This test verifies that an admin can generate and view all the book log entries
2014-12-05 09:26:32 +05:30
Rajesh Taneja e784850b5a MDL-48318 behat: Fixed JS Exception
M is not created on all pages, like cron and
Steps which check for exported data. So we need
to ensure M is defined, before using it in
behat_hooks::wait_for_pending_js()
2014-12-05 11:47:49 +08:00
John Okely 6ae671b784 MDL-41846 repository_url: Escape > < ' " in input url
And throw an exception when a url is incorrectly formatted
2014-12-05 11:23:42 +08:00
John Okely dbe6a4d188 MDL-41846 repository_url: Convert spaces to %20 in input url 2014-12-05 11:23:42 +08:00
Andrew Nicols 9427be40aa MDL-48309 mod_forum: Do not escape ampersands in plain text email 2014-12-04 12:59:08 +01:00
Eloy Lafuente (stronk7) acfbe693b2 Merge branch '48425-48374-28' of git://github.com/samhemelryk/moodle into MOODLE_28_STABLE 2014-12-04 12:59:07 +01:00
Eloy Lafuente (stronk7) 760c41ca09 MDL-48374 behat: Added missing $session 2014-12-04 12:59:07 +01:00
Rajesh Taneja 8d7e6ecfc8 MDL-48374 behat: Check flag before searching for span on page 2014-12-04 12:59:07 +01:00
Andrew Nicols aa39908cef MDL-48374 behat: improved page load detection
Check that page load detection was correctly started before testing that a
new page was loaded.

Without this, it is possible to have mutliple subsequent cases of:
    And a new page should have loaded since I started watching

Without first starting the page load detection.
2014-12-04 12:59:06 +01:00
Sam Hemelryk fba1d33198 Merge branch 'M28_MDL46116_IMSCP_container_items' of https://github.com/Dave-B/moodle into MOODLE_28_STABLE 2014-12-04 12:59:05 +01:00
Dan Poltawski f304fd2e6c Merge branch 'wip-mdl-48290-m28' of https://github.com/rajeshtaneja/moodle into MOODLE_28_STABLE 2014-12-04 12:59:05 +01:00
Dan Poltawski c538b47443 Merge branch 'MDL-34627_28' of https://github.com/dmonllao/moodle into MOODLE_28_STABLE 2014-12-04 12:59:04 +01:00
Eloy Lafuente (stronk7) ea2a48fb4a Merge branch '48374-28' of git://github.com/samhemelryk/moodle into MOODLE_28_STABLE 2014-12-04 12:59:04 +01:00
Sam Hemelryk f40124002b Merge branch 'MDL-40419-28-2nd' of git://github.com/FMCorz/moodle into MOODLE_28_STABLE 2014-12-04 12:59:03 +01:00
Dan Poltawski 8f8ace5cdd Merge branch 'wip_MDL-48420_m28_lasttypo' of https://github.com/skodak/moodle into MOODLE_28_STABLE 2014-12-04 12:59:03 +01:00
Dan Poltawski efc6ed5e34 Merge branch 'MDL-48342_28' of git://github.com/jmvedrine/moodle into MOODLE_28_STABLE 2014-12-04 12:59:02 +01:00
Dan Poltawski 7a1b7e41d9 Merge branch 'MDL-40241_28' of https://github.com/dmonllao/moodle into MOODLE_28_STABLE 2014-12-04 12:59:02 +01:00
Marina Glancy f8b446f399 MDL-48366 blocks: always display custom regions in dropdown 2014-12-04 16:08:28 +08:00
AMOS bot 708cabea4d Automatically generated installer lang files 2014-12-04 00:04:36 +08:00
Matt Petro 9f4662b228 MDL-47323 backup: added enrol plugin backup structure and annotation 2014-12-02 22:03:43 -05:00
David Balch 186f4563cb MDL-46116 mod_imscp: Fix some jshint issues. 2014-12-02 11:17:40 +00:00
Simey Lameze 53e96ae4e1 MDL-48255 auth_ldap: make ldap cookie check more robust
Thanks to Baptiste Desprez for spotting this and provide a solution.
2014-12-02 15:32:33 +08:00
Ankit Agarwal 39ab2e44d0 MDL-37704 user_profile: Make sure description field can be locked
Thanks JD for the initial patch.
2014-12-02 09:43:55 +05:30
Rajesh Taneja 5367656ae8 MDL-48290 behat: Add log out after checking exported file
If the download step is the last in the scenario then we
can sometimes run into the situation where the download page
causes a http redirect but behat has already conducted its
reset (generating an error). By putting a logout step we avoid
behat doing the reset until we are off that page.
2014-12-02 09:39:27 +08:00
Sam Hemelryk 2fca03ec2a MDL-48425 course: management behat tests improved 2014-12-02 11:45:16 +13:00
Sam Hemelryk f2ebd53dba MDL-48374 behat: improved page load exceptions
The following improvements have been made to the page load watching:
* Improved the exceptions when a page load expectation fails.
* Added an exception if start watching happens twice without a page load.
* Improved the page load span and xpath to make it faster and less likely
  to interfer in the future.
2014-12-02 11:44:02 +13:00
Tim Hunt 886bc21b8b MDL-48374 behat: new steps for detecting page loads. 2014-12-02 08:58:11 +13:00
Mary Evans 5b1efbcab4 MDL-48243 theme_bootstrapbase: Fixed inconsistancy between LTR/RTL LESS 2014-12-01 17:32:46 +00:00
Didier Raboud 9dfc203245 MDL-34437 shibboleth: Correct the shibboleth wiki links. 2014-12-01 14:57:37 +05:30
Frederic Massart 278642a380 MDL-14908 user: Parents are not restricted when separated groups is used 2014-12-01 15:16:15 +08:00
David Monllao 1101fd22f2 MDL-40241 core_completion: Minor fixes to provided patch
Thanks to Aaron Barnes and Jon Sharp for working on this issue.
2014-12-01 15:01:14 +08:00
Marina Glancy db956269fe MDL-46486 coursecat: remove function forgotten in MDL-38147 2014-12-01 13:22:38 +08:00
Rajesh Taneja 1538a20679 MDL-48426 behat: soft-reset mink session before scenario 2014-12-01 12:40:18 +08:00
Rajesh Taneja 4eac169974 MDL-48426 behat: Wait for redirection after save
After saving wiki comment, page is redirected
Make sure to wait for redirection after save
to avoid random fails
2014-12-01 11:25:26 +08:00
Charles Fulton 5445d98144 MDL-34627 feedback: Convert default format value during restore 2014-12-01 10:58:38 +08:00
Aaron Barnes 258c0449b6 MDL-40241 blocks_completionstatus: Fix notices 2014-12-01 10:05:50 +08:00
Aaron Barnes 0a39d64927 MDL-40241 completion: Default roles unable to manually complete course
Thanks to Jon Sharp for authoring the original patch!
2014-12-01 10:05:48 +08:00
Sam Hemelryk c40f1f184f Merge branch 'wip-MDL-48377-m28' of git://github.com/marinaglancy/moodle into MOODLE_28_STABLE 2014-12-01 14:02:15 +13:00
Sam Hemelryk fc7ab00709 Merge branch 'MDL-48382_28' of git://github.com/timhunt/moodle into MOODLE_28_STABLE 2014-12-01 13:58:20 +13:00
Sam Hemelryk a76c20c20e Merge branch 'MDL-46618_m28' of git://github.com/kordan/moodle into MOODLE_28_STABLE 2014-12-01 11:59:36 +13:00
Sam Hemelryk 824c31e592 Merge branch 'MDL-14402-28' of git://github.com/andrewnicols/moodle into MOODLE_28_STABLE 2014-12-01 11:35:53 +13:00
Sam Hemelryk cba386b636 Merge branch 'MDL-48384-28' of git://github.com/danpoltawski/moodle into MOODLE_28_STABLE 2014-12-01 11:31:36 +13:00
Sam Hemelryk 438b185951 Merge branch 'MDL-48309-28' of git://github.com/andrewnicols/moodle into MOODLE_28_STABLE 2014-12-01 11:10:29 +13:00
Sam Hemelryk 3f1b091aa2 MDL-47133 editor_atto: fixed lint errors 2014-12-01 10:36:38 +13:00
Sam Hemelryk 0fec60deea Merge branch 'MDL-47133-28' of git://github.com/FMCorz/moodle into MOODLE_28_STABLE 2014-12-01 10:19:31 +13:00
Petr Skoda 9e28b040df MDL-48420 test: fix lasttnamephonetic typo 2014-12-01 09:26:22 +13:00
Sam Hemelryk f7e646a5c1 Merge branch 'MDL-48227-28' of git://github.com/ankitagarwal/moodle into MOODLE_28_STABLE 2014-12-01 09:14:50 +13:00
Ankit Agarwal d2b8475e3e MDL-42717 backups: set correct backup status and add logs
Set a correct backup status of ERROR when we fail to copy a file to an external directory given the backup configs demand it.
Also a lot of logs are added around this area to let admins easily find the problem if backup fails because of directory permissions.
2014-12-01 09:11:06 +13:00
Sam Hemelryk af9e696b79 Merge branch 'wip-mdl-48192-m28' of https://github.com/rajeshtaneja/moodle into MOODLE_28_STABLE 2014-12-01 08:33:57 +13:00
AMOS bot aa29beabe8 Automatically generated installer lang files 2014-11-29 00:04:01 +08:00
Jean-Michel Vedrine 71a673cc3b MDL-48342 Question: qformat_default::readquestion is broken 2014-11-28 15:38:21 +01:00
Tim Hunt 105dbe93d5 MDL-48382 quiz behat: make add question step more robust. 2014-11-28 13:43:31 +00:00
Ankit Agarwal d141109dc2 MDL-48227 forum: Update the message shown in emails
AMOS BEGIN
 CPY [deleteoriginalonreply,mod_forum],[replytopostbyemail,mod_forum]
AMOS END
2014-11-28 15:31:25 +05:30
Dan Poltawski 97cf440401 weekly release 2.8.1+ 2014-11-28 08:04:49 +00:00
Dan Poltawski bb2f54224c Merge branch 'install_28_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_28_STABLE 2014-11-28 08:04:47 +00:00
Damyon Wiese 6c20557845 Revert "Merge branch 'MDL-38128_28' of https://github.com/dmonllao/moodle into MOODLE_28_STABLE"
This reverts commit 349c877872.

This reverts commit f67638b05f, reversing
changes made to c604a8079a.
2014-11-28 15:12:30 +08:00
David Monllao 349c877872 MDL-38128 mod_assign: Changes in grading summary page using team submissions
If there is an active group and (groupmode != NOGROUPS)
the displayed info is related with that single group.
2014-11-28 05:49:22 +08:00
Dan Poltawski 5ae74cad15 Revert "Merge branch 'MDL-43127-28' of git://github.com/FMCorz/moodle into MOODLE_28_STABLE"
This reverts commit d758f054b9, reversing
changes made to f67638b05f.
2014-11-27 09:35:00 +00:00
Dan Poltawski e393866a36 Revert "Merge branch 'MDL-43127-28-fixup' of https://github.com/FMCorz/moodle into MOODLE_28_STABLE"
This reverts commit f603096c47, reversing
changes made to 5169661ee2.
2014-11-27 09:34:58 +00:00
Rajesh Taneja 99c0919993 MDL-48192 tool_monitor: check output buffer and not ignore it.
Check what is thrown in output buffer and
make sure output is expected output.
2014-11-27 17:03:54 +08:00
Frederic Massart c83dc49d3c MDL-40419 backup: Advanced comparison when restoring blocks in course 2014-11-27 16:20:11 +08:00
Frederic Massart 9a59701f0f MDL-40419 blocks: Function to get page type patterns from pattern 2014-11-27 16:20:11 +08:00
Jetha Chan 1cd8f3c645 MDL-48394 core_renderers: remove role=presentation on user picture links 2014-11-27 15:34:10 +08:00
David Monllao c3e67edfac MDL-22309 enrol_self: Fixing get_role_users usage 2014-11-27 11:34:01 +08:00
Marina Glancy 92b71540b3 MDL-48390 cohorts: do not limit number of cohorts in dropdowns 2014-11-27 11:15:09 +08:00
Eloy Lafuente (stronk7) bba645d102 Merge branch 'wip-mdl-48190-m28' of https://github.com/rajeshtaneja/moodle into MOODLE_28_STABLE 2014-11-26 13:25:41 +01:00
Dan Poltawski 7cc923f443 MDL-48384 thirdpartylibs: correct location of yui 2014-11-26 12:13:04 +00:00
Frederic Massart da53c524f1 MDL-47133 editor_atto: Use strict validation of keyboard shortcuts 2014-11-26 17:40:50 +08:00
Dan Poltawski f603096c47 Merge branch 'MDL-43127-28-fixup' of https://github.com/FMCorz/moodle into MOODLE_28_STABLE 2014-11-26 09:23:08 +00:00
Frederic Massart 480c254ac1 MDL-43127 tool_uploadcourse: Empty enrolment method is acceptable
Without the patch a course would not be created if it contained
an enrolment method column with an empty value. e.g.:

shortname,fullname,category,enrolment_1,enrolment_1_disable
courserestored,Course restored,1,,
courserestored2,Course restored 2,manual,1
2014-11-26 17:14:50 +08:00
Andrew Nicols 5169661ee2 MDL-48148 mod_forum: Use correct original subject when handling replies 2014-11-26 08:56:24 +00:00
Dan Poltawski a76630d700 Merge branch 'MDL-48210-28-checker-caching' of git://github.com/mudrd8mz/moodle into MOODLE_28_STABLE 2014-11-26 08:20:42 +00:00
David Mudrák 475f4a6272 MDL-48210 updates checker: Fix empty return type
Credit goes to Marina Glancy for catching during the testing.
2014-11-26 09:07:50 +01:00
Marina Glancy 9e74aef0a9 MDL-48377 forum: do not swallow spaces in notification emails 2014-11-26 12:17:40 +08:00
Sam Hemelryk 58aabfcedd Merge branch 'MDL-22309_28' of git://github.com/dmonllao/moodle into MOODLE_28_STABLE 2014-11-26 09:06:11 +13:00
Sam Hemelryk eccf806ad0 Merge branch 'MDL-48191-28' of git://github.com/jethac/moodle into MOODLE_28_STABLE
Conflicts:
	grade/report/grader/yui/build/moodle-gradereport_grader-gradereporttable/moodle-gradereport_grader-gradereporttable-min.js
2014-11-26 08:59:13 +13:00
Sam Hemelryk 1198f5ae01 Merge branch 'MDL-47329-28' of git://github.com/jethac/moodle into MOODLE_28_STABLE 2014-11-26 08:43:36 +13:00
Eloy Lafuente (stronk7) cc9161bebc Merge branch 'MDL-48276-28' of git://github.com/danpoltawski/moodle into MOODLE_28_STABLE 2014-11-25 18:45:31 +01:00
Eloy Lafuente (stronk7) bea43ad49a Merge branch 'MDL-48277-28' of git://github.com/danpoltawski/moodle into MOODLE_28_STABLE 2014-11-25 18:42:12 +01:00
Heiko Schach 9c41fd2377 MDL-48036 course: change multilang cache key 2014-11-25 14:35:14 +00:00
Dan Poltawski b0b7c2d808 Merge branch 'MDL-41155-28' of git://github.com/gurgus/moodle into MOODLE_28_STABLE 2014-11-25 13:18:14 +00:00
Eloy Lafuente (stronk7) 3ca610e89a Merge branch 'MDL-48210-28-checker-caching' of git://github.com/mudrd8mz/moodle into MOODLE_28_STABLE 2014-11-25 13:22:14 +01:00
Dan Poltawski 71d7788366 Merge branch 'MDL-46416-28' of git://github.com/FMCorz/moodle into MOODLE_28_STABLE 2014-11-25 11:21:21 +00:00
Dan Poltawski d758f054b9 Merge branch 'MDL-43127-28' of git://github.com/FMCorz/moodle into MOODLE_28_STABLE 2014-11-25 11:18:52 +00:00
Dan Poltawski f67638b05f Merge branch 'MDL-38128_28' of https://github.com/dmonllao/moodle into MOODLE_28_STABLE 2014-11-25 11:07:53 +00:00
Eloy Lafuente (stronk7) c604a8079a Merge branch '48189-28' of git://github.com/samhemelryk/moodle into MOODLE_28_STABLE 2014-11-25 11:23:34 +01:00
Dave Cooper 9b36c64056 MDL-41155 Lesson: Fixed multiple question attempts logic
Thanks to Rajneel Totaram for providing this patch.
2014-11-25 14:16:37 +08:00
Dave Cooper b110dd77a4 MDL-41155 Lesson: Added behat tests for multiple question attempts 2014-11-25 14:16:37 +08:00
Frederic Massart 086199c4e9 MDL-43127 tool_uploadcourse: Add support for more enrolment methods 2014-11-25 11:01:30 +08:00
Sam Hemelryk b42123f38c Merge branch 'MDL-22043-28' of git://github.com/andrewnicols/moodle into MOODLE_28_STABLE 2014-11-25 15:54:20 +13:00
David Monllao c440b9947e MDL-38128 mod_assign: Adding group selector to grading summary page
Thanks to Pau Ferrer Ocaña and Avi Levy for
their work on this issue.
2014-11-25 10:52:29 +08:00
Rajesh Taneja b64a526dba MDL-48190 behat: Fixed visit background in MoodleScenarioTester 2014-11-25 09:42:38 +08:00
Sam Hemelryk b9bfc5f15a MDL-23839 navigation: fixed php5.5ism 2014-11-25 14:35:47 +13:00
Andrew Nicols 94ae0d9f3b MDL-48309 mod_forum: Handle discussion subscriptions correctly 2014-11-25 09:29:39 +08:00
Andrew Nicols da9d46b5c0 MDL-48309 mod_forum: Add discussion subscription to the navigation 2014-11-25 09:29:38 +08:00
Sam Hemelryk b3351c0133 Merge branch 'MDL-23839-28' of git://github.com/andrewnicols/moodle into MOODLE_28_STABLE 2014-11-25 14:07:24 +13:00
Sam Hemelryk e8ffea7bd5 Merge branch 'MDL-23912-28' of git://github.com/jethac/moodle into MOODLE_28_STABLE 2014-11-25 12:29:04 +13:00
Eloy Lafuente (stronk7) 25e135af74 Merge branch '38343-28' of git://github.com/samhemelryk/moodle into MOODLE_28_STABLE 2014-11-25 00:28:18 +01:00
Eloy Lafuente (stronk7) e4e04cdb84 Merge branch '48304-28' of git://github.com/samhemelryk/moodle into MOODLE_28_STABLE 2014-11-25 00:23:49 +01:00
Sam Hemelryk 222f015381 Merge branch 'MDL-48246-M28' of git://github.com/lazydaisy/moodle into MOODLE_28_STABLE
Conflicts:
	theme/bootstrapbase/style/moodle.css
2014-11-25 10:52:59 +13:00
Sam Hemelryk 5a9e656628 Merge branch 'm28_MDL-48265' of https://github.com/totara/moodle into MOODLE_28_STABLE 2014-11-25 09:42:56 +13:00
Dan Poltawski 5ff9df857e Merge branch '47832-28-removed' of git://github.com/samhemelryk/moodle into MOODLE_28_STABLE 2014-11-24 17:30:20 +00:00
Dan Poltawski c97952e6af Merge branch 'MDL-45867-m28-master' of https://github.com/dthies/moodle into MOODLE_28_STABLE 2014-11-24 17:11:15 +00:00
Mark Nelson e2e8a3e859 MDL-47601 core_backup: ensure removal of automated backups 2014-11-24 17:03:04 +00:00
Dan Poltawski edfb84865a Merge branch 'wip-MDL-48252-28' of git://github.com/abgreeve/moodle into MOODLE_28_STABLE 2014-11-24 16:29:27 +00:00
AMOS bot 78d7e090b2 Automatically generated installer lang files 2014-11-25 00:04:11 +08:00
Dan Poltawski 774522ff7e Merge branch 'MDL-48274-28' of git://github.com/andrewnicols/moodle into MOODLE_28_STABLE 2014-11-24 15:37:53 +00:00
Dan Poltawski 3a9daf6f9a Merge branch 'wip-mdl-48302-m28' of https://github.com/rajeshtaneja/moodle into MOODLE_28_STABLE 2014-11-24 11:57:11 +00:00
Dan Poltawski 1913d60133 Merge branch 'MDL-48180-28' of git://github.com/FMCorz/moodle into MOODLE_28_STABLE 2014-11-24 11:53:55 +00:00
David Monllao 3aeec06364 MDL-22309 report_singleview: Fixing wrong uses of get_role_users() 2014-11-24 10:59:02 +08:00
David Monllao de64c655e2 MDL-22309 accesslib: Preventing incorrect get_role_users() uses 2014-11-24 10:59:02 +08:00
David Monllao 7d3f51c262 MDL-22309 accesslib: Adding unit test to expose the issue 2014-11-24 10:59:02 +08:00
Sam Hemelryk b4d7288e94 Merge branch 'MDL-48148-28' of git://github.com/andrewnicols/moodle into MOODLE_28_STABLE 2014-11-24 15:58:03 +13:00
Sam Hemelryk 43e413f93f Merge branch 'MDL-48064-m28-master' of https://github.com/dthies/moodle into MOODLE_28_STABLE 2014-11-24 14:54:25 +13:00
Andrew Nicols afcae55712 MDL-48148 mod_forum: Use the standard forum reply subject as default
When a user replies by e-mail, the course name has been included in the
original e-mail. As a result, the reply subject becomes longer and longer.

In cases whether either:
* the discussion name; or
* the replied-to-post subject

is present in the mail subject, the standard reply subject is instead used.
2014-11-24 09:11:22 +08:00
Mark Nelson 65e2d354aa MDL-35494 core_backup: fixed activity restoration issue 2014-11-24 10:33:50 +13:00
Sam Hemelryk c19e95c871 Merge branch 'MDL-48288-28' of git://github.com/jethac/moodle into MOODLE_28_STABLE 2014-11-24 10:02:47 +13:00
David Mudrák 6237bb2f2f MDL-48210 updates checker: Improve cron notifications processing
These are cosmetic improvements spotted while working on the issue.

1. Do not waste time if there are no changes to notify about.
2. Fix the legacy plugin manager's get_plugins() call.
2014-11-21 12:07:55 +01:00
David Mudrák 87082d0f1c MDL-48210 plugin_manager: Invalidate caches after fetching updates info 2014-11-21 12:07:55 +01:00
Jetha Chan 229171be1a MDL-48288 gradebook: fix floating footer exception when averages disabled
The code we use to update styles on floating elements did not account for
situations where those floating elements don't exist. This was discovered
when a test site didn't have column averages enabled, resulting in no
floating footer element being created, so when _handleScrollEvent was
fired the first time, a null reference exception was thrown trying to
apply styles to a non-existent element.
2014-11-21 10:56:47 +08:00
Rajesh Taneja 62a703b655 MDL-48302 behat: Reverted temp fix added by MDL-48251 2014-11-21 10:41:09 +08:00
Rajesh Taneja c4c810491a MDL-48302 behat: Reset all data, before starting behat suite 2014-11-21 10:41:03 +08:00
Rajesh Taneja 46388b5e48 MDL-48302 behat: Make sure to clear php file cache 2014-11-21 10:40:56 +08:00
Rajesh Taneja 54bd82d4ae MDL-48302 behat: Reset cache before scenario 2014-11-21 10:40:49 +08:00
Jetha Chan ffd5282986 MDL-47329 mod_book: missing RTL styles, added page body selectors 2014-11-21 10:24:45 +08:00
Jetha Chan 07bff34437 MDL-47329 mod_book: use embedded pagetype instead of hardcoded HTML 2014-11-21 10:04:50 +08:00
Kordan 66649405b5 MDL-46618 tool_xmldb: added styles_bootstrapbase.css 2014-11-20 10:42:10 +01:00
Dan Poltawski 702e65c9ed weekly release 2.8.1+ 2014-11-20 08:38:26 +00:00
Dan Poltawski 81c559d05e Merge branch 'install_28_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_28_STABLE 2014-11-20 08:38:24 +00:00
Sam Hemelryk fa23afbe30 MDL-48304 moodle_url: compare now considers anchor 2014-11-20 15:38:48 +13:00
Adrian Greeve 6d5f68a832 MDL-48252 scheduled tasks: file_temp_cleanup_task does full delete.
This scheduled task was previously only doing a partial delete
due to the fact that the directory modification time would be
updated when a child file was deleted. It would then have to
wait another week before that directory could be deleted.
2014-11-20 10:34:33 +08:00
Adrian Greeve 88690b92e4 MDL-48252 scheduled tasks: Unit test for file_temp_cleanup_task. 2014-11-20 10:28:18 +08:00
Sam Hemelryk 472b438486 MDL-47832 cache: removed data source aggregate functionality
Cache data source aggregate functionality was found to be broken
and unused, because of this the decision was made to remove it
rather than fix it.
As it was broken we did not follow typical deprecation methods and
instead the code was removed outright with only structure
remaining and left deprecated.
2014-11-20 11:25:04 +13:00
Sam Hemelryk 04c92d672f MDL-43628 mod_assign: fixed formatting of statement 2014-11-20 10:18:42 +13:00
Eloy Lafuente (stronk7) 57ebd7b1b1 Merge branch '48206-28' of git://github.com/samhemelryk/moodle into MOODLE_28_STABLE 2014-11-19 21:19:41 +01:00
Rajesh Taneja 1cda99f39b MDL-48251 behat: Shuffling activity creation fix quiz behat 2014-11-19 20:06:54 +01:00
Dan Poltawski 93d5459125 MDL-29585 wiki: fix unit test fails 2014-11-19 11:40:37 +00:00
Frederic Massart 62845bce83 MDL-29585 mod_wiki: Prevent broken links in editable sections
When a section name ended with a URL, the '<a' part of [edit] link
that is appended to the section was considered as part of the URL
in the section, thus causing the [edit] link to be broken.
2014-11-19 10:34:36 +00:00
Dan Poltawski d9eedd1a68 MDL-48277 css: initial csslint config file 2014-11-19 09:20:50 +00:00
Rajesh Taneja 3dfecf93cc MDL-46865 report_log: Fixed site name in behat step 2014-11-19 06:41:13 +00:00
Mario Wehr 0858e593e6 MDL-48274 mod_forum: Add missing context to has_capability call 2014-11-19 14:06:36 +08:00
Dan Poltawski ddf83f51d4 MDL-48276 qformat_xhtml: avoid uncessary html in .css file
In order to help automated tools move the html out of the css
file.
2014-11-19 05:56:41 +00:00
Andrew Nicols ba8ca6604d MDL-22043 mod_forum: Fix toggle subscription editing button behaviour
Update the user session property before generating the button which relies
upon it.
2014-11-19 13:32:23 +08:00
Andrew Nicols f8da8ae382 MDL-14402 blocks: Do not show assign roles on my home 2014-11-19 11:18:49 +08:00
Andrew Nicols 5c86569096 MDL-23839 navigation: Check for assignable course category roles 2014-11-19 08:55:56 +08:00
Sam Hemelryk 921d045174 MDL-33606 tests: fixed broken unit test 2014-11-19 11:30:42 +13:00
Sam Hemelryk c81ae06997 Merge branch 'MDL-33606_28' of git://github.com/dmonllao/moodle into MOODLE_28_STABLE 2014-11-19 09:37:24 +13:00
Daniel Thies 3228da2e5c MDL-45867 atto_equation: Change preview update to asynchronous 2014-11-18 13:30:33 -06:00
Mary Evans 236351fdc3 MDL-47915 mod/scorm: Added JS fallback for themes using copied layouts. 2014-11-18 17:49:08 +00:00
AMOS bot 752fdd2479 Automatically generated installer lang files 2014-11-19 00:05:40 +08:00
Dan Poltawski 29a036aa59 Merge branch 'MDL-48146_28' of git://github.com/timhunt/moodle into MOODLE_28_STABLE 2014-11-18 12:07:10 +00:00
Sam Hemelryk 299f1bcdbd Merge branch 'wip-mdl-48250-m28' of https://github.com/rajeshtaneja/moodle into MOODLE_28_STABLE 2014-11-18 17:38:08 +13:00
Sam Hemelryk 09de24667f Merge branch 'MDL-29585-28' of git://github.com/FMCorz/moodle into MOODLE_28_STABLE 2014-11-18 16:47:30 +13:00
Brian Barnes a7d7354c85 MDL-48265 feedback: Added alt text to ghostscript test image 2014-11-18 16:46:00 +13:00
Jetha Chan 31830a539d MDL-23912 core_comment: update count after deletion 2014-11-18 09:35:23 +08:00
Sam Hemelryk 67ccf63800 MDL-38343 cache: better test server strings 2014-11-18 12:34:30 +13:00
Sam Hemelryk 292e991b86 Merge branch 'MDL-47618_28' of git://github.com/timhunt/moodle into MOODLE_28_STABLE 2014-11-18 11:12:32 +13:00
Daniel Thies 65e345c3f4 MDL-48064 atto_editor: Expand event subscription for saving selection 2014-11-17 11:36:43 -06:00
Mark Nelson 554f0bd206 MDL-30619 mod_data: fixed deletion of files on reset 2014-11-17 16:49:00 +00:00
Dan Poltawski 38d6b6eb17 Merge branch 'MDL-48199_M28' of git://github.com/lazydaisy/moodle into MOODLE_28_STABLE
Conflicts:
	theme/bootstrapbase/style/moodle.css
2014-11-17 16:42:44 +00:00
AMOS bot 931d7216cc Automatically generated installer lang files 2014-11-18 00:05:48 +08:00
Dan Poltawski 6dfc37accf Merge branch 'MDL-47648_28' of git://github.com/timhunt/moodle into MOODLE_28_STABLE 2014-11-17 15:41:38 +00:00
Rajesh Taneja 9e273e7556 MDL-46865 report_log: Fixed showuser and showcourse in report log 2014-11-17 15:34:16 +00:00
Dan Poltawski 2d747884c6 Merge branch 'm28_MDL-48023_Theme_Setting_Files_Cacheable_By_Both_Browsers_And_Proxies' of https://github.com/scara/moodle into MOODLE_28_STABLE 2014-11-17 15:20:17 +00:00
Dan Poltawski af2c296364 Merge branch 'MDL-48042_28' of git://github.com/ppichet/moodle into MOODLE_28_STABLE 2014-11-17 15:13:19 +00:00
Mary Evans ec1a6a6996 MDL-48246 theme: Fixed typo in 'hidepanelicon' 2014-11-17 15:06:34 +00:00
Dan Poltawski 3b8a871233 Merge branch 'MDL-42756_28' of git://github.com/aolley/moodle into MOODLE_28_STABLE 2014-11-17 13:52:49 +00:00
Adrian Greeve ccfd014d42 MDL-36240 backup: Activity calendar events backed up.
Activity calendar events can now be backed up and restored
when no user data is selected.
2014-11-17 13:31:19 +00:00
Dan Poltawski 0c0714ae3b Merge branch 'MDL-43987-28' of git://github.com/xow/moodle into MOODLE_28_STABLE 2014-11-17 13:17:40 +00:00
Dan Poltawski 4d7f88d55c Merge branch 'MDL-46640-28' of git://github.com/FMCorz/moodle into MOODLE_28_STABLE 2014-11-17 12:52:36 +00:00
Dan Poltawski d5f6d962e2 Merge branch 'MDL-48150-28' of git://github.com/andrewnicols/moodle into MOODLE_28_STABLE 2014-11-17 11:44:15 +00:00
Andrew Nicols 97f5b7b8a2 MDL-48150 mod_forum: Generate message inbound keys for all posts
This code was previously misplaced so that only posts in discussion which
had not yet been processed in the current cron run would have keys
generated. If two posts were generated in the same discussion and sent out
on the same cron cycle, only the first post to be processed would have a
key generated.
2014-11-17 15:48:12 +08:00
Frederic Massart 410d8eda9a MDL-48180 mod_assign: By default do not count 'new' submissions 2014-11-17 15:14:59 +08:00
Rajesh Taneja c42974048a MDL-48250 enrol_ldap: set default category
As in other enrol plugins (database), set default
category to 1 (pointing to Miscellaneous)
2014-11-17 14:42:27 +08:00
Frederic Massart fce8127ff0 MDL-46640 navigation: Handle block contexts within a category 2014-11-17 12:42:09 +08:00
Frederic Massart 864e404348 MDL-29585 mod_wiki: Handle special characters in headings/sections 2014-11-17 10:39:26 +08:00
Jetha Chan cfbc7d903f MDL-48191 gradebook: fixed floating headers when emails not displayed 2014-11-17 10:17:53 +08:00
Sam Hemelryk 0b9dc284e8 MDL-48196 phpunit: fixed the fail after this change 2014-11-17 15:07:39 +13:00
John Okely e92d84244c MDL-43987 core: Remove port numbers in cleanremoteaddr 2014-11-17 09:48:32 +08:00
Sam Hemelryk e9f7276481 Merge branch 'MDL-48115_28' of https://github.com/totara/openbadges into MOODLE_28_STABLE 2014-11-17 14:37:58 +13:00
Sam Hemelryk b1dd1c8656 Merge branch 'MDL-48194-28' of git://github.com/andrewnicols/moodle into MOODLE_28_STABLE 2014-11-17 13:39:17 +13:00
Sam Hemelryk 6b5f44b214 Merge branch 'MDL-48171-28' of git://github.com/ankitagarwal/moodle into MOODLE_28_STABLE 2014-11-17 13:21:05 +13:00
Mary Evans 068c7a8706 MDL-48199 theme_bootstrapbase: Page padding left is wrong when in RTL 2014-11-17 00:02:13 +00:00
Sam Hemelryk e3adeba886 Merge branch 'MDL-48179-m28' of https://github.com/sammarshallou/moodle into MOODLE_28_STABLE 2014-11-17 12:48:12 +13:00
Sam Hemelryk 666ac939d5 Merge branch 'MDL-48196-28' of git://github.com/andrewnicols/moodle into MOODLE_28_STABLE 2014-11-17 12:34:16 +13:00
Sam Hemelryk d2fe097e20 Merge branch 'm28_MDL-47993' of https://github.com/totara/moodle into MOODLE_28_STABLE 2014-11-17 12:21:37 +13:00
Sam Hemelryk b1298c7690 Merge branch 'MDL-43628_v28' of https://github.com/scyrma/moodle into MOODLE_28_STABLE 2014-11-17 11:45:01 +13:00
Ankit Agarwal 6748b5ee5c MDL-35638 backup: Do not print headers during redirects 2014-11-17 10:38:50 +13:00
Sam Hemelryk 583cf99ebd Merge branch 'MDL-47590_28' of git://github.com/timhunt/moodle into MOODLE_28_STABLE 2014-11-17 10:38:49 +13:00
Sam Hemelryk c1ca23afa3 Merge branch 'MDL-44657-28' of git://github.com/FMCorz/moodle into MOODLE_28_STABLE 2014-11-17 10:38:49 +13:00
Sam Hemelryk 0c96741ef7 MDL-48189 grade: letters now covered by behat 2014-11-17 08:54:30 +13:00
Matteo Scaramuccia b73158d3d0 MDL-48023 Files API: Theme files must be cache-able by shared proxies.
The profile image AKA user icon will be cache-able by shared proxies too,
under its specific accessibility constraints/conditions.
2014-11-16 09:59:22 +01:00
Pierre Pichet f6fd6787d1 MDL-48042 Questions: Reset Calculated qtype comments on datasets
Reset back the modifications of Calculated qtype comments on datasets
    done by MDL-47224

Signed-off-by: Pierre Pichet <pichet.pierre@uqam.ca>
2014-11-15 16:54:27 -05:00
sam marshall 60fef215f6 MDL-48179 Backup progress: Can time out when compressing large backup 2014-11-14 18:30:17 +00:00
Daniel Thies 4587188ad9 MDL-48064 atto_editor: Check if activeElement is child node in isActive 2014-11-14 12:15:22 -06:00
Tim Hunt bc575d2bea MDL-47590 question backup: include response file only with userdata 2014-11-14 16:21:38 +00:00
Ankit Agarwal 806f6f642c MDL-48171 gradebook: Use proper apis to get item name 2014-11-14 14:05:52 +05:30
Sam Hemelryk acad969077 MDL-48206 block_comments: textarea width 100% 2014-11-14 11:40:32 +13:00
Oleg Demeshev 066751547d MDL-47993 calendar: Fix ical import Microsoft calendar issue 2014-11-14 10:39:34 +13:00
Eloy Lafuente (stronk7) 296b602f2c Moodle release 2.8.1 2014-11-13 12:22:51 +01:00
Eloy Lafuente (stronk7) 76db660264 Merge branch 'MDL-48214-28-enfix' of git://github.com/mudrd8mz/moodle into MOODLE_28_STABLE 2014-11-13 12:05:17 +01:00
Helen Foster e5381b67e9 MDL-48214 Merge English strings from the en_fix language pack 2014-11-13 11:32:24 +01:00
Paul Holden 309a919074 MDL-44657 forms: Form identifiers should only contain basic characters 2014-11-13 16:25:12 +08:00
Andrew Nicols 367a26d088 MDL-48196 phpunit: Set e-mail address for admin user at installation 2014-11-13 08:58:55 +08:00
Eugene Venter 8d4e07d86d MDL-48204 mod_wiki: admin.php - fix syntax error 2014-11-13 00:47:16 +01:00
Tim Hunt 89eb7cf302 MDL-48146 quiz settings: fix non-percent feedback boundaries 2014-11-12 15:46:55 +00:00
Dan Poltawski b37f9889d0 weekly release 2.8+ 2014-11-12 11:33:31 +00:00
Dan Poltawski c8900a5152 MDL-48174 tool_langimport: info about skipped update
So admins can work out why the task might not be having an effect.
2014-11-12 11:22:45 +00:00
Rajesh Taneja 4c4d53ebaf MDL-48174 core_lang: support for ->skiplangupgrade in lang cron task
Similar to upgrade_language_pack(), update_langpacks_task should
respect skiplangupgrade config. Also, this should be added to behat
whitelist, so it can be disabled during on-sync period, when lang
pack for master is not available.
2014-11-12 11:03:55 +00:00
David Monllao a26ce935c7 MDL-30968 mod_forum: No picture link to group when no groups mode 2014-11-12 07:43:08 +00:00
David Monllao 2a3e89465c MDL-33606 course: Adding section info to course_viewed log 2014-11-12 13:58:35 +08:00
Andrew Nicols 6d8019438f MDL-48194 testing: Adjust naming of testsuites in phpunit.xml
This will make it easier to run phpunit for a specific component by making
all testsuite names consistent, guessable, and in-line with the naming of
the parameter (testsuite vs. test suite).
2014-11-12 12:06:45 +08:00
Adam Olley b19e9ae457 MDL-42756 dock: Trigger actionmenu enhance when showing dock panel
Additionally fixes the styling for the actionmenu icon size in
bootstrapbase'd themes.
2014-11-12 14:11:33 +10:30
Frederic Massart c6a1e9bed3 MDL-46416 group: Use a revision number for group pictures 2014-11-12 11:29:22 +08:00
James Ballard 0df5893423 MDL-47391 Update pagelayout for default profile configuration 2014-11-12 12:34:27 +13:00
Frederic Massart dd818fdb44 MDL-39692 grade: Little code clean up of letter boundary deletion 2014-11-12 12:19:31 +13:00
Huy Hoang 1fd2bc4810 MDL-39692 grade: Ability to delete letter boundary 2014-11-12 12:19:31 +13:00
Yuliya Bozhko 3f3f7ce52a MDL-48115 badges: Fix strtoupper() output in badges
Signed-off-by: Yuliya Bozhko <yuliya.bozhko@totaralms.com>
2014-11-12 09:30:29 +13:00
Amanda Doughty 088c4fb280 MDL-30968 mod/forum Fixed group link 2014-11-12 09:00:16 +13:00
Dan Poltawski 0ed92e6a37 MDL-47502 statslib tests: improve test
While integrating I noticed some problems which already existed in this
test:
* The enrolment data generator was not used
* The student roleid was hardocded
* The role assignment was at site level..
2014-11-11 19:26:03 +00:00
Eugene Venter afc8bd9672 MDL-47502 test_statslib_cron_daily: fix provider
Fiddling with the database in the data provider causes "out of sync"
errors when running suite tests.
2014-11-11 19:12:46 +00:00
Damyon Wiese c2dd91bfef MDL-47975 assign: Stop gap fix for random time fails. 2014-11-11 19:06:38 +00:00
sam marshall b0ac83b82b MDL-48093 HTML 5 video: Firefox now supports .mp4 2014-11-11 19:00:12 +00:00
Dan Poltawski 272ad5b577 Merge branch 'MDL-48168_28' of git://github.com/timhunt/moodle into MOODLE_28_STABLE 2014-11-11 18:48:36 +00:00
David Balch 7805d03a9e MDL-46116 mod_imscp: Display first item with content on load. 2014-11-11 18:42:29 +00:00
Tim Hunt ecb40b963d MDL-47618 quiz statistics: fatal error with groups.
The problem was that the names of query placeholders were changing. The
fix was to do things ourself, rather than using get_in_or_equal.
2014-11-11 18:29:31 +00:00
David Balch b45e110c3a MDL-46116 mod_imscp: Don't create links on items without content. 2014-11-11 18:16:39 +00:00
Darko Miletic 928497310e MDL-39376 enrol: Optimized setting for ldap and database 2014-11-11 17:23:01 +00:00
David Mudrák 5755d70f2e MDL-48156 task: Skip the scheduled task only for really disabled plugins 2014-11-11 17:18:03 +00:00
Tim Hunt ff8aaa2dd4 MDL-47648 admin unit tests: fix file perms on mimetex.exe
This was causing the
core_admintree_testcase::test_admin_setting_configexecutable unit test
to fail.
2014-11-11 14:04:20 +00:00
Mathieu Petit-Clair 5ebde631c0 MDL-43628 assign: make submissionagreement usable on multilingual sites 2014-11-10 16:53:49 -05:00
Tim Hunt 21c633a8c6 MDL-48168 quiz editing: max grade should be editable after attempts
Note that there was a lot of legacy code left from Moodle 2.7 which is
no longer required, and I took this opportunity to delete it.
2014-11-10 19:00:33 +00:00
Eloy Lafuente (stronk7) 25fe23f5f5 MDL-48144 upgrade: add v2.8.0 sep lines 2014-11-10 18:09:20 +01:00
1071 changed files with 23690 additions and 7833 deletions
+3
View File
@@ -0,0 +1,3 @@
--errors=errors,duplicate-properties
--warnings=known-properties,display-property-grouping,empty-rules,important
--exclude-list=vendor/,lib/editor/tinymce/,lib/yuilib/,theme/bootstrapbase/style/
+1 -2
View File
@@ -67,7 +67,6 @@ if ($data = data_submitted() and confirm_sesskey()) {
$errormsg = get_string('errorwithsettings', 'admin');
$firsterror = reset($adminroot->errors);
}
$adminroot = admin_get_root(true); //reload tree
$settingspage = $adminroot->locate($category, true);
}
@@ -156,4 +155,4 @@ echo $outputhtml;
echo html_writer::end_tag('fieldset');
echo html_writer::end_tag('form');
echo $OUTPUT->footer();
echo $OUTPUT->footer();
+148
View File
@@ -1257,6 +1257,154 @@
<ON_ERROR message="quizattemptsupgradedmessage" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_slasharguments" level="optional">
<FEEDBACK>
<ON_CHECK message="slashargumentswarning" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_database_tables_row_format" level="optional">
<FEEDBACK>
<ON_CHECK message="unsupporteddbtablerowformat" />
</FEEDBACK>
</CUSTOM_CHECK>
</CUSTOM_CHECKS>
</MOODLE>
<MOODLE version="2.9" requires="2.2">
<UNICODE level="required">
<FEEDBACK>
<ON_ERROR message="unicoderequired" />
</FEEDBACK>
</UNICODE>
<DATABASE level="required">
<VENDOR name="mariadb" version="5.5.31" />
<VENDOR name="mysql" version="5.5.31" />
<VENDOR name="postgres" version="9.1" />
<VENDOR name="mssql" version="10.0" />
<VENDOR name="oracle" version="10.2" />
</DATABASE>
<PHP version="5.4.4" level="required">
</PHP>
<PCREUNICODE level="optional">
<FEEDBACK>
<ON_CHECK message="pcreunicodewarning" />
</FEEDBACK>
</PCREUNICODE>
<PHP_EXTENSIONS>
<PHP_EXTENSION name="iconv" level="required">
<FEEDBACK>
<ON_ERROR message="iconvrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="mbstring" level="optional">
<FEEDBACK>
<ON_CHECK message="mbstringrecommended" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="curl" level="required">
<FEEDBACK>
<ON_ERROR message="curlrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="openssl" level="optional">
<FEEDBACK>
<ON_CHECK message="opensslrecommended" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="tokenizer" level="optional">
<FEEDBACK>
<ON_CHECK message="tokenizerrecommended" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="xmlrpc" level="optional">
<FEEDBACK>
<ON_CHECK message="xmlrpcrecommended" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="soap" level="optional">
<FEEDBACK>
<ON_CHECK message="soaprecommended" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="ctype" level="required">
<FEEDBACK>
<ON_ERROR message="ctyperequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="zip" level="required">
<FEEDBACK>
<ON_ERROR message="ziprequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="zlib" level="required">
</PHP_EXTENSION>
<PHP_EXTENSION name="gd" level="required">
<FEEDBACK>
<ON_ERROR message="gdrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="simplexml" level="required">
<FEEDBACK>
<ON_ERROR message="simplexmlrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="spl" level="required">
<FEEDBACK>
<ON_ERROR message="splrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="pcre" level="required">
</PHP_EXTENSION>
<PHP_EXTENSION name="dom" level="required">
</PHP_EXTENSION>
<PHP_EXTENSION name="xml" level="required">
</PHP_EXTENSION>
<PHP_EXTENSION name="intl" level="optional">
<FEEDBACK>
<ON_CHECK message="intlrecommended" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="json" level="required">
</PHP_EXTENSION>
<PHP_EXTENSION name="hash" level="required"/>
</PHP_EXTENSIONS>
<PHP_SETTINGS>
<PHP_SETTING name="memory_limit" value="96M" level="required">
<FEEDBACK>
<ON_ERROR message="settingmemorylimit" />
</FEEDBACK>
</PHP_SETTING>
<PHP_SETTING name="file_uploads" value="1" level="optional">
<FEEDBACK>
<ON_CHECK message="settingfileuploads" />
</FEEDBACK>
</PHP_SETTING>
<PHP_SETTING name="opcache.enable" value="1" level="optional">
<FEEDBACK>
<ON_CHECK message="opcacherecommended" />
</FEEDBACK>
</PHP_SETTING>
</PHP_SETTINGS>
<CUSTOM_CHECKS>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_database_storage_engine" level="required">
<FEEDBACK>
<ON_ERROR message="unsupporteddbstorageengine" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="question/engine/upgrade/upgradelib.php" function="quiz_attempts_upgraded" level="required">
<FEEDBACK>
<ON_ERROR message="quizattemptsupgradedmessage" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_slasharguments" level="optional">
<FEEDBACK>
<ON_CHECK message="slashargumentswarning" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_database_tables_row_format" level="optional">
<FEEDBACK>
<ON_CHECK message="unsupporteddbtablerowformat" />
</FEEDBACK>
</CUSTOM_CHECK>
</CUSTOM_CHECKS>
</MOODLE>
</COMPATIBILITY_MATRIX>
+21 -16
View File
@@ -561,31 +561,36 @@ $cronoverdue = ($lastcron < time() - 3600 * 24);
$dbproblems = $DB->diagnose();
$maintenancemode = !empty($CFG->maintenance_enabled);
// Available updates for Moodle core
// Available updates for Moodle core.
$updateschecker = \core\update\checker::instance();
$availableupdates = array();
$availableupdates['core'] = $updateschecker->get_update_info('core',
array('minmaturity' => $CFG->updateminmaturity, 'notifybuilds' => $CFG->updatenotifybuilds));
$availableupdatesfetch = null;
// Available updates for contributed plugins
$pluginman = core_plugin_manager::instance();
foreach ($pluginman->get_plugins() as $plugintype => $plugintypeinstances) {
foreach ($plugintypeinstances as $pluginname => $plugininfo) {
if (!empty($plugininfo->availableupdates)) {
foreach ($plugininfo->availableupdates as $pluginavailableupdate) {
if ($pluginavailableupdate->version > $plugininfo->versiondisk) {
if (!isset($availableupdates[$plugintype.'_'.$pluginname])) {
$availableupdates[$plugintype.'_'.$pluginname] = array();
if (empty($CFG->disableupdatenotifications)) {
// Only compute the update information when it is going to be displayed to the user.
$availableupdates['core'] = $updateschecker->get_update_info('core',
array('minmaturity' => $CFG->updateminmaturity, 'notifybuilds' => $CFG->updatenotifybuilds));
// Available updates for contributed plugins
$pluginman = core_plugin_manager::instance();
foreach ($pluginman->get_plugins() as $plugintype => $plugintypeinstances) {
foreach ($plugintypeinstances as $pluginname => $plugininfo) {
if (!empty($plugininfo->availableupdates)) {
foreach ($plugininfo->availableupdates as $pluginavailableupdate) {
if ($pluginavailableupdate->version > $plugininfo->versiondisk) {
if (!isset($availableupdates[$plugintype.'_'.$pluginname])) {
$availableupdates[$plugintype.'_'.$pluginname] = array();
}
$availableupdates[$plugintype.'_'.$pluginname][] = $pluginavailableupdate;
}
$availableupdates[$plugintype.'_'.$pluginname][] = $pluginavailableupdate;
}
}
}
}
}
// The timestamp of the most recent check for available updates
$availableupdatesfetch = $updateschecker->get_last_timefetched();
// The timestamp of the most recent check for available updates
$availableupdatesfetch = $updateschecker->get_last_timefetched();
}
$buggyiconvnomb = (!function_exists('mb_convert_encoding') and @iconv('UTF-8', 'UTF-8//IGNORE', '100'.chr(130).'€') !== '100€');
//check if the site is registered on Moodle.org
+1 -1
View File
@@ -65,7 +65,7 @@ if (!empty($registeredhub) and $registeredhub->token == $token) {
$registeredhub->hubname = $hubname;
$registrationmanager->update_registeredhub($registeredhub);
//display notficiation message
// Display notification message.
$notificationmessage = $OUTPUT->notification(
get_string('registrationconfirmedon', 'hub', $hublink), 'notifysuccess');
echo $notificationmessage;
+3 -3
View File
@@ -22,9 +22,9 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL
* @copyright (C) 1999 onwards Martin Dougiamas http://dougiamas.com
*
* On this page the administrator selects which hub he wants to register,
* except for MOOCH. Admins can register with MOOCH with the top admin menu "Registration" link.
* On this page the administrator can also unregister from any hubs, including MOOCH.
* On this page the administrator selects which hub he wants to register (except for moodle.net)
* Admins can register with moodle.net via the site admin menu "Registration" link.
* On this page the administrator can also unregister from any hubs including moodle.net.
*/
require('../../config.php');
+22 -23
View File
@@ -53,31 +53,30 @@ class registration_manager {
public function cron() {
global $CFG;
if (extension_loaded('xmlrpc')) {
//check if the last registration cron update was less than a week ago
$lastcron = get_config('registration', 'crontime');
if ($lastcron === false or $lastcron < strtotime("-7 day")) { //set to a week, see MDL-23704
$function = 'hub_update_site_info';
require_once($CFG->dirroot . "/webservice/xmlrpc/lib.php");
$function = 'hub_update_site_info';
require_once($CFG->dirroot . "/webservice/xmlrpc/lib.php");
//update all hub where the site is registered on
$hubs = $this->get_registered_on_hubs();
foreach ($hubs as $hub) {
//update the registration
$siteinfo = $this->get_site_info($hub->huburl);
$params = array('siteinfo' => $siteinfo);
$serverurl = $hub->huburl . "/local/hub/webservice/webservices.php";
$xmlrpcclient = new webservice_xmlrpc_client($serverurl, $hub->token);
try {
$result = $xmlrpcclient->call($function, $params);
mtrace(get_string('siteupdatedcron', 'hub', $hub->hubname));
} catch (Exception $e) {
$errorparam = new stdClass();
$errorparam->errormessage = $e->getMessage();
$errorparam->hubname = $hub->hubname;
mtrace(get_string('errorcron', 'hub', $errorparam));
}
// Update all hubs where the site is registered.
$hubs = $this->get_registered_on_hubs();
if (empty($hubs)) {
mtrace(get_string('registrationwarning', 'admin'));
}
foreach ($hubs as $hub) {
// Update the registration.
$siteinfo = $this->get_site_info($hub->huburl);
$params = array('siteinfo' => $siteinfo);
$serverurl = $hub->huburl . "/local/hub/webservice/webservices.php";
$xmlrpcclient = new webservice_xmlrpc_client($serverurl, $hub->token);
try {
$result = $xmlrpcclient->call($function, $params);
$this->update_registeredhub($hub); // To update timemodified.
mtrace(get_string('siteupdatedcron', 'hub', $hub->hubname));
} catch (Exception $e) {
$errorparam = new stdClass();
$errorparam->errormessage = $e->getMessage();
$errorparam->hubname = $hub->hubname;
mtrace(get_string('errorcron', 'hub', $errorparam));
}
set_config('crontime', time(), 'registration');
}
} else {
mtrace(get_string('errorcronnoxmlrpc', 'hub'));
+7
View File
@@ -177,6 +177,13 @@ if (!empty($error)) {
//some Moodle.org resitration explanation
if ($huburl == HUB_MOODLEORGHUBURL) {
if (!empty($registeredhub->token)) {
$registrationmessage = get_string('pleaserefreshregistration', 'admin');
} else {
$registrationmessage = get_string('registrationwarning', 'admin');
}
echo $OUTPUT->notification($registrationmessage);
echo $OUTPUT->heading(get_string('registerwithmoodleorg', 'admin'));
$renderer = $PAGE->get_renderer('core', 'register');
echo $renderer->moodleorg_registration_message();
+11 -6
View File
@@ -36,13 +36,18 @@ class core_register_renderer extends plugin_renderer_base {
* @return string
*/
public function moodleorg_registration_message() {
$moodleorgurl = html_writer::link('http://moodle.org', 'Moodle.org');
$moodleorgstatsurl = html_writer::link('http://moodle.org/stats', get_string('statsmoodleorg', 'admin'));
$moochurl = html_writer::link(HUB_MOODLEORGHUBURL, get_string('moodleorghubname', 'admin'));
$moodleorgregmsg = get_string('registermoodleorg', 'admin', $moodleorgurl);
$moodleorgstatslink = html_writer::link('http://moodle.net/stats',
get_string('statsmoodleorg', 'admin'),
array('target' => '_blank'));
$hublink = html_writer::link('https://moodle.net/mod/page/view.php?id=1',
get_string('moodleorghubname', 'admin'),
array('target' => '_blank'));
$moodleorgregmsg = get_string('registermoodleorg', 'admin', $hublink);
$items = array(get_string('registermoodleorgli1', 'admin'),
get_string('registermoodleorgli2', 'admin', $moodleorgstatsurl),
get_string('registermoodleorgli3', 'admin', $moochurl));
get_string('registermoodleorgli2', 'admin', $moodleorgstatslink));
$moodleorgregmsg .= html_writer::alist($items);
return $moodleorgregmsg;
}
+14 -4
View File
@@ -264,6 +264,7 @@ if (($action == 'edit') || ($action == 'new')) {
$strshow = get_string('on', 'repository');
$strhide = get_string('off', 'repository');
$strdelete = get_string('disabled', 'repository');
$struninstall = get_string('uninstallplugin', 'core_admin');
$actionchoicesforexisting = array(
'show' => $strshow,
@@ -286,9 +287,9 @@ if (($action == 'edit') || ($action == 'new')) {
// Table to list plug-ins
$table = new html_table();
$table->head = array(get_string('name'), get_string('isactive', 'repository'), get_string('order'), $settingsstr);
$table->head = array(get_string('name'), get_string('isactive', 'repository'), get_string('order'), $settingsstr, $struninstall);
$table->colclasses = array('leftalign', 'centeralign', 'centeralign', 'centeralign', 'centeralign');
$table->colclasses = array('leftalign', 'centeralign', 'centeralign', 'centeralign', 'centeralign', 'centeralign');
$table->id = 'repositoriessetting';
$table->data = array();
$table->attributes['class'] = 'admintable generaltable';
@@ -384,7 +385,12 @@ if (($action == 'edit') || ($action == 'new')) {
$updowncount++;
$table->data[] = array($i->get_readablename(), $OUTPUT->render($select), $updown, $settings);
$uninstall = '';
if ($uninstallurl = core_plugin_manager::instance()->get_uninstall_url('repository_' . $typename, 'manage')) {
$uninstall = html_writer::link($uninstallurl, $struninstall);
}
$table->data[] = array($i->get_readablename(), $OUTPUT->render($select), $updown, $settings, $uninstall);
if (!in_array($typename, $alreadyplugins)) {
$alreadyplugins[] = $typename;
@@ -400,7 +406,11 @@ if (($action == 'edit') || ($action == 'new')) {
if (!in_array($plugin, $alreadyplugins)) {
$select = new single_select(repository_action_url($plugin, 'repos'), 'action', $actionchoicesfornew, 'delete', null, 'applyto' . basename($plugin));
$select->set_label(get_string('action'), array('class' => 'accesshide'));
$table->data[] = array(get_string('pluginname', 'repository_'.$plugin), $OUTPUT->render($select), '', '');
$uninstall = '';
if ($uninstallurl = core_plugin_manager::instance()->get_uninstall_url('repository_' . $plugin, 'manage')) {
$uninstall = html_writer::link($uninstallurl, $struninstall);
}
$table->data[] = array(get_string('pluginname', 'repository_'.$plugin), $OUTPUT->render($select), '', '', $uninstall);
}
}
}
+14 -5
View File
@@ -41,15 +41,24 @@ class core_role_existing_role_holders extends core_role_assign_user_selector_bas
list($sort, $sortparams) = users_order_by_sql('u', $search, $this->accesscontext);
$params = array_merge($params, $sortparams);
$sql = "SELECT ra.id AS raid," . $this->required_fields_sql('u') . ",ra.contextid,ra.component
FROM {role_assignments} ra
$fields = "SELECT ra.id AS raid," . $this->required_fields_sql('u') . ",ra.contextid,ra.component ";
$countfields = "SELECT COUNT(1) ";
$sql = "FROM {role_assignments} ra
JOIN {user} u ON u.id = ra.userid
JOIN {context} ctx ON ra.contextid = ctx.id
WHERE $wherecondition
AND ctx.id $ctxcondition
AND ra.roleid = :roleid
ORDER BY ctx.depth DESC, ra.component, $sort";
$contextusers = $DB->get_records_sql($sql, $params);
AND ra.roleid = :roleid";
$order = " ORDER BY ctx.depth DESC, ra.component, $sort";
if (!$this->is_validating()) {
$existinguserscount = $DB->count_records_sql($countfields . $sql, $params);
if ($existinguserscount > $this->maxusersperpage) {
return $this->too_many_results($search, $existinguserscount);
}
}
$contextusers = $DB->get_records_sql($fields . $sql . $order, $params);
// No users at all.
if (empty($contextusers)) {
+1 -1
View File
@@ -132,7 +132,7 @@ if ($courseid == SITEID) {
$PAGE->set_heading($course->fullname.': '.$fullname);
}
echo $OUTPUT->header();
echo $OUTPUT->heading($title, 3);
echo $OUTPUT->heading($title);
echo $OUTPUT->box_start('generalbox boxaligncenter boxwidthnormal');
// Display them.
+1 -3
View File
@@ -22,7 +22,6 @@ if ($data = data_submitted() and confirm_sesskey()) {
if (admin_write_settings($data)) {
$statusmsg = get_string('changessaved');
}
$adminroot = admin_get_root(true); //reload tree
if (!empty($adminroot->errors)) {
$errormsg = get_string('errorwithsettings', 'admin');
@@ -44,10 +43,9 @@ if ($errormsg !== '') {
$resultshtml = admin_search_settings_html($query); // case insensitive search only
echo '<form action="search.php" method="post" id="adminsettings">';
echo '<form action="' . $PAGE->url->out(true) . '" method="post" id="adminsettings">';
echo '<div>';
echo '<input type="hidden" name="sesskey" value="'.sesskey().'" />';
echo '<input type="hidden" name="query" value="'.s($query).'" />';
echo '</div>';
echo '<fieldset>';
echo '<div class="clearer"><!-- --></div>';
-1
View File
@@ -48,7 +48,6 @@ if ($data = data_submitted() and confirm_sesskey()) {
$errormsg = get_string('errorwithsettings', 'admin');
$firsterror = reset($adminroot->errors);
}
$adminroot = admin_get_root(true); //reload tree
$settingspage = $adminroot->locate($section, true);
}
-3
View File
@@ -278,9 +278,6 @@ if ($hassiteconfig) {
$ADMIN->add('webservicesettings', new admin_externalpage('webservicedocumentation', new lang_string('wsdocapi', 'webservice'), "$CFG->wwwroot/$CFG->admin/webservice/documentation.php", 'moodle/site:config', false));
/// manage service
$temp = new admin_settingpage('externalservices', new lang_string('externalservices', 'webservice'));
$temp->add(new admin_setting_enablemobileservice('enablemobilewebservice',
new lang_string('enablemobilewebservice', 'admin'),
new lang_string('configenablemobilewebservice', 'admin', $enablemobiledoclink), 0));
$temp->add(new admin_setting_heading('manageserviceshelpexplaination', new lang_string('information', 'webservice'), new lang_string('servicehelpexplanation', 'webservice')));
$temp->add(new admin_setting_manageexternalservices());
$ADMIN->add('webservicesettings', $temp);
+24
View File
@@ -114,6 +114,30 @@ class behat_admin extends behat_base {
}
}
/**
* Sets the specified site settings. A table with | config | value | (optional)plugin | is expected.
*
* @Given /^the following config values are set as admin:$/
* @param TableNode $table
*/
public function the_following_config_values_are_set_as_admin(TableNode $table) {
if (!$data = $table->getRowsHash()) {
return;
}
foreach ($data as $config => $value) {
// Default plugin value is null.
$plugin = null;
if (is_array($value)) {
$plugin = $value[1];
$value = $value[0];
}
set_config($config, $value, $plugin);
}
}
/**
* Waits with the provided params if we are running a JS session.
*
+6 -6
View File
@@ -7,10 +7,10 @@ Feature: An administrator can filter user accounts by role, cohort and other pro
Background:
Given the following "users" exist:
| username | firstname | lastname | email | auth | confirmed |
| user1 | User | One | one@asd.com | manual | 0 |
| user2 | User | Two | two@asd.com | ldap | 1 |
| user3 | User | Three | three@asd.com | manual | 1 |
| user4 | User | Four | four@asd.com | ldap | 0 |
| user1 | User | One | one@example.com | manual | 0 |
| user2 | User | Two | two@example.com | ldap | 1 |
| user3 | User | Three | three@example.com | manual | 1 |
| user4 | User | Four | four@example.com | ldap | 0 |
And the following "cohorts" exist:
| name | idnumber |
| Cohort 1 | CH1 |
@@ -23,8 +23,8 @@ Feature: An administrator can filter user accounts by role, cohort and other pro
| user2 | C1 | student |
| user3 | C1 | student |
And I log in as "admin"
And I add "User Two (two@asd.com)" user to "CH1" cohort members
And I add "User Three (three@asd.com)" user to "CH1" cohort members
And I add "User Two (two@example.com)" user to "CH1" cohort members
And I add "User Three (three@example.com)" user to "CH1" cohort members
And I follow "Browse list of users"
@javascript
@@ -13,15 +13,13 @@ Feature: Set admin settings value
And I should not see "C_shortname Course fullname"
Scenario: set admin value with full name
Given I set the following administration settings values:
| Display extended course names | 1 |
When I press "Save changes"
Given the following config values are set as admin:
| courselistshortnames | 1 |
And I am on homepage
Then I should see "C_shortname Course fullname"
Scenario: set admin value with short name
Given I set the following administration settings values:
Given the following config values are set as admin:
| courselistshortnames | 1 |
When I press "Save changes"
And I am on homepage
Then I should see "C_shortname Course fullname"
+2 -2
View File
@@ -21,7 +21,7 @@ Feature: Upload users
And I should see "Tom"
And I should see "Jones"
And I should see "verysecret"
And I should see "jonest@someplace.edu"
And I should see "jonest@example.com"
And I should see "Reznor"
And I should see "course1"
And I should see "math102"
@@ -32,7 +32,7 @@ Feature: Upload users
And I follow "Browse list of users"
And I should see "Tom Jones"
And I should see "Trent Reznor"
And I should see "reznor@someplace.edu"
And I should see "reznor@example.com"
And I am on homepage
And I follow "Maths"
And I expand "Users" node
@@ -13,8 +13,8 @@ Feature: Manage availability conditions
Then I should not see "Availability restrictions"
# Enable it and check I can now see and click on it.
And I set the following administration settings values:
| Enable conditional access | 1 |
And the following config values are set as admin:
| enableavailability | 1 |
And I am on homepage
And I navigate to "Manage restrictions" node in "Site administration > Plugins > Availability restrictions"
@@ -28,9 +28,9 @@ Feature: Manage availability conditions
Given the following "courses" exist:
| fullname | shortname | format |
| Course 1 | C1 | topics |
And the following config values are set as admin:
| enableavailability | 1 |
And I log in as "admin"
And I set the following administration settings values:
| Enable conditional access | 1 |
And I am on homepage
When I navigate to "Manage restrictions" node in "Site administration > Plugins > Availability restrictions"
+8 -16
View File
@@ -44,13 +44,19 @@ require_once(__DIR__ . '/../../../../lib/behat/lib.php');
chdir(__DIR__);
$output = null;
exec("php util.php --diag", $output, $code);
// Ensure we have composer installed, before we install or re-install test site.
if ($code == BEHAT_EXITCODE_COMPOSER || $code == BEHAT_EXITCODE_INSTALL || $code == BEHAT_EXITCODE_REINSTALL) {
testing_update_composer_dependencies();
chdir(__DIR__);
exec("php util.php --diag", $output, $code);
}
if ($code == 0) {
echo "Behat test environment already installed\n";
} else if ($code == BEHAT_EXITCODE_INSTALL) {
testing_update_composer_dependencies();
// Behat and dependencies are installed and we need to install the test site.
chdir(__DIR__);
passthru("php util.php --install", $code);
@@ -60,8 +66,6 @@ if ($code == 0) {
} else if ($code == BEHAT_EXITCODE_REINSTALL) {
testing_update_composer_dependencies();
// Test site data is outdated.
chdir(__DIR__);
passthru("php util.php --drop", $code);
@@ -74,18 +78,6 @@ if ($code == 0) {
exit($code);
}
} else if ($code == BEHAT_EXITCODE_COMPOSER) {
// Missing Behat dependencies.
testing_update_composer_dependencies();
// Returning to admin/tool/behat/cli.
chdir(__DIR__);
passthru("php util.php --install", $code);
if ($code != 0) {
exit($code);
}
} else {
// Generic error, we just output it.
echo implode("\n", $output)."\n";
+1 -1
View File
@@ -165,7 +165,7 @@ class tool_behat_renderer extends plugin_renderer_base {
// Info.
$installurl = behat_command::DOCS_URL . '#Installation';
$installlink = html_writer::tag('a', $installurl, array('href' => $installurl, 'target' => '_blank'));
$writetestsurl = behat_command::DOCS_URL . '#Writting_features';
$writetestsurl = behat_command::DOCS_URL . '#Writing_features';
$writetestslink = html_writer::tag('a', $writetestsurl, array('href' => $writetestsurl, 'target' => '_blank'));
$writestepsurl = behat_command::DOCS_URL . '#Adding_steps_definitions';
$writestepslink = html_writer::tag('a', $writestepsurl, array('href' => $writestepsurl, 'target' => '_blank'));
@@ -69,8 +69,8 @@ Feature: Set up contextual data for tests
Scenario: Role overrides
Given the following "users" exist:
| username | firstname | lastname | email |
| teacher1 | Teacher | 1 | teacher1@asd.com |
| student1 | Student | 1 | student1@asd.com |
| teacher1 | Teacher | 1 | teacher1@example.com |
| student1 | Student | 1 | student1@example.com |
And the following "categories" exist:
| name | category | idnumber |
| Cat 1 | 0 | CAT1 |
@@ -99,7 +99,7 @@ Feature: Set up contextual data for tests
Scenario: Add course enrolments
Given the following "users" exist:
| username | firstname | lastname | email |
| student1 | Student | 1 | student1@asd.com |
| student1 | Student | 1 | student1@example.com |
And the following "courses" exist:
| fullname | shortname | format |
| Course 1 | C1 | topics |
@@ -117,11 +117,11 @@ Feature: Set up contextual data for tests
| Custom student | custom2 | | |
And the following "users" exist:
| username | firstname | lastname | email |
| user1 | User | 1 | user1@moodlemoodle.com |
| user2 | User | 2 | user2@moodlemoodle.com |
| user3 | User | 3 | user3@moodlemoodle.com |
| user4 | User | 4 | user4@moodlemoodle.com |
| user5 | User | 5 | user5@moodlemoodle.com |
| user1 | User | 1 | user1@example.com |
| user2 | User | 2 | user2@example.com |
| user3 | User | 3 | user3@example.com |
| user4 | User | 4 | user4@example.com |
| user5 | User | 5 | user5@example.com |
And the following "categories" exist:
| name | category | idnumber |
| Cat 1 | 0 | CAT1 |
@@ -229,8 +229,8 @@ Feature: Set up contextual data for tests
Scenario: Add relations between users and groups
Given the following "users" exist:
| username | firstname | lastname | email |
| student1 | Student | 1 | student1@asd.com |
| student2 | Student | 2 | student2@asd.com |
| student1 | Student | 1 | student1@example.com |
| student2 | Student | 2 | student2@example.com |
And the following "courses" exist:
| fullname | shortname |
| Course 1 | C1 |
@@ -269,8 +269,8 @@ Feature: Set up contextual data for tests
| Cat 1 | 0 | CAT1 |
And the following "users" exist:
| username | firstname | lastname | email |
| student1 | Student | 1 | student1@asd.com |
| student2 | Student | 2 | student2@asd.com |
| student1 | Student | 1 | student1@example.com |
| student2 | Student | 2 | student2@example.com |
And the following "cohorts" exist:
| name | idnumber |
| System cohort A | CHSA |
@@ -385,9 +385,9 @@ Feature: Set up contextual data for tests
And the following "grade outcomes" exist:
| fullname | shortname | course | scale |
| Grade outcome 2 | OT2 | C1 | Test Scale 1 |
And the following config values are set as admin:
| enableoutcomes | 1 |
When I log in as "admin"
And I set the following administration settings values:
| Enable outcomes | 1 |
And I follow "Home"
And I follow "Course 1"
And I follow "Outcomes"
@@ -414,9 +414,9 @@ Feature: Set up contextual data for tests
And the following "grade items" exist:
| itemname | course | outcome | gradecategory |
| Test Outcome Grade Item 1 | C1 | OT1 | Grade category 1 |
And the following config values are set as admin:
| enableoutcomes | 1 |
When I log in as "admin"
And I set the following administration settings values:
| Enable outcomes | 1 |
And I follow "Home"
And I follow "Course 1"
And I follow "Grades"
@@ -7,7 +7,7 @@ Feature: Edit capabilities
Background:
Given the following "users" exist:
| username | firstname | lastname | email |
| teacher1 | Teacher | 1 | teacher1@asd.com |
| teacher1 | Teacher | 1 | teacher1@example.com |
And the following "courses" exist:
| fullname | shortname | category |
| Course 1 | C1 | 0 |
@@ -10,9 +10,9 @@ Feature: Verify that all form fields values can be get and set
| Course 1 | C1 | 0 |
And the following "users" exist:
| username | email | firstname | lastname |
| student1 | s1@asd.com | Student | 1 |
| student2 | s2@asd.com | Student | 2 |
| student3 | s3@asd.com | Student | 3 |
| student1 | s1@example.com | Student | 1 |
| student2 | s2@example.com | Student | 2 |
| student3 | s3@example.com | Student | 3 |
And the following "course enrolments" exist:
| user | course | role |
| student1 | C1 | student |
+3
View File
@@ -48,5 +48,8 @@ function xmldb_tool_customlang_upgrade($oldversion) {
// Moodle v2.7.0 release upgrade line.
// Put any upgrade step following this.
// Moodle v2.8.0 release upgrade line.
// Put any upgrade step following this.
return true;
}
@@ -308,8 +308,7 @@ class tool_generator_course_backend extends tool_generator_backend {
$username = 'tool_generator_' . $textnumber;
// Create user account.
$record = array('firstname' => get_string('firstname', 'tool_generator'),
'lastname' => $number, 'username' => $username);
$record = array('username' => $username, 'idnumber' => $number);
// We add a user password if it has been specified.
if (!empty($CFG->tool_generator_users_password)) {
@@ -62,7 +62,6 @@ $string['error_nonexistingcourse'] = 'The specified course does not exist';
$string['error_nopageinstances'] = 'The selected course does not contain page module instances';
$string['error_notdebugging'] = 'Not available on this server because debugging is not set to DEVELOPER';
$string['error_nouserspassword'] = 'You need to set $CFG->tool_generator_users_password in config.php to generate the test plan';
$string['firstname'] = 'Test course user';
$string['fullname'] = 'Test course: {$a->size}';
$string['maketestcourse'] = 'Make test course';
$string['maketestplan'] = 'Make JMeter test plan';
@@ -136,7 +136,7 @@ class tool_generator_maketestcourse_testcase extends advanced_testcase {
$lastusernumber = 0;
$discussionstarters = array();
foreach ($discussions as $discussion) {
$usernumber = intval($discussion->lastname);
$usernumber = core_user::get_user($discussion->userid, 'id, idnumber')->idnumber;
// Checks that the users are odd numbers.
$this->assertEquals(1, $usernumber % 2);
+2 -28
View File
@@ -156,7 +156,7 @@ class controller {
$updateablelangs = array();
foreach ($currentlangs as $clang) {
if (!array_key_exists($clang, $md5array)) {
$noticeok[] = get_string('langpackupdateskipped', 'tool_langimport', $clang);
$this->info[] = get_string('langpackupdateskipped', 'tool_langimport', $clang);
continue;
}
$dest1 = $CFG->dataroot.'/lang/'.$clang;
@@ -175,36 +175,10 @@ class controller {
}
}
// Clean-up currently installed versions of the packs.
foreach ($neededlangs as $packindex => $pack) {
if ($pack == 'en') {
continue;
}
// Delete old directories.
$dest1 = $CFG->dataroot.'/lang/'.$pack;
$dest2 = $CFG->dirroot.'/lang/'.$pack;
if (file_exists($dest1)) {
if (!remove_dir($dest1)) {
$noticeerror[] = 'Could not delete old directory '.$dest1.', update of '.$pack
.' failed, please check permissions.';
unset($neededlangs[$packindex]);
continue;
}
}
if (file_exists($dest2)) {
if (!remove_dir($dest2)) {
$noticeerror[] = 'Could not delete old directory '.$dest2.', update of '.$pack
.' failed, please check permissions.';
unset($neededlangs[$packindex]);
continue;
}
}
}
try {
$updated = $this->install_languagepacks($neededlangs, true);
} catch (\moodle_exception $e) {
$this->errors[] = 'An exception occurred while installing language packs: ' . $e->getMessage();
return false;
}
@@ -45,6 +45,14 @@ class update_langpacks_task extends \core\task\scheduled_task {
* Run langpack update
*/
public function execute() {
global $CFG;
if (!empty($CFG->skiplangupgrade)) {
mtrace('Langpack update skipped. ($CFG->skiplangupgrade set)');
return;
}
$controller = new \tool_langimport\controller();
if ($controller->update_all_installed_languages()) {
foreach ($controller->info as $message) {
+5 -2
View File
@@ -213,11 +213,14 @@ class manager implements \core\log\manager {
* @param string $info Additional description information
* @param int $cm The course_module->id if there is one
* @param int|\stdClass $user If log regards $user other than $USER
* @param string $ip Override the IP, should only be used for restore.
* @param int $time Override the log time, should only be used for restore.
*/
public function legacy_add_to_log($courseid, $module, $action, $url = '', $info = '', $cm = 0, $user = 0) {
public function legacy_add_to_log($courseid, $module, $action, $url = '', $info = '',
$cm = 0, $user = 0, $ip = null, $time = null) {
$this->init();
if (isset($this->stores['logstore_legacy'])) {
$this->stores['logstore_legacy']->legacy_add_to_log($courseid, $module, $action, $url, $info, $cm, $user);
$this->stores['logstore_legacy']->legacy_add_to_log($courseid, $module, $action, $url, $info, $cm, $user, $ip, $time);
}
}
}
+3
View File
@@ -46,5 +46,8 @@ function xmldb_tool_log_upgrade($oldversion) {
// Moodle v2.7.0 release upgrade line.
// Put any upgrade step following this.
// Moodle v2.8.0 release upgrade line.
// Put any upgrade step following this.
return true;
}
@@ -36,5 +36,8 @@ function xmldb_logstore_database_upgrade($oldversion) {
// Moodle v2.7.0 release upgrade line.
// Put any upgrade step following this.
// Moodle v2.8.0 release upgrade line.
// Put any upgrade step following this.
return true;
}
@@ -91,19 +91,24 @@ class store implements \tool_log\log\store, \core\log\sql_select_reader {
// Replace the query with hardcoded mappings required for core.
list($selectwhere, $params, $sort) = self::replace_sql_legacy($selectwhere, $params, $sort);
$events = array();
$records = array();
try {
$records = $DB->get_records_select('log', $selectwhere, $params, $sort, '*', $limitfrom, $limitnum);
// A custom report + on the fly SQL rewriting = a possible exception.
$records = $DB->get_recordset_select('log', $selectwhere, $params, $sort, '*', $limitfrom, $limitnum);
} catch (\moodle_exception $ex) {
debugging("error converting legacy event data " . $ex->getMessage() . $ex->debuginfo, DEBUG_DEVELOPER);
return array();
}
$events = array();
foreach ($records as $data) {
$events[$data->id] = \logstore_legacy\event\legacy_logged::restore_legacy($data);
}
$records->close();
return $events;
}
@@ -143,8 +148,10 @@ class store implements \tool_log\log\store, \core\log\sql_select_reader {
* @param string $info Additional description information
* @param int $cm The course_module->id if there is one
* @param int|\stdClass $user If log regards $user other than $USER
* @param string $ip Override the IP, should only be used for restore.
* @param int $time Override the log time, should only be used for restore.
*/
public function legacy_add_to_log($courseid, $module, $action, $url, $info, $cm, $user) {
public function legacy_add_to_log($courseid, $module, $action, $url, $info, $cm, $user, $ip = null, $time = null) {
// Note that this function intentionally does not follow the normal Moodle DB access idioms.
// This is for a good reason: it is the most frequently used DB update function,
// so it has been optimised for speed.
@@ -172,9 +179,9 @@ class store implements \tool_log\log\store, \core\log\sql_select_reader {
}
}
$remoteaddr = getremoteaddr();
$remoteaddr = (is_null($ip)) ? getremoteaddr() : $ip;
$timenow = time();
$timenow = (is_null($time)) ? time() : $time;
if (!empty($url)) { // Could break doing html_entity_decode on an empty var.
$url = html_entity_decode($url, ENT_QUOTES, 'UTF-8');
} else {
@@ -44,11 +44,26 @@ class cleanup_task extends \core\task\scheduled_task {
public function execute() {
global $CFG, $DB;
// Delete old logs to save space (this might need a timer to slow it down...).
if (!empty($CFG->loglifetime)) { // Value in days.
$loglifetime = time(0) - ($CFG->loglifetime * 3600 * 24);
$DB->delete_records_select("log", "time < ?", array($loglifetime));
mtrace(" Deleted old legacy log records");
if (empty($CFG->loglifetime)) {
return;
}
$loglifetime = time() - ($CFG->loglifetime * 3600 * 24); // Value in days.
$lifetimep = array($loglifetime);
$start = time();
while ($min = $DB->get_field_select("log", "MIN(time)", "time < ?", $lifetimep)) {
// Break this down into chunks to avoid transaction for too long and generally thrashing database.
// Experiments suggest deleting one day takes up to a few seconds; probably a reasonable chunk size usually.
// If the cleanup has just been enabled, it might take e.g a month to clean the years of logs.
$params = array(min($min + 3600 * 24, $loglifetime));
$DB->delete_records_select("log", "time < ?", $params);
if (time() > $start + 300) {
// Do not churn on log deletion for too long each run.
break;
}
}
mtrace(" Deleted old legacy log records");
}
}
@@ -273,4 +273,33 @@ class logstore_legacy_store_testcase extends advanced_testcase {
$this->assertContains($expectedreport, $reports);
}
}
/**
* Test that the legacy log cleanup works correctly.
*/
public function test_cleanup_task() {
global $DB;
$this->resetAfterTest();
// Create some records spread over various days; test multiple iterations in cleanup.
$record = (object) array('time' => time());
$DB->insert_record('log', $record);
$record->time -= 3600 * 24 * 30;
$DB->insert_record('log', $record);
$record->time -= 3600 * 24 * 30;
$DB->insert_record('log', $record);
$record->time -= 3600 * 24 * 30;
$DB->insert_record('log', $record);
$this->assertEquals(4, $DB->count_records('log'));
// Remove all logs before "today".
set_config('loglifetime', 1);
$this->expectOutputString(" Deleted old legacy log records\n");
$clean = new \logstore_legacy\task\cleanup_task();
$clean->execute();
$this->assertEquals(1, $DB->count_records('log'));
}
}
@@ -72,7 +72,7 @@ class store implements \tool_log\log\writer, \core\log\sql_internal_reader {
$sort = self::tweak_sort_by_id($sort);
$events = array();
$records = $DB->get_records_select('logstore_standard_log', $selectwhere, $params, $sort, '*', $limitfrom, $limitnum);
$records = $DB->get_recordset_select('logstore_standard_log', $selectwhere, $params, $sort, '*', $limitfrom, $limitnum);
foreach ($records as $data) {
$extra = array('origin' => $data->origin, 'ip' => $data->ip, 'realuserid' => $data->realuserid);
@@ -94,6 +94,8 @@ class store implements \tool_log\log\writer, \core\log\sql_internal_reader {
}
}
$records->close();
return $events;
}
@@ -43,12 +43,29 @@ class cleanup_task extends \core\task\scheduled_task {
*/
public function execute() {
global $DB;
$loglifetime = (int)get_config('logstore_standard', 'loglifetime');
if ($loglifetime > 0) {
$loglifetime = time() - ($loglifetime * 3600 * 24); // Value in days.
$DB->delete_records_select("logstore_standard_log", "timecreated < ?", array($loglifetime));
mtrace(" Deleted old log records from standard store.");
if (empty($loglifetime) || $loglifetime < 0) {
return;
}
$loglifetime = time() - ($loglifetime * 3600 * 24); // Value in days.
$lifetimep = array($loglifetime);
$start = time();
while ($min = $DB->get_field_select("logstore_standard_log", "MIN(timecreated)", "timecreated < ?", $lifetimep)) {
// Break this down into chunks to avoid transaction for too long and generally thrashing database.
// Experiments suggest deleting one day takes up to a few seconds; probably a reasonable chunk size usually.
// If the cleanup has just been enabled, it might take e.g a month to clean the years of logs.
$params = array(min($min + 3600 * 24, $loglifetime));
$DB->delete_records_select("logstore_standard_log", "timecreated < ?", $params);
if (time() > $start + 300) {
// Do not churn on log deletion for too long each run.
break;
}
}
mtrace(" Deleted old log records from standard store.");
}
}
@@ -114,5 +114,8 @@ function xmldb_logstore_standard_upgrade($oldversion) {
// Moodle v2.7.0 release upgrade line.
// Put any upgrade step following this.
// Moodle v2.8.0 release upgrade line.
// Put any upgrade step following this.
return true;
}
@@ -218,4 +218,41 @@ class logstore_standard_store_testcase extends advanced_testcase {
$this->assertContains($expectedreport, $reports);
}
}
/**
* Test that the standard log cleanup works correctly.
*/
public function test_cleanup_task() {
global $DB;
$this->resetAfterTest();
// Create some records spread over various days; test multiple iterations in cleanup.
$ctx = context_course::instance(1);
$record = (object) array(
'edulevel' => 0,
'contextid' => $ctx->id,
'contextlevel' => $ctx->contextlevel,
'contextinstanceid' => $ctx->instanceid,
'userid' => 1,
'timecreated' => time(),
);
$DB->insert_record('logstore_standard_log', $record);
$record->timecreated -= 3600 * 24 * 30;
$DB->insert_record('logstore_standard_log', $record);
$record->timecreated -= 3600 * 24 * 30;
$DB->insert_record('logstore_standard_log', $record);
$record->timecreated -= 3600 * 24 * 30;
$DB->insert_record('logstore_standard_log', $record);
$this->assertEquals(4, $DB->count_records('logstore_standard_log'));
// Remove all logs before "today".
set_config('loglifetime', 1, 'logstore_standard');
$this->expectOutputString(" Deleted old log records from standard store.\n");
$clean = new \logstore_standard\task\cleanup_task();
$clean->execute();
$this->assertEquals(1, $DB->count_records('logstore_standard_log'));
}
}
@@ -62,15 +62,24 @@ class tool_messageinbound_edit_handler_form extends moodleform {
// Items which can be configured.
$mform->addElement('header', 'configuration', get_string('configuration'));
$options = array(
HOURSECS => get_string('onehour', 'tool_messageinbound'),
DAYSECS => get_string('oneday', 'tool_messageinbound'),
WEEKSECS => get_string('oneweek', 'tool_messageinbound'),
YEARSECS => get_string('oneyear', 'tool_messageinbound'),
0 => get_string('noexpiry', 'tool_messageinbound'),
);
$mform->addElement('select', 'defaultexpiration', get_string('defaultexpiration', 'tool_messageinbound'), $options);
$mform->addHelpButton('defaultexpiration', 'defaultexpiration', 'tool_messageinbound');
if ($handler->can_change_defaultexpiration()) {
// Show option to change expiry only if the handler supports it.
$options = array(
HOURSECS => get_string('onehour', 'tool_messageinbound'),
DAYSECS => get_string('oneday', 'tool_messageinbound'),
WEEKSECS => get_string('oneweek', 'tool_messageinbound'),
YEARSECS => get_string('oneyear', 'tool_messageinbound'),
0 => get_string('noexpiry', 'tool_messageinbound'),
);
$mform->addElement('select', 'defaultexpiration', get_string('defaultexpiration', 'tool_messageinbound'), $options);
$mform->addHelpButton('defaultexpiration', 'defaultexpiration', 'tool_messageinbound');
} else {
$text = $this->get_defaultexpiration_text($handler);
$mform->addElement('static', 'defaultexpiration_fake', get_string('defaultexpiration', 'tool_messageinbound'), $text);
$mform->addElement('hidden', 'defaultexpiration');
$mform->addHelpButton('defaultexpiration_fake', 'defaultexpiration', 'tool_messageinbound');
$mform->setType('defaultexpiration', PARAM_INT);
}
if ($handler->can_change_validateaddress()) {
$mform->addElement('checkbox', 'validateaddress', get_string('requirevalidation', 'tool_messageinbound'));
@@ -103,4 +112,28 @@ class tool_messageinbound_edit_handler_form extends moodleform {
$this->add_action_buttons(true, get_string('savechanges'));
}
/**
* Return a text string representing the selected default expiration for the handler.
*
* @param \core\message\inbound\handler $handler handler instance.
*
* @return string localised text string.
*/
protected function get_defaultexpiration_text(\core\message\inbound\handler $handler) {
switch($handler->defaultexpiration) {
case HOURSECS :
return get_string('onehour', 'tool_messageinbound');
case DAYSECS :
return get_string('oneday', 'tool_messageinbound');
case WEEKSECS :
return get_string('oneweek', 'tool_messageinbound');
case YEARSECS :
return get_string('oneyear', 'tool_messageinbound');
case 0:
return get_string('noexpiry', 'tool_messageinbound');
default:
return ''; // Should never happen.
}
}
}
+62 -26
View File
@@ -291,6 +291,11 @@ class manager {
// First flag this message to prevent another running hitting this message while we look at the headers.
$this->add_flag_to_message($messageid, self::MESSAGE_FLAGGED);
if ($this->is_bulk_message($message, $messageid)) {
mtrace("- The message has a bulk header set. This is likely an auto-generated reply - discarding.");
return;
}
// Record the user that this script is currently being run as. This is important when re-processing existing
// messages, as cron_setup_user is called multiple times.
$originaluser = $USER;
@@ -363,7 +368,10 @@ class manager {
// Process and retrieve the message data for this message.
// This includes fetching the full content, as well as all headers, and attachments.
$this->process_message_data($envelope, $messagedata, $messageid);
if (!$this->process_message_data($envelope, $messagedata, $messageid)) {
mtrace("--- Message could not be found on the server. Is another process removing messages?");
return;
}
// When processing validation replies, we need to skip the sender verification phase as this has been
// manually completed.
@@ -403,7 +411,7 @@ class manager {
mtrace("-- Returning to the original user.");
cron_setup_user($originaluser);
return;
} catch (Exception $e) {
} catch (\Exception $e) {
// An unknown error occurred. The user is not informed, but the administrator is.
mtrace("-- Message processing failed. An unexpected exception was thrown. Details follow.");
mtrace($e->getMessage());
@@ -457,36 +465,25 @@ class manager {
$query = new \Horde_Imap_Client_Fetch_Query();
$query->imapDate();
// Fetch all of the message parts too.
$typemap = $structure->contentTypeMap();
foreach ($typemap as $part => $type) {
// The header.
$query->headerText(array(
'id' => $part,
));
}
// Fetch the message header.
$query->headerText();
// Retrieve the message with the above components.
$messagedata = $this->client->fetch($mailbox, $query, array('ids' => $messageid))->first();
// Store the data for this message.
$headers = '';
foreach ($typemap as $part => $type) {
// Grab all of the header data into a string.
$headers .= $messagedata->getHeaderText($part);
// We don't handle any of the other MIME content at this stage.
if (!$messagedata) {
// Message was not found! Somehow it has been removed or is no longer returned.
return null;
}
$data = new \stdClass();
// The message ID should always be in the first part.
$data = new \stdClass();
$data->messageid = $messagedata->getHeaderText(0, \Horde_Imap_Client_Data_Fetch::HEADER_PARSE)->getValue('Message-ID');
$data->subject = $envelope->subject;
$data->timestamp = $messagedata->getImapDate()->__toString();
$data->envelope = $envelope;
$data->data = $this->addressmanager->get_data();
$data->headers = $headers;
$data->headers = $messagedata->getHeaderText();
$this->currentmessagedata = $data;
@@ -496,9 +493,8 @@ class manager {
/**
* Process a message again to add body and attachment data.
*
* @param Horde_Imap_Client_Data_Envelope $envelope The Envelope of the message
* @param Horde_Imap_Client_Data_Fetch $basemessagedata The structure and part of the message body
* @param string|Horde_Imap_Client_Ids $messageid The Hore message Uid
* @param \Horde_Imap_Client_Data_Fetch $basemessagedata The structure and part of the message body
* @param string|\Horde_Imap_Client_Ids $messageid The Hore message Uid
* @return \stdClass The current value of the messagedata
*/
private function process_message_data_body(
@@ -616,6 +612,9 @@ class manager {
private function process_message_part_attachment($messagedata, $partdata, $part, $filename) {
global $CFG;
// For Antivirus, the repository/lib.php must be included as it is not autoloaded.
require_once($CFG->dirroot . '/repository/lib.php');
// If a filename is present, assume that this part is an attachment.
$attachment = new \stdClass();
$attachment->filename = $filename;
@@ -647,7 +646,7 @@ class manager {
// Perform a virus scan now.
try {
\repository::antivir_scan_file($filepath, $attachment->filename, true);
} catch (moodle_exception $e) {
} catch (\moodle_exception $e) {
mtrace("--> A virus was found in the attachment '{$attachment->filename}'.");
$this->inform_attachment_virus();
return;
@@ -736,6 +735,43 @@ class manager {
return in_array($flag, $flags);
}
/**
* Attempt to determine whether this message is a bulk message (e.g. automated reply).
*
* @param \Horde_Imap_Client_Data_Fetch $message The message to process
* @param string|\Horde_Imap_Client_Ids $messageid The Hore message Uid
* @return boolean
*/
private function is_bulk_message(
\Horde_Imap_Client_Data_Fetch $message,
$messageid) {
$query = new \Horde_Imap_Client_Fetch_Query();
$query->headerText(array('peek' => true));
$messagedata = $this->client->fetch($this->get_mailbox(), $query, array('ids' => $messageid))->first();
// Assume that this message is not bulk to begin with.
$isbulk = false;
// An auto-reply may itself include the Bulk Precedence.
$precedence = $messagedata->getHeaderText(0, \Horde_Imap_Client_Data_Fetch::HEADER_PARSE)->getValue('Precedence');
$isbulk = $isbulk || strtolower($precedence) == 'bulk';
// If the X-Autoreply header is set, and not 'no', then this is an automatic reply.
$autoreply = $messagedata->getHeaderText(0, \Horde_Imap_Client_Data_Fetch::HEADER_PARSE)->getValue('X-Autoreply');
$isbulk = $isbulk || ($autoreply && $autoreply != 'no');
// If the X-Autorespond header is set, and not 'no', then this is an automatic response.
$autorespond = $messagedata->getHeaderText(0, \Horde_Imap_Client_Data_Fetch::HEADER_PARSE)->getValue('X-Autorespond');
$isbulk = $isbulk || ($autorespond && $autorespond != 'no');
// If the Auto-Submitted header is set, and not 'no', then this is a non-human response.
$autosubmitted = $messagedata->getHeaderText(0, \Horde_Imap_Client_Data_Fetch::HEADER_PARSE)->getValue('Auto-Submitted');
$isbulk = $isbulk || ($autosubmitted && $autosubmitted != 'no');
return $isbulk;
}
/**
* Send the message to the appropriate handler.
*
@@ -758,7 +794,7 @@ class manager {
$error->message = $e->getMessage();
throw new \core\message\inbound\processing_failed_exception('messageprocessingfailed', 'tool_messageinbound', $error);
} catch (Exception $e) {
} catch (\Exception $e) {
mtrace("-> The Inbound Message handler threw an exception. Unable to process this message. User informed.");
mtrace("--> " . $e->getMessage());
// An unknown error occurred. Still inform the user but, this time do not include the specific
@@ -46,7 +46,7 @@ class invalid_recipient_handler extends \core\message\inbound\handler {
/**
* Do not allow changes to the address validation setting.
*/
public function allow_validateaddress_change() {
public function can_change_validateaddress() {
return false;
}
+4 -1
View File
@@ -58,8 +58,11 @@ if (empty($classname)) {
if ($mform->is_cancelled()) {
redirect($PAGE->url);
} else if ($data = $mform->get_data()) {
// Update the record from the form.
$record->defaultexpiration = (int) $data->defaultexpiration;
if ($handler->can_change_defaultexpiration()) {
$record->defaultexpiration = (int) $data->defaultexpiration;
}
if ($handler->can_change_validateaddress()) {
$record->validateaddress = !empty($data->validateaddress);
@@ -164,29 +164,32 @@ class renderable extends \table_sql implements \renderable {
*/
public function col_manage(\tool_monitor\rule $rule) {
global $OUTPUT, $CFG;
$manage = '';
// We don't need to check for capability at course level since, user is never shown this page,
// if he doesn't have the capability.
// Do not allow the user to edit the rule unless they have the system capability, or we are viewing the rules
// for a course, and not the site. Note - we don't need to check for the capability at a course level since
// the user is never shown this page otherwise.
if ($this->hassystemcap || ($rule->courseid != 0)) {
// There might be site rules which the user can not manage.
$editurl = new \moodle_url($CFG->wwwroot. '/admin/tool/monitor/edit.php', array('ruleid' => $rule->id,
'courseid' => $rule->courseid, 'sesskey' => sesskey()));
$copyurl = new \moodle_url($CFG->wwwroot. '/admin/tool/monitor/managerules.php',
array('ruleid' => $rule->id, 'action' => 'copy', 'courseid' => $this->courseid, 'sesskey' => sesskey()));
$deleteurl = new \moodle_url($CFG->wwwroot. '/admin/tool/monitor/managerules.php', array('ruleid' => $rule->id,
'action' => 'delete', 'courseid' => $rule->courseid, 'sesskey' => sesskey()));
$icon = $OUTPUT->render(new \pix_icon('t/edit', get_string('editrule', 'tool_monitor')));
$manage .= \html_writer::link($editurl, $icon, array('class' => 'action-icon'));
}
$icon = $OUTPUT->render(new \pix_icon('t/copy', get_string('duplicaterule', 'tool_monitor')));
$manage .= \html_writer::link($copyurl, $icon, array('class' => 'action-icon'));
// The user should always be able to copy the rule if they are able to view the page.
$copyurl = new \moodle_url($CFG->wwwroot. '/admin/tool/monitor/managerules.php',
array('ruleid' => $rule->id, 'action' => 'copy', 'courseid' => $this->courseid, 'sesskey' => sesskey()));
$icon = $OUTPUT->render(new \pix_icon('t/copy', get_string('duplicaterule', 'tool_monitor')));
$manage .= \html_writer::link($copyurl, $icon, array('class' => 'action-icon'));
if ($this->hassystemcap || ($rule->courseid != 0)) {
$deleteurl = new \moodle_url($CFG->wwwroot. '/admin/tool/monitor/managerules.php', array('ruleid' => $rule->id,
'action' => 'delete', 'courseid' => $rule->courseid, 'sesskey' => sesskey()));
$icon = $OUTPUT->render(new \pix_icon('t/delete', get_string('deleterule', 'tool_monitor')));
$manage .= \html_writer::link($deleteurl, $icon, array('class' => 'action-icon'));
} else {
$manage = get_string('nopermission', 'tool_monitor');
}
return $manage;
}
@@ -215,7 +215,10 @@ class rules extends \table_sql implements \renderable {
return false;
}
$orderby = 'visible DESC, sortorder ASC';
$options = array(0 => get_string('site'));
$options = array();
if (has_capability('tool/monitor:subscribe', \context_system::instance())) {
$options[0] = get_string('site');
}
if ($courses = get_user_capability_course('tool/monitor:subscribe', null, true, 'fullname', $orderby)) {
foreach ($courses as $course) {
$options[$course->id] = format_string($course->fullname, true,
@@ -223,7 +226,7 @@ class rules extends \table_sql implements \renderable {
}
}
$url = new \moodle_url('/admin/tool/monitor/index.php');
$select = new \single_select($url, 'courseid', $options, $this->courseid);
$select = new \single_select($url, 'courseid', $options, $this->courseid, array());
$select->set_label(get_string('selectacourse', 'tool_monitor'));
return $select;
}
+3
View File
@@ -50,5 +50,8 @@ function xmldb_tool_monitor_upgrade($oldversion) {
upgrade_plugin_savepoint(true, 2014102000, 'tool', 'monitor');
}
// Moodle v2.8.0 release upgrade line.
// Put any upgrade step following this.
return true;
}
+1
View File
@@ -35,6 +35,7 @@ $confirm = optional_param('confirm', false, PARAM_BOOL);
// Validate course id.
if (empty($courseid)) {
require_login();
require_capability('tool/monitor:subscribe', context_system::instance());
} else {
// They might want to see rules for this course.
$course = get_course($courseid);
+14 -13
View File
@@ -78,13 +78,14 @@ if (!empty($action) && $ruleid) {
echo $OUTPUT->header();
$rule = \tool_monitor\rule_manager::get_rule($rule);
if ($rule->can_manage_rule()) {
switch ($action) {
case 'copy' :
$rule->duplicate_rule($courseid);
echo $OUTPUT->notification(get_string('rulecopysuccess', 'tool_monitor'), 'notifysuccess');
break;
case 'delete' :
switch ($action) {
case 'copy':
// No need to check for capability here as it is done at the start of the page.
$rule->duplicate_rule($courseid);
echo $OUTPUT->notification(get_string('rulecopysuccess', 'tool_monitor'), 'notifysuccess');
break;
case 'delete':
if ($rule->can_manage_rule()) {
$confirmurl = new moodle_url($CFG->wwwroot. '/admin/tool/monitor/managerules.php',
array('ruleid' => $ruleid, 'courseid' => $courseid, 'action' => 'delete',
'confirm' => true, 'sesskey' => sesskey()));
@@ -103,12 +104,12 @@ if (!empty($action) && $ruleid) {
echo $OUTPUT->footer();
exit();
}
break;
default:
}
} else {
// User doesn't have permissions. Should never happen for real users.
throw new moodle_exception('rulenopermissions', 'tool_monitor', $manageurl, $action);
} else {
// User doesn't have permissions. Should never happen for real users.
throw new moodle_exception('rulenopermissions', 'tool_monitor', $manageurl, $action);
}
break;
default:
}
} else {
echo $OUTPUT->header();
+6 -5
View File
@@ -10,7 +10,7 @@ Feature: tool_monitor_rule
| Course 1 | C1 |
And the following "users" exist:
| username | firstname | lastname | email |
| teacher1 | Teacher | 1 | teacher1@asd.com |
| teacher1 | Teacher | 1 | teacher1@example.com |
And the following "course enrolments" exist:
| user | course | role |
| teacher1 | C1 | editingteacher |
@@ -97,7 +97,7 @@ Feature: tool_monitor_rule
Given I log in as "teacher1"
And I follow "Course 1"
And I navigate to "Event monitoring rules" node in "Course administration > Reports"
When I click on "Duplicate rule" "link"
When I click on "Duplicate rule" "link" in the "New rule course level" "table_row"
Then I should see "Rule successfully duplicated"
And "#toolmonitorrules_r1" "css_element" should appear before "#toolmonitorrules_r2" "css_element"
And I should see "New rule"
@@ -153,9 +153,10 @@ Feature: tool_monitor_rule
And I should see "5 time(s) in 5 minute(s)"
Scenario: Duplicate a rule on site level
Given I log in as "admin"
And I navigate to "Event monitoring rules" node in "Site administration > Reports"
When I click on "Duplicate rule" "link"
Given I log in as "teacher1"
And I follow "Course 1"
And I navigate to "Event monitoring rules" node in "Course administration > Reports"
When I click on "Duplicate rule" "link" in the "New rule site level" "table_row"
Then I should see "Rule successfully duplicated"
And "#toolmonitorrules_r2" "css_element" should appear after "#toolmonitorrules_r1" "css_element"
And I should see "I want a rule to monitor posts created on a forum"
@@ -11,8 +11,8 @@ Feature: tool_monitor_subscriptions
| Course 2 | C2 |
And the following "users" exist:
| username | firstname | lastname | email |
| teacher1 | Teacher | 1 | teacher1@asd.com |
| teacher2 | Teacher | 2 | teacher2@asd.com |
| teacher1 | Teacher | 1 | teacher1@example.com |
| teacher2 | Teacher | 2 | teacher2@example.com |
And the following "course enrolments" exist:
| user | course | role |
| teacher1 | C1 | editingteacher |
@@ -150,8 +150,6 @@ Feature: tool_monitor_subscriptions
And I should see "You can subscribe to rules from the Event monitoring page."
And I click on "//a[text()='Event monitoring']" "xpath_element"
And the field "courseid" matches value "Course 1"
And I set the field "courseid" to "Site"
And I should not see "You can manage rules from the Event monitoring rules page."
And I log out
And I log in as "teacher2"
And I follow "Course 1"
@@ -404,12 +404,11 @@ class tool_monitor_eventobservers_testcase extends advanced_testcase {
* Run adhoc tasks.
*/
protected function run_adhock_tasks() {
ob_start();
while ($task = \core\task\manager::get_next_adhoc_task(time())) {
$task->execute();
\core\task\manager::adhoc_task_complete($task);
}
ob_clean(); // Suppress mtrace debugging info.
$this->expectOutputRegex("/^Sending message to the user with id \d+ for the subscription with id \d+\.\.\..Sent./ms");
}
/**
+1 -1
View File
@@ -26,7 +26,7 @@
$string['cannotfit'] = 'The replacement is longer than original and shortening is not allow, cannot continue.';
$string['disclaimer'] = 'I understand the risks of this operation';
$string['doit'] = 'Yes, do it!';
$string['excludedtables'] = 'Several tables are not updated as part of the text replacement. This include configuration, log, events, and session tables.';
$string['excludedtables'] = 'Several tables are not updated as part of the text replacement. These include configuration, log, events, and session tables.';
$string['pageheader'] = 'Search and replace text throughout the whole database';
$string['notifyfinished'] = '...finished';
$string['notifyrebuilding'] = 'Rebuilding course cache...';
@@ -38,10 +38,15 @@ class tool_task_edit_scheduled_task_form extends moodleform {
/** @var \core\task\scheduled_task $task */
$task = $this->_customdata;
$plugininfo = core_plugin_manager::instance()->get_plugin_info($task->get_component());
$plugindisabled = $plugininfo && $plugininfo->is_enabled() === false && !$task->get_run_if_component_disabled();
$lastrun = $task->get_last_run_time() ? userdate($task->get_last_run_time()) : get_string('never');
$nextrun = $task->get_next_run_time();
if ($task->get_disabled()) {
$nextrun = get_string('disabled', 'tool_task');
if ($plugindisabled) {
$nextrun = get_string('plugindisabled', 'tool_task');
} else if ($task->get_disabled()) {
$nextrun = get_string('taskdisabled', 'tool_task');
} else if ($nextrun > time()) {
$nextrun = userdate($nextrun);
} else {
@@ -92,5 +97,63 @@ class tool_task_edit_scheduled_task_form extends moodleform {
// Do not use defaults for existing values, the set_data() is the correct way.
$this->set_data(\core\task\manager::record_from_scheduled_task($task));
}
/**
* Custom validations.
*
* @param array $data
* @param array $files
*
* @return array
*/
public function validation($data, $files) {
$error = parent::validation($data, $files);
$fields = array('minute', 'hour', 'day', 'month', 'dayofweek');
foreach ($fields as $field) {
if (!self::validate_fields($field, $data[$field])) {
$error[$field] = get_string('invaliddata', 'core_error');
}
}
return $error;
}
/**
* Helper function that validates the submitted data.
*
* Explanation of the regex:-
*
* \A\*\z - matches *
* \A[0-5]?[0-9]\z - matches entries like 23
* \A\*\/[0-5]?[0-9]\z - matches entries like * / 5
* \A[0-5]?[0-9](,[0-5]?[0-9])*\z - matches entries like 1,2,3
* \A[0-5]?[0-9]-[0-5]?[0-9]\z - matches entries like 2-10
*
* @param string $field field to validate
* @param string $value value
*
* @return bool true if validation passes, false other wise.
*/
public static function validate_fields($field, $value) {
switch ($field) {
case 'minute' :
case 'hour' :
$regex = "/\A\*\z|\A[0-5]?[0-9]\z|\A\*\/[0-5]?[0-9]\z|\A[0-5]?[0-9](,[0-5]?[0-9])*\z|\A[0-5]?[0-9]-[0-5]?[0-9]\z/";
break;
case 'day':
$regex = "/\A\*\z|\A([1-2]?[0-9]|3[0-1])\z|\A\*\/([1-2]?[0-9]|3[0-1])\z|";
$regex .= "\A([1-2]?[0-9]|3[0-1])(,([1-2]?[0-9]|3[0-1]))*\z|\A([1-2]?[0-9]|3[0-1])-([1-2]?[0-9]|3[0-1])\z/";
break;
case 'month':
$regex = "/\A\*\z|\A([0-9]|1[0-2])\z|\A\*\/([0-9]|1[0-2])\z|\A([0-9]|1[0-2])(,([0-9]|1[0-2]))*\z|";
$regex .= "\A([0-9]|1[0-2])-([0-9]|1[0-2])\z/";
break;
case 'dayofweek':
$regex = "/\A\*\z|\A[0-6]\z|\A\*\/[0-6]\z|\A[0-6](,[0-6])*\z|\A[0-6]-[0-6]\z/";
break;
default:
return false;
}
return (bool)preg_match($regex, $value);
}
}
+32 -20
View File
@@ -72,8 +72,13 @@ if ($options['list']) {
. $task->get_day_of_week();
$nextrun = $task->get_next_run_time();
if ($task->get_disabled()) {
$nextrun = get_string('disabled', 'tool_task');
$plugininfo = core_plugin_manager::instance()->get_plugin_info($task->get_component());
$plugindisabled = $plugininfo && $plugininfo->is_enabled() === false && !$task->get_run_if_component_disabled();
if ($plugindisabled) {
$nextrun = get_string('plugindisabled', 'tool_task');
} else if ($task->get_disabled()) {
$nextrun = get_string('taskdisabled', 'tool_task');
} else if ($nextrun > time()) {
$nextrun = userdate($nextrun);
} else {
@@ -104,25 +109,30 @@ if ($execute = $options['execute']) {
$predbqueries = $DB->perf_get_queries();
$pretime = microtime(true);
mtrace("Scheduled task: " . $task->get_name());
// NOTE: it would be tricky to move this code to \core\task\manager class,
// because we want to do detailed error reporting.
$cronlockfactory = \core\lock\lock_config::get_lock_factory('cron');
if (!$cronlock = $cronlockfactory->get_lock('core_cron', 10)) {
mtrace('Cannot obtain cron lock');
exit(129);
}
if (!$lock = $cronlockfactory->get_lock('\\' . get_class($task), 10)) {
$cronlock->release();
mtrace('Cannot obtain task lock');
exit(130);
}
$task->set_lock($lock);
if (!$task->is_blocking()) {
$cronlock->release();
} else {
$task->set_cron_lock($cronlock);
}
try {
mtrace("Scheduled task: " . $task->get_name());
// NOTE: it would be tricky to move this code to \core\task\manager class,
// because we want to do detailed error reporting.
$cronlockfactory = \core\lock\lock_config::get_lock_factory('cron');
if (!$cronlock = $cronlockfactory->get_lock('core_cron', 10)) {
mtrace('Cannot obtain cron lock');
exit(129);
}
if (!$lock = $cronlockfactory->get_lock('\\' . get_class($task), 10)) {
mtrace('Cannot obtain task lock');
exit(130);
}
$task->set_lock($lock);
if (!$task->is_blocking()) {
$cronlock->release();
} else {
$task->set_cron_lock($cronlock);
}
get_mailer('buffer');
$task->execute();
if (isset($predbqueries)) {
mtrace("... used " . ($DB->perf_get_queries() - $predbqueries) . " dbqueries");
@@ -130,6 +140,7 @@ if ($execute = $options['execute']) {
}
mtrace("Task completed.");
\core\task\manager::scheduled_task_complete($task);
get_mailer('close');
exit(0);
} catch (Exception $e) {
if ($DB->is_transaction_started()) {
@@ -139,6 +150,7 @@ if ($execute = $options['execute']) {
mtrace("... used " . (microtime(true) - $pretime) . " seconds");
mtrace("Task failed: " . $e->getMessage());
\core\task\manager::scheduled_task_failed($task);
get_mailer('close');
exit(1);
}
}
+2
View File
@@ -33,11 +33,13 @@ $string['edittaskschedule'] = 'Edit task schedule: {$a}';
$string['faildelay'] = 'Fail delay';
$string['lastruntime'] = 'Last run';
$string['nextruntime'] = 'Next run';
$string['plugindisabled'] = 'Plugin disabled';
$string['pluginname'] = 'Scheduled task configuration';
$string['resettasktodefaults'] = 'Reset task schedule to defaults';
$string['resettasktodefaults_help'] = 'This will discard any local changes and revert the schedule for this task back to its original settings.';
$string['scheduledtasks'] = 'Scheduled tasks';
$string['scheduledtaskchangesdisabled'] = 'Modifications to the list of scheduled tasks have been prevented in Moodle configuration';
$string['taskdisabled'] = 'Task disabled';
$string['taskscheduleday'] = 'Day';
$string['taskscheduleday_help'] = 'Day of month field for task schedule. The field uses the same format as unix cron. Some examples are:<br/><ul><li><strong>*</strong> Every day</li><li><strong>*/2</strong> Every 2nd day</li><li><strong>1</strong> The first of every month</li><li><strong>1,15</strong> The first and fifteenth of every month</li></ul>';
$string['taskscheduledayofweek'] = 'Day of week';
+19 -11
View File
@@ -60,18 +60,10 @@ class tool_task_renderer extends plugin_renderer_base {
$no = get_string('no');
$never = get_string('never');
$asap = get_string('asap', 'tool_task');
$disabled = get_string('disabled', 'tool_task');
$disabledstr = get_string('taskdisabled', 'tool_task');
$plugindisabledstr = get_string('plugindisabled', 'tool_task');
foreach ($tasks as $task) {
$customised = $task->is_customised() ? $no : $yes;
$lastrun = $task->get_last_run_time() ? userdate($task->get_last_run_time()) : $never;
$nextrun = $task->get_next_run_time();
if ($task->get_disabled()) {
$nextrun = $disabled;
} else if ($nextrun > time()) {
$nextrun = userdate($nextrun);
} else {
$nextrun = $asap;
}
if (empty($CFG->preventscheduledtaskchanges)) {
$configureurl = new moodle_url('/admin/tool/task/scheduledtasks.php', array('action'=>'edit', 'task' => get_class($task)));
$editlink = $this->action_icon($configureurl, new pix_icon('t/edit', get_string('edittaskschedule', 'tool_task', $task->get_name())));
@@ -83,6 +75,7 @@ class tool_task_renderer extends plugin_renderer_base {
$namecell->header = true;
$component = $task->get_component();
$plugininfo = null;
list($type, $plugin) = core_component::normalize_component($component);
if ($type === 'core') {
$componentcell = new html_table_cell(get_string('corecomponent', 'tool_task'));
@@ -95,6 +88,21 @@ class tool_task_renderer extends plugin_renderer_base {
}
}
$lastrun = $task->get_last_run_time() ? userdate($task->get_last_run_time()) : $never;
$nextrun = $task->get_next_run_time();
$disabled = false;
if ($plugininfo && $plugininfo->is_enabled() === false && !$task->get_run_if_component_disabled()) {
$disabled = true;
$nextrun = $plugindisabledstr;
} else if ($task->get_disabled()) {
$disabled = true;
$nextrun = $disabledstr;
} else if ($nextrun > time()) {
$nextrun = userdate($nextrun);
} else {
$nextrun = $asap;
}
$row = new html_table_row(array(
$namecell,
$componentcell,
@@ -109,7 +117,7 @@ class tool_task_renderer extends plugin_renderer_base {
new html_table_cell($task->get_fail_delay()),
new html_table_cell($customised)));
if ($task->get_disabled()) {
if ($disabled) {
$row->attributes['class'] = 'disabled';
}
$data[] = $row;
@@ -0,0 +1,53 @@
@tool @tool_task @javascript
Feature: Manage scheduled tasks
In order to configure scheduled tasks
As an admin
I need to be able to disable, enable, edit and reset to default scheduled tasks
Background:
Given I log in as "admin"
And I navigate to "Scheduled tasks" node in "Site administration > Server"
Scenario: Disable scheduled task
When I click on "Edit task schedule: Log table cleanup" "link" in the "Log table cleanup" "table_row"
Then I should see "Edit task schedule: Log table cleanup"
And I set the following fields to these values:
| disabled | 1 |
And I press "Save changes"
Then I should see "Changes saved"
And I should see "Task disabled" in the "Log table cleanup" "table_row"
Scenario: Enable scheduled task
When I click on "Edit task schedule: Log table cleanup" "link" in the "Log table cleanup" "table_row"
Then I should see "Edit task schedule: Log table cleanup"
And I set the following fields to these values:
| disabled | 0 |
And I press "Save changes"
Then I should see "Changes saved"
And I should not see "Task disabled" in the "Log table cleanup" "table_row"
Scenario: Edit scheduled task
When I click on "Edit task schedule: Log table cleanup" "link" in the "Log table cleanup" "table_row"
Then I should see "Edit task schedule: Log table cleanup"
And I set the following fields to these values:
| minute | */5 |
| hour | 1 |
| day | 2 |
| month | 3 |
| dayofweek | 4 |
And I press "Save changes"
Then I should see "Changes saved"
And the following should exist in the "admintable" table:
| Component | Minute | Hour | Day | Day of week | Month |
| Standard log | */5 | 1 | 2 | 4 | 3 |
Scenario: Reset scheduled task to default
When I click on "Edit task schedule: Log table cleanup" "link" in the "Log table cleanup" "table_row"
Then I should see "Edit task schedule: Log table cleanup"
And I set the following fields to these values:
| resettodefaults | 1 |
And I press "Save changes"
Then I should see "Changes saved"
And the following should not exist in the "admintable" table:
| Name | Component | Minute | Hour | Day | Day of week | Month |
| Log table cleanup | Standard log | */5 | 1 | 2 | 4 | 3 |
+275
View File
@@ -0,0 +1,275 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* File containing tests for the mform class.
*
* @package tool_task
* @copyright 2014 onwards Ankit Agarwal <ankit.agrr@gmail.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
defined('MOODLE_INTERNAL') || die();
global $CFG;
/**
* Mform test class.
*
* @package tool_task
* @copyright 2014 onwards Ankit Agarwal <ankit.agrr@gmail.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or late
*/
class tool_task_form_testcase extends advanced_testcase {
/**
* Test validations for minute field.
*/
public function test_validate_fields_minute() {
$valid = \tool_task_edit_scheduled_task_form::validate_fields('minute', '*');
$this->assertTrue($valid);
$valid = \tool_task_edit_scheduled_task_form::validate_fields('minute', '1');
$this->assertTrue($valid);
$valid = \tool_task_edit_scheduled_task_form::validate_fields('minute', '20');
$this->assertTrue($valid);
$valid = \tool_task_edit_scheduled_task_form::validate_fields('minute', '65');
$this->assertFalse($valid);
$valid = \tool_task_edit_scheduled_task_form::validate_fields('minute', '*/');
$this->assertFalse($valid);
$valid = \tool_task_edit_scheduled_task_form::validate_fields('minute', '*/1');
$this->assertTrue($valid);
$valid = \tool_task_edit_scheduled_task_form::validate_fields('minute', '*/20');
$this->assertTrue($valid);
$valid = \tool_task_edit_scheduled_task_form::validate_fields('minute', '*/65');
$this->assertFalse($valid);
$valid = \tool_task_edit_scheduled_task_form::validate_fields('minute', '1,2');
$this->assertTrue($valid);
$valid = \tool_task_edit_scheduled_task_form::validate_fields('minute', '2,20');
$this->assertTrue($valid);
$valid = \tool_task_edit_scheduled_task_form::validate_fields('minute', '20,30,45');
$this->assertTrue($valid);
$valid = \tool_task_edit_scheduled_task_form::validate_fields('minute', '65,20,30');
$this->assertFalse($valid);
$valid = \tool_task_edit_scheduled_task_form::validate_fields('minute', '25,75');
$this->assertFalse($valid);
$valid = \tool_task_edit_scheduled_task_form::validate_fields('minute', '1-2');
$this->assertTrue($valid);
$valid = \tool_task_edit_scheduled_task_form::validate_fields('minute', '2-20');
$this->assertTrue($valid);
$valid = \tool_task_edit_scheduled_task_form::validate_fields('minute', '20-30');
$this->assertTrue($valid);
$valid = \tool_task_edit_scheduled_task_form::validate_fields('minute', '65-20');
$this->assertFalse($valid);
$valid = \tool_task_edit_scheduled_task_form::validate_fields('minute', '25-75');
$this->assertFalse($valid);
}
/**
* Test validations for minute hour.
*/
public function test_validate_fields_hour() {
$valid = \tool_task_edit_scheduled_task_form::validate_fields('hour', '*');
$this->assertTrue($valid);
$valid = \tool_task_edit_scheduled_task_form::validate_fields('hour', '1');
$this->assertTrue($valid);
$valid = \tool_task_edit_scheduled_task_form::validate_fields('hour', '20');
$this->assertTrue($valid);
$valid = \tool_task_edit_scheduled_task_form::validate_fields('hour', '65');
$this->assertFalse($valid);
$valid = \tool_task_edit_scheduled_task_form::validate_fields('hour', '*/');
$this->assertFalse($valid);
$valid = \tool_task_edit_scheduled_task_form::validate_fields('hour', '*/1');
$this->assertTrue($valid);
$valid = \tool_task_edit_scheduled_task_form::validate_fields('hour', '*/20');
$this->assertTrue($valid);
$valid = \tool_task_edit_scheduled_task_form::validate_fields('hour', '*/65');
$this->assertFalse($valid);
$valid = \tool_task_edit_scheduled_task_form::validate_fields('hour', '1,2');
$this->assertTrue($valid);
$valid = \tool_task_edit_scheduled_task_form::validate_fields('hour', '2,20');
$this->assertTrue($valid);
$valid = \tool_task_edit_scheduled_task_form::validate_fields('hour', '20,30,45');
$this->assertTrue($valid);
$valid = \tool_task_edit_scheduled_task_form::validate_fields('hour', '65,20,30');
$this->assertFalse($valid);
$valid = \tool_task_edit_scheduled_task_form::validate_fields('hour', '25,75');
$this->assertFalse($valid);
$valid = \tool_task_edit_scheduled_task_form::validate_fields('hour', '1-2');
$this->assertTrue($valid);
$valid = \tool_task_edit_scheduled_task_form::validate_fields('hour', '2-20');
$this->assertTrue($valid);
$valid = \tool_task_edit_scheduled_task_form::validate_fields('hour', '20-30');
$this->assertTrue($valid);
$valid = \tool_task_edit_scheduled_task_form::validate_fields('hour', '65-20');
$this->assertFalse($valid);
$valid = \tool_task_edit_scheduled_task_form::validate_fields('hour', '25-75');
$this->assertFalse($valid);
}
/**
* Test validations for day field.
*/
public function test_validate_fields_day() {
$valid = \tool_task_edit_scheduled_task_form::validate_fields('day', '*');
$this->assertTrue($valid);
$valid = \tool_task_edit_scheduled_task_form::validate_fields('day', '1');
$this->assertTrue($valid);
$valid = \tool_task_edit_scheduled_task_form::validate_fields('day', '20');
$this->assertTrue($valid);
$valid = \tool_task_edit_scheduled_task_form::validate_fields('day', '65');
$this->assertFalse($valid);
$valid = \tool_task_edit_scheduled_task_form::validate_fields('day', '35');
$this->assertFalse($valid);
$valid = \tool_task_edit_scheduled_task_form::validate_fields('day', '*/');
$this->assertFalse($valid);
$valid = \tool_task_edit_scheduled_task_form::validate_fields('day', '*/1');
$this->assertTrue($valid);
$valid = \tool_task_edit_scheduled_task_form::validate_fields('day', '*/20');
$this->assertTrue($valid);
$valid = \tool_task_edit_scheduled_task_form::validate_fields('day', '*/65');
$this->assertFalse($valid);
$valid = \tool_task_edit_scheduled_task_form::validate_fields('day', '*/35');
$this->assertFalse($valid);
$valid = \tool_task_edit_scheduled_task_form::validate_fields('day', '1,2');
$this->assertTrue($valid);
$valid = \tool_task_edit_scheduled_task_form::validate_fields('day', '2,20');
$this->assertTrue($valid);
$valid = \tool_task_edit_scheduled_task_form::validate_fields('day', '20,30,25');
$this->assertTrue($valid);
$valid = \tool_task_edit_scheduled_task_form::validate_fields('day', '65,20,30');
$this->assertFalse($valid);
$valid = \tool_task_edit_scheduled_task_form::validate_fields('day', '25,35');
$this->assertFalse($valid);
$valid = \tool_task_edit_scheduled_task_form::validate_fields('day', '1-2');
$this->assertTrue($valid);
$valid = \tool_task_edit_scheduled_task_form::validate_fields('day', '2-20');
$this->assertTrue($valid);
$valid = \tool_task_edit_scheduled_task_form::validate_fields('day', '20-30');
$this->assertTrue($valid);
$valid = \tool_task_edit_scheduled_task_form::validate_fields('day', '65-20');
$this->assertFalse($valid);
$valid = \tool_task_edit_scheduled_task_form::validate_fields('day', '25-35');
$this->assertFalse($valid);
}
/**
* Test validations for month field.
*/
public function test_validate_fields_month() {
$valid = \tool_task_edit_scheduled_task_form::validate_fields('month', '*');
$this->assertTrue($valid);
$valid = \tool_task_edit_scheduled_task_form::validate_fields('month', '1');
$this->assertTrue($valid);
$valid = \tool_task_edit_scheduled_task_form::validate_fields('month', '10');
$this->assertTrue($valid);
$valid = \tool_task_edit_scheduled_task_form::validate_fields('month', '13');
$this->assertFalse($valid);
$valid = \tool_task_edit_scheduled_task_form::validate_fields('month', '35');
$this->assertFalse($valid);
$valid = \tool_task_edit_scheduled_task_form::validate_fields('month', '*/');
$this->assertFalse($valid);
$valid = \tool_task_edit_scheduled_task_form::validate_fields('month', '*/1');
$this->assertTrue($valid);
$valid = \tool_task_edit_scheduled_task_form::validate_fields('month', '*/12');
$this->assertTrue($valid);
$valid = \tool_task_edit_scheduled_task_form::validate_fields('month', '*/13');
$this->assertFalse($valid);
$valid = \tool_task_edit_scheduled_task_form::validate_fields('month', '*/35');
$this->assertFalse($valid);
$valid = \tool_task_edit_scheduled_task_form::validate_fields('month', '1,2');
$this->assertTrue($valid);
$valid = \tool_task_edit_scheduled_task_form::validate_fields('month', '2,11');
$this->assertTrue($valid);
$valid = \tool_task_edit_scheduled_task_form::validate_fields('month', '2,10,12');
$this->assertTrue($valid);
$valid = \tool_task_edit_scheduled_task_form::validate_fields('month', '65,2,13');
$this->assertFalse($valid);
$valid = \tool_task_edit_scheduled_task_form::validate_fields('month', '25,35');
$this->assertFalse($valid);
$valid = \tool_task_edit_scheduled_task_form::validate_fields('month', '1-2');
$this->assertTrue($valid);
$valid = \tool_task_edit_scheduled_task_form::validate_fields('month', '2-12');
$this->assertTrue($valid);
$valid = \tool_task_edit_scheduled_task_form::validate_fields('month', '3-6');
$this->assertTrue($valid);
$valid = \tool_task_edit_scheduled_task_form::validate_fields('month', '65-2');
$this->assertFalse($valid);
$valid = \tool_task_edit_scheduled_task_form::validate_fields('month', '25-26');
$this->assertFalse($valid);
}
/**
* Test validations for dayofweek field.
*/
public function test_validate_fields_dayofweek() {
$valid = \tool_task_edit_scheduled_task_form::validate_fields('dayofweek', '*');
$this->assertTrue($valid);
$valid = \tool_task_edit_scheduled_task_form::validate_fields('dayofweek', '0');
$this->assertTrue($valid);
$valid = \tool_task_edit_scheduled_task_form::validate_fields('dayofweek', '1');
$this->assertTrue($valid);
$valid = \tool_task_edit_scheduled_task_form::validate_fields('dayofweek', '6');
$this->assertTrue($valid);
$valid = \tool_task_edit_scheduled_task_form::validate_fields('dayofweek', '7');
$this->assertFalse($valid);
$valid = \tool_task_edit_scheduled_task_form::validate_fields('dayofweek', '20');
$this->assertFalse($valid);
$valid = \tool_task_edit_scheduled_task_form::validate_fields('dayofweek', '*/');
$this->assertFalse($valid);
$valid = \tool_task_edit_scheduled_task_form::validate_fields('dayofweek', '*/1');
$this->assertTrue($valid);
$valid = \tool_task_edit_scheduled_task_form::validate_fields('dayofweek', '*/6');
$this->assertTrue($valid);
$valid = \tool_task_edit_scheduled_task_form::validate_fields('dayofweek', '*/13');
$this->assertFalse($valid);
$valid = \tool_task_edit_scheduled_task_form::validate_fields('dayofweek', '*/35');
$this->assertFalse($valid);
$valid = \tool_task_edit_scheduled_task_form::validate_fields('dayofweek', '1,2');
$this->assertTrue($valid);
$valid = \tool_task_edit_scheduled_task_form::validate_fields('dayofweek', '2,6');
$this->assertTrue($valid);
$valid = \tool_task_edit_scheduled_task_form::validate_fields('dayofweek', '2,6,3');
$this->assertTrue($valid);
$valid = \tool_task_edit_scheduled_task_form::validate_fields('dayofweek', '65,2,13');
$this->assertFalse($valid);
$valid = \tool_task_edit_scheduled_task_form::validate_fields('dayofweek', '25,35');
$this->assertFalse($valid);
$valid = \tool_task_edit_scheduled_task_form::validate_fields('dayofweek', '1-2');
$this->assertTrue($valid);
$valid = \tool_task_edit_scheduled_task_form::validate_fields('dayofweek', '2-6');
$this->assertTrue($valid);
$valid = \tool_task_edit_scheduled_task_form::validate_fields('dayofweek', '65-2');
$this->assertFalse($valid);
$valid = \tool_task_edit_scheduled_task_form::validate_fields('dayofweek', '3-7');
$this->assertFalse($valid);
}
}
+20 -4
View File
@@ -402,8 +402,13 @@ function uu_pre_process_custom_profile_data($data) {
function uu_check_custom_profile_data(&$data) {
global $CFG, $DB;
$noerror = true;
// find custom profile fields and check if data needs to converted.
$testuserid = null;
if (!empty($data['username'])) {
if (preg_match('/id=(.*)"/i', $data['username'], $result)) {
$testuserid = $result[1];
}
}
// Find custom profile fields and check if data needs to converted.
foreach ($data as $key => $value) {
if (preg_match('/^profile_field_/', $key)) {
$shortname = str_replace('profile_field_', '', $key);
@@ -413,13 +418,24 @@ function uu_check_custom_profile_data(&$data) {
$newfield = 'profile_field_'.$field->datatype;
$formfield = new $newfield($field->id, 0);
if (method_exists($formfield, 'convert_external_data') &&
is_null($formfield->convert_external_data($value))) {
is_null($formfield->convert_external_data($value))) {
$data['status'][] = get_string('invaliduserfield', 'error', $shortname);
$noerror = false;
}
// Check for duplicate value.
if (method_exists($formfield, 'edit_validate_field') ) {
$testuser = new stdClass();
$testuser->{$key} = $value;
$testuser->id = $testuserid;
$err = $formfield->edit_validate_field($testuser);
if (!empty($err[$key])) {
$data['status'][] = $err[$key].' ('.$key.')';
$noerror = false;
}
}
}
}
}
}
return $noerror;
}
}
@@ -0,0 +1,3 @@
.path-admin-tool-xmldb a[name="lastused"] {
padding-top: 50px;
}
-1
View File
@@ -24,7 +24,6 @@ $adminroot = admin_get_root(); // need all settings
// now we'll deal with the case that the admin has submitted the form with new settings
if ($data = data_submitted() and confirm_sesskey()) {
$count = admin_write_settings($data);
$adminroot = admin_get_root(true); //reload tree
}
$newsettings = admin_output_new_settings_by_page($adminroot);
+7
View File
@@ -157,6 +157,13 @@ class external_service_form extends moodleform {
$errors = parent::validation($data, $files);
// Add field validation check for duplicate name.
if ($webservice = $DB->get_record('external_services', array('name' => $data['name']))) {
if (empty($data['id']) || $webservice->id != $data['id']) {
$errors['name'] = get_string('nameexists', 'webservice');
}
}
// Add field validation check for duplicate shortname.
// Allow duplicated "empty" shortnames.
if (!empty($data['shortname'])) {
+6
View File
@@ -113,6 +113,12 @@ class auth_plugin_cas extends auth_plugin_ldap {
// If the multi-authentication setting is used, check for the param before connecting to CAS.
if ($this->config->multiauth) {
// If there is an authentication error, stay on the default authentication page.
if (!empty($SESSION->loginerrormsg)) {
return;
}
$authCAS = optional_param('authCAS', '', PARAM_RAW);
if ($authCAS == 'NOCAS') {
return;
+3
View File
@@ -55,5 +55,8 @@ function xmldb_auth_cas_upgrade($oldversion) {
// Moodle v2.7.0 release upgrade line.
// Put any upgrade step following this.
// Moodle v2.8.0 release upgrade line.
// Put any upgrade step following this.
return true;
}
+4 -4
View File
@@ -139,12 +139,12 @@ class auth_plugin_email extends auth_plugin_base {
$user = get_complete_user_data('username', $username);
if (!empty($user)) {
if ($user->confirmed) {
return AUTH_CONFIRM_ALREADY;
} else if ($user->auth != $this->authtype) {
if ($user->auth != $this->authtype) {
return AUTH_CONFIRM_ERROR;
} else if ($user->secret == $confirmsecret && $user->confirmed) {
return AUTH_CONFIRM_ALREADY;
} else if ($user->secret == $confirmsecret) { // They have provided the secret key to get in
$DB->set_field("user", "confirmed", 1, array("id"=>$user->id));
if ($user->firstaccess == 0) {
+1 -1
View File
@@ -24,7 +24,7 @@
$string['auth_emaildescription'] = '<p>Email-based self-registration enables a user to create their own account via a \'Create new account\' button on the login page. The user then receives an email containing a secure link to a page where they can confirm their account. Future logins just check the username and password against the stored values in the Moodle database.</p><p>Note: In addition to enabling the plugin, email-based self-registration must also be selected from the self registration drop-down menu on the \'Manage authentication\' page.</p>';
$string['auth_emailnoemail'] = 'Tried to send you an email but failed!';
$string['auth_emailrecaptcha'] = 'Adds a visual/audio confirmation form element to the signup page for email self-registering users. This protects your site against spammers and contributes to a worthwhile cause. See http://www.google.com/recaptcha/learnmore for more details. <br /><em>PHP cURL extension is required.</em>';
$string['auth_emailrecaptcha'] = 'Adds a visual/audio confirmation form element to the sign-up page for email self-registering users. This protects your site against spammers and contributes to a worthwhile cause. See http://www.google.com/recaptcha for more details.';
$string['auth_emailrecaptcha_key'] = 'Enable reCAPTCHA element';
$string['auth_emailsettings'] = 'Settings';
$string['pluginname'] = 'Email-based self-registration';
+7 -6
View File
@@ -604,12 +604,12 @@ class auth_plugin_ldap extends auth_plugin_base {
$user = get_complete_user_data('username', $username);
if (!empty($user)) {
if ($user->confirmed) {
return AUTH_CONFIRM_ALREADY;
} else if ($user->auth != $this->authtype) {
if ($user->auth != $this->authtype) {
return AUTH_CONFIRM_ERROR;
} else if ($user->secret == $confirmsecret && $user->confirmed) {
return AUTH_CONFIRM_ALREADY;
} else if ($user->secret == $confirmsecret) { // They have provided the secret key to get in
if (!$this->user_activate($username)) {
return AUTH_CONFIRM_FAIL;
@@ -742,7 +742,7 @@ class auth_plugin_ldap extends auth_plugin_base {
} while ($entry = ldap_next_entry($ldapconnection, $entry));
}
unset($ldap_result); // Free mem.
} while ($ldap_pagedresults && !empty($ldap_cookie));
} while ($ldap_pagedresults && $ldap_cookie !== null && $ldap_cookie != '');
}
// If LDAP paged results were used, the current connection must be completely
@@ -1653,7 +1653,8 @@ class auth_plugin_ldap extends auth_plugin_base {
$_SERVER['HTTP_REFERER'] != $CFG->wwwroot &&
$_SERVER['HTTP_REFERER'] != $CFG->wwwroot.'/' &&
$_SERVER['HTTP_REFERER'] != $CFG->httpswwwroot.'/login/' &&
$_SERVER['HTTP_REFERER'] != $CFG->httpswwwroot.'/login/index.php')
$_SERVER['HTTP_REFERER'] != $CFG->httpswwwroot.'/login/index.php' &&
clean_param($_SERVER['HTTP_REFERER'], PARAM_LOCALURL) != '')
? $_SERVER['HTTP_REFERER'] : NULL;
}
+3
View File
@@ -45,5 +45,8 @@ function xmldb_auth_ldap_upgrade($oldversion) {
// Moodle v2.7.0 release upgrade line.
// Put any upgrade step following this.
// Moodle v2.8.0 release upgrade line.
// Put any upgrade step following this.
return true;
}
+1 -1
View File
@@ -79,7 +79,7 @@ $string['auth_ldap_passtype'] = 'Specify the format of new or changed passwords
$string['auth_ldap_passtype_key'] = 'Password format';
$string['auth_ldap_passwdexpire_settings'] = 'LDAP password expiration settings.';
$string['auth_ldap_preventpassindb'] = 'Select yes to prevent passwords from being stored in Moodle\'s DB.';
$string['auth_ldap_preventpassindb_key'] = 'Cache passwords';
$string['auth_ldap_preventpassindb_key'] = 'Don\'t cache passwords';
$string['auth_ldap_search_sub'] = 'Search users from subcontexts.';
$string['auth_ldap_search_sub_key'] = 'Search subcontexts';
$string['auth_ldap_server_settings'] = 'LDAP server settings';
+1 -1
View File
@@ -296,7 +296,7 @@ class auth_ldap_plugin_testcase extends advanced_testcase {
'lastnamephonetic' => '最後のお名前のテスト一号',
'firstnamephonetic' => 'お名前のテスト一号',
'alternatename' => 'Alternate Name User Test 1',
'email' => 'usersignuptest1@email.com',
'email' => 'usersignuptest1@example.com',
'description' => 'This is a description for user 1',
'city' => 'Perth',
'country' => 'au',
+3
View File
@@ -50,5 +50,8 @@ function xmldb_auth_manual_upgrade($oldversion) {
// Moodle v2.7.0 release upgrade line.
// Put any upgrade step following this.
// Moodle v2.8.0 release upgrade line.
// Put any upgrade step following this.
return true;
}
+3
View File
@@ -50,5 +50,8 @@ function xmldb_auth_mnet_upgrade($oldversion) {
// Moodle v2.7.0 release upgrade line.
// Put any upgrade step following this.
// Moodle v2.8.0 release upgrade line.
// Put any upgrade step following this.
return true;
}
+6 -6
View File
@@ -61,8 +61,8 @@ Moodle Configuration with Dual login
--
Also see:
https://spaces.internet2.edu/display/SHIB2/NativeSPRequestMapper and
https://spaces.internet2.edu/display/SHIB2/NativeSPAccessControl
https://wiki.shibboleth.net/confluence/display/SHIB2/NativeSPRequestMapper and
https://wiki.shibboleth.net/confluence/display/SHIB2/NativeSPAccessControl
2. As Moodle admin, go to the 'Administrations >> Users >> Authentication' and
click on the the 'Shibboleth' settings.
@@ -101,8 +101,8 @@ Moodle Configuration with Dual login
to the same host. If no SessionInitiator URL is given, the default one
'/Shibboleth.sso' (only works for Shibboleth 1.3.x) will be used. For
Shibboleth 2.x you have to add '/Shibboleth.sso/DS' as a SessionInitiator.
Also see https://spaces.internet2.edu/display/SHIB/SessionInitiator
and https://spaces.internet2.edu/display/SHIB2/NativeSPSessionInitiator
Also see https://wiki.shibboleth.net/confluence/display/SHIB/SessionInitiator
and https://wiki.shibboleth.net/confluence/display/SHIB2/NativeSPSessionInitiator
Important Note: If you upgraded from a previous version of Moodle and now
want to use the integrated WAYF, you have to make sure that
@@ -324,8 +324,8 @@ logout. Hopefully, the Moodle logout helps to motivate the developers to
implement SLO. On the other hand, the easiest and safest way to log out
still is to tell users to quit their web browsers :)
Also see https://spaces.internet2.edu/display/SHIB2/SLOIssues and
https://spaces.internet2.edu/display/SHIB2/NativeSPLogoutInitiator for some
Also see https://wiki.shibboleth.net/confluence/display/SHIB2/SLOIssues and
https://wiki.shibboleth.net/confluence/display/SHIB2/NativeSPLogoutInitiator for some
background information on this topic.
--------------------------------------------------------------------------------
+2 -1
View File
@@ -143,7 +143,8 @@ class auth_plugin_shibboleth extends auth_plugin_base {
$configarray = (array) $this->config;
$moodleattributes = array();
foreach ($this->userfields as $field) {
$userfields = array_merge($this->userfields, $this->get_custom_user_profile_fields());
foreach ($userfields as $field) {
if (isset($configarray["field_map_$field"])) {
$moodleattributes[$field] = $configarray["field_map_$field"];
}
+1 -1
View File
@@ -138,7 +138,7 @@ urn:mace:organization2:providerID, Example Organization 2, /Shibboleth.sso/WAYF/
<?php
print_auth_lock_options($this->authtype, $user_fields, '<!-- empty help -->', true, false);
print_auth_lock_options($this->authtype, $user_fields, '<!-- empty help -->', true, false, $this->get_custom_user_profile_fields());
?>
</table>
+22 -28
View File
@@ -1,13 +1,15 @@
<?php
// Implements logout for Shibboleth authenticated users according to:
// - https://spaces.internet2.edu/display/SHIB2/NativeSPLogoutInitiator
// - https://spaces.internet2.edu/display/SHIB2/NativeSPNotify
// - https://wiki.shibboleth.net/confluence/display/SHIB2/NativeSPLogoutInitiator
// - https://wiki.shibboleth.net/confluence/display/SHIB2/NativeSPNotify
require_once("../../config.php");
require_once($CFG->dirroot."/auth/shibboleth/auth.php");
$action = optional_param('action', '', PARAM_ALPHA);
$redirect = optional_param('return', '', PARAM_URL);
// Find out whether host supports https
$protocol = 'http://';
@@ -15,38 +17,32 @@ if (is_https()) {
$protocol = 'https://';
}
// Front channel logout
if (
isset($_GET['return'])
&& isset($_GET['action'])
&& $_GET['action'] == 'logout'
){
// Logout out user from application
// E.g. destroy application session/cookie etc
require_logout();
// Finally, send user to the return URL
redirect($_GET['return']);
// If the shibboleth plugin is not enable, throw an exception.
if (!is_enabled_auth('shibboleth')) {
throw new moodle_exception(get_string('pluginnotenabled', 'auth', 'shibboleth'));
}
// Back channel logout
elseif (!empty($HTTP_RAW_POST_DATA)) {
// Front channel logout.
if ($action == 'logout' && !empty($redirect)) {
// Requires PHP 5
if ($USER->auth == 'shibboleth') {
// Logout out user from application.
require_logout();
// Finally, send user to the return URL.
redirect($redirect);
}
} else if (!empty($HTTP_RAW_POST_DATA)) {
// Set SOAP header
// Back channel logout.
// Set SOAP header.
$server = new SoapServer($protocol.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'].'/LogoutNotification.wsdl');
$server->addFunction("LogoutNotification");
$server->handle();
}
// Return WSDL
else {
} else {
// Return WSDL.
header('Content-Type: text/xml');
echo <<<WSDL
@@ -66,8 +62,8 @@ Because neither of these two variants seems to be the case, the WSDL file for
the web service is returned.
For more information see:
- https://spaces.internet2.edu/display/SHIB2/NativeSPLogoutInitiator
- https://spaces.internet2.edu/display/SHIB2/NativeSPNotify
- https://wiki.shibboleth.net/confluence/display/SHIB2/NativeSPLogoutInitiator
- https://wiki.shibboleth.net/confluence/display/SHIB2/NativeSPNotify
-->
<types>
@@ -119,9 +115,7 @@ For more information see:
</definitions>
WSDL;
exit;
}
/******************************************************************************/
function LogoutNotification($SessionID){
+2 -2
View File
@@ -16,7 +16,7 @@ Feature: Authentication
Scenario: Log in as an existing admin user filling the form
Given the following "users" exist:
| username | password | firstname | lastname | email |
| testuser | testuser | Test | User | moodle@moodlemoodle.com |
| testuser | testuser | Test | User | moodle@example.com |
And I am on homepage
When I follow "Log in"
And I set the field "Username" to "testuser"
@@ -27,7 +27,7 @@ Feature: Authentication
Scenario: Log in as an unexisting user filling the form
Given the following "users" exist:
| username | password | firstname | lastname | email |
| testuser | testuser | Test | User | moodle@moodlemoodle.com |
| testuser | testuser | Test | User | moodle@example.com |
And I am on homepage
When I follow "Log in"
And I set the field "Username" to "testuser"
+39 -3
View File
@@ -608,17 +608,39 @@ abstract class info {
}
$tree = $this->get_availability_tree();
$checker = new capability_checker($this->get_context());
// Filter using availability tree.
$this->modinfo = get_fast_modinfo($this->get_course());
$result = $tree->filter_user_list($users, false, $this, $checker);
$filtered = $tree->filter_user_list($users, false, $this, $checker);
$this->modinfo = null;
// Include users in the result if they're either in the filtered list,
// or they have viewhidden. This logic preserves ordering of the
// passed users array.
$result = array();
$canviewhidden = $checker->get_users_by_capability($this->get_view_hidden_capability());
foreach ($users as $userid => $data) {
if (array_key_exists($userid, $filtered) || array_key_exists($userid, $canviewhidden)) {
$result[$userid] = $users[$userid];
}
}
return $result;
}
/**
* Gets the capability used to view hidden activities/sections (as
* appropriate).
*
* @return string Name of capability used to view hidden items of this type
*/
protected abstract function get_view_hidden_capability();
/**
* Obtains SQL that returns a list of enrolled users that has been filtered
* by the conditions applied in the availability API, similar to calling
* get_enrolled_users and then filter_user_list. As for filter_user_list,
* this ONLY filteres out users with conditions that are marked as applying
* this ONLY filters out users with conditions that are marked as applying
* to user lists. For example, group conditions are included but date
* conditions are not included.
*
@@ -640,8 +662,22 @@ abstract class info {
if (is_null($this->availability) || !$CFG->enableavailability) {
return array('', array());
}
// Get SQL for the availability filter.
$tree = $this->get_availability_tree();
return $tree->get_user_list_sql(false, $this, $onlyactive);
list ($filtersql, $filterparams) = $tree->get_user_list_sql(false, $this, $onlyactive);
if ($filtersql === '') {
// No restrictions, so return empty query.
return array('', array());
}
// Get SQL for the view hidden list.
list ($viewhiddensql, $viewhiddenparams) = get_enrolled_sql(
$this->get_context(), $this->get_view_hidden_capability(), 0, $onlyactive);
// Result is a union of the two.
return array('(' . $filtersql . ') UNION (' . $viewhiddensql . ')',
array_merge($filterparams, $viewhiddenparams));
}
/**
+10 -1
View File
@@ -109,6 +109,10 @@ class info_module extends info {
return parent::filter_user_list($filtered);
}
protected function get_view_hidden_capability() {
return 'moodle/course:viewhiddenactivities';
}
public function get_user_list_sql($onlyactive = true) {
global $CFG, $DB;
if (!$CFG->enableavailability) {
@@ -180,7 +184,12 @@ class info_module extends info {
if (is_object($cmorid)) {
$cmorid = $cmorid->id;
}
$cm = $DB->get_record('course_modules', array('id' => $cmorid), '*', MUST_EXIST);
$cm = $DB->get_record('course_modules', array('id' => $cmorid));
if (!$cm) {
// In some error cases, the course module may not exist.
debugging('info_module::is_user_visible called with invalid cmid ' . $cmorid, DEBUG_DEVELOPER);
return false;
}
}
// If requested, check user can access the course.
+4
View File
@@ -56,6 +56,10 @@ class info_section extends info {
return \context_course::instance($this->get_course()->id);
}
protected function get_view_hidden_capability() {
return 'moodle/course:viewhiddensections';
}
protected function set_in_database($availability) {
global $DB;
$DB->set_field('course_sections', 'availability', $availability,
+11 -2
View File
@@ -139,7 +139,8 @@ abstract class tree_node {
/**
* Tests this condition against a user list. Users who do not meet the
* condition will be removed from the list.
* condition will be removed from the list, unless they have the ability
* to view hidden activities/sections.
*
* This function must be implemented if is_applied_to_user_lists returns
* true. Otherwise it will not be called.
@@ -150,6 +151,10 @@ abstract class tree_node {
* Within this function, if you need to check capabilities, please use
* the provided checker which caches results where possible.
*
* Conditions do not need to check the viewhiddenactivities or
* viewhiddensections capabilities. These are handled by
* core_availability\info::filter_user_list.
*
* @param array $users Array of userid => object
* @param bool $not True if this condition is applying in negative mode
* @param \core_availability\info $info Item we're checking
@@ -167,7 +172,7 @@ abstract class tree_node {
* Obtains SQL that returns a list of enrolled users that has been filtered
* by the conditions applied in the availability API, similar to calling
* get_enrolled_users and then filter_user_list. As for filter_user_list,
* this ONLY filteres out users with conditions that are marked as applying
* this ONLY filters out users with conditions that are marked as applying
* to user lists. For example, group conditions are included but date
* conditions are not included.
*
@@ -180,6 +185,10 @@ abstract class tree_node {
*
* If there are no conditions, the returned result is array('', array()).
*
* Conditions do not need to check the viewhiddenactivities or
* viewhiddensections capabilities. These are handled by
* core_availability\info::get_user_list_sql.
*
* @param bool $not True if this condition is applying in negative mode
* @param \core_availability\info $info Item we're checking
* @param bool $onlyactive If true, only returns active enrolments
@@ -16,11 +16,9 @@ Feature: availability_completion
| user | course | role |
| teacher1 | C1 | editingteacher |
| student1 | C1 | student |
And I log in as "admin"
And I set the following administration settings values:
| Enable conditional access | 1 |
| Enable completion tracking | 1 |
And I log out
And the following config values are set as admin:
| enableavailability | 1 |
| enablecompletion | 1 |
@javascript
Scenario: Test condition
@@ -16,10 +16,8 @@ Feature: availability_date
| user | course | role |
| teacher1 | C1 | editingteacher |
| student1 | C1 | student |
And I log in as "admin"
And I set the following administration settings values:
| Enable conditional access | 1 |
And I log out
And the following config values are set as admin:
| enableavailability | 1 |
@javascript
Scenario: Test condition
@@ -55,7 +55,7 @@ class frontend extends \core_availability\frontend {
&& $item->itemtype == 'mod') {
continue;
}
$gradeoptions[$id] = $item->get_name();
$gradeoptions[$id] = $item->get_name(true);
}
\core_collator::asort($gradeoptions);
@@ -10,16 +10,14 @@ Feature: availability_grade
| Course 1 | C1 | topics | 1 |
And the following "users" exist:
| username | email |
| teacher1 | t@example.org |
| student1 | s@example.org |
| teacher1 | t@example.com |
| student1 | s@example.com |
And the following "course enrolments" exist:
| user | course | role |
| teacher1 | C1 | editingteacher |
| student1 | C1 | student |
And I log in as "admin"
And I set the following administration settings values:
| Enable conditional access | 1 |
And I log out
And the following config values are set as admin:
| enableavailability | 1 |
@javascript
Scenario: Test condition
@@ -60,8 +58,22 @@ Feature: availability_grade
And I set the field "Grade" to "A1"
And I click on "min" "checkbox" in the ".availability-item" "css_element"
And I set the field "Minimum grade percentage (inclusive)" to "50"
And I click on "max" "checkbox" in the ".availability-item" "css_element"
And I set the field "Maximum grade percentage (exclusive)" to "80"
And I press "Save and return to course"
# Check if disabling a part of the restriction is get saved.
And I open "P3" actions menu
And I click on "Edit settings" "link" in the "P3" activity
And I expand all fieldsets
And I click on "max" "checkbox" in the ".availability-item" "css_element"
And I press "Save and return to course"
And I open "P3" actions menu
And I click on "Edit settings" "link" in the "P3" activity
And I expand all fieldsets
And the field "Maximum grade percentage (exclusive)" matches value ""
And I follow "Course 1"
# Add a Page with a grade condition for 10%.
And I add a "Page" to section "4"
And I set the following fields to these values:
@@ -103,8 +115,8 @@ Feature: availability_grade
# Give the assignment 40%.
And I follow "A1"
And I follow "View/grade all submissions"
# Pick the grade link in the row that has s@example.org in it.
And I click on "//a[contains(@href, 'action=grade') and ancestor::tr/td[normalize-space(.) = 's@example.org']]/img" "xpath_element"
# Pick the grade link in the row that has s@example.com in it.
And I click on "//a[contains(@href, 'action=grade') and ancestor::tr/td[normalize-space(.) = 's@example.com']]/img" "xpath_element"
And I set the field "Grade out of 100" to "40"
And I click on "Save changes" "button"
@@ -95,6 +95,7 @@ M.availability_grade.form.getNode = function(json) {
root.delegate('click', function() {
updateCheckbox(this, true);
M.core_availability.form.update();
}, '.availability_grade input[type=checkbox]');
root.delegate('valuechange', function() {
@@ -1 +1 @@
YUI.add("moodle-availability_grade-form",function(e,t){M.availability_grade=M.availability_grade||{},M.availability_grade.form=e.Object(M.core_availability.plugin),M.availability_grade.form.grades=null,M.availability_grade.form.initInner=function(e){this.grades=e,this.nodesSoFar=0},M.availability_grade.form.getNode=function(t){this.nodesSoFar++;var n=M.str.availability_grade,r="<label>"+n.title+' <span class="availability-group">'+'<select name="id"><option value="0">'+M.str.moodle.choosedots+"</option>";for(var i=0;i<this.grades.length;i++){var s=this.grades[i];r+='<option value="'+s.id+'">'+s.name+"</option>"}r+='</select></span></label> <span class="availability-group"><label><input type="checkbox" name="min"/>'+n.option_min+'</label> <label><span class="accesshide">'+n.label_min+'</span><input type="text" name="minval" title="'+n.label_min+'"/></label>%</span>'+'<span class="availability-group">'+'<label><input type="checkbox" name="max"/>'+n.option_max+'</label> <label><span class="accesshide">'+n.label_max+'</span><input type="text" name="maxval" title="'+n.label_max+'"/></label>%</span>';var o=e.Node.create("<span>"+r+"</span>");t.id!==undefined&&o.one("select[name=id] > option[value="+t.id+"]")&&o.one("select[name=id]").set("value",""+t.id),t.min!==undefined&&(o.one("input[name=min]").set("checked",!0),o.one("input[name=minval]").set("value",t.min)),t.max!==undefined&&(o.one("input[name=max]").set("checked",!0),o.one("input[name=maxval]").set("value",t.max));var u=function(e,t){var n=e.ancestor("label").next("label").one("input"),r=e.get("checked");return n.set("disabled",!r),t&&r&&n.focus(),r};o.all("input[type=checkbox]").each(u);if(!M.availability_grade.form.addedEvents){M.availability_grade.form.addedEvents=!0;var a=e.one("#fitem_id_availabilityconditionsjson");a.delegate("change",function(){M.core_availability.form.update()},".availability_grade select[name=id]"),a.delegate("click",function(){u(this,!0)},".availability_grade input[type=checkbox]"),a.delegate("valuechange",function(){M.core_availability.form.update()},".availability_grade input[type=text]")}return o},M.availability_grade.form.fillValue=function(e,t){e.id=parseInt(t.one("select[name=id]").get("value"),10),t.one("input[name=min]").get("checked")&&(e.min=this.getValue("minval",t)),t.one("input[name=max]").get("checked")&&(e.max=this.getValue("maxval",t))},M.availability_grade.form.getValue=function(e,t){var n=t.one("input[name="+e+"]").get("value");if(!/^[0-9]+([.,][0-9]+)?$/.test(n))return n;var r=parseFloat(n.replace(",","."));return r<0||r>100?n:r},M.availability_grade.form.fillErrors=function(e,t){var n={};this.fillValue(n,t),n.id===0&&e.push("availability_grade:error_selectgradeid"),n.min!==undefined&&typeof n.min=="string"||n.max!==undefined&&typeof n.max=="string"?e.push("availability_grade:error_invalidnumber"):n.min!==undefined&&n.max!==undefined&&n.min>=n.max&&e.push("availability_grade:error_backwardrange")}},"@VERSION@",{requires:["base","node","event","moodle-core_availability-form"]});
YUI.add("moodle-availability_grade-form",function(e,t){M.availability_grade=M.availability_grade||{},M.availability_grade.form=e.Object(M.core_availability.plugin),M.availability_grade.form.grades=null,M.availability_grade.form.initInner=function(e){this.grades=e,this.nodesSoFar=0},M.availability_grade.form.getNode=function(t){this.nodesSoFar++;var n=M.str.availability_grade,r="<label>"+n.title+' <span class="availability-group">'+'<select name="id"><option value="0">'+M.str.moodle.choosedots+"</option>";for(var i=0;i<this.grades.length;i++){var s=this.grades[i];r+='<option value="'+s.id+'">'+s.name+"</option>"}r+='</select></span></label> <span class="availability-group"><label><input type="checkbox" name="min"/>'+n.option_min+'</label> <label><span class="accesshide">'+n.label_min+'</span><input type="text" name="minval" title="'+n.label_min+'"/></label>%</span>'+'<span class="availability-group">'+'<label><input type="checkbox" name="max"/>'+n.option_max+'</label> <label><span class="accesshide">'+n.label_max+'</span><input type="text" name="maxval" title="'+n.label_max+'"/></label>%</span>';var o=e.Node.create("<span>"+r+"</span>");t.id!==undefined&&o.one("select[name=id] > option[value="+t.id+"]")&&o.one("select[name=id]").set("value",""+t.id),t.min!==undefined&&(o.one("input[name=min]").set("checked",!0),o.one("input[name=minval]").set("value",t.min)),t.max!==undefined&&(o.one("input[name=max]").set("checked",!0),o.one("input[name=maxval]").set("value",t.max));var u=function(e,t){var n=e.ancestor("label").next("label").one("input"),r=e.get("checked");return n.set("disabled",!r),t&&r&&n.focus(),r};o.all("input[type=checkbox]").each(u);if(!M.availability_grade.form.addedEvents){M.availability_grade.form.addedEvents=!0;var a=e.one("#fitem_id_availabilityconditionsjson");a.delegate("change",function(){M.core_availability.form.update()},".availability_grade select[name=id]"),a.delegate("click",function(){u(this,!0),M.core_availability.form.update()},".availability_grade input[type=checkbox]"),a.delegate("valuechange",function(){M.core_availability.form.update()},".availability_grade input[type=text]")}return o},M.availability_grade.form.fillValue=function(e,t){e.id=parseInt(t.one("select[name=id]").get("value"),10),t.one("input[name=min]").get("checked")&&(e.min=this.getValue("minval",t)),t.one("input[name=max]").get("checked")&&(e.max=this.getValue("maxval",t))},M.availability_grade.form.getValue=function(e,t){var n=t.one("input[name="+e+"]").get("value");if(!/^[0-9]+([.,][0-9]+)?$/.test(n))return n;var r=parseFloat(n.replace(",","."));return r<0||r>100?n:r},M.availability_grade.form.fillErrors=function(e,t){var n={};this.fillValue(n,t),n.id===0&&e.push("availability_grade:error_selectgradeid"),n.min!==undefined&&typeof n.min=="string"||n.max!==undefined&&typeof n.max=="string"?e.push("availability_grade:error_invalidnumber"):n.min!==undefined&&n.max!==undefined&&n.min>=n.max&&e.push("availability_grade:error_backwardrange")}},"@VERSION@",{requires:["base","node","event","moodle-core_availability-form"]});
@@ -95,6 +95,7 @@ M.availability_grade.form.getNode = function(json) {
root.delegate('click', function() {
updateCheckbox(this, true);
M.core_availability.form.update();
}, '.availability_grade input[type=checkbox]');
root.delegate('valuechange', function() {
+1
View File
@@ -93,6 +93,7 @@ M.availability_grade.form.getNode = function(json) {
root.delegate('click', function() {
updateCheckbox(this, true);
M.core_availability.form.update();
}, '.availability_grade input[type=checkbox]');
root.delegate('valuechange', function() {
@@ -16,10 +16,8 @@ Feature: availability_group
| user | course | role |
| teacher1 | C1 | editingteacher |
| student1 | C1 | student |
And I log in as "admin"
And I set the following administration settings values:
| Enable conditional access | 1 |
And I log out
And the following config values are set as admin:
| enableavailability | 1 |
@javascript
Scenario: Test condition
@@ -22,10 +22,8 @@ Feature: availability_grouping
And the following "group members" exist:
| user | group |
| student1 | GI1 |
And I log in as "admin"
And I set the following administration settings values:
| Enable conditional access | 1 |
And I log out
And the following config values are set as admin:
| enableavailability | 1 |
@javascript
Scenario: Test condition
@@ -10,16 +10,14 @@ Feature: availability_profile
| Course 1 | C1 | topics | 1 |
And the following "users" exist:
| username | email |
| teacher1 | t@example.org |
| student1 | s@example.org |
| teacher1 | t@example.com |
| student1 | s@example.com |
And the following "course enrolments" exist:
| user | course | role |
| teacher1 | C1 | editingteacher |
| student1 | C1 | student |
And I log in as "admin"
And I set the following administration settings values:
| Enable conditional access | 1 |
And I log out
And the following config values are set as admin:
| enableavailability | 1 |
@javascript
Scenario: Test condition
@@ -38,7 +36,7 @@ Feature: availability_profile
And I click on "Add restriction..." "button"
And I click on "User profile" "button"
And I set the field "User profile field" to "Email address"
And I set the field "Value to compare against" to "s@example.org"
And I set the field "Value to compare against" to "s@example.com"
And I click on ".availability-item .availability-eye img" "css_element"
And I click on "Save and return to course" "button"
@@ -52,7 +50,7 @@ Feature: availability_profile
And I click on "Add restriction..." "button"
And I click on "User profile" "button"
And I set the field "User profile field" to "Email address"
And I set the field "Value to compare against" to "q@example.org"
And I set the field "Value to compare against" to "q@example.com"
And I click on ".availability-item .availability-eye img" "css_element"
And I click on "Save and return to course" "button"
@@ -78,7 +76,7 @@ Feature: availability_profile
# Set field value for user.
And I navigate to "Browse list of users" node in "Site administration > Users > Accounts"
And I click on "a[title=Edit]" "css_element" in the "s@example.org" "table_row"
And I click on "a[title=Edit]" "css_element" in the "s@example.com" "table_row"
And I expand all fieldsets
And I set the field "Super field" to "Bananaman"
And I click on "Update profile" "button"
@@ -34,10 +34,8 @@ Feature: display_availability
| user | course | role |
| teacher1 | C1 | editingteacher |
| student1 | C1 | student |
And I log in as "admin"
And I set the following administration settings values:
| Enable conditional access | 1 |
And I log out
And the following config values are set as admin:
| enableavailability | 1 |
@javascript
Scenario: Activity availability display
@@ -76,7 +74,7 @@ Feature: display_availability
And I press "Add restriction..."
And I click on "User profile" "button" in the "Add restriction..." "dialogue"
And I set the field "User profile field" to "Email address"
And I set the field "Value to compare against" to "email@example.org"
And I set the field "Value to compare against" to "email@example.com"
And I set the field "Method of comparison" to "is equal to"
And I press "Save and return to course"
@@ -109,17 +107,17 @@ Feature: display_availability
# Page 1 display still there but should be dimmed and not a link.
Then I should see "Page 1" in the "#section-1 .dimmed_text" "css_element"
And ".activityinstance a" "css_element" should not exist in the "#section-1" "css_element"
And ".activityinstance a" "css_element" should not exist in the "Topic 1" "section"
# Date display should be present.
And I should see "Available until" in the "#section-1" "css_element"
And I should see "Available until" in the "Topic 1" "section"
# Page 2 display not there at all
And I should not see "Page 2" in the "region-main" "region"
# Page 3 display and link
And I should see "Page 3" in the "region-main" "region"
And ".activityinstance a" "css_element" should exist in the "#section-3" "css_element"
And ".activityinstance a" "css_element" should exist in the "Topic 3" "section"
@javascript
Scenario: Section availability display
@@ -39,15 +39,10 @@ Feature: edit_availability
When I edit the section "1"
Then "Restrict access" "fieldset" should not exist
When I log out
And I log in as "admin"
And I set the following administration settings values:
| Enable conditional access | 1 |
And the following config values are set as admin:
| enableavailability | 1 |
When I log out
And I log in as "teacher1"
And I follow "Course 1"
And I turn editing mode on
And I add a "Page" to section "1"
Then "Restrict access" "fieldset" should exist
@@ -58,10 +53,8 @@ Feature: edit_availability
@javascript
Scenario: Edit availability using settings in activity form
# Set up.
Given I log in as "admin"
And I set the following administration settings values:
| Enable conditional access | 1 |
And I log out
Given the following config values are set as admin:
| enableavailability | 1 |
And I log in as "teacher1"
And I follow "Course 1"
@@ -153,10 +146,8 @@ Feature: edit_availability
@javascript
Scenario: Edit availability using settings in section form
# Set up.
Given I log in as "admin"
And I set the following administration settings values:
| Enable conditional access | 1 |
And I log out
Given the following config values are set as admin:
| enableavailability | 1 |
And I log in as "teacher1"
And I follow "Course 1"
And I turn editing mode on
@@ -172,3 +163,4 @@ Feature: edit_availability
And I should not see "None" in the "Restrict access" "fieldset"
And "Restriction type" "select" should be visible
And I should see "Date" in the "Restrict access" "fieldset"
+4
View File
@@ -60,6 +60,10 @@ class mock_info extends info {
return \context_course::instance($this->get_course()->id);
}
protected function get_view_hidden_capability() {
return 'moodle/course:viewhiddensections';
}
protected function set_in_database($availability) {
}
+28 -3
View File
@@ -407,11 +407,14 @@ class info_testcase extends \advanced_testcase {
$u1 = $generator->create_user();
$u2 = $generator->create_user();
$u3 = $generator->create_user();
$studentroleid = $DB->get_field('role', 'id', array('shortname' => 'student'), MUST_EXIST);
$allusers = array($u1->id => $u1, $u2->id => $u2, $u3->id => $u3);
$generator->enrol_user($u1->id, $course->id);
$generator->enrol_user($u2->id, $course->id);
$generator->enrol_user($u3->id, $course->id);
$generator->enrol_user($u1->id, $course->id, $studentroleid);
$generator->enrol_user($u2->id, $course->id, $studentroleid);
$generator->enrol_user($u3->id, $course->id, $studentroleid);
// Page 2 allows access to users 2 and 3, while section 2 allows access
// to users 1 and 2.
$pagegen = $generator->get_plugin_generator('mod_page');
$page = $pagegen->create_instance(array('course' => $course));
$page2 = $pagegen->create_instance(array('course' => $course,
@@ -483,5 +486,27 @@ class info_testcase extends \advanced_testcase {
$result = $DB->get_fieldset_sql($sql, $params);
sort($result);
$this->assertEquals($expected, $result);
// If the students have viewhiddenactivities, they get past the module
// restriction.
role_change_permission($studentroleid, context_module::instance($page2->cmid),
'moodle/course:viewhiddenactivities', CAP_ALLOW);
$expected = array($u1->id, $u2->id);
$this->assertEquals($expected, array_keys($info->filter_user_list($allusers)));
list ($sql, $params) = $info->get_user_list_sql(true);
$result = $DB->get_fieldset_sql($sql, $params);
sort($result);
$this->assertEquals($expected, $result);
// If they have viewhiddensections, they also get past the section
// restriction.
role_change_permission($studentroleid, context_course::instance($course->id),
'moodle/course:viewhiddensections', CAP_ALLOW);
$expected = array($u1->id, $u2->id, $u3->id);
$this->assertEquals($expected, array_keys($info->filter_user_list($allusers)));
list ($sql, $params) = $info->get_user_list_sql(true);
$result = $DB->get_fieldset_sql($sql, $params);
sort($result);
$this->assertEquals($expected, $result);
}
}
+3 -3
View File
@@ -299,7 +299,7 @@
<IDNUMBER>891220979</IDNUMBER>
<FIRSTNAME>Admin</FIRSTNAME>
<LASTNAME>User</LASTNAME>
<EMAIL>adamzap@gmail.com</EMAIL>
<EMAIL>adamzap@example.com</EMAIL>
<EMAILSTOP>0</EMAILSTOP>
<ICQ></ICQ>
<SKYPE></SKYPE>
@@ -368,7 +368,7 @@
<IDNUMBER>891111111</IDNUMBER>
<FIRSTNAME>Adam</FIRSTNAME>
<LASTNAME>Zapletal</LASTNAME>
<EMAIL>azaple1@lsu.edu</EMAIL>
<EMAIL>azaple1@example.com</EMAIL>
<EMAILSTOP>0</EMAILSTOP>
<ICQ></ICQ>
<SKYPE></SKYPE>
@@ -481,7 +481,7 @@
<IDNUMBER></IDNUMBER>
<FIRSTNAME>Philip</FIRSTNAME>
<LASTNAME>Cali</LASTNAME>
<EMAIL>pcali1@lsu.edu</EMAIL>
<EMAIL>pcali1@example.com</EMAIL>
<EMAILSTOP>0</EMAILSTOP>
<ICQ></ICQ>
<SKYPE></SKYPE>
@@ -80,6 +80,9 @@ class backup_course_task extends backup_task {
$this->add_step(new backup_enrolments_structure_step('course_enrolments', 'enrolments.xml'));
}
// Annotate enrolment custom fields.
$this->add_step(new backup_enrolments_execution_step('annotate_enrol_custom_fields'));
// Annotate all the groups and groupings belonging to the course
$this->add_step(new backup_annotate_course_groups_and_groupings('annotate_course_groups'));

Some files were not shown because too many files have changed in this diff Show More