Compare commits

..

1821 Commits

Author SHA1 Message Date
Eloy Lafuente (stronk7) c91704eddb Moodle release 2.1.5 2012-03-11 15:59:11 +01:00
Eloy Lafuente (stronk7) 90ba17e1b8 Merge branch 'install_21_STABLE' of git://github.com/amosbot/moodle into MOODLE_21_STABLE 2012-03-09 11:56:45 +01:00
AMOS bot db6e278f0d Automatically generated installer lang files 2012-03-09 11:54:21 +01:00
Eloy Lafuente (stronk7) c235b4c8a1 weekly release 2.1.4+ 2012-03-09 11:14:42 +01:00
Eloy Lafuente (stronk7) 331a5108dc Merge branch 'install_21_STABLE' of git://github.com/amosbot/moodle into MOODLE_21_STABLE 2012-03-09 11:04:22 +01:00
Eloy Lafuente (stronk7) f03c2cb038 Merge branch 'wip-MDL-31248-MOODLE_21_STABLE-v3' of git://github.com/abgreeve/moodle into MOODLE_21_STABLE 2012-03-09 09:48:02 +01:00
Eloy Lafuente (stronk7) f852a52aad Revert "MDL-31248 - lib - Alteration to the rc4encrypt function to allow for old password use."
This reverts commit 6704edc5ba.
2012-03-09 09:38:33 +01:00
Adrian Greeve 6aadec83c5 MDL-31248 - lib - Retaining the old password key and creating a new cookie prefix. 2012-03-09 13:44:17 +08:00
Eloy Lafuente (stronk7) 929eeb07e1 Revert "[MDL-31708] - wiki 2.0 non-group member can see edit option in navigation block."
This reverts commit b3df3de675.
2012-03-09 02:22:21 +01:00
Eloy Lafuente (stronk7) 65aa27f89f Revert "MDL-31708 wiki groups: whitespace fix"
This reverts commit 7083c092e6.
2012-03-09 02:22:18 +01:00
Eloy Lafuente (stronk7) c76aa441b4 Merge branch 'wip-MDL-31248-MOODLE_21_STABLE-v2' of git://github.com/abgreeve/moodle into MOODLE_21_STABLE 2012-03-08 02:41:45 +01:00
Eloy Lafuente (stronk7) 4b3d540f21 Merge branch 'wip-MDL-29086-MOODLE_21_STABLE' of git://github.com/abgreeve/moodle into MOODLE_21_STABLE 2012-03-08 02:32:31 +01:00
AMOS bot d49760a96f Automatically generated installer lang files 2012-03-08 00:31:43 +00:00
Adrian Greeve 6704edc5ba MDL-31248 - lib - Alteration to the rc4encrypt function to allow for old password use. 2012-03-08 08:18:27 +08:00
Ankit Agarwal 8cd16e9d71 MDL-31466 tags: Fixed context bug 2012-03-08 10:56:04 +13:00
Eloy Lafuente (stronk7) 87ab86d1cb Merge branch 'wip-mdl-31894-m21' of git://github.com/rajeshtaneja/moodle into MOODLE_21_STABLE 2012-03-07 18:15:10 +01:00
Eloy Lafuente (stronk7) 15c49dc35f Merge branch 'MDL-31712_M21' of git://github.com/kordan/moodle into MOODLE_21_STABLE 2012-03-07 15:42:21 +01:00
Petr Skoda 6b2de94af5 MDL-31689 fix moodle_database:execute() description
Conflicts:

	lib/dml/moodle_database.php
2012-03-07 12:43:40 +01:00
Eloy Lafuente (stronk7) 029923aa9d MDL-31832 CLI upgrade will return 0 exit status if no upgrade is needed
Discussed with David, both points were valid but finally
we agreed about to consider the "no upgrade needed" exit
a normal/succesful one, mainly because it keeps previous
behavior the same (exit non-zero only for real errors).
2012-03-07 11:23:33 +01:00
David Mudrak 01af07849e MDL-31832 CLI upgrade checks if the upgrade is actually needed
Conflicts:

	admin/cli/upgrade.php
2012-03-07 11:22:38 +01:00
Eloy Lafuente (stronk7) b23ffc0937 MDL-28364 whitespace fixes 2012-03-07 04:02:03 +01:00
Eloy Lafuente (stronk7) bab29cb50b Merge branch 'MDL-28364_21' of git://github.com/jonof/moodle into MOODLE_21_STABLE 2012-03-07 04:01:53 +01:00
Eloy Lafuente (stronk7) 6cedce9d6b MDL-23787 data: Init 2 arrays (global scope) that may conflict with other global scope code 2012-03-07 01:58:11 +01:00
Marina Glancy 539c7ca148 MDL-23787 added possibility to embed images into textarea fields in database activity
Conflicts:

	mod/data/field/textarea/lang/en/datafield_textarea.php
2012-03-07 01:57:33 +01:00
AMOS bot d6cb6b06e0 Automatically generated installer lang files 2012-03-07 00:31:50 +00:00
Ruslan Kabalin e57b1ed36c MDL-31255 Fix move of highlighted section when JS is off
Conflicts:

	course/rest.php
	course/view.php
2012-03-07 00:42:47 +01:00
Sam Hemelryk ce0e7afd40 Merge branch 'MDL-28387-m21' of git://github.com/ankitagarwal/moodle into MOODLE_21_STABLE 2012-03-07 11:46:21 +13:00
Gootvilig David Hai 960b382617 MDL-31876 questionlib: fix question_has_capability_on memory bloat 2012-03-06 21:32:13 +01:00
Eloy Lafuente (stronk7) 7f8c780dd3 Merge branch 'MDL-31829_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2012-03-06 21:23:54 +01:00
Eloy Lafuente (stronk7) 0b9c121a8c Merge branch 'w10_MDL-31785_m21_htmlpurifier' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2012-03-06 13:12:23 +01:00
Eloy Lafuente (stronk7) 7083c092e6 MDL-31708 wiki groups: whitespace fix 2012-03-06 11:46:39 +01:00
Rajesh Taneja 7d019212c3 MDL-31894 Blocks: fixed get_course_context usage in peoples block 2012-03-06 10:30:35 +08:00
Gilles-Philippe Leblanc b3df3de675 [MDL-31708] - wiki 2.0 non-group member can see edit option in navigation block. 2012-03-06 10:20:57 +08:00
Sam Hemelryk b2896fd59f Merge branch 'MDL-27764_21' of git://github.com/stronk7/moodle into MOODLE_21_STABLE 2012-03-06 10:18:51 +13:00
Mary Evans c13c397355 MDL-31328_master theme_sky_high: fixed report layout and related files + updated css + added horizontal scroll 2012-03-06 10:04:39 +13:00
Sam Hemelryk 3bfeac2dfa Merge branch 'MDL-31828_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2012-03-05 17:03:11 +13:00
Sam Hemelryk b3e2eb804a Merge branch 'w10_MDL-31807_m21_cohort' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2012-03-05 16:55:57 +13:00
Sam Hemelryk c7b23475a5 MDL-30724 mod_assignment: Minor fixes during integration 2012-03-05 16:09:35 +13:00
Sam Hemelryk d5f1dab8f2 Merge branch '21_MDL-30724_count_real_submissions_eloy_suggests' of git://github.com/gerrywastaken/moodle into MOODLE_21_STABLE 2012-03-05 16:08:40 +13:00
Tony Levi 3885259733 MDL-31819: admin: allow install to proceed when multiple admins exist already 2012-03-05 15:54:44 +13:00
Sam Hemelryk 9a2d681948 MDL-31794 theme_formalwhite: Fixed up tabs 2012-03-05 15:29:31 +13:00
Sam Hemelryk 3fe51df42e Merge branch 'MDL-31707_21' of git://github.com/stronk7/moodle into MOODLE_21_STABLE 2012-03-05 15:21:12 +13:00
Kordan 2555ac359b MDL-29367 theme_formalwhite: Lines between RSS and upcoming events 2012-03-05 15:16:14 +13:00
Kordan 096a3aa116 MDL-31786 theme_formalwhite: bigger userid and password fields size in login page 2012-03-05 15:07:44 +13:00
kordan ce01921fd2 MDL-31794 theme_formalwhite: let tab-bar give evidence of the current tab and page 2012-03-05 15:01:54 +13:00
Eloy Lafuente (stronk7) b1f222f672 MDL-27764 restore - always restore as much info as possible (1.9 approach)
In 2.0 we had reduced the types of restore operations where we allow
to load the section names and section descriptions, only proceeding
when restoring to new course or to existing course, deleting.

With this patch, we change to the old 1.9 way, that was to restore
the section information always, no matter of the type of restore
operation (course restore, import, to new or to existing course,
deleting or adding). The only exception is that it's always checked that
the target section names and descriptions are empty.
2012-03-05 02:49:20 +01:00
Sam Hemelryk 36bad5bfcd Merge branch 'MDL-26037_21' of git://github.com/stronk7/moodle into MOODLE_21_STABLE 2012-03-05 14:03:20 +13:00
Sam Hemelryk 33bd4e0455 Merge branch 'MDL-29248_21' of git://github.com/stronk7/moodle into MOODLE_21_STABLE 2012-03-05 13:54:03 +13:00
Kordan 85d555ebd7 MDL-29127 theme_formalwhite: highlight for unread forum post 2012-03-05 12:37:33 +13:00
Sam Hemelryk 0080f86fb7 MDL-24235 bennu: Converted to old style of textlib strlen 2012-03-05 12:21:35 +13:00
Sam Hemelryk fc697419ad Merge branch 'MDL-24235-21' of https://github.com/mackensen/moodle into MOODLE_21_STABLE 2012-03-05 12:20:48 +13:00
Sam Hemelryk ff79a72c10 Merge branch 'MDL-31806-21' of https://github.com/mackensen/moodle into MOODLE_21_STABLE 2012-03-05 12:05:30 +13:00
Sam Hemelryk 974c446434 Merge branch 'MDL-30893-m21' of git://github.com/ankitagarwal/moodle into MOODLE_21_STABLE 2012-03-05 11:52:36 +13:00
AMOS bot 7949fd758c Automatically generated installer lang files 2012-03-04 00:31:53 +00:00
Petr Skoda 4c05d4a9c1 MDL-31785 fix and improve htmlpurifier tests 2012-03-03 11:27:28 +01:00
Petr Skoda c55217736e MDL-31785 import HTMLPurifier 4.4.0+
Includes one extra fix for _blank 8c9d461a6259d7b8ac4ae5c9c9e95ab176cfcda3 compared to 4.4.0 release.
2012-03-03 11:26:03 +01:00
Petr Skoda 1cb9ca1458 MDL-31807 fix invalid nulls in cohort components
Credit goes to Stephen.
2012-03-03 11:09:44 +01:00
Charles Fulton f6f1c2aed8 MDL-24235 bennu: remove dependency on mbstring from library 2012-03-02 08:03:09 -08:00
Adrian Greeve f123887e94 MDL-29086 - data - Fix for allowing the deletion of database activity presets.
Thank you to Matthias Hunstock for providing a patch for this.
2012-03-02 14:37:24 +08:00
Ankit Agarwal eb2cbfc6d8 MDL-28387 logs: Log data when a user is deleted 2012-03-02 13:29:58 +08:00
Ankit Agarwal 7aee4c3ddf MDL-31466 Tags Adding a capability check to make sure hidden courses are not displayed in tag search results 2012-03-02 11:55:26 +08:00
Ankit Agarwal 3e5a3d91ee MDL-30893 Accessibility Submit button in forgot password page now have separate ids 2012-03-02 11:34:02 +08:00
Tim Hunt b37cff4f0d MDL-31829 question engine SQL typo breaks some regrades.
Also, some MySQL-only code had not been updated.

This problem only affected a small minority of question attempts, like
this:
1. Suppose you have a shortanswer question with correct answer 'Toad'
and some hints.
2. Suppose a student attempts this using the interactive behaviour and
on the first try responds 'Frog', and on the second try responds 'Toad'.
3. Then suppose the teacher edits the question to make 'Frog' correct.
4. Then, when the quiz is regraded, the question_attempt_step for the
second try will need to be deleted. That is where the buggy code was.
2012-03-01 12:38:58 +00:00
Eloy Lafuente (stronk7) 3b63a42387 MDL-26037 restore: fixes for mssql, php 5.4 and small improvs 2012-03-01 13:19:57 +01:00
Tony Levi 5c625be3be MDL-26037: import: display search box even when no courses are currently displayed 2012-03-01 13:19:57 +01:00
Tony Levi b6328863ad MDL-26037: restore/import: check through all courses instead of only first 250 2012-03-01 13:19:57 +01:00
Eloy Lafuente (stronk7) 4fda074e69 MDL-29248 backup: take rid of the setting and code handling the 'private' user filearea 2012-03-01 13:17:48 +01:00
Eloy Lafuente (stronk7) 0d8ce6ac3e MDL-29248 backup: delete user_files settings, lang strings and uses
Conflicts:

	version.php
2012-03-01 13:17:40 +01:00
Tim Hunt fb313979df MDL-31828 attachements to essay questions do not work on Oracle. 2012-03-01 12:12:18 +00:00
Eloy Lafuente (stronk7) 9e4c8f40d4 MDL-31707 environment - add check for the hash extension 2012-03-01 12:52:20 +01:00
Eloy Lafuente (stronk7) f24a1a74e5 weekly release 2.1.4+ 2012-03-01 11:32:38 +01:00
Eloy Lafuente (stronk7) 05acc0c507 Merge branch 'install_21_STABLE' of git://github.com/amosbot/moodle into MOODLE_21_STABLE 2012-03-01 11:26:22 +01:00
Aparup Banerjee cad5317fd0 MDL-27793 themes : anomaly theme rtl+ltr login box element widths fixed to be acceptable for IE and FF.
Conflicts:

	theme/anomaly/style/general.css
2012-03-01 09:24:02 +01:00
Sam Hemelryk 1fa9907b7d Merge branch 'MDL-31831_21' of git://github.com/stronk7/moodle into MOODLE_21_STABLE 2012-03-01 14:36:07 +13:00
Eloy Lafuente (stronk7) 672af3c102 MDL-31831 whitespace clean - take2 2012-03-01 02:09:40 +01:00
Charles Fulton 1feed43c45 MDL-31806 tags: remove second occurrence of id in query string 2012-02-29 05:17:34 -08:00
Aparup Banerjee 0feba3f8fa MDL-25027 web service: moved validation to before changes to DB transaction. 2012-02-29 09:57:33 +01:00
Eloy Lafuente (stronk7) b6ea2779c6 Merge branch 'wip-mdl-29274-m21' of git://github.com/rajeshtaneja/moodle into MOODLE_21_STABLE 2012-02-29 02:19:40 +01:00
Eloy Lafuente (stronk7) 0915af2783 Merge branch 'MDL-31748_M21' of git://github.com/lazydaisy/moodle into MOODLE_21_STABLE 2012-02-29 02:11:08 +01:00
Eloy Lafuente (stronk7) 85c0bc886b Merge branch 'MDL-26496_m21' of git://github.com/rwijaya/moodle into MOODLE_21_STABLE 2012-02-29 02:06:40 +01:00
AMOS bot b0a01ca5b2 Automatically generated installer lang files 2012-02-29 00:31:21 +00:00
Eloy Lafuente (stronk7) 05bfd9ff6f Merge branch 'wip-MDL-31738-MOODLE_21_STABLE' of git://github.com/marinaglancy/moodle into MOODLE_21_STABLE 2012-02-29 00:30:49 +01:00
Eloy Lafuente (stronk7) ed27a82dbc Merge branch 'MDL-25027_stable_consistency_fix_m21' of git://github.com/nebgor/moodle into MOODLE_21_STABLE 2012-02-28 17:34:23 +01:00
Aparup Banerjee 91c54c7c11 Merge branch 'MDL-14837_show-time-on-no-duration-events_21_STABLE' of https://github.com/ncsu-delta/moodle into MOODLE_21_STABLE 2012-02-28 16:42:02 +08:00
Aparup Banerjee fdbdba153b Merge branch 'MDL-30878-MOODLE_21_STABLE' of git://github.com/mouneyrac/moodle into MOODLE_21_STABLE 2012-02-28 15:38:56 +08:00
Aparup Banerjee e46da9a7fe Merge branch 'MDL-28386-m21' of git://github.com/ankitagarwal/moodle into MOODLE_21_STABLE 2012-02-28 14:42:24 +08:00
Dan Marsden 72307d9a9f MDL-31086 Calendar : fix sql to get distinct list of courses 2012-02-28 14:37:32 +08:00
Aparup Banerjee 8b1876f3b5 Merge branch 'MDL-31335_mtrace_email_21' of git://github.com/andyjdavis/moodle into MOODLE_21_STABLE 2012-02-28 14:15:43 +08:00
Aparup Banerjee 4c52d60ed4 Merge branch 'wip-mdl-22896-m21' of git://github.com/rajeshtaneja/moodle into MOODLE_21_STABLE 2012-02-28 13:48:45 +08:00
Aparup Banerjee 40e24058b2 Merge branch 'MDL-31399_m21' of git://github.com/rwijaya/moodle into MOODLE_21_STABLE 2012-02-28 12:05:25 +08:00
Eloy Lafuente (stronk7) 18e9464448 Merge branch 'MDL-27793_m21' of git://github.com/nebgor/moodle into MOODLE_21_STABLE 2012-02-28 03:53:05 +01:00
Jonathon Fowler 0ead433d20 MDL-28364 handle question formats that support multiple file types 2012-02-28 09:24:02 +10:00
Eloy Lafuente (stronk7) b992ac2eb5 MDL-29161 weblib: added one more test about un-keyed array params 2012-02-27 22:22:15 +01:00
Eloy Lafuente (stronk7) 2f69c6159b Merge branch 'MDL-29161_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2012-02-27 22:22:09 +01:00
Eloy Lafuente (stronk7) 89c8b0a8c0 Merge branch 'MDL-31721_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2012-02-27 22:07:01 +01:00
Eloy Lafuente (stronk7) 7c330ad77d Merge branch 'MDL-31729_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2012-02-27 19:02:59 +01:00
Eloy Lafuente (stronk7) 82f4e1f838 Merge branch 'MDL-29256-resource-format_21_STABLE' of git://github.com/mudrd8mz/moodle into MOODLE_21_STABLE 2012-02-27 18:55:05 +01:00
Eloy Lafuente (stronk7) 8e53b911e7 Merge branch 'MDL-29199-21_STABLE' of git://github.com/danpoltawski/moodle into MOODLE_21_STABLE 2012-02-27 18:48:18 +01:00
Adam Olley 4d090b8959 MDL-29229 message: Set contactlist pull-down width to not exceed parent columns width 2012-02-27 17:12:24 +01:00
Eloy Lafuente (stronk7) 8774bde1a9 Merge branch 'MDL-29523-21_STABLE' of git://github.com/danpoltawski/moodle into MOODLE_21_STABLE 2012-02-27 16:52:57 +01:00
Dan Poltawski 4e012c2700 MDL-29592 weblib: prevent warnings when $USER not set 2012-02-27 16:06:48 +01:00
Dan Poltawski 145d39a35a MDL-31348 calendar: event links not using user timezone
thanks to Ben Thomas for the patch
2012-02-27 15:58:14 +01:00
Eloy Lafuente (stronk7) 6c200e966f Merge branch 'MDL-31546-21_STABLE' of git://github.com/danpoltawski/moodle into MOODLE_21_STABLE 2012-02-27 15:44:48 +01:00
Dan Poltawski ff0e0c099e MDL-31651 course/info: Fix hardcoded string 2012-02-27 15:32:47 +01:00
Marina Glancy c73d54850f MDL-31738: added functions mod_xxx_get_file_info() to glossary and data modules 2012-02-27 14:24:08 +08:00
Gerard (Gerry) Caulfield 9af65cb3ac MDL-30724 Limit assignment_count_real_submissions() to only select real
submissions

I've also refactored some code so that it is more structured and allows
for easier overriding of function associated with counting submissions
and updated associated doc blocks.
2012-02-27 12:30:37 +08:00
Sun Zhigang 7020701b75 MDL-29523 filemanager: Fix a hardcode string 2012-02-27 09:40:56 +08:00
AMOS bot 24fed95222 Automatically generated installer lang files 2012-02-27 00:31:21 +00:00
Mary Evans 88cebb1df6 MDL-31748_master theme_afterburner: added min-width to fix missing horizontal scroll bar when page is reduced in browser window 2012-02-25 18:10:26 +00:00
Glenn Ansley 96094327a1 MDL-14837 Calendar: Display start time on calendar events with no duration 2012-02-24 09:03:16 -05:00
Rajesh Taneja d3bc407853 MDL-29274 blocks: people block will use course context for making url and not module context 2012-02-24 16:40:45 +08:00
Kordan 6298a3e454 accessibility colors for formal_white M21 2012-02-24 07:39:52 +01:00
Dan Poltawski e3c04a7426 MDL-29199 dml: fix query logging on Oracle
thanks to Jonathon Fowler for the fix
2012-02-24 11:57:57 +08:00
Dan Poltawski c3eb0eec2a MDL-31546 wiki: remove stray semicolon
causing errors on oracle

Thanks to Jonathon Fowler for the patch
2012-02-24 11:41:14 +08:00
Rajesh Taneja 97c8fe4def MDL-22896 libraries: Updated regular expression in html2text, for replacing unknown/unhandled entities 2012-02-24 10:11:15 +08:00
Aparup Banerjee b861cf6a3d MDL-27793 Themes : review changes - removed .dir-rtl from .loginbox selector rule to be default css rule. made them same width too. 2012-02-24 09:53:06 +08:00
Aparup Banerjee a1fc9592a3 MDL-27793 Themes : fixed base (and other themes) theme's loginbox
- fixed translated lengthy terms were being clipped
 - fixed clipping and positioning of loginbox in rtl and ltr languages both
2012-02-24 09:53:06 +08:00
Tim Hunt 370bda4cb9 MDL-31729 questions: files for hints are not moved or deleted.
The files that belong to the question hints are neither moved when the
question is moved to another context, nor deleted when the question is
deleted.

Oops! How come no one noticed that until today.
2012-02-23 12:05:34 +00:00
Tim Hunt 1b5d149b43 MDL-31721 question editing: improve working for Show num correct
AMOS BEGIN
 CPY [shownumpartscorrect,question],[shownumpartscorrectwhenfinished,question]
AMOS END
2012-02-23 12:05:15 +00:00
Tim Hunt 0f751368e5 MDL-29161 weblib: moodle_ulr::out does not cope with array params.
Conflicts:

	lib/simpletest/testweblib.php
2012-02-23 12:04:55 +00:00
Eloy Lafuente (stronk7) 62b0af5863 weekly release 2.1.4+ 2012-02-23 11:39:38 +01:00
Eloy Lafuente (stronk7) 0938a8847f Merge branch 'install_21_STABLE' of git://github.com/amosbot/moodle into MOODLE_21_STABLE 2012-02-23 11:35:08 +01:00
Rossiani Wijaya 8bfd16856a MDL-31399 Lesson Module: Fixed horizontal scroll bar issue when using rtl language format (eg: arabic) 2012-02-23 14:52:01 +08:00
Eduardo Pinto 234f870c88 MDL-26496 Lesson Module: removed warning when no answer is selected from single choice question 2012-02-23 13:38:54 +08:00
AMOS bot 4d9648a7bd Automatically generated installer lang files 2012-02-23 00:31:13 +00:00
Eloy Lafuente (stronk7) e9adc4057f Merge branch 'm21_MDL-31652' of git://github.com/danmarsden/moodle into MOODLE_21_STABLE 2012-02-22 10:07:47 +01:00
Dan Marsden 47e2cdf108 MDL-31652 SCORM - advanced settings not configurable in 2.1 2012-02-22 19:19:19 +13:00
AMOS bot 85a6624378 Automatically generated installer lang files 2012-02-22 00:31:19 +00:00
Sam Hemelryk 65773fe2fe Merge branch 'MDL-30910_m21' of git://github.com/rwijaya/moodle into MOODLE_21_STABLE 2012-02-22 10:21:28 +13:00
Eloy Lafuente (stronk7) d5ae248cb9 Merge branch 'wip-MDL-30830-m21' of git://github.com/samhemelryk/moodle into MOODLE_21_STABLE 2012-02-21 21:20:07 +01:00
David Mudrak a158c5c325 MDL-29256 Fixed incorrect calculation of contentformat
Legacy Resource modules of the type Web page force the HTML format for
their content. The format stored in the reference field is valid only
for legacy resources of the type Plain text page. See page_20_migrate()
function.
2012-02-21 11:18:34 +01:00
Eloy Lafuente (stronk7) c85e0f6e1e Merge branch '21_MDL-25996_making_language_editing_terms_user_friendly' of git://github.com/gerrywastaken/moodle into MOODLE_21_STABLE 2012-02-21 10:48:50 +01:00
Aparup Banerjee 12166ca08d MDL-25027 Web Service: added email validation to create_users() - just like GUI 2012-02-21 15:30:12 +08:00
Aparup Banerjee 70a752c068 MDL-25027 Web Service: removed user info(firstname,lastname) truncation for GUI-WS consistency.
Currently there is no validation on user info (firstname/lastname) in user/editadvanced_form.php
2012-02-21 15:30:06 +08:00
Rossiani Wijaya dbac1a5177 MDL-30910: Lesson Module: fix lesson progress bar for screen readers
AMOS BEGIN
   CPY [progresscompleted, mod_lesson]
AMOS END
2012-02-21 12:39:24 +08:00
EVAN Irving-Pease 6c9e270f51 MDL-28386 Authentication Fixing user id issue with logs when a new user is added 2012-02-21 08:15:19 +05:30
Gerard (Gerry) Caulfield 2d3eed0fba MDL-25996 Updating languaged editing interface terms to make them user
friendly
2012-02-21 10:10:02 +08:00
Eloy Lafuente (stronk7) 7b98cbf20e Merge branch 'wip-mdl-25432-m21' of git://github.com/rajeshtaneja/moodle into MOODLE_21_STABLE 2012-02-21 02:10:38 +01:00
AMOS bot 665328808f Automatically generated installer lang files 2012-02-21 00:31:20 +00:00
Sam Hemelryk d7375d7ecb Merge branch 'MDL-29402-21' of https://github.com/mackensen/moodle into MOODLE_21_STABLE 2012-02-21 10:43:29 +13:00
Andrew Robert Nicols 733042590b MDL-19421 Correct lesson dependency mapping on restore 2012-02-20 17:17:39 +01:00
Eloy Lafuente (stronk7) 896f9739cc Merge branch 'MDL-31345_M21' of git://github.com/lazydaisy/moodle into MOODLE_21_STABLE 2012-02-20 15:40:16 +01:00
Eloy Lafuente (stronk7) 50a1fe7b13 Merge branch 'wip-MDL-25299-m21' of git://github.com/samhemelryk/moodle into MOODLE_21_STABLE 2012-02-20 12:59:20 +01:00
Sam Hemelryk 7d03210e74 Merge branch 'wip-mdl-29967-m21' of git://github.com/rajeshtaneja/moodle into MOODLE_21_STABLE 2012-02-20 18:20:14 +13:00
Sam Hemelryk 7e87a3af32 Merged MDL-29254 with conflict resolution 2012-02-20 17:59:08 +13:00
Sam Hemelryk f37f43f3dd Merge branch 'wip-MDL-31627-MOODLE_21_STABLE' of git://github.com/marinaglancy/moodle into MOODLE_21_STABLE 2012-02-20 17:25:26 +13:00
Sam Hemelryk 0296cc13c7 Merge branch '21_MDL-31388_fix_enrol_LDAP_typo' of git://github.com/gerrywastaken/moodle into MOODLE_21_STABLE 2012-02-20 17:13:15 +13:00
Sam Hemelryk f2f3078cd3 Merge branch 'MDL-31532_21' of git://github.com/stronk7/moodle into MOODLE_21_STABLE 2012-02-20 17:10:31 +13:00
Sam Hemelryk 3921c7242d Merge branch 'MDL-31432_messaging_popup_21' of git://github.com/andyjdavis/moodle into MOODLE_21_STABLE 2012-02-20 16:58:03 +13:00
Sam Hemelryk 9169b3349f Merge branch '21_MDL-30957_adding_assignment_completion_status_method_and_call' of git://github.com/gerrywastaken/moodle into MOODLE_21_STABLE 2012-02-20 16:52:26 +13:00
Gerard (Gerry) Caulfield d773f373ef MDL-30957 Adding a new method "is_complete" to assignment lib for
testing if a submission has actually been submitted and then adding a
call to it before displaying the the assignment submission date header

As recommended I've simplified the functions and split the logic out into appropriate upload classes.
2012-02-20 11:37:51 +08:00
Andrew Davis f684c55b0c MDL-31335 message: wrapped calls to mtrace() in email_to_user() within a check to make sure its a CLI script 2012-02-20 10:35:15 +07:00
Andrew Davis 617d29bb41 MDL-31432 message: prevent messaging popups while viewing messages 2012-02-20 10:14:35 +07:00
Sam Hemelryk f1c1de8924 Merge branch 'm21_MDL-31397' of git://github.com/danmarsden/moodle into MOODLE_21_STABLE 2012-02-20 16:02:59 +13:00
Sam Hemelryk 09c2f89a62 Merge branch 'm21_MDL-31652' of git://github.com/danmarsden/moodle into MOODLE_21_STABLE 2012-02-20 15:53:23 +13:00
Sam Hemelryk 88b14f0fd0 Merge branch 'MDL-30965-m21' of git://github.com/ankitagarwal/moodle into MOODLE_21_STABLE 2012-02-20 15:44:40 +13:00
Andrew Robert Nicols b32b101380 MDL-31589 Sort order of lesson answers before restoring them 2012-02-20 15:19:24 +13:00
Andrew Robert Nicols 42f5a204fb MDL-31590 Correct title of error dialogue on filepicker
Thanks to Gilles-Philippe Leblanc for this patch
2012-02-20 15:01:53 +13:00
Rajesh Taneja 3c5ea52dda MDL-29254 blog: added check in upgrade for summary and content to be null fields 2012-02-20 09:37:34 +08:00
Rajesh Taneja 543301a97f MDL-25432 backup: Catching exception for orphan course modules and it's block (if any), and logging them, no exception will be thrown for this now. 2012-02-20 09:29:57 +08:00
Eloy Lafuente (stronk7) 7116d8d3a7 MDL-31532 restore: avoid null course->hiddensections problems. Credit goes to Petri Asikainen. Thanks! 2012-02-20 01:36:35 +01:00
AMOS bot c589d2b402 Automatically generated installer lang files 2012-02-20 00:31:23 +00:00
Sam Hemelryk 06f405d654 Merge branch 'MDL-31556_m21' of git://github.com/rwijaya/moodle into MOODLE_21_STABLE 2012-02-20 12:38:54 +13:00
Sam Hemelryk a80daaf26d Merge branch 'MDL-31647-m21' of git://github.com/sammarshallou/moodle into MOODLE_21_STABLE 2012-02-20 11:54:23 +13:00
Sam Hemelryk b2444c0c45 Merge branch 'MDL-30495-MOODLE_21_STABLE' of git://github.com/mouneyrac/moodle into MOODLE_21_STABLE 2012-02-20 11:50:29 +13:00
Sam Hemelryk b6daade7ff MDL-30521 upgrade: Corrected version bump for uniquehash field upgrade 2012-02-20 10:58:23 +13:00
Sam Hemelryk a005b98ba7 Merge branch 'wip-mdl-30521-m21' of git://github.com/rajeshtaneja/moodle into MOODLE_21_STABLE 2012-02-20 10:29:38 +13:00
AMOS bot 147dfa0424 Automatically generated installer lang files 2012-02-18 00:31:32 +00:00
sam marshall bb771fc43b MDL-31647 Glossary: Links to glossary entries from glossary main page should not be popups 2012-02-17 10:38:52 +00:00
Ankit Agarwal 6b288716cb MDL-30965 SCORM Removing unused variable ->head 2012-02-17 09:20:16 +05:30
Sam Hemelryk 8f6fd84c77 MDL-25299 mnet: Fixed validation when no public key is provided 2012-02-17 16:47:43 +13:00
Gerard (Gerry) Caulfield 77593642aa MDL-31388 Fixing typo in enrol_ldap 2012-02-17 11:44:09 +08:00
Marina Glancy 69b00bda42 MDL-31627: Arialist theme do not resize content when there are no blocks 2012-02-17 11:02:37 +08:00
Dan Marsden 6d65790c98 MDL-31652 SCORM - hide updatefreq setting and remove it if not required. 2012-02-17 15:32:47 +13:00
Dan Marsden 88f5848e9b SCORM MDL-31397 - add slashes to js string 2012-02-17 15:24:35 +13:00
Sam Hemelryk a808df470d MDL-30830 dock: Added the title using accesshide for screen readers 2012-02-17 14:52:19 +13:00
Eloy Lafuente (stronk7) e0d5a17f7f weekly release 2.1.4+ 2012-02-17 01:49:37 +01:00
Eloy Lafuente (stronk7) 72700fd593 Merge branch 'install_21_STABLE' of git://github.com/amosbot/moodle into MOODLE_21_STABLE 2012-02-17 01:43:56 +01:00
AMOS bot 90f8146396 Automatically generated installer lang files 2012-02-17 00:31:18 +00:00
Joseph Rezeau 3ec7dc747f MDL-31556 Lesson Module: fixed missing 'lesson closes' event in calendar 2012-02-16 15:45:35 +08:00
Jerome Mouneyrac 95711cca60 MDL-30495 HTML5 apps cannot call Webservices functions if a HTTP resource is retrieved from the Moodle installation 2012-02-15 11:40:32 +08:00
Sam Hemelryk d727e30334 MDL-30888 course-search: Fixed typo 2012-02-15 16:29:14 +13:00
Sam Hemelryk cf86dd8c20 Merge branch 'wip-mdl-30388-m21' of git://github.com/rajeshtaneja/moodle into MOODLE_21_STABLE 2012-02-15 16:23:24 +13:00
Rajesh Taneja d3d7cb46ce MDL-30388 Blocks: navigation block is visible on block search page 2012-02-15 10:21:04 +08:00
Rajesh Taneja 46f1a84281 MDL-30388 Blocks: Search view for block instances fixed, with proper page url and pagination 2012-02-15 10:20:58 +08:00
Andrew Robert Nicols b22d03b3fd [MDL-31386] Correctly order answers in a lesson backup 2012-02-15 03:15:35 +01:00
Michael Aherne e0325d3c30 MDL-31495 Performance improvement in question engine upgrade SQL 2012-02-15 09:37:58 +08:00
AMOS bot 680d2134e3 Automatically generated installer lang files 2012-02-15 00:31:20 +00:00
Sam Hemelryk 042e24f146 MDL-30709 mod_assignment: Renamed callback to mod_assignment_get_file_info 2012-02-15 11:27:05 +13:00
Charles Fulton 57aefd2124 MDL-29402 QandA forum questions should be emailed 2012-02-14 06:02:12 -08:00
Davo Smith 3b8d8e1641 MDL-31527 XMLDB Editor - make sure default tables are created with correct plugin prefix 2012-02-14 12:12:31 +01:00
Iñaki Arenaza f32c32b81f MDL-29667 Plugins overview shows incorrect availability for auth & enrol plugins
We store the enabled plugins as array values but later look them up as array
keys. Just flip the array when we build it.
2012-02-14 15:58:59 +08:00
Aparup Banerjee b6aa60c810 Merge branch 'wip-mdl-28101-m21' of git://github.com/rajeshtaneja/moodle into MOODLE_21_STABLE 2012-02-14 15:39:10 +08:00
Rajesh Taneja 2f20a794bf MDL-30521 blog: Updated uniquehash field preceision to 255 in post table 2012-02-14 14:23:10 +08:00
Davo Smith 3051f76809 MDL-31541 Repositories - make sure all repository instances have unique 'sortorder' values when retrieved 2012-02-14 13:32:30 +08:00
Sam Hemelryk 9560a61be9 Merge branch 'MDL-30911_m21' of git://github.com/rwijaya/moodle into MOODLE_21_STABLE 2012-02-14 17:41:37 +13:00
Sam Hemelryk 5e87e0e6e4 MDL-30709 mod_assignment Fixed phpdocs for assignment_get_file_info 2012-02-14 17:16:32 +13:00
Sam Hemelryk 70a03e679e Merge branch 'wip-MDL-30709-MOODLE_21_STABLE' of git://github.com/marinaglancy/moodle into MOODLE_21_STABLE 2012-02-14 17:16:21 +13:00
Aparup Banerjee 38a88bb4bc Merge branch 'MDL-29471-MOODLE_21_STABLE' of git://github.com/mouneyrac/moodle into MOODLE_21_STABLE 2012-02-14 11:43:15 +08:00
Sam Hemelryk 0e373152be Merge branch 'MDL-31604-MOODLE_21_STABLE' of git://github.com/mouneyrac/moodle into MOODLE_21_STABLE 2012-02-14 15:47:59 +13:00
Sam Hemelryk a689533f8f Merge branch '21_MDL-26807_remove_withselectedusers_strings_and_references' of git://github.com/gerrywastaken/moodle into MOODLE_21_STABLE 2012-02-14 15:31:49 +13:00
Sam Hemelryk 8213be9838 Merge branch '21_MDL-27285_fixing_grammar_on_wiki_links_page' of git://github.com/gerrywastaken/moodle into MOODLE_21_STABLE 2012-02-14 15:27:45 +13:00
Sam Hemelryk 79d0f68575 Merge branch '21_MDL-27654_add_space_to_somefieldrequired_string' of git://github.com/gerrywastaken/moodle into MOODLE_21_STABLE 2012-02-14 15:20:59 +13:00
Sam Hemelryk a750aff797 Merge branch '21_MDL-31107_fixing_below_typos' of git://github.com/gerrywastaken/moodle into MOODLE_21_STABLE 2012-02-14 15:08:23 +13:00
Mary Evans 1b80c4a8ec MDL-31345_master theme_afterburner: adds horizontal scroll bar to pagelayout-report 2012-02-14 01:52:58 +00:00
Sam Hemelryk fd20256bad Merge branch 'MDL-28283-m21' of git://github.com/ankitagarwal/moodle into MOODLE_21_STABLE 2012-02-14 13:59:22 +13:00
Sam Hemelryk 9bfa5bd8cc Merge branch 'MDL-30815-m21' of git://github.com/ankitagarwal/moodle into MOODLE_21_STABLE 2012-02-14 13:44:44 +13:00
Sam Hemelryk 98899b998c Merge branch 'MDL-30821-m21' of git://github.com/ankitagarwal/moodle into MOODLE_21_STABLE 2012-02-14 13:39:23 +13:00
Andrew Robert Nicols d5e19eb275 MDL-31515 Allow for subsequent files to overwrite old files in database activity records 2012-02-14 10:57:11 +13:00
Sam Hemelryk 17b0c930c6 Merge branch 'MDL-29080_export_hidden2_21' of git://github.com/andyjdavis/moodle into MOODLE_21_STABLE 2012-02-14 10:47:39 +13:00
Sam Hemelryk f6a491d805 Merge branch '21_MDL-29153_fix_typo_in_resource' of git://github.com/gerrywastaken/moodle into MOODLE_21_STABLE 2012-02-13 18:03:55 +13:00
Sam Hemelryk e290039f96 Merge branch '21_MDL-30723_fixing_several_english_typos' of git://github.com/gerrywastaken/moodle into MOODLE_21_STABLE 2012-02-13 18:00:13 +13:00
Ankit Agarwal 45462d20a2 MDL-30821 SCORM Fixing issues with SCORM report when there are no attempts to report 2012-02-13 10:26:51 +05:30
Andrew Robert Nicols 408844eea1 MDL-31502 Check whether a category has subcategories or courses within it before using those variables 2012-02-13 17:48:57 +13:00
Sam Hemelryk d66b3501fe Merge branch 'wip-MDL-25185-MOODLE_21_STABLE' of git://github.com/abgreeve/moodle into MOODLE_21_STABLE 2012-02-13 17:34:30 +13:00
Sam Hemelryk 7b53f78459 Merge branch 'wip-MDL-31463-MOODLE_21_STABLE' of git://github.com/abgreeve/moodle into MOODLE_21_STABLE 2012-02-13 17:02:23 +13:00
Anita Viglinoe 1a8aa6748e MDL-28283-master Completion Future dates can now be set as completion criteria 2012-02-13 09:04:36 +05:30
Rossiani Wijaya 6df07690e2 MDL-30911: mod_lesson: fix sub-heading level to be lower than lesson title. This issue is an improvement of accessibility compliance 2012-02-13 11:18:55 +08:00
Ankit Agarwal 7e9eccf26e MDL-30815 Choice Labels are now explicitly tied with input elements 2012-02-13 08:39:14 +05:30
Eloy Lafuente 1ea772301b MDL-31604 Fix capabilities displayed without spaces causing text going out of the screen 2012-02-13 10:51:32 +08:00
Sam Hemelryk 38b0b2522e Merge branch 'wip-mdl-31576-m21' of git://github.com/rajeshtaneja/moodle into MOODLE_21_STABLE 2012-02-13 15:30:05 +13:00
Rajesh Taneja a33ba5562a MDL-28101 wiki2.0: escape bold and italics for NWIKI formatting 2012-02-13 10:27:03 +08:00
Sam Hemelryk 4cb775dcff Merge branch 'MDL-25883-21' of https://github.com/mackensen/moodle into MOODLE_21_STABLE 2012-02-13 14:36:04 +13:00
Eloy Lafuente (stronk7) 52e6baa94b weekly release 2.1.4+ 2012-02-13 01:19:53 +01:00
Eloy Lafuente (stronk7) 3d4f01a4e5 Revert "MDL-31345 theme_afterburner fixes pagelayout-report overflow"
This reverts commit f9b6adaef6.
2012-02-12 23:24:22 +01:00
Gerard (Gerry) Caulfield 74e6179ab3 MDL-31107 Fixing instaces of below where it is written as bellow (two L's) 2012-02-10 15:33:44 +08:00
Gerard (Gerry) Caulfield c7f338c6d7 MDL-29153 Fixing typo, "Bellow" should be "Below" 2012-02-10 14:38:16 +08:00
Gerard (Gerry) Caulfield 7902e20361 MDL-27285 Updating string grammar on the wiki module's links page 2012-02-10 07:57:12 +08:00
Gerard (Gerry) Caulfield b15041dc40 MDL-26807 Updating the withselectedusers_help string 2012-02-10 02:18:21 +08:00
Gerard (Gerry) Caulfield 6fbd8a9c5c MDL-30723 Fixing English typo(s) 2012-02-10 01:49:46 +08:00
Gerard (Gerry) Caulfield f652396ce5 MDL-27654 Insert a space into the somefieldrequired string 2012-02-10 01:26:29 +08:00
Rajesh Taneja c9bc0704f8 MDL-31576 core: Duplicate message definition removed from get_core_subsystem 2012-02-09 17:15:00 +08:00
Marina Glancy 42711a4d6a MDL-30709: Fixed bug with inserting files from Recent files repository
Two parts of changes: in assignment module function assignment_get_file_info was missing
and when populating the list of recent files the function get_file_info was not called, which caused populating the list of recent files with the files that could not later be inserted
2012-02-09 13:59:10 +08:00
Aparup Banerjee fa639fef7a Merge branch 'wip-MDL-31417-MOODLE_21_STABLE' of git://github.com/marinaglancy/moodle into MOODLE_21_STABLE 2012-02-09 10:17:01 +08:00
Marina Glancy 63a013e6b4 MDL-31417: updated list of world currencies
Some countries do not exist any more, some currencies do not exist. Some countries (and currencies) started to exist recently. Some currency codes are changed (mistype or result of denomination).

Also I tried to keep the moodle formation of the name of the currencies. The first word is not the country name but the 'belonging-to-country', i.e. not 'Sweden Krona' but 'Swedish Krona'. For some countries it was not so easy to find the correct spelling.

And finally there were some mistakes in the list, like 'Schilling' instead of 'Shilling', 'Riyal' instead of 'Rial', etc. I used currencies spelling from ISO.
2012-02-09 10:15:19 +08:00
Adrian Greeve 65c29e26ff MDL-31463 - navigation - added a context check in the navigation for fullname permission. 2012-02-09 10:01:41 +08:00
Andrew Davis de0799a893 MDL-29080 grade: simplified bug fix to prevent users without the required capabilities from being able to export hidden grade items 2012-02-09 08:36:06 +07:00
Adrian Greeve 1779301424 MDL-25185 - data - Allowing data from the database to be exported according to group roles. 2012-02-09 09:31:34 +08:00
Eloy Lafuente (stronk7) a48ed0b1ae MDL-27891 tag logs: minibump version 2012-02-08 11:45:31 +01:00
Eloy Lafuente (stronk7) 658a15bd31 Merge branch 'MDL-27891-m21' of git://github.com/ankitagarwal/moodle into MOODLE_21_STABLE 2012-02-08 11:45:07 +01:00
Eloy Lafuente (stronk7) 23666489f7 Merge branch 'MDL-31345_M21' of git://github.com/lazydaisy/moodle into MOODLE_21_STABLE 2012-02-08 11:17:45 +01:00
Ruslan Kabalin 3512f3bff6 MDL-31316 Fix block controls when default home is My Moodle 2012-02-08 11:08:30 +01:00
Mary Evans f9b6adaef6 MDL-31345 theme_afterburner fixes pagelayout-report overflow 2012-02-08 04:02:21 +00:00
Aparup Banerjee 60811b8dc9 Merge branch 'MDL-31407_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2012-02-08 11:27:50 +08:00
Eloy Lafuente (stronk7) 4278e96007 Merge branch 'MDL-29892_overview_hidden_21' of git://github.com/andyjdavis/moodle into MOODLE_21_STABLE 2012-02-08 03:38:53 +01:00
Ankit Agarwal 5b41faa53f MDL-27891 Tags Flagging tags is now logged 2012-02-08 08:06:38 +05:30
Aparup Banerjee 7acc25342a Merge branch 'MDL-31482-m21' of git://github.com/sammarshallou/moodle into MOODLE_21_STABLE 2012-02-08 09:59:36 +08:00
Eloy Lafuente (stronk7) 493e4f8571 Merge branch 'MDL-30722_forum_unsubscribe_21' of git://github.com/andyjdavis/moodle into MOODLE_21_STABLE 2012-02-08 02:38:01 +01:00
Eloy Lafuente (stronk7) 1fa6e5df98 Merge branch 'MDL-26384-m21' of git://github.com/ankitagarwal/moodle into MOODLE_21_STABLE 2012-02-08 00:53:33 +01:00
Eloy Lafuente (stronk7) de655be9ca Merge branch 'MDL-27360-MOODLE_21_STABLE' of git://github.com/mouneyrac/moodle into MOODLE_21_STABLE 2012-02-07 23:49:33 +01:00
sam marshall 0f2d05e79e MDL-31482 Lib: IE8/IE7 (even with stupid user agent) should not be 'legacy' device type 2012-02-07 17:45:03 +00:00
Aparup Banerjee dbc410767a Merge branch 'MDL-31425-m21' of git://github.com/sammarshallou/moodle into MOODLE_21_STABLE 2012-02-07 16:37:11 +08:00
Aparup Banerjee e77a77bbf5 Merge branch 'MDL-31469_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2012-02-07 15:12:50 +08:00
Ankit Agarwal f167f79d31 MDL-26384 Tags Fixed redirect issue when editing is toggled 2012-02-03 14:57:09 +05:30
Andrew Davis 045ef083f1 MDL-29892 grade: added a check to prevent hidden courses appearing on student overview reports 2012-02-03 08:56:27 +07:00
Tim Hunt 401467b09d MDL-31469 formslib: fix invalid for="" attributes on optional dates 2012-02-02 18:13:40 +00:00
Anthony Forth 799af3bd76 MDL-31445 formslib: add a nice id and class to the wrapper div for CSS 2012-02-02 18:13:10 +00:00
Tim Hunt a238e92533 MDL-31407 quiz: review all uses of global $USER
Conflicts:

	mod/quiz/view.php
2012-02-02 18:12:33 +00:00
Kyle Temkin 5779bd3915 MDL-31407 quiz: finish_attempt method should not rely on $USER 2012-02-02 18:12:31 +00:00
sam marshall effd2830ba MDL-31425 Availability: 'Until' time calculation uses server time zone (2.1 only)
Patch by Chris Follin.
2012-02-02 14:21:43 +00:00
Eloy Lafuente (stronk7) a1063d99ba weekly release 2.1.4+ 2012-02-02 12:14:06 +01:00
Jerome Mouneyrac 4bdff2e1f0 MDL-27360 Web service tokens are displayed for deleted users
Conflicts:

	lib/moodlelib.php
2012-02-02 16:28:07 +08:00
Eloy Lafuente (stronk7) 6c66821924 Revert "SCORM AICC MDL-31039 update external AICC url correctly..", thanks Ankit!
This reverts commit a607db6e70.
2012-02-01 10:21:08 +01:00
Eloy Lafuente (stronk7) 8837d68be5 Merge branch 'wip-MDL-31160-m21' of git://github.com/samhemelryk/moodle into MOODLE_21_STABLE 2012-02-01 00:54:28 +01:00
Eloy Lafuente (stronk7) 5acb97c505 Merge branch 'wip-MDL-31197-m21' of git://github.com/samhemelryk/moodle into MOODLE_21_STABLE 2012-02-01 00:50:59 +01:00
Dan Marsden a607db6e70 SCORM AICC MDL-31039 update external AICC url correctly - thanks to Albert Rhemrev for report/fix 2012-02-01 00:42:21 +01:00
Andrew Robert Nicols 04c2e6820d MDL-31000 Respect sortorder of repositories when displaying the filepicker 2012-02-01 00:34:16 +01:00
Glenn Ansley f3e50dd715 MDL-31448 Replaced incorrect PHP comment 2012-01-31 23:58:30 +01:00
Eloy Lafuente (stronk7) c0ffe9a298 Merge branch 'MDL-31015-m21' of git://github.com/sammarshallou/moodle into MOODLE_21_STABLE 2012-01-31 23:03:16 +01:00
Eloy Lafuente (stronk7) d6e08b3e74 Merge branch 'MDL-30854_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2012-01-31 19:38:57 +01:00
Eloy Lafuente (stronk7) 764525a02c Merge branch 'MDL-30484_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2012-01-31 17:17:05 +01:00
Eloy Lafuente (stronk7) 7769c0f2f8 Merge branch 'MDL-31314_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2012-01-31 17:06:26 +01:00
Aparup Banerjee 49b52b3fb4 Merge branch 'MDL-30828_feedback_sort_21' of git://github.com/andyjdavis/moodle into MOODLE_21_STABLE 2012-01-31 16:51:47 +08:00
Aparup Banerjee 5d8d3a1a08 Merge branch 'MDL-30707_forum_log_21' of git://github.com/andyjdavis/moodle into MOODLE_21_STABLE 2012-01-31 16:44:07 +08:00
Aparup Banerjee 21defa3d5e Merge branch 'MDL-29097_mod_update_create_21' of git://github.com/andyjdavis/moodle into MOODLE_21_STABLE 2012-01-31 14:36:54 +08:00
Dan Marsden 79d5769672 MDL-28522 Choice : View reports now correctly shows unanswered column - thanks to Marcus Boon for the patch 2012-01-31 12:23:46 +08:00
Aparup Banerjee 05b6988a0a Merge branch 'MDL-31426_21' of git://github.com/stronk7/moodle into MOODLE_21_STABLE 2012-01-31 11:52:34 +08:00
Aparup Banerjee 2cd7d23056 Merge branch 'MDL-31428_21' of git://github.com/stronk7/moodle into MOODLE_21_STABLE 2012-01-31 11:16:09 +08:00
Eloy Lafuente (stronk7) c186caab9b MDL-31428 forum: prevent some warnings with debug enabled 2012-01-31 00:25:00 +01:00
Eloy Lafuente (stronk7) 0e487bcfde MDL-31426 forum: don't show/allow any subscription to not enrolled users 2012-01-30 23:22:34 +01:00
Tim Hunt f95d0a51f1 MDL-30484 question engine: don't lose response files when regrading.
The problem was mostly that, in the past, we did not worry if
question_attempt_step.id changed during regrade (because we deleted the
old step row and inserted a new one). However, now that steps can have
associated files, we can't be that slack, becuase the step id is used as
the file itemid.

So, now, we have to update the existing rows during a regrade. We do
this by having the question engine tell the question_engine_unit_of_work
that the step has first been deleted, and then added back. Then we make
the unit-of-work spot that delete + add = update.

This also means that during regrading, we have to pass around some extra
ids so that new steps know the id of the step they are replacing.

Naturally, this requires some quite trickly logic, so I finally got
around to writing unit tests for question_engine_unit_of_work, which is
a good thing.

Along the way I also got around to renaming
question_attempt->set_number_in_usage, which got missed out when
everthing else was renamed to slot ages ago.

Finally, while working on this code, I noticed and fixed some PHPdoc
comments.
2012-01-30 17:07:02 +00:00
Tim Hunt 5fedb6302b MDL-31314 gradebook restore: fix category.depth on restore.
Without this, restoring backups made with the OU's custom 'restore from
1.9' feature, and possibly other people's custom converstion code, does
not work properly.

Also, fix poor recordset code.
2012-01-30 12:30:48 +00:00
Tim Hunt 19874aa4cc MDL-30854 quiz/question editing: fix create calc question & add on page.
This was one of those innocent seeming issues where, once you start
digging, you find a mess. In this case, the code that is now in
question_wizard_form::add_hidden_fields used to exist in four different
places, in four inconsistent versions. This is now all nicely
re-factored, and that solves the problem.

Along the way, I found and fixed some wrong string references in
qtype_random, and stripped out some unnecessary &s in function
declarations.

Conflicts:

	question/type/calculatedsimple/edit_calculatedsimple_form.php
2012-01-30 12:30:02 +00:00
Aparup Banerjee 8cbc3946a3 Merge branch 'MDL-26260_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2012-01-30 16:27:26 +08:00
Aparup Banerjee b69e249a6d Merge branch 'MDL-31385_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2012-01-30 12:50:51 +08:00
sam marshall 95e8abfcee MDL-31015 File/URL resource 'Open' and 'Force download' options should work consistently
Conflicts:

	mod/resource/lib.php
	mod/url/lib.php
2012-01-27 17:05:25 +00:00
Jerome Mouneyrac dfc66efd04 MDL-29471 php warning when adding function to a new web service 2012-01-27 16:13:07 +08:00
David Mudrak c1f9cde627 MDL-31317 original_site_identifier_hash falls back to null during the backup conversion
Even if the site identifier is not defined in the source 1.9 backup then the
converted 2.0 version should still contain the element to prevent PHP
notices on direct assignment.
2012-01-27 08:51:11 +01:00
Jerome Mouneyrac 367ed4621e MDL-30878 core_user_update_users user password is reset if not specified 2012-01-27 15:30:03 +08:00
Fábio Souto d951feda21 Updated bugfix according to Jerome suggestions
password check is done at lib.php instead of externallib.php

Conflicts:

	user/lib.php
2012-01-27 15:29:40 +08:00
Eloy Lafuente (stronk7) c0ac40ee46 weekly release 2.1.4+ 2012-01-27 02:25:46 +01:00
Eloy Lafuente (stronk7) 15d767e019 Merge branch 'install_21_STABLE' of git://github.com/amosbot/moodle into MOODLE_21_STABLE 2012-01-27 02:20:38 +01:00
AMOS bot e5bcd180fe Automatically generated installer lang files 2012-01-27 00:31:20 +00:00
Tim Hunt f5d24daba6 MDL-31385 quiz: does not resume previews. 2012-01-26 12:10:41 +00:00
Petr Skoda 86273223df MDL-30509 backport perf improvement in role cleanup in cohort sync
This patch simplifies the role cleanup sql, it is not necessary to look for roles without enrolment instance because all roles are automatically unassigned when deleting enrol instances.
2012-01-25 10:31:56 +08:00
Sam Hemelryk e1ba9e119c MDL-31224 navigation: Added JSON handling on action_link objects to the navigation 2012-01-25 10:10:51 +08:00
Eloy Lafuente (stronk7) 19967a153e Merge branch 'MDL-31122-m21' of git://github.com/sammarshallou/moodle into MOODLE_21_STABLE 2012-01-25 01:52:53 +01:00
Eloy Lafuente (stronk7) 312e45e6f6 Merge branch 'MDL-31113_multiple_files_file_manager_21' of https://github.com/davosmith/moodle into MOODLE_21_STABLE 2012-01-25 01:07:27 +01:00
Petr Skoda d160a5db4a MDL-31238 remove now unnecessary null to stdClass conversion for plugin settings 2012-01-24 23:56:58 +01:00
Petr Skoda 5da7b22027 MDL-31238 always return object for plugin settings from get_config()
This prevents multiple creations of objects from NULL which is note a warnings in php54
2012-01-24 23:56:44 +01:00
Andrew Robert Nicols ef8be3cb87 MDL-31245 Add missing 'icon' class to highlight button in topics format 2012-01-24 18:48:05 +01:00
Aparup Banerjee 87c259ce02 Merge branch 'wip-MDL-31224-m21' of git://github.com/samhemelryk/moodle into MOODLE_21_STABLE 2012-01-24 23:02:12 +08:00
Eloy Lafuente (stronk7) 0b1595881f MDL-31189 whitespace fixes 2012-01-24 13:21:13 +01:00
Eloy Lafuente (stronk7) f69ad213c0 Merge branch 'w04_MDL-31183_m21_gloscounts' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2012-01-24 12:26:09 +01:00
M Kassaei 6bc136feff MDL-31306 question preview: disable 'Fill correct' for qtypes that can't 2012-01-24 13:27:45 +08:00
Sam Hemelryk 58eb3519ea Merge branch 'MDL-31189_M21' of git://github.com/lazydaisy/moodle into MOODLE_21_STABLE 2012-01-24 11:06:35 +08:00
Sam Hemelryk 0f7c1c8c02 Merge branch 'MDL-31231_M21' of git://github.com/lazydaisy/moodle into MOODLE_21_STABLE 2012-01-24 11:02:42 +08:00
Eloy Lafuente (stronk7) d03f27f9f4 Merge branch 'w04_MDL-31176_m21_groupcontext' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2012-01-24 01:30:16 +01:00
Aparup Banerjee 5528fbe880 Merge branch 'wip-MDL-28352-MOODLE_21_STABLE' of git://github.com/marinaglancy/moodle into MOODLE_21_STABLE 2012-01-24 07:17:18 +08:00
Eloy Lafuente (stronk7) b5c2f10567 Merge branch 'MDL-30033_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2012-01-24 00:09:39 +01:00
Eloy Lafuente (stronk7) e06a172b70 Merge branch 'MDL-31065_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2012-01-24 00:06:55 +01:00
Aparup Banerjee bfa2605567 Merge branch 'w04_MDL-31184_m21_glosreset' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2012-01-24 06:59:17 +08:00
Mary Evans 0344dfd711 MDL-31189_M21 theme_sky_high: fixed footer so page, perfomance and validators can be seen if enabled 2012-01-23 21:54:29 +00:00
Petr Skoda 302ae13f70 MDL-31081 limit query to one course in forum_get_subscribed_forums()
This improves performance on the forum index page. Credit goes to Mark Nielsen.
2012-01-23 21:34:26 +01:00
Mary Evans 7f7be7777f MDL-31231 fixes docked navigation menu in theme_afterburner 2012-01-23 12:41:46 +00:00
Petr Skoda 11d8ae7dc8 MDL-31172 fix variable name typo in backup file logger 2012-01-23 16:10:01 +08:00
Petr Skoda 63e7733de5 MDL-31173 fix variable name typo when throwing invalid $rule param exception in restore decode processor 2012-01-23 16:07:10 +08:00
Sam Hemelryk 5d9e0f9291 Merge branch 'w04_MDL-31177_m21_odsexport' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2012-01-23 15:35:34 +08:00
Sam Hemelryk b70688316f Merge branch 'w04_MDL-31182_m21_messprefs' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2012-01-23 14:44:54 +08:00
Sam Hemelryk a16df720b1 Merge branch 'w04_MDL-31186_m21_extprofiles' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2012-01-23 14:31:23 +08:00
Petr Skoda d23fd32be1 MDL-31202 do not try sending emails to invalid addresses
The use of mtrace() in email_to_user() is most probably incorrect, I am going to use it only in CLI scripts (which includes cron). This should not be considered a security issue because we should be already validating emails when accepting them from untrusted users.
2012-01-23 14:24:54 +08:00
Sam Hemelryk 7a79813152 Merge branch 'MDL-31330_21' of git://github.com/stronk7/moodle into MOODLE_21_STABLE 2012-01-23 14:14:50 +08:00
Mary Evans ed3329394c MDL-31269 theme_magazine: fixes login pagelayout in theme_magazine 2012-01-23 13:26:22 +08:00
Andrew Davis ce9ad8de99 MDL-29097 course: refactored to avoid having two seperate calls to events_trigger() 2012-01-23 11:56:13 +07:00
Andrew Davis 9e74931f1a MDL-30722 mod_forum: prevented users being auto-logged in as guest when they access /mod/forum/unsubscribeall.php 2012-01-23 11:29:00 +07:00
Andrew Davis cec66207be MDL-30707 mod_forum: fixed a add_to_log() call that was causing invalid URLs to be added to the log 2012-01-23 11:06:04 +07:00
Sam Hemelryk dccf4efb1d Merge branch 'MDL-31329_21' of git://github.com/stronk7/moodle into MOODLE_21_STABLE 2012-01-23 11:25:14 +08:00
Andrew Robert Nicols 040b3bdd96 MDL-31013 Add iconsmall class to 'Export to portfolio' icon 2012-01-23 11:08:59 +08:00
Petr Skoda bcbaa79163 MDL-31180 fix coding error in fake_recordset iterator 2012-01-23 01:11:34 +01:00
Eloy Lafuente (stronk7) 63f1c0d531 Merge branch 'w04_MDL-31181_m21_fitlertestcfg' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2012-01-23 01:04:34 +01:00
Eloy Lafuente (stronk7) 6f892151be Merge branch 'MDL-31058_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2012-01-23 00:56:42 +01:00
Eloy Lafuente (stronk7) 158c275618 Merge branch 'w04_MDL-31185_m21_postscfg' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2012-01-23 00:28:40 +01:00
Petr Skoda 8be997c2f4 MDL-31208 fix obsolete get_record_sql() parameter
Credit goes to Rajesh Taneja.
2012-01-22 23:46:32 +01:00
Eloy Lafuente (stronk7) 7050528195 MDL-31330 admin: fix incorrect context use
This was introduced by MDL-31006, being backported to 21_STABLE
and that use escaped the (my) scrutiny :-( (the new access API is
22_STABLE and upwards only)
2012-01-22 23:28:33 +01:00
Eloy Lafuente (stronk7) 85e27e9097 MDL-31329 timezones: updated to 2011n 2012-01-22 21:32:20 +01:00
Petr Skoda 5b67cd5ec8 MDL-31176 add missing global $DB when looking for group related context in calendar 2012-01-21 19:58:02 +01:00
Petr Skoda 9e7ea20a1c MDL-31177 fix notices when exporting logs to ods 2012-01-21 19:52:38 +01:00
Petr Skoda 3d302c1684 MDL-31181 fix missing global $CFG that was breaking unit test teardown 2012-01-21 17:09:01 +01:00
Petr Skoda 144c8b87d8 MDL-31182 fix fatal error when problem detected in finding messaging defaults 2012-01-21 17:00:16 +01:00
Petr Skoda f8e5f3ed24 MDL-31183 fix non-functional glossary_count_unrated_entries() 2012-01-21 16:47:53 +01:00
Petr Skoda d8202baf04 MDL-31184 fix multiple problems when reseting individual glossary types 2012-01-21 16:31:51 +01:00
Petr Skoda 203ee49b1e MDL-31185 fix missing CFG in forum_get_posts_by_user() 2012-01-21 16:18:00 +01:00
Petr Skoda 4d690a2995 MDL-31186 fix wrong context preloading sql 2012-01-21 16:09:25 +01:00
Tim Hunt f38065ff42 MDL-31058 qtype match 1.9 restore: fix restore of dodgy questions. 2012-01-20 18:06:58 +00:00
Tim Hunt e6dedfe20b MDL-31065 question stats: fix analysis of responses not matching a given answer
When shortanswer, numerical, calculated and calculatedsimple questions
did not have a '*' match-anything answer, then any student response that
did not match any of the teacher-given answers were classified as
'[No response]', which was not right.

This patch fixes that. Such responses are now classified as
[Did not match any answer].

While I was doing this, I noticed that the display of tolerance
intervals for numerical questions in the response analysis was horrible,
so I improved it.
2012-01-20 17:57:17 +00:00
Tim Hunt 2a040c2839 MDL-31065 qtype shortanswer: refactor the unit tests to use a proper helper.
Conflicts:

	question/behaviour/adaptive/simpletest/testwalkthrough.php
2012-01-20 17:55:48 +00:00
Tim Hunt 1ee150e8e1 MDL-30033 quiz overall feedback not show for attempts with a -ve grade
This can happen, for example, if a student does really badly on a CBM quiz.
2012-01-20 14:28:18 +00:00
Jason Ilicic fa1990992c MDL-26260 Fix quiz right-click prevention loophole. 2012-01-20 14:27:55 +00:00
Andrew Davis cfc8537034 MDL-30828 mod_feedback: fixed sorting when viewing responses 2012-01-20 15:57:09 +07:00
Marina Glancy 69c9195ab7 MDL-28352: Fixed bug in html_writer::select_time causing not autoselecting month 2012-01-20 16:29:01 +08:00
Sam Hemelryk 9d2e41a6d7 MDL-31197 navigation: Fixed issue withing require_login for courses that are hidden or unavailable 2012-01-20 12:52:07 +08:00
Sam Hemelryk 5ab5e79a97 MDL-31224 block_navigation: Fixed display of icons for node with an action_link action 2012-01-20 11:19:13 +08:00
David Penner c3b0e64d81 MDL-31160 block_navigation: Fixed incorrect thrid arg to substr. 2012-01-20 11:14:04 +08:00
AMOS bot 208f49e230 Automatically generated installer lang files 2012-01-20 00:31:28 +00:00
Davo Smith b56d54ca04 MDL-31113 filemanager element - refresh file list from server on load 2012-01-19 19:49:38 +00:00
sam marshall c59e5f07c3 MDL-31122 Navigation: Do not show week in navigation if it contains only labels 2012-01-19 14:47:38 +00:00
Eloy Lafuente (stronk7) 1aff7bbb74 weekly release 2.1.4+ 2012-01-19 13:32:47 +01:00
Eloy Lafuente (stronk7) b5ebcf648b Merge branch 'install_21_STABLE' of git://github.com/amosbot/moodle into MOODLE_21_STABLE 2012-01-19 13:29:09 +01:00
Andrew Robert Nicols c1e6056a44 MDL-31242 Prevent redefinition of MOODLE_INTERNAL when loading multiple YUI modules from Moodle 2012-01-18 15:40:51 +01:00
Eloy Lafuente (stronk7) 4e7397ddc7 MDL-31006 revert partially @ get_config()
The change from null to stdClass() in get_config() was leading to:

1) unit tests not passing.
2) non-equivalent evaluation in conditions (null evals false,
   stdClassi() evals true)
2012-01-18 02:12:14 +01:00
AMOS bot aa4e64dbdf Automatically generated installer lang files 2012-01-18 00:31:40 +00:00
Petr Skoda 9159aeb465 MDL-31006 some more PHP54 notices
PHP54 compatibility - PhpStorm IDE is the best tool for this kind of work!!
2012-01-18 01:16:54 +01:00
Petr Skoda bda9b6034b MDL-31006 fix various notices in PHP54
PHP54 compatibility

Conflicts:

	lib/filterlib.php
	mod/feedback/lib.php
	report/participation/index.php
2012-01-18 01:11:46 +01:00
Eloy Lafuente (stronk7) 58bdb2e6da Merge branch 'w03_MDL-31213_m21_attributesmess' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2012-01-17 12:37:44 +01:00
Petr Skoda b5146d6bab MDL-31213 fix incorrect modifications of quickforms attributes 2012-01-17 11:21:38 +01:00
Eloy Lafuente (stronk7) 35dc672ead Merge branch 'MDL-31080_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2012-01-17 02:02:21 +01:00
Eloy Lafuente (stronk7) 6acec6c457 Merge branch 'w03_MDL-31171_m21_blogattachment' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2012-01-17 01:32:35 +01:00
AMOS bot f25f56b370 Automatically generated installer lang files 2012-01-17 00:31:17 +00:00
Petr Skoda 42add67bec MDL-31170 fix automatic blog blocks hiding/unhiding after blog level change 2012-01-17 01:24:54 +01:00
Sam Hemelryk d471e3f59d Merge branch 'MDL-31095_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2012-01-16 17:00:00 +08:00
Sam Hemelryk 2d33f4e81c Merge branch 'MDL-31102_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2012-01-16 16:26:32 +08:00
Sam Hemelryk b24713d1ec Merge remote-tracking branch 'skodak/w03_MDL-27165_m21_confirmed' into MOODLE_21_STABLE 2012-01-16 16:16:54 +08:00
Aparup Banerjee df2842cc6b Merge branch 'MDL-31143_21' of https://github.com/timhunt/moodle into MOODLE_21_STABLE 2012-01-16 15:31:36 +08:00
Sam Hemelryk 94a763cf92 Merge remote-tracking branch 'skodak/w03_MDL-29102_m21_autogrouping' into MOODLE_21_STABLE 2012-01-16 15:11:39 +08:00
Sam Hemelryk c3027ddcd7 Merge remote-tracking branch 'skodak/w03_MDL-30891_m21_repository' into MOODLE_21_STABLE 2012-01-16 15:01:56 +08:00
Aparup Banerjee 7741d150c9 Merge branch 'w03_MDL-30003_m21_userstats' of https://github.com/skodak/moodle into MOODLE_21_STABLE 2012-01-16 14:58:49 +08:00
Sam Hemelryk e333be5d5d Merge branch 'MDL-31130_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2012-01-16 11:46:10 +08:00
Andrew Robert Nicols 6b76395546 MDL-31018 Improve consistency of horizontal alignment across grade reports 2012-01-16 11:16:00 +08:00
Sam Hemelryk dde7ab2d6e Merge branch 'MDL-31040-MOODLE_21_STABLE-3' of git://git.luns.net.uk/moodle into MOODLE_21_STABLE 2012-01-16 10:52:13 +08:00
Eloy Lafuente (stronk7) 44335d9ea9 Merge branch 'w03_MDL-31165_m21_innodbconv' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2012-01-16 02:07:22 +01:00
Charles Fulton 1ad5b57173 MDL-25883 correct element name for wiki comments editor 2012-01-15 10:32:47 -08:00
Petr Skoda 4cb906541b MDL-29102 fix notice when auto-creating groups in existing grouping 2012-01-15 19:27:37 +01:00
Petr Skoda 41238d891c MDL-31171 fix blog attachment serving in BLOG_USER_LEVEL 2012-01-15 19:12:50 +01:00
Petr Skoda 106357825e MDL-30003 fix earliest stat date fetching 2012-01-15 16:27:59 +01:00
Petr Skoda 12c5ea8f69 MDL-31165 fix InnoDB conversion query to use ENGINE parameter instead of legacy TYPE 2012-01-15 10:32:55 +01:00
AMOS bot efa2c057be Automatically generated installer lang files 2012-01-15 00:31:16 +00:00
Petr Skoda d5b4087962 MDL-27165 fix broken confirmed user filtering 2012-01-14 22:15:23 +01:00
Petr Skoda 5f4ed5d18a MDL-30891 fix invalid hardcoded capability check when disable legacy files repo 2012-01-14 21:58:54 +01:00
Tim Hunt 589f57835f MDL-31095 quiz editing: only set quiz->grade to 0 if really necessary.
It is only necessary when there are (non-preview) attempts. However,
after making this change we have to ensure users cannot start attempts
when ->grade > 0 and ->sumgrades = 0.

Display ->grade on the order and paging tab of edit.php, so it is clear
what is going on when you are using that tab.

Finally, improve the error message a student gets if they try to start a
quiz with no questions.
2012-01-13 11:50:20 +00:00
Tim Hunt d4b150dd13 MDL-31095 quiz: fix bug in quiz::has_questions. 2012-01-13 11:49:48 +00:00
Tim Hunt 9d2921b930 MDL-31143 quiz reports: average grade of null causes php error. 2012-01-12 16:46:50 +00:00
Andrew Robert Nicols 37b9827f34 MDL-31040 Correct LTR language issue and inconsistency in display 2012-01-12 14:00:29 +00:00
Jonathon Fowler ee2e29d19e MDL-31130 question bank: toggling show all / 20 per page broken. 2012-01-12 12:47:02 +00:00
Tim Hunt 9349aa1790 MDL-31102 question preview: fix HTML validation errors. 2012-01-12 11:20:42 +00:00
Tim Hunt 1ed536f74d MDL-31100 unit tests: don't mangle UTF-8 in failure messages. 2012-01-12 11:20:23 +00:00
Tim Hunt ce7595e6df MDL-31080 quiz editing, must be able to see and delete missing questions 2012-01-12 11:19:59 +00:00
Eloy Lafuente (stronk7) c1dc3a5354 weekly release 2.1.4+ 2012-01-12 11:32:13 +01:00
Eloy Lafuente (stronk7) bbf3aaf0c1 Merge branch 'install_21_STABLE' of git://github.com/amosbot/moodle into MOODLE_21_STABLE 2012-01-12 11:26:57 +01:00
Tim Hunt 95371a3bcc MDL-26469 upgrade: cope with modules that do not set $module->cron. 2012-01-11 18:43:56 +01:00
Tim Hunt e40a76f5ac MDL-26469 upgrade: module cron setting not updated. 2012-01-11 14:10:32 +00:00
AMOS bot c0a1a9ddcb Automatically generated installer lang files 2012-01-11 00:31:28 +00:00
Eloy Lafuente (stronk7) a33fc27467 Merge branch 'MDL-31101_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2012-01-10 23:35:26 +01:00
Tim Hunt 675d996885 MDL-31101 format_string: Don't mangle < and > in strings like x < 1. 2012-01-10 14:54:55 +00:00
Rajesh Taneja 91dac2a2c9 Applying: MDL-30452 Repositories: Changed default capability on repos - Thanks Michael 2012-01-10 11:15:33 +01:00
Sam Hemelryk c44874f201 Merge branch 'MDL-24394_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2012-01-10 14:30:14 +13:00
Sam Hemelryk 22e35c45be MDL-31000 Added comment about the importance of repository array keys 2012-01-10 12:27:03 +13:00
Sam Hemelryk 978a7da6fd Revert "MDL-31000 Respect sortorder of repositories when displaying the filepicker"
This reverts commit d8111951ab.
2012-01-10 12:25:47 +13:00
Tim Hunt 71693bde86 MDL-24394 qtype_match: should be able to use multilang for the choices. 2012-01-09 18:06:34 +00:00
Aparup Banerjee 4d47200557 Merge branch 'w02_MDL-30718_m21_usertimedb' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2012-01-09 12:21:40 +08:00
Aleksey Avdeev b0bc0bed50 MDL-29046 use of install/distrolib.php in the CLI installer
Signed-off-by: Aleksey Avdeev <solo@altlinux.ru>
2012-01-09 02:54:10 +01:00
Eloy Lafuente (stronk7) 9334f3d084 Merge branch 'MDL-30031-21' of git://github.com/bostelm/moodle into MOODLE_21_STABLE 2012-01-09 02:14:45 +01:00
Sam Hemelryk b48d180e39 Merge branch 'w02_MDL-30717_m21_usercreated' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2012-01-09 14:02:48 +13:00
Eloy Lafuente (stronk7) 86e84df668 Merge branch 'MDL-30966-print-object_21_STABLE' of git://github.com/mudrd8mz/moodle into MOODLE_21_STABLE 2012-01-09 00:33:47 +01:00
Andrew Robert Nicols d8111951ab MDL-31000 Respect sortorder of repositories when displaying the filepicker 2012-01-09 11:53:58 +13:00
Petr Skoda b4e0cd3582 MDL-30717 update user->timemodified in update_user_record() 2012-01-08 15:04:26 +01:00
Petr Skoda d877eba847 MDL-30717 add missing time created info in create_user_record()
Credit goes to Luis Gustavo Mueller de Alcantara.
2012-01-08 15:04:25 +01:00
Petr Skoda 23b7a0a575 MDL-30718 add missing timecraeted and timeupdated, fix user undeleting 2012-01-08 14:59:41 +01:00
AMOS bot 856623590c Merge branch 'MOODLE_21_STABLE' into install_21_STABLE 2012-01-08 00:31:26 +00:00
Eloy Lafuente (stronk7) 6d768d0fb3 Moodle release 2.1.4 2012-01-07 17:06:00 +01:00
AMOS bot 9ee1bb8eb2 Automatically generated installer lang files 2012-01-07 00:31:24 +00:00
David Mudrak f711613aa5 MDL-30966 print_object() output made CLI-friendly 2012-01-06 22:50:21 +01:00
Eloy Lafuente (stronk7) e82615c9a8 weekly release 2.1.3+ 2012-01-05 15:07:58 +01:00
Eloy Lafuente (stronk7) 78fcd06775 Merge branch 'install_21_STABLE' of git://github.com/amosbot/moodle into MOODLE_21_STABLE 2012-01-05 12:50:39 +01:00
Sam Hemelryk aa6d8f0f75 Merge branch 'MDL-31017_21' of git://github.com/stronk7/moodle into MOODLE_21_STABLE 2012-01-05 11:16:58 +13:00
Eloy Lafuente (stronk7) 1947f16ed9 MDL-31017 whitespace clean - take1 2012-01-04 16:29:23 +01:00
David Mudrak c20e782d4d MDL-30865 Workshop method aggregate_grading_grades_process() accepts explicit aggregation timestamp 2012-01-04 02:19:46 +01:00
Eloy Lafuente (stronk7) 0890c256ee Merge branch 'MDL-30879-m21' of git://github.com/sammarshallou/moodle into MOODLE_21_STABLE 2012-01-04 02:14:53 +01:00
Petr Skoda 3b70790aee MDL-30948 stop messaging suspended and deleted users 2012-01-04 00:55:33 +01:00
Eloy Lafuente (stronk7) 9e3f88536b MDL-30948 do not generate new passwords for suspended accounts because they would not get any emails 2012-01-04 00:53:21 +01:00
Petr Skoda 09bad0d29b MDL-30951 prevent fatal error when category sync enrolment not configured 2012-01-04 00:40:38 +01:00
Petr Skoda a36e38be7f MDL-29917 prevent form autocompletion in most Moodle forms
The password autocompletion in case of Moodle makes sense only on the login page, the form autocompletion in general is most probably useful only on the user signup page.

This patch is compatible with html 5, unfortunately we have to ignore strict warnings in legacy xhtml 1.0 standard.
2012-01-04 10:58:27 +13:00
Petr Skoda 8376475a90 MDL-30950 remove references to removed admin block
Credit goes to Ralf Hilgenstock.
2012-01-03 22:35:20 +01:00
sam marshall d8ab6bee8c MDL-30879 Course page: missing space after class for new 'description on course page' feature 2012-01-03 12:41:28 +00:00
Aparup Banerjee 869e613aea Merge branch 'wip-mdl-29844-m21' of git://github.com/rajeshtaneja/moodle into MOODLE_21_STABLE 2012-01-03 12:32:20 +08:00
Eloy Lafuente ff542e5e11 MDL-29844 Administration: Added new config for users to login for viewing profile image 2012-01-03 12:07:45 +08:00
Petr Skoda 5a59cc338d MDL-30673 fix login autocompletion protection 2012-01-03 14:09:40 +13:00
Petr Skoda f7ae52f9da MDL-30809 do not add guest info to add course form if default instance prevented 2012-01-03 13:05:42 +13:00
Sam Hemelryk b1a17fadcf Merge branch 'MDL-30802_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2012-01-03 11:25:40 +13:00
Sam Hemelryk 1ed9377e78 Merge branch 'MDL-30766_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2012-01-03 11:22:50 +13:00
Sam Hemelryk 9b82d1b4d4 Merge branch 'MDL-30168_tim2_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2012-01-03 11:14:02 +13:00
Sam Hemelryk 19bfd15997 Merge branch 'MDL-27200_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2012-01-03 11:11:53 +13:00
Henning Bostelmann 1627ecfdbc MDL-29266 Assignment grading: save state of "send notifications" box 2012-01-03 11:09:54 +13:00
Petr Skoda 8c3badee6b MDL-13572 fix incorrect value printing 2012-01-03 11:01:49 +13:00
Petr Skoda 6ef3dcda77 MDL-13572 fix incorrect value printing 2012-01-03 11:01:48 +13:00
Petr Skoda ffb63d59ef MDL-13572 do not send emails to invalid addresses 2012-01-03 11:01:47 +13:00
Henning Bostelmann 89e2820050 MDL-29821 Navigation tree: fix link to course notes page 2012-01-03 10:13:00 +13:00
Andrew Robert Nicols 38c2bbad09 MDL-30804 Rename the 'onthispage' fieldset for block configuration 2012-01-03 10:06:58 +13:00
Andrew Robert Nicols f59aa125e2 MDL-30805 Require HTML content for the HTML block configuration 2012-01-03 10:03:18 +13:00
Sam Hemelryk 39f8f2e181 Merge branch 'MDL-13572_validate_email_21' of git://github.com/andyjdavis/moodle into MOODLE_21_STABLE 2012-01-03 09:57:23 +13:00
AMOS bot 1fc86e2040 Automatically generated installer lang files 2011-12-29 00:31:26 +00:00
Henning Bostelmann 6a9b5984bd MDL-30031 Adaptive question behaviour: ignore invalid answers without penalty 2011-12-28 17:47:22 +00:00
AMOS bot 5e48d31eff Automatically generated installer lang files 2011-12-24 00:31:41 +00:00
Tim Hunt aff96ba72d MDL-30873 quiz: display an overall grade for preview users.
Also, don't display an overall grade unless there is at least one finished attempt.
2011-12-23 11:17:45 +00:00
Tim Hunt c9882b747a MDL-30802 question nav: fix questions link in front page course. 2011-12-23 11:17:24 +00:00
Tim Hunt 85be8375c7 MDL-30766 mod_quiz: fix edge cases of repaginate function. 2011-12-23 11:17:03 +00:00
Tim Hunt 515ff4db62 MDL-30168 formslib: untangle automatic id generation.
Previously, we had overridden the _generateId method in almost all
subclasses; and then we mostly, but not always; ignored the value that
was generated there, and instead generated new (nicer) values in
MoodleQuickForm_Renderer::renderElement. Of course, that is not really a
logical place to (re)generate ids.

I have fixed the code so that the _generateId method now uses the 'nice
id' algorithm from renderElement. This should make the whole code flow
more logical.

This make all our overriding of _generateId unnecessary.

We do need a special _generateId for radio buttons, because you often
have different radio buttons with the same name but different values.

This change should only change the ids on radio, checkbox and
advcheckbox elements. Previously, those were essentially random, so I
don't think anyone could have been relying on the particular values.

This commit also has new unit tests, first to test the basic _generateId
algorithm, and then to create and render an example form (including some
tricky things like repeat_elements) and chech the acutal ids in the
generated HTML.
2011-12-23 11:16:23 +00:00
Tim Hunt 12fe7031bf MDL-27200 missing {} in various lang strings. 2011-12-23 11:15:48 +00:00
Eloy Lafuente (stronk7) ddb7ae2f3c weekly release 2.1.3+ 2011-12-23 03:04:55 +01:00
Eloy Lafuente (stronk7) f1ec3e694c Merge branch 'install_21_STABLE' of git://github.com/amosbot/moodle into MOODLE_21_STABLE 2011-12-23 02:53:23 +01:00
Eloy Lafuente (stronk7) 3689b9da96 MDL-30760 question engine: reduce summary max size
MySQL only accepts 65536 (aprox) bytes in default TEXT
columns. So we define the max allowed as 32000 to allow
99.9% of utf-8 contents to fit. If some day MDL-19603 is
implemented and all current TEXTs are moved (MySQL) to
the BIG counterparts, this restriction can be out (MDL-19603).
2011-12-23 01:10:03 +01:00
Eloy Lafuente (stronk7) ee3e8369e2 MDL-30760 question engine: fix (one more, hope last) regression 2011-12-23 00:16:53 +01:00
Tim Hunt 66a0a5815e MDL-30760 question engine: fix regression.
Grrr! textlib API is completely different in 2.1 for no good reason.
Thanks to the various testers who caught this.
2011-12-22 16:21:08 +01:00
Gerard (Gerry) Caulfield d875953d96 MDL-29400 Fixing unset object bug encountered by Rajesh during testing 2011-12-22 09:55:56 +01:00
Sam Hemelryk 98b05c1ca7 Merge branch 'wip-MDL-18128-MOODLE_21_STABLE' of git://github.com/abgreeve/moodle into MOODLE_21_STABLE 2011-12-22 11:45:06 +13:00
Sam Hemelryk 1b9f28db24 MDL-30639 mod_lesson: Used a consistent format for users display of answer 2011-12-22 11:23:23 +13:00
Sam Hemelryk 4703fb429e Merge branch 'MDL-30639_m21' of git://github.com/rwijaya/moodle into MOODLE_21_STABLE 2011-12-22 11:20:56 +13:00
Tim Hunt 1f8a330662 MDL-30704 quiz_overview: fixup, add missing rescaling.
Thanks Micheal de Raadt for catching this in testing.
2011-12-21 18:33:42 +01:00
Eloy Lafuente (stronk7) 23fe9472ca MDL-29239 whitespace fixes 2011-12-21 09:35:27 +01:00
adrian@moodle.com 53944c5f24 MDL-18128 - forum - Addition of group editing for forums. 2011-12-21 15:37:55 +08:00
Aparup Banerjee 0d3504b4bb Merge branch 'wip-MDL-30541-stable21' of git://github.com/phalacee/moodle into MOODLE_21_STABLE 2011-12-21 14:17:39 +08:00
Aparup Banerjee ee7f8610db Merge branch 'wip-MDL-30539-stable21' of git://github.com/phalacee/moodle into MOODLE_21_STABLE 2011-12-21 13:24:43 +08:00
Aparup Banerjee 364622b466 MDL-28126 webservice : resolved integration conflicts 2011-12-21 11:32:41 +08:00
Jason Fowler 620ecfa62f MDL-30541 - Blog - Fixing the context for RSS Feed headers on the single blog entry pages 2011-12-21 11:04:08 +08:00
Sam Hemelryk 50a1735fe4 Merge branch 'MDL-29239_m21' of git://github.com/rwijaya/moodle into MOODLE_21_STABLE 2011-12-21 15:00:57 +13:00
Sam Hemelryk a2aa081e73 Merge branch 'MDL-30704_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-12-21 14:31:02 +13:00
Eloy Lafuente (stronk7) 7f50276ea0 Merge branch 'MDL-30170-mnet-undelete_21_STABLE' of git://github.com/mudrd8mz/moodle into MOODLE_21_STABLE 2011-12-20 23:34:23 +01:00
Gerard (Gerry) Caulfield 65f3793fd8 MDL-29400 Update the upload and uploadsingle assignment classes to so
that they only display the assignment submitted status when it has
actually been submitted.
2011-12-20 22:55:01 +01:00
Eloy Lafuente (stronk7) df752e6a1d Merge branch 'MDL-30603_m21' of https://github.com/nebgor/moodle into MOODLE_21_STABLE 2011-12-20 19:50:03 +01:00
Eloy Lafuente (stronk7) 65cb4fe548 Merge branch 'MDL-29048-m21' of git://github.com/ankitagarwal/moodle into MOODLE_21_STABLE 2011-12-20 18:56:24 +01:00
Aparup Banerjee bc89692259 MDL-25561 Gradebook : fixed whitespaces 2011-12-20 19:16:25 +08:00
Aparup Banerjee 88d3c04840 Merge branch 'MDL-25561_user_report_name_clickable_21' of git://github.com/andyjdavis/moodle into MOODLE_21_STABLE 2011-12-20 19:16:12 +08:00
Andrew Robert Nicols 20bc45d2f5 MDL-30627 Ensure that the dialogue is always shown in the current view window 2011-12-20 15:34:02 +08:00
Rossiani Wijaya 69e54ca580 MDL-30636 Lesson Module: fixed essay answer display format 2011-12-20 12:27:46 +08:00
Andrew Robert Nicols 4c3eb87286 MDL-30641 Stop italicising and underlining folder names in the filepicker 2011-12-20 11:55:31 +08:00
Aparup Banerjee 4b61488d0f Merge branch 'MDL-30569-m21' of git://github.com/ankitagarwal/moodle into MOODLE_21_STABLE 2011-12-20 11:11:46 +08:00
Eloy Lafuente (stronk7) 107ebdb86d Merge branch 'wip-mdl-29067-m21' of git://github.com/rajeshtaneja/moodle into MOODLE_21_STABLE 2011-12-20 03:13:11 +01:00
Sam Hemelryk 60e1271637 MDL-30770 admin: Fixed notice about missing variable 2011-12-20 02:26:56 +01:00
Eloy Lafuente (stronk7) 07c9965cba MDL-30739 add one test to confirm the solution is cross-db 2011-12-20 02:24:06 +01:00
Eloy Lafuente (stronk7) 0a6d17e288 Merge branch 'MDL-30739_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-12-20 02:22:20 +01:00
Sam Hemelryk 7d97d3ac7e Merge branch 'MDL-30764-m21' of git://github.com/sammarshallou/moodle into MOODLE_21_STABLE 2011-12-20 14:15:35 +13:00
Eloy Lafuente (stronk7) bf5bb85d42 Merge branch 'MDL-30738_21_STABLE' of git://github.com/kiklop74/moodle into MOODLE_21_STABLE 2011-12-20 02:01:49 +01:00
Sam Hemelryk 0e9c5fbc89 Merge branch 'MDL-30760_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-12-20 13:34:37 +13:00
AMOS bot c06f2ce133 Automatically generated installer lang files 2011-12-20 00:31:27 +00:00
Sam Hemelryk 57648d8d76 Merge branch 'MDL-30646_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-12-20 13:20:57 +13:00
Sam Hemelryk 85d7ec9052 Merge branch 'MDL-29846_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-12-20 13:16:40 +13:00
Eloy Lafuente (stronk7) 6e1f50f2c8 Merge branch 'MDL-30741_m21' of git://github.com/jfilip/moodle into MOODLE_21_STABLE 2011-12-20 00:05:36 +01:00
Sam Hemelryk 490f178f04 Merge branch 'wip-MDL-28948-MOODLE_21_STABLE' of git://github.com/abgreeve/moodle into MOODLE_21_STABLE 2011-12-20 10:42:30 +13:00
Petr Skoda 4cc0361e10 MDL-30765 fix invalid context variable 2011-12-20 10:21:08 +13:00
Sam Hemelryk 16e8ccaf5f Merge branch 'w51_MDL-30697_m21_roleslink' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-12-20 10:05:18 +13:00
Tim Hunt fcfef4dd18 MDL-30704 Quiz grades report shows inconsistent averages.
Previously, for the overall grade, we averaged the final marks for each
student; while for the individual question grades, we averaged all
grades.

The report now works consistently on the principle that the averages
should include exactly what is currenlty being shown in the report. This
is more logical, and so should be easier for users to understand.

If you want to see the averages that are currently shown (e.g. just the
average of each student's highers grade) then the report options let you
do that.

Conflicts:

	mod/quiz/report/attemptsreport.php
2011-12-19 15:20:05 +00:00
Tim Hunt f976adcd67 MDL-29846 qbehaviours admin: correct $needed logic.
Also, fix a notice.

Conflicts:

	admin/qbehaviours.php
2011-12-19 14:37:11 +00:00
Mary Evans eabff1ac74 MDL-30500 Fix for Sky High report & print layout 2011-12-19 15:22:52 +13:00
Ankit Kumar Agarwal c87fee8510 MDL-30569 Administration Fixing the redirect after editting is toggeled on the front page 2011-12-19 07:47:20 +05:30
Sam Hemelryk 3969853b1c Merge branch 'MDL-37049_21' of git://github.com/jamiepratt/moodle into MOODLE_21_STABLE 2011-12-19 15:05:20 +13:00
Eloy Lafuente (stronk7) 12a1176976 Merge branch 'wip-MDL-30791-m21' of git://github.com/samhemelryk/moodle into MOODLE_21_STABLE 2011-12-19 02:58:44 +01:00
Sam Hemelryk 0bc0394c8f Merge branch 'MDL-30683_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-12-19 14:14:14 +13:00
Sam Hemelryk f158171c0b Merge branch 'MDL-29176_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-12-19 12:23:05 +13:00
Sam Hemelryk dd98ec697c Merge branch 'MDL-30734_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-12-19 11:52:17 +13:00
Sam Hemelryk 0006e0cfa1 Merge branch 'MDL-30742_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-12-19 11:30:23 +13:00
Sam Hemelryk 4f9649a65f MDL-30791 lib: Removed a debugging notice from component callback 2011-12-19 11:12:25 +13:00
Sam Hemelryk d854866de3 Merge branch 'MDL-30758_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-12-19 09:28:23 +13:00
AMOS bot 6d6393eed2 Automatically generated installer lang files 2011-12-18 00:31:24 +00:00
Petr Skoda 9f7189fdcd MDL-30697 fix incorrect capability for role assign button
Credit goes to Alexander Bias.
2011-12-17 14:49:16 +01:00
AMOS bot d53dfa25d5 Automatically generated installer lang files 2011-12-17 00:31:21 +00:00
Tim Hunt 89f09b2454 MDL-30760 question engine: question summary can be longer than 64k!
1. So we will truncate the question summary to 65000 chars if necessary.

2. Also, fix one minor error in mutlianswer save_question_options.

question_bank::MAX_SUMMARY_LENGTH is not the most logical class to add
the constant to, but it needs to be accessible during upgrade, so I was
lazy and put it there.
2011-12-16 15:58:09 +00:00
Rajesh Taneja 66071e2961 MDL-29067 Admin: Added spam checking on comments, messages and forum posts 2011-12-16 11:51:45 +08:00
AMOS bot b181efdfda Automatically generated installer lang files 2011-12-16 00:31:25 +00:00
David Mudrak e0eb0af048 MDL-30170 MNet peers administration - various usability improvements
While fixing MDL-30170, the following tiny usability details were
improved along the way:

* the maximum length of the peer site title and the hostname is now
  validated (this was actually a real bug as the default value is pre-loaded
  from the peer) so the admin gets a nice validation error instead of
  the database write exception when trying to register a host with a
  longer site title.
* hard-coded English string 'All Hosts' is now localized
* the hostname link in the list of MNet peers leads to the peer itself
2011-12-15 21:48:20 +01:00
David Mudrak 9e710a2c87 MDL-30170 MNet peers administration - highlight the undelete widget
The patch highlights the undelete radio selector at the host edit form.
It moves it to the end of the form (near the submit button) and displays
an explanation above the radio selector.

Also, the list of deleted hosts is now displayed below the table of
active peers at the Manage peers page.

The data returned by mnet_get_hosts() function now contain the deleted
status, too. It is possible to obtain deleted hosts from that function
now.
2011-12-15 21:48:00 +01:00
Tim Hunt 5c91aac317 MDL-29176 quiz editing: can't move questions onto a new page. 2011-12-15 19:33:09 +00:00
Tim Hunt ce84960237 MDL-30646 default qbank sort should only use visible columns. 2011-12-15 18:41:18 +00:00
sam marshall b756e904f1 MDL-30764 Activity settings: do not disable grouping dropdown if it is already set 2011-12-15 16:52:03 +00:00
Tim Hunt 83dd037f43 MDL-30758 quiz_statistics report fails if all 1st attempts require grading 2011-12-15 12:52:21 +00:00
Tim Hunt 7f17672850 MDL-30739 qtype numerical: upgrade script uses SQL that is not cross-DB. 2011-12-15 12:23:20 +00:00
Tim Hunt a529dd84bf MDL-30592 / MDL-27183 quiz statistics: fix merge problem.
These two fixes changes the same file in different ways, causing breakage.
2011-12-15 11:23:08 +00:00
Aparup Banerjee 2603a387a0 MDL-28126 webservice : string fixed. 2011-12-15 18:04:42 +08:00
Jamie Pratt ed26baba6d MDL-30749 fixing typo referring to question instead of answer object 2011-12-15 14:38:42 +07:00
AMOS bot b39c4df0a5 Automatically generated installer lang files 2011-12-15 00:31:17 +00:00
Eloy Lafuente (stronk7) f2b2978c26 MDL-30592 moodlelib: minor phpdocs/debug tweaks 2011-12-14 22:45:36 +01:00
Eloy Lafuente (stronk7) c4190e3140 Merge branch 'MDL-30592_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-12-14 22:45:32 +01:00
Tim Lock cbe4101815 MDL-30419: IMS package content missing when using Blackboard packages 2011-12-14 21:35:40 +01:00
Darko Miletic 265b058144 MDL-30738: fix for 2.1 stable 2011-12-14 15:03:39 -03:00
Tim Hunt ca25589fb5 MDL-30742 restoring 1.9 backups with missing question data should be robust 2011-12-14 17:18:22 +00:00
Jerome Mouneyrac 711c2728f5 MDL-28126 webservices : should not able to create token if user is deleted,unconfirmed,suspended or guest. 2011-12-15 00:53:53 +08:00
Justin Filip 54e44c14e9 MDL-30741 Adding a new test to check for incorrect parsing of complicate HTML with a PRE tag. 2011-12-14 11:37:45 -05:00
Justin Filip 75e50ca661 MDL-30741 Fix the handling of PRE tags with the latest code from upstream: http://trac.roundcube.net/browser/trunk/roundcubemail/program/lib/html2text.php?rev=5497 2011-12-14 11:36:40 -05:00
Tim Hunt ba9cb0848a MDL-30734 question engine: sum_usage_marks_subquery edge-case.
When all qas in a useage are 'gaveup' state, it gives NULL, not 0.0, for the total.
2011-12-14 14:30:41 +00:00
Andrew Davis e776484153 MDL-13572 message: added validation of the email address in the messaging preferences 2011-12-14 17:48:57 +08:00
Andrew Davis e4fd72ad34 MDL-25561 grade: made the student names clickable on the user report 2011-12-14 15:39:33 +08:00
Sam Hemelryk c5a4b44be6 Merge branch 'MDL-27183_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-12-14 17:17:44 +13:00
Sam Hemelryk 0bb848f74c Merge branch 'MDL-30585_21' of git://github.com/stronk7/moodle into MOODLE_21_STABLE 2011-12-14 15:29:40 +13:00
Eloy Lafuente (stronk7) 222b780775 Merge branch 'wip-MDL-27767-m21' of git://github.com/samhemelryk/moodle into MOODLE_21_STABLE 2011-12-14 03:16:48 +01:00
Mark Nielsen 3e081620d2 MDL-29048 Glossary Force glossary type to secondary while trying to duplicate a mail glossary 2011-12-14 07:32:53 +05:30
Petr Skoda 46f69c3d4f MDL-30610 new environment requirements for 2.3 2011-12-14 02:41:29 +01:00
Sam Hemelryk e6f195d0b4 Merge branch 'MDL-30463_m21' of git://github.com/rwijaya/moodle into MOODLE_21_STABLE 2011-12-14 14:25:01 +13:00
Sam Hemelryk 3d2ac8024d Merge branch 'MDL-30140-MOODLE_21_STABLE' of git://github.com/mouneyrac/moodle into MOODLE_21_STABLE 2011-12-14 14:08:07 +13:00
adrian@moodle.com dd9486f42d MDL-28948 - lib - removed the hard coded key for the rc4encryt function. 2011-12-14 08:26:53 +08:00
Tim Hunt 88c2d103ca MDL-30683 don't show overall feedback in the quiz grades report.
The grades are small, while the feedback can be big, which breaks the table layout.
2011-12-13 16:51:22 +00:00
Aparup Banerjee 9822be6f4c Merge branch 'MDL-29772-21' of git://github.com/bostelm/moodle into MOODLE_21_STABLE 2011-12-13 17:07:56 +08:00
Aparup Banerjee 8f10c31083 Merge branch 'MDL-30472-m21' of git://github.com/ankitagarwal/moodle into MOODLE_21_STABLE 2011-12-13 14:38:01 +08:00
Andrew Robert Nicols 1a92569cf9 MDL-30362 Change icon class for editsection icons in course formats 2011-12-13 14:30:28 +08:00
Alexnader Bias a865f43156 MDL-30472 Course Making user lists sortable when lastacess field is hidden 2011-12-13 11:09:20 +05:30
sam marshall 78e5c3600d MDL-30655 Blocks: Moving block to top of list can cause (harmless) PHP warnings 2011-12-13 13:29:17 +08:00
Tim Hunt cc8f03e067 MDL-30559 conditional availability: missing validation of grade rules. 2011-12-13 12:10:55 +08:00
Petr Skoda d378d75c36 MDL-30575 more mail header cleanup 2011-12-13 10:24:31 +08:00
Jason Fowler 440c440aeb MDL-30539 - Blog - Adding RSS Feed icon to the user blogs 2011-12-13 09:49:01 +08:00
Andrew Robert Nicols 3b85cc33c3 MDL-30653 Remove duplicate Participants link from navbar 2011-12-13 12:09:12 +13:00
Petr Skoda a56eab4ada MDL-29117 use default course settings when template not set in db enrol 2011-12-13 12:03:00 +13:00
Sam Hemelryk 9554609d60 MDL-30292 backport Petr's fix for the trailing whitespace test 2011-12-13 12:00:45 +13:00
Sam Hemelryk d380faef5c Merge branch 'MDL-30677_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-12-13 11:19:51 +13:00
Sam Hemelryk e66237cdcf Merge branch 'MDL-30532_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-12-13 11:14:54 +13:00
Sam Hemelryk c50442d0d7 Merge branch 'MDL-30498a_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-12-13 11:11:07 +13:00
Sam Hemelryk 8d70e5cc74 Merge branch 'MDL-27143_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-12-13 10:26:11 +13:00
Henning Bostelmann 506934b53d MDL-29772 Adaptive question behaviour: improve penalty information
(bugfix backport to Moodle 2.1)
fixes MDL-29780: suppress penalty information if question penalty is 0
2011-12-12 15:35:29 +00:00
Rossiani Wijaya 4f3a896383 MDL-30463 lesson module: add space between yes and no options on start last attempt page 2011-12-12 17:08:29 +08:00
Rossiani Wijaya 1928113b3f MDL-29239 fixed edit course setting for moodle/course:changesummary permission is set to prevent. 2011-12-12 15:46:07 +08:00
Aparup Banerjee 902d4f9584 MDL-30603 synced and renamed incorrect ZF 1.10.6 file and name 2011-12-12 14:12:10 +08:00
Petr Skoda df33ab2bf4 MDL-30415 prevent yui2 rollups in debug mode 2011-12-12 17:33:31 +13:00
Petr Skoda 835564dbfc MDL-30502 remove bogus role name param
Credit goes to Michael J Litzkow.
2011-12-12 17:24:51 +13:00
Sam Hemelryk 860551428c Merge branch 'w51_MDL-30588_m21_switchrole' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-12-12 17:15:16 +13:00
Sam Hemelryk dfda3efcc8 Merge branch 'w51_MDL-30659_m21_yuidebug' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-12-12 16:37:36 +13:00
Sam Hemelryk 16a6377ca8 Merge branch 'MDL-29942-MOODLE_21_STABLE' of git://github.com/mouneyrac/moodle into MOODLE_21_STABLE 2011-12-12 15:13:21 +13:00
Sam Hemelryk 1ac4f0edbc Merge branch 'MDL-28180_21' of git://github.com/stronk7/moodle into MOODLE_21_STABLE 2011-12-12 14:56:52 +13:00
Sam Hemelryk 494b8a8596 Merge branch 'MDL-30198-m21' of git://github.com/ankitagarwal/moodle into MOODLE_21_STABLE 2011-12-12 13:57:23 +13:00
Andrew Robert Nicols 17b501cb5f MDL-29195 Remove duplicate Participants -> Notes from navbar 2011-12-12 13:51:15 +13:00
Eloy Lafuente (stronk7) e86f88ae5c MDL-28180 backup - on restore always prevent completion_aggr_methd dupes
This covers the last case where dupes could be happening in the
completion_aggr_methd table: Restoring one complete course into
an existing one, adding information. Now we always check if the
aggr_method exists before inserting it.
2011-12-12 00:39:37 +01:00
Eloy Lafuente (stronk7) 5f874ee80b MDL-28180 backup - take rid of dupes in course_completion_aggr_methd 2011-12-12 00:38:38 +01:00
Eloy Lafuente (stronk7) fa6cad6d10 MDL-28180 backup - set excluded activities for any non-course operation 2011-12-12 00:35:30 +01:00
Petr Skoda 6778f4b265 MDL-30659 fix use of yui filters 2011-12-10 13:53:09 +01:00
Petr Skoda 8caf5067be DML-30588 do not require enrollment after switching of roles 2011-12-10 12:45:33 +01:00
AMOS bot 96518a8123 Automatically generated installer lang files 2011-12-10 00:31:30 +00:00
Tim Hunt 766787bef8 MDL-30592 question_bank: make files in qtext work in the question list. 2011-12-09 19:24:24 +00:00
Tim Hunt 03d0ee34a1 MDL-30592 quiz statistics, ensure images in the question text appear. 2011-12-09 19:24:16 +00:00
Tim Hunt 63d7b32d95 MDL-30592 moodlelib: new helper component_callback
I chose to be slighly inconsistent with plugin_callback in order to make a nicer API.

Conflicts:

	lib/moodlelib.php
2011-12-09 19:23:57 +00:00
Tim Hunt 13e3f4ca92 MDL-30677 quiz: fix attempt counts when a student is in several groups. 2011-12-09 17:54:23 +00:00
Tim Hunt 4d975b51fa MDL-30532 qeupgradehelper has broken links to quizzes. 2011-12-09 17:53:29 +00:00
Tim Hunt b3e3062b9b MDL-30498 user name can overlap user report icon. 2011-12-09 17:53:01 +00:00
Tim Hunt 0d7eb11e60 MDL-27183 quiz reports: don't show data to users not in any group
if the quiz is set to separate groups, and the user does not have access all groups.
2011-12-09 17:52:28 +00:00
Tim Hunt b7d66b43f4 MDL-27143 question bank: questions not saved when deleting a category.
Based on a fix by Nikhil Gupta.
2011-12-09 17:51:58 +00:00
Martin Dougiamas 2f4a98c99d MDL-30340 blocks - fix/restrict frontpage dark magic application
It seems that there are some overlapping constants in the blocks
subsystem that were causing some code, initially planned only
to frontpage, to be executed in other contexts. This commit moves
the bui_editingatfrontpage condition as root condition.
2011-12-09 17:56:24 +01:00
Eloy Lafuente (stronk7) 01343e6835 MDL-30340 blocks - incorrect option in user profile template and missing lang string in my template 2011-12-09 17:56:24 +01:00
Eloy Lafuente (stronk7) 2805eb3816 MDL-30340 blocks - hide some redundant pagetypepattern options at front page
The dual front-page/system-wide form to edit blocks can
be reduced asuming that, always:

A) system sets the context to system,
   recursively and with page-type set to "*"
B) frontpage only sets the context to site-course,
   non-recursively and with page-type set to "site-index"
C) frontpage all added sets the context to site-course,
   recursively and with paget-type set to "*"

And that is the change that this patch provides, by:

1) detecting properly if we are editing blocks @ protpage
2) passing that information to the form data processor
3) setting parentcontextid, showinsubcontexts and
   pagetypepattern following the A, B, C immutables above.

Finally, and affecting some other system-wide pages, there
are cases (my, user templates...) having only one possible
pagetypepattern, and it looks badly if the page has subpages, so
for those system-wide cases we are showing exceptionaly the
pagetypepattern statically. This will be revisited once MDL-30574
is decided and implemented, although perhaps it's ok to leave it
as default to places with only one pagetypepattern available.
2011-12-09 17:56:23 +01:00
David Mudrak 555fdea7e6 MDL-30340 Block stickiness computation improvements
This is an attempt to clean up and fix the computation of the block
stickiness. At first, the page pattern can't be ignored because the user
may want to currently try to limit the page pattern. Second, the
site-index pattern can be forced only if the user selected 'Front page
only' as the page context.
2011-12-09 17:56:23 +01:00
David Mudrak b62b7ed0b6 MDL-30340 Always generate pagetype patterns in the block settings form
This is an alternative solution to MDL-27812. If the current block
instance has page type set to site-index, we need to provide a way how
that page type pattern can be reset back to other value.
2011-12-09 17:56:23 +01:00
David Mudrak 0f9d4689fb MDL-30340 Trivial change in PHP doc block - the function does not accept any params 2011-12-09 17:56:23 +01:00
Eloy Lafuente (stronk7) 0a6326625b MDL-30340 blocks - add back 'any page' support to course cats
Added the * option that is not affected by the 'varying-pagetype'
problem that has been detected and issued @ MDL-30564. So now, it's
(back) possible to define coursecat blocks to be spread over children
coursecats/courses/modules (contexts).
2011-12-09 17:56:22 +01:00
Eloy Lafuente (stronk7) 4e1e5c8db6 MDL-30340 blocks - avoid lockin'blocks in subcontexts.
Everytime that one block instance is edited @ any subcontext,
guarantee that the 'bring back' pattern (* = all pages) is
available, so the block can be reseted to its original context
2011-12-09 17:56:22 +01:00
Eloy Lafuente (stronk7) 6508da4fa6 weekly release 2.1.3+ 2011-12-09 16:28:08 +01:00
Eloy Lafuente (stronk7) 5e48a7c5ef Merge branch 'install_21_STABLE' of git://github.com/amosbot/moodle into MOODLE_21_STABLE 2011-12-09 16:09:39 +01:00
Tim Hunt 68e414e8fc MDL-30660 javascript-static: another yui3/ticket/2531561 work-around. 2011-12-09 12:41:48 +01:00
Aparup Banerjee 4e7d5f7590 MDL-30542 web service : clarified string 2011-12-09 15:48:54 +08:00
Aparup Banerjee 552390c5c5 Merge branch 'MDL-30542' of git://github.com/mouneyrac/moodle into MOODLE_21_STABLE 2011-12-09 15:27:21 +08:00
Jerome Mouneyrac f39a641e1b MDL-30140 alternative way to select user when adding a token. When more than 500 users we display a text box instead of a select box 2011-12-09 14:54:37 +08:00
Mitsuhiro 49975f0702 MDL-30198 Glossary Changing string during imports 2011-12-09 10:13:46 +05:30
Petr Skoda b4261ffdf7 MDL-27364 use https for recaptcha when site runs via https
Based on solution by Rajesh Taneja.
2011-12-09 11:10:55 +08:00
Aparup Banerjee 808a7622b9 Merge branch 'MDL-30558_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-12-09 10:48:04 +08:00
Tim Hunt c8b08dc392 MDL-27314 quiz reports: fix JS confirmation before deleting attempts.
Conflicts:

	mod/quiz/report/responses/report.php
2011-12-09 02:36:01 +01:00
AMOS bot 6672b3d4df Automatically generated installer lang files 2011-12-09 00:31:22 +00:00
Sam Hemelryk 1921ff62f2 Merge branch 'MDL-30660' of git://github.com/timhunt/moodle 2011-12-09 11:48:37 +13:00
Eloy Lafuente (stronk7) 55dae3ac86 Merge branch 'MDL-29579_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-12-08 23:37:37 +01:00
Eloy Lafuente (stronk7) 938965931d Merge branch 'MDL-30658_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-12-08 19:23:35 +01:00
Tim Hunt b25acd2176 MDL-30660 javascript-static: M.util.show_confirm_dialog fixes 2011-12-08 17:52:41 +00:00
Tim Hunt 221b8fd72b MDL-30658 formslib: fix JavaScript regression from MDL-27045. 2011-12-08 14:36:39 +00:00
Aparup Banerjee 4d642dc1b2 Merge branch 'wip-MDL-30336-MOODLE_21_STABLE' of git://github.com/abgreeve/moodle into MOODLE_21_STABLE 2011-12-08 16:20:32 +08:00
Aparup Banerjee 2874fc880f Merge branch 'wip-mdl-30560-m21' of git://github.com/rajeshtaneja/moodle into MOODLE_21_STABLE 2011-12-08 15:55:25 +08:00
Jerome Mouneyrac 1aa648116d MDL-30542 backport recent 2.2 changes about security checks 2011-12-08 15:36:47 +08:00
Jerome Mouneyrac e32451b0df MDL-29942 trigger user events in web service calls 2011-12-08 15:24:00 +08:00
Andrew Robert Nicols 6298e8d646 MDL-30350 Highlight late submissions in the submission overview page 2011-12-08 14:28:12 +08:00
Aparup Banerjee 47ec4ba7d8 Merge branch 'MDL-27432_gd_error_21' of git://github.com/andyjdavis/moodle into MOODLE_21_STABLE 2011-12-08 14:05:45 +08:00
Aparup Banerjee 65bf17ee24 Merge branch 'MDL-28710_rating_classes_21' of git://github.com/andyjdavis/moodle into MOODLE_21_STABLE 2011-12-08 13:48:45 +08:00
Aparup Banerjee 759a28d97b Merge branch 'MDL-30607_override_email_21' of git://github.com/andyjdavis/moodle into MOODLE_21_STABLE 2011-12-08 13:40:10 +08:00
Petr Skoda 046ce3d31a MDL-30528 stop recreating role_assignments on every login attempt for each user
Credit goes to Luis Gustavo Mueller de Alcantara.
2011-12-08 15:51:19 +13:00
adrian@moodle.com 4451c5a4a1 MDL-30336 - login - Added a setting in security that allows auto complete to be set to off in password fields. 2011-12-08 08:54:20 +08:00
Eloy Lafuente (stronk7) 5d497d7f4b Merge branch 'wip-MDL-30582-m21' of git://github.com/samhemelryk/moodle into MOODLE_21_STABLE 2011-12-08 01:37:20 +01:00
Eloy Lafuente (stronk7) 62bd66a5bc Merge branch 'MDL-26522_user_report_menu_21' of git://github.com/andyjdavis/moodle into MOODLE_21_STABLE 2011-12-08 01:02:24 +01:00
Eloy Lafuente (stronk7) c9bb3cd575 Merge branch 'MDL-27314_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-12-08 00:45:36 +01:00
Sam Hemelryk 2fbbfb0187 Merge branch 'MDL-29712-MOODLE_21_STABLE' of git://github.com/mouneyrac/moodle into MOODLE_21_STABLE 2011-12-08 12:41:59 +13:00
Eloy Lafuente (stronk7) 259739c8a3 Merge branch 'wip-MDL-30222-m21' of git://github.com/samhemelryk/moodle into MOODLE_21_STABLE 2011-12-08 00:40:15 +01:00
Sam Hemelryk 8305bb680f Merge branch 'm21_MDL-30211' of git://github.com/danmarsden/moodle into MOODLE_21_STABLE 2011-12-08 10:47:43 +13:00
Dan Marsden e85af10d1a MDL-30536 Choice - remove setType so that validation works when JS is disabled 2011-12-08 10:36:57 +13:00
Andrew Davis 0508938f22 MDL-30607 message: removed an if condition that prevented you from clearing an overrident email address 2011-12-07 12:06:03 +08:00
Rajesh Taneja e9ccaa1077 MDL-30560 Forms Lib: 'type' key for repeat_elements is restored 2011-12-07 12:05:44 +08:00
Andrew Davis 8d15f0880d MDL-28710 rating: added some more classes to the html for entering ratings 2011-12-07 11:56:46 +08:00
Sam Hemelryk effe15308b Merge branch 'wip-MDL-19147-MOODLE_21_STABLE' of git://github.com/abgreeve/moodle into MOODLE_21_STABLE 2011-12-07 14:20:15 +13:00
AMOS bot 3eb4a69ce5 Automatically generated installer lang files 2011-12-07 00:31:23 +00:00
Sam Hemelryk 40f4b5c562 Merge branch 'wip-MDL-19147-MOODLE_21_STABLE' of git://github.com/abgreeve/moodle into MOODLE_21_STABLE 2011-12-07 12:38:51 +13:00
Sam Hemelryk aee4f04ec7 MDL-30582 navigation: Fixed regression in generation of front page modules 2011-12-06 13:34:40 +13:00
Sam Hemelryk ab76484507 MDL-27767 install: Shows notifications rather than throwing exceptions when installation encounters unexpected id for guest or admin 2011-12-06 12:21:10 +13:00
Sam Hemelryk 80fc27ce72 MDL-30222 Fixed home page redirection madness. Thank you Julien Boulen for providing the solution 2011-12-06 12:07:49 +13:00
AMOS bot 64eaccae1a Automatically generated installer lang files 2011-12-05 18:36:46 +01:00
Tim Hunt c1e850f778 MDL-29579 quiz statistics, include qtext in full XHTML export. 2011-12-05 17:05:04 +00:00
Eloy Lafuente (stronk7) 928372369b weekly release 2.1.3+ 2011-12-05 12:33:27 +01:00
Jerome Mouneyrac 87bf399e38 MDL-29712server was translating too many HTML characters. use htmlspecialchars instead of htmlentities. Translated characters by htmlspecialchars are compatible with XML validation, and so XML parsers for javascript, java... 2011-12-05 14:14:27 +08:00
AMOS bot 6dae50ffaa Automatically generated installer lang files 2011-12-05 00:31:02 +00:00
Tim Hunt d88a8d9a60 MDL-30558 question bank, missing string with obscure permissions.
AMOS BEGIN
 MOV [selectcategoryabove,mod_quiz],[selectcategoryabove,question]
AMOS END
2011-12-02 14:53:15 +00:00
Dan Marsden fd03c32c53 MDL-30211 imsenterprise enrolment - set up default enrolment methods in new courses 2011-12-02 22:45:43 +13:00
Andrew Davis 29af79cb2a MDL-26522 grade: made the user selection drop down on the user report behave more sensibly 2011-12-02 09:55:53 +08:00
Andrew Davis 5335ed5f3b MDL-27432 mod_data: improved handling of the absence of the GD php extension 2011-12-02 09:15:01 +08:00
Charles Fulton b50ccc90af MDL-19147 - forum - Removed single discussions from the pull down menu for moving posts to different forums. 2011-12-02 07:39:40 +08:00
Igor Sazonov 4d85fc8f22 MDL-27314 quiz attempts cannot be deleted in separate groups mode. 2011-12-01 16:23:27 +00:00
Eloy Lafuente (stronk7) 464d60522d weekly release 2.1.3+ 2011-12-01 12:17:35 +01:00
Eloy Lafuente (stronk7) 824e110b8c Merge branch 'install_21_STABLE' of git://github.com/amosbot/moodle into MOODLE_21_STABLE 2011-12-01 12:04:21 +01:00
Eloy Lafuente (stronk7) 5f7fc6ca31 Merge branch 'MDL-30544_disable_notifications_21' of git://github.com/andyjdavis/moodle into MOODLE_21_STABLE 2011-12-01 10:45:16 +01:00
Andrew Davis dcae2f3a6a MDL-30544 message: prevented the temporarily disable notifications checkbox from erasing your messaging preferences 2011-12-01 17:00:01 +08:00
Aparup Banerjee cd0b9e040f Merge branch 'MDL-30260_disable_messages_21' of git://github.com/andyjdavis/moodle into MOODLE_21_STABLE 2011-12-01 11:26:52 +08:00
Sam Hemelryk 280dc8bd45 Merge branch 'wip-mdl-30421-m21' of git://github.com/rajeshtaneja/moodle into MOODLE_21_STABLE 2011-12-01 15:48:56 +13:00
Sam Hemelryk be4ee6dcb1 Merge branch 'wip-MDL-30469-MOODLE_21_STABLE' of git://github.com/marinaglancy/moodle into MOODLE_21_STABLE 2011-12-01 15:19:32 +13:00
Rajesh Taneja 5889828c02 MDL-30421 forum: resolved error in single discussion forum, if more then one record is present 2011-12-01 09:45:23 +08:00
Sam Hemelryk 1d841d8a2d MDL-30376 mod_glossary: Integration tidy up 2011-12-01 14:31:44 +13:00
Jason Fowler 87b61e39bf MDL-30376 - Glossary - Fixing ability to see the RSS feed for a glossary 2011-12-01 14:18:05 +13:00
Ruslan Kabalin 186577a9d5 MDL-30526 Choice: add form validation rule for numeric field 2011-12-01 12:44:56 +13:00
Sam Hemelryk 71f5d75a46 Merge branch 'MDL-29730_m21' of git://github.com/rwijaya/moodle into MOODLE_21_STABLE 2011-12-01 12:29:38 +13:00
Sam Hemelryk fd2aab6c9d Merge branch 'MDL-30453-exassessment-link_21_STABLE' of git://github.com/mudrd8mz/moodle into MOODLE_21_STABLE 2011-12-01 12:16:02 +13:00
Sam Hemelryk 494b6c9e39 Merge branch 'MDL-30271-switch-role-workshop_21_STABLE' of git://github.com/mudrd8mz/moodle into MOODLE_21_STABLE 2011-12-01 11:49:45 +13:00
Marina Glancy 8175813fc7 MDL-30214: Added function forum_get_file_info() to fix the bug with choosing recent forum files in filepicker 2011-11-30 15:53:27 +08:00
Aparup Banerjee 96b7a40bb3 MDL-27334 : summarised comment about problem.
we have git for history.
2011-11-30 15:18:31 +08:00
Aparup Banerjee b5c3eee58e Merge branch 'wip-MDL-27334-MOODLE_21_STABLE' of git://github.com/abgreeve/moodle into MOODLE_21_STABLE 2011-11-30 15:18:28 +08:00
Aparup Banerjee 6cc8bfa3d8 MDL-29469 Enrolments : fixed whitespaces 2011-11-30 14:43:10 +08:00
Aparup Banerjee fc51860a03 Merge branch 'wip-MDL-29469-stable21' of git://github.com/phalacee/moodle into MOODLE_21_STABLE 2011-11-30 14:42:59 +08:00
Aparup Banerjee ecbbcd5e07 Merge branch 'MDL-30395-MOODLE_21_STABLE' of git://github.com/mouneyrac/moodle into MOODLE_21_STABLE 2011-11-30 14:11:50 +08:00
Rossiani Wijaya c73da05ccb MDL-29730 Lesson mod: fixed check_answer() for shortanswser with regular expression option enable 2011-11-30 11:26:15 +08:00
Jerome Mouneyrac 17fa731ae6 MDL-30395 display the folder name if the block/module of a backup file is not installed in the site 2011-11-30 10:34:54 +08:00
AMOS bot f4c32310c5 Automatically generated installer lang files 2011-11-30 00:31:06 +00:00
Sam Hemelryk 98b10dfc5d MDL-30485 whitespace fix 2011-11-30 11:56:14 +13:00
Sam Hemelryk 7708c82e72 Merge commit 'FETCH_HEAd' into MOODLE_21_STABLE 2011-11-30 11:44:20 +13:00
Sam Hemelryk 2fff9611fa Merge branch 'MDL-30287_grader_ajax_21' of git://github.com/andyjdavis/moodle into MOODLE_21_STABLE 2011-11-30 11:37:36 +13:00
Mary Evans 8b079e81a7 MDL-30505 Fix for nested mixed ordered/unordered lists 2011-11-30 11:16:46 +13:00
Eloy Lafuente (stronk7) 9dc00afe86 MDL-30466 Backup: delete empty method 2011-11-29 19:49:45 +01:00
Eloy Lafuente (stronk7) 360dd25e1e Merge branch 'wip-mdl-30466-m21' of git://github.com/rajeshtaneja/moodle into MOODLE_21_STABLE 2011-11-29 19:47:57 +01:00
Andrew Davis d014106eba MDL-30260 message: fixed up version number in message/upgrade.txt 2011-11-29 22:16:47 +08:00
Andrew Davis e732701b39 MDL-30260 message: added /message/upgrade.txt, checked calls to message_send() are supplying user.emailstop and improved message_send() to handle message requests that don't 2011-11-29 21:20:00 +08:00
Jerome Mouneyrac 263f8b3188 Merge branches 'MOODLE_21_STABLE' and 'MOODLE_21_STABLE' of git://git.moodle.org/moodle into MOODLE_21_STABLE 2011-11-29 16:22:39 +08:00
Andrew Robert Nicols 3564f5f026 MDL-30302 Adjust options for calendar day settings 2011-11-29 16:59:08 +13:00
Sam Hemelryk bd464fbea5 MDL-30273 whitespace cleanup 2011-11-29 16:47:47 +13:00
Sam Hemelryk d21cf5744d Merge branch 'wip-MDL-30273-MOODLE_21_STABLE' of git://github.com/abgreeve/moodle into MOODLE_21_STABLE 2011-11-29 16:40:16 +13:00
Mary Evans a574b17144 MDL-30471 Fix for nesting unordered list inside ordered list 2011-11-29 16:28:58 +13:00
Eloy Lafuente (stronk7) 6d959a5564 Merge branch 'wip-MDL-30378-m21' of git://github.com/samhemelryk/moodle into MOODLE_21_STABLE 2011-11-29 03:18:13 +01:00
Rajesh Taneja b367f4106c MDL-30466 Backup: Fixed duplicate completion record check error 2011-11-29 09:58:11 +08:00
AMOS bot e0152bdfdf Automatically generated installer lang files 2011-11-29 00:30:44 +00:00
Sam Hemelryk c6a3aa720d MDL-30378 navigation: Front page activities are now added to the navigation on every page 2011-11-29 11:21:16 +13:00
Petr Skoda 9316161e96 MDL-30487 remove obsolete test
Since MDL-30303 media filter accepts any ? parameters.
2011-11-28 20:19:12 +01:00
Tim Hunt ba0f2478be MDL-30485 XML import from 1.9 does not handle files in subfolders. 2011-11-28 17:28:09 +00:00
Sam Hemelryk c3689810d5 Merge branch 'w48_MDL-30448_m21_urlpar' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-11-28 18:55:22 +13:00
Andrew Robert Nicols effc0ec0d4 MDL-30465 Add br tag when showing the 'Export to Portfolio' text 2011-11-28 18:29:31 +13:00
Aparup Banerjee 28f8069eb5 Merge branch 'MDL-30460-m21' of git://github.com/ankitagarwal/moodle into MOODLE_21_STABLE 2011-11-28 11:48:30 +08:00
Eloy Lafuente (stronk7) 50ce778ad8 Moodle release 2.1.3 2011-11-27 23:52:11 +01:00
Eloy Lafuente (stronk7) 64f26a2673 Merge branch 'install_21_STABLE' of git://github.com/amosbot/moodle into MOODLE_21_STABLE 2011-11-27 23:40:01 +01:00
Eloy Lafuente (stronk7) 7d93ab4189 Merge branch 'dropbox-api-bump-for-21_STABLE' of git://git.luns.net.uk/moodle into MOODLE_21_STABLE 2011-11-27 23:18:09 +01:00
AMOS bot 9f28d15bc9 Automatically generated installer lang files 2011-11-27 00:31:01 +00:00
Petr Skoda 5e92762ffc MDL-30448 fix url param problems 2011-11-26 13:39:56 +01:00
AMOS bot 0407f9cda7 Automatically generated installer lang files 2011-11-26 00:31:07 +00:00
David Mudrak e7952cea69 MDL-30453 Use correct renderable classes to represent assessments of example submission 2011-11-25 18:35:50 +01:00
David Mudrak 2123b7e100 MDL-30453 New renderable classes for assessments of example submissions
The patch introduces two new classes for rendering assessments of
example submission - both the training one and the reference one.
Together with the cooking functions for obtaining instances of these
classes.
2011-11-25 18:27:34 +01:00
David Mudrak 1b73e201c1 MDL-30271 Inform the user about the example assessment conflict, instead of throwing the exception 2011-11-25 15:58:35 +01:00
David Mudrak 0e99bb1405 MDL-30271 Move the page initialization so that we can produce output in param processing sections eventually 2011-11-25 15:58:35 +01:00
Eloy Lafuente (stronk7) b8321ca069 weekly release 2.1.2+ 2011-11-25 11:10:52 +01:00
Eloy Lafuente (stronk7) cc0988ad2b Merge branch 'install_21_STABLE' of git://github.com/amosbot/moodle into MOODLE_21_STABLE 2011-11-25 11:05:14 +01:00
Dan Poltawski 3c7ea58432 MDL-29960 repository/dropbox - update to use 1.0 API version 2011-11-25 10:03:12 +00:00
Ankit Kumar Agarwal ddd07da93a MDL-30460 Wiki making file extension case-insensitive 2011-11-25 15:02:53 +05:30
Andrew Davis 109d968d76 MDL-30287 gradebook: fixed the ajax JS for grade and feedback changes on the grader report 2011-11-25 15:10:03 +08:00
AMOS bot bd2790b2f2 Automatically generated installer lang files 2011-11-25 00:30:47 +00:00
Sam Hemelryk 1ed6756d80 Merge branch 'MDL-26431-21' of git://github.com/totara/moodle into MOODLE_21_STABLE 2011-11-25 12:44:39 +13:00
Sam Hemelryk c3ef0a618d Merge branch 'MDL-29115_m21' of git://github.com/rwijaya/moodle into MOODLE_21_STABLE 2011-11-25 11:59:18 +13:00
Sam Hemelryk 3174abc728 Merge branch 'wip-mdl-30391-m21' of git://github.com/rajeshtaneja/moodle into MOODLE_21_STABLE 2011-11-25 11:36:26 +13:00
Mary Evans 40cc2378f2 MDL-28625 - removed ul/ol styles from canvas/text.css 2011-11-25 11:18:39 +13:00
Aaron Barnes 69180a0de7 MDL-26431 course completion report columns not lining up 2011-11-25 09:59:45 +13:00
Aparup Banerjee babd54537c Merge branch 'MDL-30288_override_checkbox_21' of git://github.com/andyjdavis/moodle into MOODLE_21_STABLE 2011-11-24 16:14:53 +08:00
Aparup Banerjee f0a173ff75 Merge branch 'MDL-29226-M21' of git://github.com/lazydaisy/moodle into MOODLE_21_STABLE 2011-11-24 14:45:24 +08:00
Andrew Davis 913a61a323 MDL-30288 gradebook: prevented grade grade feedback being wrapped in a text to html div tag which was causing it to look like feedback had been edited when it hadn't 2011-11-24 11:08:08 +08:00
AMOS bot 51050f4b3d Automatically generated installer lang files 2011-11-24 00:31:08 +00:00
Eloy Lafuente (stronk7) 4b67fa946b Merge branch 'wip-mdl-30394-m21' of git://github.com/rajeshtaneja/moodle into MOODLE_21_STABLE 2011-11-23 13:38:40 +01:00
Eloy Lafuente (stronk7) 279fa1b994 Merge branch 'wip-mdl-30375-m21' of git://github.com/rajeshtaneja/moodle into MOODLE_21_STABLE 2011-11-23 13:28:52 +01:00
Ankit Kumar Agarwal 6fe2462f98 MDL-30398 Validations added for password field 2011-11-23 13:20:01 +01:00
Eloy Lafuente (stronk7) 1f8ca423da Merge branch 'MDL-29095_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-11-23 12:06:14 +01:00
Eloy Lafuente (stronk7) 9e2c51dbf2 Merge branch 'MDL-29060_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-11-23 11:48:13 +01:00
Eloy Lafuente (stronk7) 8ed17824f6 Merge branch 'wip-mdl-28947-m21' of git://github.com/rajeshtaneja/moodle into MOODLE_21_STABLE 2011-11-23 11:38:09 +01:00
Andrew Robert Nicols 4397b907bd MDL-30165: Make repository file extension check case insensitive 2011-11-23 11:23:37 +01:00
Dan Marsden f029a59e24 SCORM MDL-25757 fix for saving of duplicate CMI values - thanks to Evan Irving-Pease for the patch 2011-11-23 11:09:19 +01:00
adrian@moodle.com fef50ae2c2 MDL-27334 - forum - Fixed the issue of error session keys being displayed when trying to browse to a site without logging in. 2011-11-23 13:03:08 +08:00
Jamie Pratt 92939cd69a MDL-28562 "automatic naming of file in convert_image not working"
there is an obvious typo in the code causing the problem. The use of
an equality check instead of the intended assignment.
2011-11-23 12:39:54 +08:00
Jason Fowler fd8fa80599 MDL-29469 Enrolments - fixing the role assignment access elevation issue 2011-11-23 11:49:08 +08:00
Aparup Banerjee 72b19bafdb Merge branch 'wip-MDL-20627-MOODLE_21_STABLE' of git://github.com/abgreeve/moodle into MOODLE_21_STABLE 2011-11-23 11:13:57 +08:00
Mary Evans 5c2ca52338 MDL-29778 Fix to make user selector arrow visible 2011-11-23 15:55:38 +13:00
Rajesh Taneja db90eb6883 MDL-30375 Blocks: Comments block will show blank textbox rather then hiding and 'add a comment' will be visible if it's empty 2011-11-23 10:47:55 +08:00
Kordan a2c65d52ce MDL-29830 theme_base: Fix overflow problems with navigation items 2011-11-23 15:46:07 +13:00
Eloy Lafuente (stronk7) 5a66a2b9c5 Merge branch 'MDL-30042-MOODLE_21_STABLE-1' of git://git.luns.net.uk/moodle into MOODLE_21_STABLE 2011-11-23 03:07:25 +01:00
Eloy Lafuente (stronk7) 4df0583e21 Merge branch 'MDL-27045_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-11-23 03:02:26 +01:00
Sam Hemelryk f99bd07ab6 Merge branch 'MDL-30192_21' of git://github.com/stronk7/moodle into MOODLE_21_STABLE 2011-11-23 14:20:10 +13:00
Sam Hemelryk aa1d8c5cde Merge branch 'MDL-29904-M21' of git://github.com/lazydaisy/moodle into MOODLE_21_STABLE 2011-11-23 13:57:38 +13:00
AMOS bot 673baa5a49 Automatically generated installer lang files 2011-11-23 00:31:03 +00:00
Eloy Lafuente (stronk7) 156ec7701e Merge branch 'm21_MDL-30223' of git://github.com/danmarsden/moodle into MOODLE_21_STABLE 2011-11-23 01:22:20 +01:00
Eloy Lafuente (stronk7) 30a83348fe Merge branch 'MDL-30402-install-string_21_STABLE' of git://github.com/mudrd8mz/moodle into MOODLE_21_STABLE 2011-11-23 01:07:58 +01:00
Mary Evans 97186f31a8 MDL-30164 FIX for missing gap between icon and text in reports 2011-11-23 12:59:07 +13:00
Mary Evans cd931a8f1b MDL-30196 changed reference from Serenity to Sky High in theme_sky_high.php 2011-11-23 12:50:12 +13:00
Petr Skoda 9599370dff MDL-30303 fix media playback from URLs with ? query parts
Credit for the rawurlencode() fix goes to Eloy.
2011-11-23 12:17:57 +13:00
Aparup Banerjee d81e6cc96e Merge branch 'MDL-30397_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-11-22 17:17:40 +08:00
David Mudrak 2b50d26f00 MDL-30402 Removing hard-coded English string from the CLI installer 2011-11-22 10:04:35 +01:00
Aparup Banerjee f0c67f5f02 Merge branch 'MDL-30194-m21' of git://github.com/phalacee/moodle into MOODLE_21_STABLE 2011-11-22 16:17:44 +08:00
Aparup Banerjee 52f04e91a1 Merge branch 'wip-mdl-29396-m21' of git://github.com/rajeshtaneja/moodle into MOODLE_21_STABLE 2011-11-22 16:10:29 +08:00
Rajesh Taneja a7371c4d8c MDL-29396 core: ip blocking will be bypassed for cli scripts - Thanks Petr 2011-11-22 16:09:16 +08:00
Tim Hunt 70f24aebbf MDL-30397 qformat_xml::format() should be public. 2011-11-22 07:22:10 +00:00
Aparup Banerjee da86b56615 Merge branch 'MDL-27703_user_report_sql_21' of git://github.com/andyjdavis/moodle into MOODLE_21_STABLE 2011-11-22 14:25:06 +08:00
Sam Hemelryk 4236448a19 Merge branch 'MDL-28629_MOODLE_21_STABLE' of git://github.com/mouneyrac/moodle into MOODLE_21_STABLE 2011-11-22 18:28:30 +13:00
Rajesh Taneja 785ff2b69f MDL-30394 Backup: Removed popup, inserted by 27790 during restore in new course 2011-11-22 12:05:22 +08:00
Rajesh Taneja 679d738636 MDL-30391 Backup: Exception in restore should be thrown as it is to be handled by calling function 2011-11-22 11:42:19 +08:00
Rajesh Taneja 79c4fef51f MDL-28947 lib: print_object cleans html special chars before printing 2011-11-22 09:29:41 +08:00
AMOS bot 516a904af3 Automatically generated installer lang files 2011-11-22 00:30:53 +00:00
Sam Hemelryk 27bc295382 Merge branch 'MDL-30392_21' of git://github.com/stronk7/moodle into MOODLE_21_STABLE 2011-11-22 12:59:37 +13:00
Eloy Lafuente (stronk7) 7c0df73abb MDL-30392 DML - Fix old-style delete_records() call 2011-11-22 00:43:57 +01:00
Eloy Lafuente (stronk7) f249bab334 Merge branch 'mdl-23006-xmldb-missing-strings-m21' of git://github.com/sbourget/moodle into MOODLE_21_STABLE 2011-11-21 19:43:12 +01:00
Andrew Robert Nicols 2f14dd463b MDL-30174 Assignment : Only increment submission offset if the current assignment was not saved 2011-11-22 02:21:34 +08:00
Andrew Robert Nicols 12216d31ff MDL-30173 Assignment : Convert to use moodle_url and add missing filter param 2011-11-22 02:04:46 +08:00
Aparup Banerjee 7d584b168b Merge branch 'MDL-29814_blank_emails2_21' of git://github.com/andyjdavis/moodle into MOODLE_21_STABLE 2011-11-22 01:21:31 +08:00
Aparup Banerjee 2823fe83d9 Merge branch 'wip-MDL-30289-MOODLE_21_STABLE' of git://github.com/abgreeve/moodle into MOODLE_21_STABLE 2011-11-21 14:02:52 +08:00
Aparup Banerjee d047cf60ae Merge branch 'MDL-30279-m21' of git://github.com/ankitagarwal/moodle into MOODLE_21_STABLE 2011-11-21 11:52:39 +08:00
Andrew Robert Nicols 8e74088cc1 MDL-29591 Check for permission before overwriting course idnumber when restoring 2011-11-21 02:34:11 +01:00
Charles Fulton f6bbbbf33f MDL-30289 forum - set page context when pruning a discussion 2011-11-21 09:09:03 +08:00
Mary Evans ced260583a MDL-30236 removed outlawed javasript from theme_anomaly 2011-11-21 13:27:41 +13:00
Petr Skoda 737c229ea6 MDL-30308 outputrequirementslib.php breaks xhtml validation
Credit goes to Matthew Davidson.
2011-11-21 12:40:12 +13:00
Sam Hemelryk 2712c59da7 MDL-30359 theme_base Fixed regression with course completion icons 2011-11-21 11:30:43 +13:00
Mary Evans e0acecab96 MDL-29904-M21 FIX to add pagelayout=>report 2011-11-20 19:39:06 +00:00
Tim Hunt 484c3c70f7 MDL-29060 q export: writefiles should be public write_files & belongs to XML format.
Conflicts:

	question/format/xml/format.php
2011-11-20 11:58:42 +00:00
AMOS bot 16ada8d30e Automatically generated installer lang files 2011-11-20 00:30:49 +00:00
Andrew Davis 9694f1c114 MDL-29814 message: made html personal messages also store a plain text version as a fallback 2011-11-19 15:37:45 +08:00
Mary Evans 1097299e59 MDL-29226-M21 RTL fixes - additions and amendments 2011-11-19 01:10:35 +00:00
AMOS bot 81b24b17cf Merge branch 'MOODLE_21_STABLE' into install_21_STABLE 2011-11-19 00:31:04 +00:00
Mary Evans 339beda38b MDL-30359-M21 Fixes for dir-rtl in theme_base CSS 2011-11-18 23:50:32 +00:00
Eloy Lafuente (stronk7) 6498060a7c MDL-30192 restore - prevent any extra info to be created for deleted users 2011-11-18 13:04:38 +01:00
Charles Fulton 674d35ba51 MDL-30273 forum - prevent the creation of discussions in simple single forums 2011-11-18 15:33:37 +08:00
adrian@moodle.com 97aef9b3ad MDL-20627 user - Fixed viewing permission of email when sending group messages. 2011-11-18 14:42:23 +08:00
AMOS bot 7138495b4b Automatically generated installer lang files 2011-11-18 00:30:55 +00:00
Eloy Lafuente (stronk7) cf04ce3a50 weekly release 2.1.2+ 2011-11-18 01:30:06 +01:00
Eloy Lafuente (stronk7) b7341aa136 Merge branch 'install_21_STABLE' of git://github.com/amosbot/moodle into MOODLE_21_STABLE 2011-11-18 01:18:14 +01:00
Eloy Lafuente (stronk7) 2b38c7bea5 MDL-29350 Prevent memory/time problems if there are zillions of combinations 2011-11-17 20:22:51 +01:00
Eloy Lafuente (stronk7) 6c628d482a Merge branch 'MDL-29350-MOODLE_21_STABLE-2' of git://git.luns.net.uk/moodle into MOODLE_21_STABLE 2011-11-17 20:16:13 +01:00
Tim Hunt 0f8e22ee96 MDL-27045 formslib: fix disabledif for advcheckbox
This is based on earlier work by Henning Bostelmann and Tom Potts.
2011-11-17 18:01:52 +00:00
Charles Fulton 473dfcee8d MDL-30279 show full date and time for all wiki revisions 2011-11-17 09:05:01 +05:30
Sam Hemelryk 02c43cd86a Merge branch 'MDL-24577-MOODLE_21_STABLE-1' of git://git.luns.net.uk/moodle into MOODLE_21_STABLE 2011-11-17 14:54:27 +13:00
AMOS bot 2675160b8e Automatically generated installer lang files 2011-11-17 00:55:31 +00:00
Eloy Lafuente (stronk7) d3606a9a84 Merge branch 'MDL-29743_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-11-17 01:22:41 +01:00
Sam Hemelryk 18b7d18959 Merge branch 'MDL-29893-m21' of git://github.com/ankitagarwal/moodle into MOODLE_21_STABLE 2011-11-17 13:07:33 +13:00
Eloy Lafuente (stronk7) 1e7732cec6 Merge branch 'MDL-30069_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-11-17 00:45:28 +01:00
Eloy Lafuente (stronk7) 372d9df650 Merge branch 'MDL-30122_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-11-17 00:35:12 +01:00
Eloy Lafuente (stronk7) 71a215991d Merge branch 'MDL-30167_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-11-17 00:31:24 +01:00
Eloy Lafuente (stronk7) 830969cc63 Merge branch 'MDL-30186_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-11-17 00:11:02 +01:00
Eloy Lafuente (stronk7) 96ec3502f0 Merge branch 'MDL-30199_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-11-17 00:08:40 +01:00
Eloy Lafuente (stronk7) 373c70e5d5 Merge branch 'MDL-30209_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-11-17 00:02:16 +01:00
Eloy Lafuente (stronk7) edfcab2970 Merge branch 'MDL-30300_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-11-16 23:59:45 +01:00
Nadav Kavalerchik 1db5119839 MDL-27516 Several CSS fixes for right to left languages 2011-11-17 11:41:18 +13:00
Mary Evans 24dad096ca MDL-30283-M20 FIX coding errors 2011-11-16 19:01:40 +01:00
Tim Hunt 45918dedf9 MDL-30300 question behaviours: improve q compatibility API. 2011-11-16 10:53:23 +00:00
Ankit Kumar Agarwal 552cff42a3 MDL-29893 Fixing issues with password generation function 2011-11-16 12:00:11 +05:30
AMOS bot 4e7cec54a2 Automatically generated installer lang files 2011-11-16 00:55:57 +00:00
Dan Marsden 71923e963b SCORM AICC MDL-30223 invalid call to update_record - very hard to test/reproduce. 2011-11-16 08:49:29 +13:00
Henning Bostelmann 3815ecf471 MDL-29350 Prevent duplication of groupings when copying activities
This patch also includes a database upgrade to correct data produced as a
result of this bug.
2011-11-15 11:10:42 +00:00
Tim Hunt bf850b4b18 MDL-30209 quiz refers to wrong rendere method in two places.
Thanks to Dan Marsden for working out the fix.
2011-11-15 11:03:04 +00:00
Tim Hunt 5255100dac MDL-30199 qtype numerical etc. Don't require tolerance for answer *. 2011-11-15 11:02:35 +00:00
Tim Hunt 256a93c9b5 MDL-30186 qtype editing forms should use advcheckbox. 2011-11-15 11:02:01 +00:00
Tim Hunt 4493fe9c90 MDL-30167 qtype_numerical: notice when required unit is not in the answer. 2011-11-15 11:01:29 +00:00
Tim Hunt 471992218f MDL-30185 question engine reporting: add redundant where to query for perf.
Without this, MySQL fails to cope.
2011-11-15 11:00:55 +00:00
Tim Hunt 195a8b7840 MDL-30069 Question type icons missing in lots of places. 2011-11-15 11:00:26 +00:00
Tim Hunt 1af4e4a874 MDL-29743 quiz: Finish attempt link didn't save responses in some brosers.
Thanks to Brandon Browning for identifying the problem. It is quite subtle why this typo would have this effect. You need to look at the implementation of the preventDefault method in lib/yui/3.4.1/build/event-base/event-base.js.
2011-11-15 10:59:51 +00:00
Oleg Sychev 7a3cd7d57c MDL-29095: initialise_question_instance should use extra_question_fields
Shortanswer question type converted to use extra question fields.

Signed-off-by: Oleg Sychev <oasychev@gmail.com>
2011-11-15 10:59:22 +00:00
Eloy Lafuente (stronk7) e25ecdfcf3 weekly release 2.1.2+ 2011-11-15 11:07:52 +01:00
Eloy Lafuente (stronk7) 88f8312aa0 Merge branch 'install_21_STABLE' of git://github.com/amosbot/moodle into MOODLE_21_STABLE 2011-11-15 10:55:11 +01:00
AMOS bot c4972aca4a Automatically generated installer lang files 2011-11-15 00:55:21 +00:00
Sam Hemelryk fcd27b4981 Merge branch 'MDL-28670_m21' of git://github.com/nebgor/moodle into MOODLE_21_STABLE 2011-11-14 17:50:47 +13:00
Aparup Banerjee bf8ab84950 MDL-28670 webservice : (review) changes improving performance 2011-11-14 11:26:11 +08:00
Mary Evans 66e9f5c965 MDL-30010FIX for pagelayout problems when moving blocks 2011-11-14 12:14:15 +13:00
AMOS bot 5ad0823134 Automatically generated installer lang files 2011-11-13 15:14:36 +01:00
AMOS bot bf1f6c769f Automatically generated installer lang files 2011-11-13 00:55:22 +00:00
AMOS bot bf98f9e6a0 Automatically generated installer lang files 2011-11-12 00:55:34 +00:00
Aparup Banerjee de3476d171 Merge branch 'wip-mdl-29638-m21' of git://github.com/rajeshtaneja/moodle into MOODLE_21_STABLE 2011-11-11 17:00:56 +08:00
Jerome Mouneyrac 375c26deb3 MDL-28629 more checks during web service authentication 2011-11-11 16:19:47 +08:00
andrew 1542c91c8e MDL-27703 gradebook: altered an sql query in the user report. join with no on clause causes an error in some DBs 2011-11-11 14:31:44 +08:00
Aparup Banerjee 5c04356ed4 MDL-27037 wiki : fixed whitespace. 2011-11-11 13:28:16 +08:00
Mayank Gupta cdc502c531 MDL-27037, wiki does not support visiblegroups functionality 2011-11-11 13:27:58 +08:00
Aparup Banerjee 7159b53324 Merge branch 'wip-MDL-26712-stable21' of git://github.com/phalacee/moodle into MOODLE_21_STABLE 2011-11-11 11:26:44 +08:00
Eloy Lafuente (stronk7) cd6ac6c8b8 Merge branch 'MDL-29035-m21' of git://github.com/ankitagarwal/moodle into MOODLE_21_STABLE 2011-11-11 02:43:46 +01:00
Eloy Lafuente (stronk7) 3a2fc5926a Merge branch 'MDL-22351-M21' of git://github.com/lazydaisy/moodle into MOODLE_21_STABLE 2011-11-11 02:34:16 +01:00
Eloy Lafuente (stronk7) c35c8eb8e6 Merge branch 'mdl-29529-assignment-submission-sorting-m21-2' of git://github.com/sbourget/moodle into MOODLE_21_STABLE 2011-11-11 01:18:58 +01:00
Stephen Bourget 4aef860aec MDL-29529 Assignment: Fix regression caused by MDL-27638 2011-11-10 17:08:43 -05:00
Andrew Robert Nicols 5720c0b1ff MDL-30042: Sanitize httpwwwroot in mnet jump 2011-11-10 10:21:32 +00:00
Eloy Lafuente (stronk7) 0242c9ba9e Merge branch 'MDL-30045' of git://github.com/mouneyrac/moodle into MOODLE_21_STABLE 2011-11-10 01:54:34 +01:00
Eloy Lafuente (stronk7) 8ec13b3312 Merge branch 'MDL-28426_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-11-10 01:33:47 +01:00
Eloy Lafuente (stronk7) 147ec85e06 Merge branch 'MDL-30158-m21' of git://github.com/ankitagarwal/moodle into MOODLE_21_STABLE 2011-11-10 00:22:42 +01:00
Petr Skoda a3367a1711 MDL-30150 support frankenstyle in page type callbacks 2011-11-10 09:43:33 +13:00
Eloy Lafuente (stronk7) 4ca2c772be NOBUG: Whitespace fixes 2011-11-09 16:31:35 +01:00
Eloy Lafuente (stronk7) 4eeae5a673 Merge branch 'MDL-27542b_m21' of git://github.com/rwijaya/moodle into MOODLE_21_STABLE 2011-11-09 15:56:26 +01:00
Aparup Banerjee 0eb0583d9d Merge branch 'MDL-29620-workshop-sequence_21_STABLE' of git://github.com/mudrd8mz/moodle into MOODLE_21_STABLE 2011-11-09 17:55:17 +08:00
Sun Zhigang d56fe710e6 MDL-29656 Fix bad string reference 2011-11-09 16:46:40 +08:00
Dan Poltawski be82e0a689 MDL-29696 mod/data - fixed page continuing after footer. 2011-11-09 15:43:33 +08:00
Sun Zhigang 113f6b5c79 MDL-29722 - No default guest enrol instance for requested courses 2011-11-09 15:23:20 +08:00
Jason Fowler 17ea5774eb MDL-30194 - Lib - Fixing phpdoc for clean_param 2011-11-09 14:58:39 +08:00
Aparup Banerjee bc1f567d38 Merge branch 'MDL-29977-mnet-masquerade_21_STABLE' of git://github.com/mudrd8mz/moodle into MOODLE_21_STABLE 2011-11-09 13:38:53 +08:00
Aparup Banerjee 07340448fe Merge branch 'MDL-30021_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-11-09 13:04:02 +08:00
Dan Poltawski 18611b3dbc MDL-29812 partcipiant report - breaks when filtering by user 2011-11-09 11:17:28 +08:00
Aparup Banerjee bace4ce456 Merge branch 'wip-MDL-24200-stable21' of git://github.com/phalacee/moodle into MOODLE_21_STABLE 2011-11-09 11:04:40 +08:00
Eloy Lafuente (stronk7) fe23b6e72f Merge branch 'm21_MDL-29159' of git://github.com/danmarsden/moodle into MOODLE_21_STABLE 2011-11-09 02:25:50 +01:00
AMOS bot 8a65e45adf Automatically generated installer lang files 2011-11-09 00:55:29 +00:00
Eloy Lafuente (stronk7) b797666fe8 Merge branch 'MDL-29803' of git://git.luns.net.uk/moodle into MOODLE_21_STABLE 2011-11-09 00:43:50 +01:00
Aparup Banerjee 3aed25accd Merge branch 'MDL-29739_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-11-08 20:35:21 +08:00
Aparup Banerjee b57566d3be Merge branch 'MDL-29970_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-11-08 16:48:40 +08:00
Aparup Banerjee 40b90130a0 Merge branch 'wip-mdl-27521-stable21' of git://github.com/phalacee/moodle into MOODLE_21_STABLE 2011-11-08 15:18:42 +08:00
Aparup Banerjee f598387441 Merge branch 'wip-mdl-27790-m21' of git://github.com/rajeshtaneja/moodle into MOODLE_21_STABLE 2011-11-08 14:51:20 +08:00
Rajesh Taneja aa2b2c4e31 MDL-27790 Backup: Added warning message to let user know that temporary course will be created for restoration process 2011-11-08 14:47:41 +08:00
Rajesh Taneja 5a301c16a1 fixed 2011-11-08 14:47:34 +08:00
Rajesh Taneja 5f30ffdac1 MDL-27790 Backup: temperory course will be deleted in case of exception and cancellation of restore process 2011-11-08 14:47:28 +08:00
Rossiani Wijaya 0ff996b0a9 MDL-29115 lesson mod: fixed the display of 'try again' button so it relates to lesson setting 2011-11-08 12:12:46 +08:00
Aparup Banerjee 3e99f27558 Merge branch 'MDL-30135_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-11-08 11:45:33 +08:00
Aparup Banerjee a49a4aecb2 Merge branch 'MDL-30137_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-11-08 11:38:29 +08:00
Aparup Banerjee 42d96d7c2e MDL-30154 Repositories : fixed whitespace. 2011-11-08 11:30:54 +08:00
Aparup Banerjee d4d070fc35 Merge branch 'MDL-30154_21_wip' of git://github.com/grabs/moodle into MOODLE_21_STABLE 2011-11-08 11:30:06 +08:00
Ankit Kumar Agarwal 1ceb53f945 MDL-30158 Questions Cleaning up blackboard/format.php 2011-11-08 07:41:25 +05:30
Sam Hemelryk 2331e2eddd Merge branch 'MDL-25823_m21' of git://github.com/rwijaya/moodle into MOODLE_21_STABLE 2011-11-08 13:09:44 +13:00
Sam Hemelryk c2d7c22962 Merge branch 'wip-MDL-30059-stable21' of git://github.com/phalacee/moodle into MOODLE_21_STABLE 2011-11-08 12:05:39 +13:00
Sam Hemelryk 3fb3517a00 Merge branch 'MDL-2942-m21' of git://github.com/ankitagarwal/moodle into MOODLE_21_STABLE 2011-11-08 12:02:59 +13:00
Tony Levi 5931af6ce5 MDL-24577: Fix mark all posts in this discussion read doesn't work completely correct 2011-11-07 13:00:01 +00:00
Tim Hunt 6636527808 MDL-30135 question formats: trans_format/get_format should be public.
They need to be used by third-party qtype developers.
2011-11-07 11:37:49 +00:00
Rossiani Wijaya bf870f7f2d MDL-27542 calendar export: fixed the following:
1. changing auth token to use user id instead of username
2. add fall back checking for old url
3. remove yui functionality to generate calendar url
4. add missing variable
5. fixed usercontext instance
2011-11-07 17:06:03 +08:00
Jason Fowler 253be7381f MDL24200 - Admin Users - Changing the submit button to just a button to prevent it from taking focus when entering text. (Patch provided by Hubert Chathi) 2011-11-07 15:37:21 +08:00
Aparup Banerjee cc9a416086 MDL-28670 webservice : added dimming of service name in security keys page if webservice is disabled or not on authorised list to access webservice. 2011-11-07 14:22:57 +08:00
Mark Nielsen c8972b9909 MDL-30059: Assignment Submission Notification Should Use Teacher's Timezone Rather Than Server Time 2011-11-07 13:37:30 +08:00
Sam Hemelryk 875ffd3734 MDL-28292 block_html: white space fix 2011-11-07 12:33:32 +13:00
Sam Hemelryk fb09c60c5e Merge branch 'wip-MDL-28292-stable21' of git://github.com/phalacee/moodle into MOODLE_21_STABLE 2011-11-07 12:24:21 +13:00
Sam Hemelryk ace2712e43 Merge branch 'MDL-29955_m21' of git://github.com/rwijaya/moodle into MOODLE_21_STABLE 2011-11-07 11:41:25 +13:00
Andreas Grabs 280854dc21 MDL-30154 - WebDAV-Repository fails on some WebDAV-Server 2011-11-06 22:10:49 +01:00
AMOS bot 26fa36381d Automatically generated installer lang files 2011-11-05 00:55:37 +00:00
Tim Hunt 0bf39d0c55 MDL-30137 question engine: Ugglify the SQL to appease MS SQL server. 2011-11-04 15:03:40 +00:00
David Mudrak daccd72436 MDL-29620 workshop table id sequence reset after the upgrade 2011-11-04 12:40:55 +01:00
David Mudrak e74ffa9215 MDL-29977 MNet does not allow to start a remote session when masquerading as another user 2011-11-04 09:42:39 +01:00
Ankit Kumar Agarwal 43b5e6bf57 MDL-29420 Global Search Fixing string issue 2011-11-04 12:08:45 +05:30
Mary Evans c9b3258ccc wip-MDL-22351 convert Anomaly CSS to readable format 2011-11-04 02:53:56 +00:00
AMOS bot 7986e5260c Automatically generated installer lang files 2011-11-04 00:55:33 +00:00
Dan Marsden 82fe152cea SCORM MDL-29159 - override getContentHtml function in treeview so that it doesn't escape text incorrectly 2011-11-04 00:24:59 +13:00
Tim Hunt 8bf2359662 MDL-30021 qtype numerical better showunits default when coming from 1.9
This applies to:
1. Upgrade from 1.9,
2. Import of questions exported from 1.9, and
3. Restore of courses backed-up from 1.9.

It also applies to the calculated question type.
2011-11-03 10:42:57 +00:00
Charles Fulton d76a78afae MDL-29970 question preview: Fill correct only if qtype supports it 2011-11-03 10:38:04 +00:00
Tim Hunt 5eb4001050 MDL-29739 question import used a bad default for text formats.
The new logic is that the questiontext defaults to HTML if the format is
not specified, then all other fields default to the same format of the
question text.

However, good practice is that the XML file should specify the format
for each bit of text content.

This code is not 100% backwards-compatible, since some methods have new
arguments, however for question types that have not been updated, it
will just generate a PHP Warning, which is, I think, and OK way to let
qtype developers know that they need to update their question types.
2011-11-03 10:37:35 +00:00
Tim Hunt 2dd93c071a MDL-28426 qtype base export_to_xml does not write format.
Fix based on Roger Moore's patch.
2011-11-03 10:37:08 +00:00
Jason Fowler 930bbe97c6 MDL-28292 - Blocks - Patch supplied by Chris Follin to fix blocks with empty titles that disappear when docked 2011-11-03 16:31:43 +08:00
Rajesh Taneja a5b30b0463 MDL-25937 Forms Library: Filepicker will respect disable if 2011-11-03 13:37:58 +08:00
Rajesh Taneja b2595cb67b MDL-25937 Froms Library: Added server side validation for filepicker and filemanager 2011-11-03 13:37:58 +08:00
Jason Fowler 2c5be3e552 MDL-26712 Themes - Correcting text dimming for hidden labels 2011-11-03 13:25:14 +08:00
Ankit Kumar Agarwal 6b67218be3 MDL-29035 Backups making email match case-insensitive when restoring backups 2011-11-03 10:32:24 +05:30
Rossiani Wijaya 76a526a270 MDL-25823 lesson mod: fixed true and false question feedback. 2011-11-03 12:46:11 +08:00
AMOS bot c28c9a2d89 Automatically generated installer lang files 2011-11-03 00:55:35 +00:00
Eloy Lafuente (stronk7) f08f22c267 weekly release 2.1.2+ 2011-11-02 19:53:29 +01:00
Eloy Lafuente (stronk7) d4a8a15d7f Merge branch 'install_21_STABLE' of git://github.com/amosbot/moodle into MOODLE_21_STABLE 2011-11-02 19:48:42 +01:00
Jerome Mouneyrac 500ba8b11e MDL-30043 token.php should not return a mix of EXTERNAL_TOKEN_PERMANENT and EXTERNAL_TOKEN_EMBEDDED 2011-11-02 15:24:10 +08:00
Jerome Mouneyrac fae4f8f1b9 MDL-29931 remove unneeded join and selects 2011-11-02 15:23:44 +08:00
Jerome Mouneyrac 0d7773c098 MDL-29716 Make token more flexible to support third party client - also fix issue with some code not matching the way the server authenticate/authorize token, missing iprestriction/validuntil for restricted users (there are iprestriction/validiuntil on token and on restricted user). Also add missing check when the user is not listed in the authorised list. 2011-11-02 15:23:22 +08:00
Eloy Lafuente (stronk7) 3d4bcfbddf Merge branch 'MDL-29879_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-11-01 20:13:26 +01:00
Eloy Lafuente (stronk7) c3a648c342 Merge branch 'm21_MDL-29213' of git://github.com/danmarsden/moodle into MOODLE_21_STABLE 2011-11-01 19:54:53 +01:00
Dan Poltawski 541a9978a8 MDL-29803 report/logs - don't retrieve all users uncessarily
Also remove uncessary retrieval of idnumber

Helps display the main logs page on large sites without running out of
memory
2011-11-01 16:36:22 +00:00
Tim Hunt 2c1773b908 MDL-29879 qbehaviour missing. Fix bad lang string. 2011-11-01 10:38:39 +00:00
Aparup Banerjee c880538684 Merge branch 'w43_MDL-30005_m21_uri' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-11-01 15:19:51 +08:00
Petr Skoda de79cbe32b MDL-30005 regression fix for non http/ftp urls 2011-11-01 07:57:08 +01:00
Sam Hemelryk 7f422374c1 MDL-28720 calendar: Quick fix of a regression in set.php 2011-11-01 17:50:28 +13:00
Aparup Banerjee 65af1129c5 Merge branch 'w43_MDL-29990_m21_navcontinue' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-11-01 12:16:10 +08:00
Aparup Banerjee df1d01c9f7 Merge branch 'MDL-29787_M21' of git://github.com/lazydaisy/moodle into MOODLE_21_STABLE 2011-11-01 12:07:22 +08:00
Sam Hemelryk 2acd50840c Merge branch 'w43_MDL-29980_m21_flowcss' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-11-01 16:52:31 +13:00
Tim Hunt ce5b99077c MDL-29164 question import, missing lang string.
AMOS BEGIN
 CPY [noquestionsinfile,mod_quiz],[noquestionsinfile,question]
AMOS END
2011-11-01 16:48:25 +13:00
Gerwood Stewart 5e876cd379 MDL-27521 Updates the can_finalize and can_unfinalize methods to deal with passing a submission object that isn't one (in this case is a Boolean value). This will result in both methods now returning false. Kick on effect is that it corrects the bug described in MDL-27521 by removing the button if it isn't possible to finalize the submission. 2011-11-01 11:46:36 +08:00
Sam Hemelryk 9fc8435c21 Merge branch 'MDL-29197-M21' of git://github.com/lazydaisy/moodle into MOODLE_21_STABLE 2011-11-01 16:11:44 +13:00
Sam Hemelryk 685cc34c18 Merge branch 'MDL-25760_M21' of git://github.com/lazydaisy/moodle into MOODLE_21_STABLE 2011-11-01 15:58:14 +13:00
AMOS bot ec0a00ea27 Automatically generated installer lang files 2011-11-01 00:55:20 +00:00
Sam Hemelryk 5e56574d55 Merge branch 'w43_MDL-29925_m21_calendar' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-11-01 09:38:10 +13:00
Aparup Banerjee 2d930dc6dd Merge branch 'w43_MDL-29966_m21_grouploading' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-10-31 16:05:51 +08:00
Aparup Banerjee 4f14428adc Merge branch 'w43_MDL-29984_m21_enroltoday' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-10-31 15:26:09 +08:00
Aparup Banerjee 4f0ad6fc94 MDL-30005 URL : fixed typos 2011-10-31 15:17:48 +08:00
Aparup Banerjee 340aa2008f Merge branch 'w43_MDL-30005_m21_uri' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-10-31 15:17:15 +08:00
Rossiani Wijaya 5fd928d633 MDL-29955: filestorage/file_types: add support for .f4v, .m4v and .webm 2011-10-31 15:15:32 +08:00
Sam Hemelryk 1322584287 Merge branch 'w43_MDL-28720_m21_calendarreturn' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-10-31 17:31:49 +13:00
Jamie Pratt 2df5a98299 MDL-27919 Fixed a regression where I was seeing that after choosing "Overwrite"
in a filemanager form component when subsequently trying to add another file the
file picker would then immediately close upon opening.
2011-10-31 17:18:58 +13:00
Jamie Pratt cb28940596 MDL-27919 also adding a callback to the filepicker when a file is overwritten
but a file with the same name. This is not necessary in most cases but is
instant and some code may expect a call to the function whether the url and / or
file name has changed or not so it can update itself when the file changes.
2011-10-31 17:18:58 +13:00
Jamie Pratt 44915324c8 MDL-27919 Fixes 'undefined' message and similar problems when selecting a
recent file, server file or when renaming a file being uploaded with the same
name as a previous one.
2011-10-31 17:18:57 +13:00
Sam Hemelryk 7a6d43a3ee Merge branch 'MDL-29810-21' of git://github.com/bostelm/moodle into MOODLE_21_STABLE 2011-10-31 17:10:41 +13:00
Dan Marsden 1bd3952b19 MDL-29213 SCORM - fix for bug with flash player and IE 9 2011-10-31 14:58:46 +13:00
Mary Evans cfaa48041a MDL-29197 FIX for content displacment when clicking anchor elements in course page 2011-10-31 01:55:03 +00:00
Sam Hemelryk 376d035af9 Merge branch 'MDL-30006-workshop-grades_21_STABLE' of git://github.com/mudrd8mz/moodle into MOODLE_21_STABLE 2011-10-31 13:05:53 +13:00
Sam Hemelryk c440076d2b Merge branch 'm21_MDL-28559' of git://github.com/danmarsden/moodle into MOODLE_21_STABLE 2011-10-31 13:00:08 +13:00
Sam Hemelryk d612fa300e Merge branch 'm21_MDL-29965' of git://github.com/danmarsden/moodle into MOODLE_21_STABLE 2011-10-31 12:56:18 +13:00
Sam Hemelryk 84ac3ff122 Merge branch 'MDL-29898-MOODLE_21_STABLE-1' of git://git.luns.net.uk/moodle into MOODLE_21_STABLE 2011-10-31 12:44:31 +13:00
Petr Skoda 516dd9c525 MDL-30005 bump up version after lang string change 2011-10-30 23:54:01 +01:00
Petr Skoda 4064642b37 MDL-30005 fix general URI support in URL module
The recent change completely removed support for general URIs and enforced strict URL validation which was breaking backwards compatibility and was not user friendly at all.

This patch finally adds full URI support with basic validation and fixes some older xhtml strict issues.

Please note we do not try to explain the difference between URL and URI to our users. Also keep in mind that mod/url has XSS risk and does not do any security validation of the data.
2011-10-30 23:53:55 +01:00
David Mudrak 08fb23840e MDL-30006 Workshop / Number of errors grading: force graders to actually answer the form
QuickForms do not distinguish non-checked radio from the checked radio
with the value "0". So we map the database grade value "0" to a value
"-1" when displaying the form and vice versa when saving the form. This
allowed us to have none radios checked by default and force the grader
to actually answer the form themselves, using the 'required' rule.
2011-10-30 20:16:08 +01:00
David Mudrak 112f7d41ea MDL-30006 Workshop / Accumulative grading: force graders to actually pick a grade
This patch introduces a new hidden field with the value "-1". The grade
selectors are compared with this values and must be greater than it.
This should fit well for numerical grades with the range 0..x and scale
items with the range 1..x.
2011-10-30 20:16:01 +01:00
Petr Skoda 364c32f0c1 MDL-29990 fix syntax error 2011-10-29 10:00:29 +02:00
Dan Marsden 75658ad2ca SCORM MDL-29965 improve display of SCORM package - decrease unecessary padding 2011-10-29 15:34:13 +13:00
AMOS bot a4ab3f9840 Automatically generated installer lang files 2011-10-29 00:55:20 +00:00
Petr Skoda 0d2672748c MDL-28720 fix set.php return url handling 2011-10-28 19:35:28 +02:00
Petr Skoda bc577df6a9 MDL-29925 improve redirect url cleanup 2011-10-28 19:33:06 +02:00
Petr Skoda c915b922b7 MDL-29966 fix invalid group loading image
Credit goes to Alexander Bias.
2011-10-28 15:50:06 +02:00
Petr Skoda 3dfaec6d6e MDL-29980 fix rules typo
Credit goes to Paul Nicholls.
2011-10-28 15:35:51 +02:00
Petr Skoda 8c41a90a9c MDL-29984 fix undefined $today when no course start date 2011-10-28 15:13:11 +02:00
Mary Evans 60a3ede47e MDL-25760 FIX for highlighted current topic section 2011-10-28 01:40:39 +01:00
Mary Evans 46dd3d8f6d MDL-29787 FIX to remove sprite hover image from single menu item 2011-10-28 00:39:22 +01:00
Henning Bostelmann 716267f233 MDL-29810 Assignment grading: don't include teachers in list of students 2011-10-27 22:19:15 +01:00
Eloy Lafuente (stronk7) 9de8774f09 weekly release 2.1.2+ 2011-10-27 18:53:34 +02:00
Eloy Lafuente (stronk7) 7f5d1ef3c0 Merge branch 'install_21_STABLE' of git://github.com/amosbot/moodle into MOODLE_21_STABLE 2011-10-27 18:49:09 +02:00
AMOS bot 6e03d19df5 Automatically generated installer lang files 2011-10-27 00:55:34 +00:00
Eloy Lafuente (stronk7) d21cdb8b3c MDL-29912 course search - oracle inabilities with concats, empties, nulls and type-restrictions 2011-10-27 12:59:56 +13:00
Tim Hunt 21c5b22d97 MDL-29854 questions: display better message and more useful continue
when an error occurs in the middle of processing responeses.
2011-10-26 15:16:37 +08:00
Dan Marsden 006106d640 MDL-28559 - hide send for marking button from people that are enrolled but don't have capability to submit files - displays the same way as teachers/admins - keeps ability to display previously submitted files if they exist 2011-10-26 10:55:31 +13:00
Sam Hemelryk 5c6ec45706 Merge branch 'MDL-29569_m21' of git://github.com/rwijaya/moodle into MOODLE_21_STABLE 2011-10-26 10:44:20 +13:00
Dan Poltawski 23f3d0e4ac MDL-26568 block_online_users - reporting incorrect number of users
When over 50 users were online the count used in the listing was incorrect
2011-10-25 23:35:22 +02:00
Stephen Bourget 3f4186c6dc MDL-29368 Assignment: Fixed a fatal error caused by a missing include 2011-10-25 19:19:35 +02:00
Eloy Lafuente (stronk7) fd26ea4218 Merge branch 'MDL-29815_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-10-25 17:44:10 +02:00
Eloy Lafuente (stronk7) c96deddbe7 MDL-29815 dbtest - added one test_get_records_sql_complicated related test 2011-10-25 17:38:38 +02:00
Aparup Banerjee c963b7e15b MDL-28718 quiz : fixed plugin requires version to reflect current moodle MOODLE_21_STABLE version. 2011-10-25 15:48:05 +08:00
Rossiani Wijaya cd4336433c MDL-29569: lesson_mod: in matching type questions, fixed and set default value for scoring and fixed jump page setting when response text is set to empty 2011-10-25 12:16:56 +08:00
Sam Hemelryk 68bbf58745 Merge branch 'MDL-28718_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-10-25 16:47:03 +13:00
Sam Hemelryk 523f4aa787 Merge branch 'wip-MDL-29231-stable21' of git://github.com/phalacee/moodle into MOODLE_21_STABLE 2011-10-25 15:19:12 +13:00
Petr Skoda b304495ee4 MDL-29444 use iframe embedding in IE
iframe is back in HTML 5, we can safely use it in IE for all text documents because object embedding has multiple problems
2011-10-25 14:32:12 +13:00
AMOS bot ce50619835 Automatically generated installer lang files 2011-10-25 00:55:21 +00:00
Eloy Lafuente (stronk7) 9ee2ba4676 Merge branch 'MDL-29339_b_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-10-25 01:54:10 +02:00
Sam Hemelryk 35e2ec4df5 Merge branch 'MDL-29906_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-10-25 12:25:06 +13:00
Sam Hemelryk 3a87f672b7 Merge branch 'w42_MDL-29862_m21_fullmeinit' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-10-25 11:50:10 +13:00
Eloy Lafuente (stronk7) 9aa5b604ec Merge branch 'w42_MDL-29867_m21_author' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-10-24 23:14:49 +02:00
Tim Hunt e52c5225ec MDL-29906 quiz statistics report: replace use of deprectaed helpbutton. 2011-10-24 16:20:49 +01:00
Andrew Robert Nicols 3eb03012f0 MDL-29898: Fix documentation for CLI DB only installer 2011-10-24 12:32:10 +01:00
Tim Hunt 8c7d6037e6 MDL-29339 Manually cast objects to string before calling dmllib. 2011-10-24 11:20:42 +01:00
Aparup Banerjee 3cc9205676 Merge branch 'MDL-29542_m21' of git://github.com/rwijaya/moodle into MOODLE_21_STABLE 2011-10-24 17:05:39 +08:00
Aparup Banerjee 3d336f2264 Merge branch 'MDL-29828_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-10-24 16:43:21 +08:00
Aparup Banerjee 2cc4660758 MDL-29527 RSS : improved language string. 2011-10-24 16:21:12 +08:00
Dan Poltawski f1dc5d01e1 MDL-29527 - RSS: Add a description to the reset keys page
Thanks to Alexander Bias for the suggestion
2011-10-24 16:20:55 +08:00
Aparup Banerjee fdb8574046 Merge branch 'MDL-29619-m21' of git://github.com/ankitagarwal/moodle into MOODLE_21_STABLE 2011-10-24 14:49:35 +08:00
Jason Fowler e2236bac8c MDL-29231 - Course, Resource - Fix so that the correct icon is displayed for courses that have had two or more files uploaded to them - Thanks Michael D for the patch 2011-10-24 14:36:09 +08:00
Aparup Banerjee 8eb6f9f7a7 Merge branch 'MDL-29646-m21' of git://github.com/ankitagarwal/moodle into MOODLE_21_STABLE 2011-10-24 13:52:51 +08:00
Aparup Banerjee b35dc1beb7 Merge branch 'MDL-29818-MOODLE_21_STABLE' of git://git.luns.net.uk/moodle into MOODLE_21_STABLE 2011-10-24 13:06:58 +08:00
AMOS bot 515b891bb7 Automatically generated installer lang files 2011-10-23 00:55:21 +00:00
Petr Skoda 1973078427 MDL-29867 fix invalid file author 2011-10-22 20:21:50 +02:00
Andreas Grabs e4f1b4db59 MDL-29806 - When a Feedback activity is restore the "Site after submit" URL is not updated and shows "$@PAGEVIEWBYID*15463@$" 2011-10-21 23:07:50 +02:00
Ankit Kumar Agarwal 49b266c07b MDL-29619 Validate urls before generating output 2011-10-21 14:14:04 +05:30
Petr Skoda 06f72d26d7 MDL-29862 incorrect wwwroot must be detected before session start 2011-10-21 09:53:13 +02:00
Rossiani Wijaya 68370e7bc6 MDL-29542 lesson module: changing qtype param type to INT 2011-10-21 12:40:51 +08:00
Tim Hunt 0750c0e114 MDL-29815 question engine DB: bad group-by clause detected by Oracle.
Thanks to Yanfei Lu for finding this and suggesting the fix.
2011-10-20 11:05:37 +01:00
Tim Hunt 77425798fb MDL-28718 block_quiz_results - add missing require_once. 2011-10-20 11:05:04 +01:00
Tim Hunt 57680da013 MDL-28718 block_quiz_results - add copyright headers. 2011-10-20 11:05:02 +01:00
Ankit Kumar Agarwal e7448d5102 MDL-29646 Scorm Fixing Regressions in userreport.php 2011-10-20 08:35:40 +05:30
Eloy Lafuente (stronk7) e04dba08b7 emergency release 2.1.2+ 2011-10-20 00:54:35 +02:00
Eloy Lafuente (stronk7) fbab740334 MDL-29496 course search - emergency regression fix 2011-10-20 00:49:34 +02:00
Eloy Lafuente (stronk7) 9065fddabb weekly release 2.1.2+ 2011-10-19 18:45:25 +02:00
Eloy Lafuente (stronk7) 26c8e82338 Merge branch 'install_21_STABLE' of git://github.com/amosbot/moodle into MOODLE_21_STABLE 2011-10-19 18:41:34 +02:00
Andrew Robert Nicols 73ebb5d7ab MDL-29818: Improve error message when a grade has no answer 2011-10-19 09:35:32 +01:00
Tim Hunt 32cb53a832 MDL-29828 quiz review: fix display of overdue time. 2011-10-19 09:10:25 +01:00
Sam Hemelryk 63cdff2429 MDL-28945 course_reports: Fixed up pagination issue 2011-10-19 16:50:40 +13:00
Sam Hemelryk 0b6713fe55 MDL-26953 theme_nonzero: Quick fix to incorrect left position 2011-10-19 16:27:01 +13:00
Eloy Lafuente (stronk7) 0e6186fb45 Merge branch 'wip-MDL-29496-stable21' of git://github.com/phalacee/moodle into MOODLE_21_STABLE 2011-10-18 11:00:35 +02:00
Eloy Lafuente (stronk7) 175bbb07f0 MDL-29496 unittests - verify COALESCE() cross-db compatibility 2011-10-18 16:01:42 +08:00
Sam Hemelryk bc23dbcf78 Merge branch 'MDL-29501-m21' of git://github.com/sammarshallou/moodle into MOODLE_21_STABLE 2011-10-18 11:39:24 +13:00
Eloy Lafuente (stronk7) 7edd6c250d Merge branch 'w41_MDL-28454_m21_yuibackport' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-10-17 16:24:10 +02:00
Sam Hemelryk a258bda0b5 Merge branch 'MDL-28170_21' of git://github.com/stronk7/moodle into MOODLE_21_STABLE 2011-10-17 18:51:58 +13:00
Sam Hemelryk f1618d9343 Merge branch 'MDL-26953-M21' of git://github.com/lazydaisy/moodle into MOODLE_21_STABLE 2011-10-17 17:37:16 +13:00
Sam Hemelryk 6adc168c96 Merge branch 'MDL-28945-m21' of git://github.com/sammarshallou/moodle into MOODLE_21_STABLE 2011-10-17 16:26:04 +13:00
Sam Hemelryk 24e5f9df63 Merge branch 'MDL-29781-M21' of git://github.com/lazydaisy/moodle into MOODLE_21_STABLE 2011-10-17 15:17:36 +13:00
Sam Hemelryk 297f40838a Merge branch 'MDL-26893-M21' of git://github.com/lazydaisy/moodle into MOODLE_21_STABLE 2011-10-17 13:55:18 +13:00
Eloy Lafuente (stronk7) dabf2c159f MDL-28170 environment - add new 2.2 section
nothing changes from 2.1 as far as it was agreed that this will be
the last version supporting 1.9 upgrade. See issue for details.
2011-10-17 02:11:53 +02:00
Eloy Lafuente (stronk7) 171bbdad02 Merge branch 'MDL-28219d-21' of git://github.com/bostelm/moodle into MOODLE_21_STABLE 2011-10-16 21:32:05 +02:00
Aparup Banerjee 4ca17ce1cd MDL-27351 Quiz : updated string to reflect validation looking for embedded questions. 2011-10-16 19:22:27 +02:00
Aparup Banerjee 46d1d80388 MDL-28436 webservice : fixed missing field in query 2011-10-16 19:13:34 +02:00
Eloy Lafuente (stronk7) 1e42eedbad MDL-29191 wiki - avoid one more username leak 2011-10-16 19:01:57 +02:00
Eloy Lafuente (stronk7) c2dc95003e Merge branch 'MDL-29191' of git://github.com/hit-moodle/moodle into MOODLE_21_STABLE 2011-10-16 18:50:04 +02:00
Petr Skoda a6bb03641e MDL-28454 backport YUI 2.9.0 and 3.4.1 from master 2011-10-16 18:16:48 +02:00
Stephen Bourget a6c348362a MDL-29698 Assignment: Fix broken logentry 2011-10-16 18:14:21 +02:00
Eloy Lafuente (stronk7) 52bc12cedc Merge branch 'MDL-28483-m21' of git://github.com/ankitagarwal/moodle into MOODLE_21_STABLE 2011-10-16 17:37:41 +02:00
Petr Skoda 00a3005485 MDL-29773 prevent negative unix timestamps in the files table 2011-10-16 16:52:01 +02:00
Petr Skoda cfb15041cf MDL-29773 use db debuginfo when file record insertion fails 2011-10-16 16:52:01 +02:00
Mary Evans 280f3a4a1c MDL-29781 FIX for side-post-only layout 2011-10-14 20:48:26 +01:00
Mary Evans a8b50f506a MDL-26953 FIX for side-post-only layout 2011-10-14 02:38:09 +01:00
AMOS bot d93fc6e1ad Automatically generated installer lang files 2011-10-14 00:55:27 +00:00
Tony Levi cc6b535972 MDL-28945: Fix course/activity completion reports initial selection broken 2011-10-13 17:03:09 +01:00
Ankit Kumar Agarwal 6bcfb5f23b MDL-28483 URL adding validation checks and changing field externalurl to not-null 2011-10-13 09:07:15 +05:30
Mary Evans 4a17d78395 MDL-26983 FIX for side-post-only layout 2011-10-13 02:59:55 +01:00
Sun Zhigang c38cfee97b MDL-29191 - Show creator's fullname instead of username 2011-10-13 08:19:55 +08:00
Henning Bostelmann c0c07d835d MDL-28219 QE2 adaptive behaviour: fix scores and penalties 2011-10-12 23:26:42 +01:00
Eloy Lafuente (stronk7) 263c52843b weekly release 2.1.2+ 2011-10-12 23:48:54 +02:00
Sam Hemelryk 9b0e51000e MDL-29224 navigation Fixed bug caused because in 20 and 21 onclick events get added to extra rather than onclick 2011-10-12 19:47:13 +13:00
Aparup Banerjee 42f5db3ca8 Merge branch 'wip-MDL-27278-m21' of git://github.com/samhemelryk/moodle into MOODLE_21_STABLE 2011-10-11 11:24:56 +08:00
Aparup Banerjee 4b7783da19 Merge branch 'wip-MDL-28549-m21' of git://github.com/samhemelryk/moodle into MOODLE_21_STABLE 2011-10-11 09:45:06 +08:00
Aparup Banerjee 489f5b1338 Merge branch 'wip-MDL-28582-m21' of git://github.com/samhemelryk/moodle into MOODLE_21_STABLE 2011-10-11 09:27:29 +08:00
Sam Hemelryk 28d838ba5e Merge branch 'MDL-29447_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-10-11 10:27:04 +13:00
sam marshall d33c06621a MDL-29501 Gradebook should not show links to activities that aren't available to user 2011-10-10 17:48:43 +01:00
Aparup Banerjee 415c4ee04f Merge branch 'wip-MDL-29224-m21' of git://github.com/samhemelryk/moodle into MOODLE_21_STABLE 2011-10-10 23:14:42 +08:00
Aparup Banerjee 1d6bb3a897 Merge branch 'wip-MDL-29672-m21' of git://github.com/samhemelryk/moodle into MOODLE_21_STABLE 2011-10-10 22:46:33 +08:00
Eloy Lafuente (stronk7) 63526ae3d5 MDL-29564 Assignment: whitespace fix 2011-10-10 13:10:07 +02:00
Sam Hemelryk b1913094d4 Merge branch 'MDL-16553-21' of git://github.com/bostelm/moodle into MOODLE_21_STABLE 2011-10-10 17:56:58 +13:00
Jason Fowler 2be90263ec MDL-29496 Search, Course - Code applied from patch to allow courses with a blank summary to be found in searchs - Thanks to Andrew Nicols for the patch 2011-10-10 11:38:15 +08:00
Sam Hemelryk 63a778838e Merge branch 'MDL-29661' of git://git.luns.net.uk/moodle into MOODLE_21_STABLE 2011-10-10 16:27:04 +13:00
Sam Hemelryk 27625e0fca Merge branch 'MDL-29692' of git://git.luns.net.uk/moodle into MOODLE_21_STABLE 2011-10-10 14:56:59 +13:00
Petr Skoda b15dee25e0 MDL-29686 obey caching setting for moodle yui modules 2011-10-10 12:28:35 +13:00
Sam Hemelryk 7fbb52d717 Merge branch 'MDL-29668_21' of git://github.com/stronk7/moodle into MOODLE_21_STABLE 2011-10-10 12:09:19 +13:00
Sam Hemelryk 2a0df64521 Merge branch 'MDL-29677_21' of git://github.com/stronk7/moodle into MOODLE_21_STABLE 2011-10-10 12:03:09 +13:00
Sam Hemelryk 430ce6cca3 Merge branch 'mdl-29564-assignment-plagiarism' of git://github.com/sbourget/moodle into MOODLE_21_STABLE 2011-10-10 11:51:08 +13:00
Dan Marsden c61c509f37 MDL-29690 fix usage of select all/deselect all in choice reports 2011-10-10 11:37:26 +13:00
Sam Hemelryk 960262ffe4 MDL-28582 course-report: Added a nothing to display notification to the outline and complete activity reports 2011-10-10 10:35:21 +13:00
Sam Hemelryk 63f81e076d MDL-28549 navigation: Added a missing login check when adding the calendar link to the navigation 2011-10-10 10:31:01 +13:00
Sam Hemelryk 28fb9fa8e2 MDL-29672 user: Fixed user edit page for non-admin users 2011-10-10 10:27:46 +13:00
Sam Hemelryk ffe1cc611c MDL-27278 navigation: Admin users can now set the home page preference like normal users 2011-10-10 10:17:37 +13:00
Eloy Lafuente (stronk7) 75371a7963 emergency release 2.1.2 2011-10-09 22:42:40 +02:00
Eloy Lafuente (stronk7) 94d5bb3b50 MDL-29520 - mysql multitable delete, outer join some tables 2011-10-09 22:39:12 +02:00
Eloy Lafuente (stronk7) b15cd07d4b Moodle release 2.1.2 2011-10-09 00:49:42 +02:00
Eloy Lafuente (stronk7) 22363663b8 MDL-29668 xmldb editor - fix PHP generation for foreign-unique keys 2011-10-08 21:51:42 +02:00
Henning Bostelmann 29bdd38e50 MDL-16553 Assignment, student view: show response files when no grade available 2011-10-07 23:23:04 +01:00
Ruslan Kabalin dfdef4a231 MDL-29692 enrol: cohort: Fix default role issue in Chrome
This is related to MDL-24280, the issue still persists in Chrome. The patch
fixes it for Chrome and works fine for the most major browsers.
2011-10-07 10:53:58 +01:00
Eloy Lafuente (stronk7) ec51da7d4b MDL-29677 unit tests - missing global was causing tons of incorrect debugging info 2011-10-07 01:24:40 +02:00
Eloy Lafuente (stronk7) ecbd8716f6 weekly release 2.1.1+ 2011-10-07 00:11:22 +02:00
Eloy Lafuente (stronk7) 7820e5047d fix permissions 2011-10-07 00:06:23 +02:00
Eloy Lafuente (stronk7) c4101db016 Merge branch 'install_21_STABLE' of git://github.com/amosbot/moodle into MOODLE_21_STABLE 2011-10-07 00:05:07 +02:00
Stephen Bourget 36c402ba79 mdl-23003 XMLDB missing strings
Fix notices generated by editing a table name using the XMLDB editor
2011-10-06 14:42:29 -04:00
Dan Poltawski 0b2d555f1a MDL-29661 - lib/googleapi.php - Switch to SSL urls
I am not sure why I did not use these in the first instance, I don't
think Google supported SSL in the first versions of their API.

They do now, and it seems that this week they stopped supporting non-ssl
requests.
2011-10-06 12:46:11 +01:00
Sam Hemelryk 5993fccd1e MDL-29224 navigation: Navigation now respects a modules onclick event when preparing navigation nodes 2011-10-06 19:32:52 +13:00
AMOS bot d1582f14d5 Automatically generated installer lang files 2011-10-06 00:55:37 +00:00
Aparup Banerjee e153abc018 Merge branch 'wip-MDL-28615-m21-squashed' of git://github.com/samhemelryk/moodle into MOODLE_21_STABLE 2011-10-05 14:52:45 +08:00
Eloy Lafuente (stronk7) f1ae261bc9 Merge branch 'MDL-28469_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-10-05 01:14:47 +02:00
Eloy Lafuente (stronk7) 19fcc09ac7 Merge branch 'wip-MDL-25697-m21' of git://github.com/samhemelryk/moodle into MOODLE_21_STABLE 2011-10-05 01:10:24 +02:00
Sam Hemelryk 82bd683018 MDL-28615 forum: Fixed up a couple of minor regressions 2011-10-05 11:09:28 +13:00
Tim Hunt 0d3a082373 MDL-29447 quiz course reset does not reset the quiz_grades table.
Thank to Jean-Michel Vedrine for working out the basic idea of the fix.
2011-10-04 22:49:20 +01:00
Eloy Lafuente (stronk7) 19c8fd9e8b Merge branch 'MDL-29644_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-10-04 23:40:23 +02:00
Tim Hunt 0bfc2dde8f MDL-29644 qtype multianswer, hints lost doing Moodle XML export.
This commit also includes a lot of useful tidying up of some of the unit
test helper code. I turned out that I could not use all the helper code
in my new tests, but despite that it will be useful in the future, so I
am committing it here.
2011-10-04 22:28:35 +01:00
Stephen Bourget b801633a9c MDL-29564 Assignment: Fixed a fatal error caused by a missing include 2011-10-04 13:44:59 -04:00
Eloy Lafuente (stronk7) 807f806ed7 Merge branch 'MDL-27857-assignment-portfolio_21_STABLE' of git://github.com/mudrd8mz/moodle into MOODLE_21_STABLE 2011-10-04 12:46:24 +02:00
Eloy Lafuente (stronk7) 85dd2a674a Merge branch 'MDL-29548_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-10-04 12:37:45 +02:00
Tim Hunt fa8843c424 MDL-29548 allow message plugins to control message
defaults.

At the moment, each message_provider can specify defaults for
each message output, to say whether that message output should be
used for this type of message:
http://docs.moodle.org/dev/Messaging_2.0#Adding_new_message_type.

If the message provider does not set a default, this change allows
the message output to set the default.
2011-10-04 11:24:43 +01:00
Eloy Lafuente (stronk7) fdca6e8321 Merge branch 'MDL-19575-m21' of git://github.com/ankitagarwal/moodle into MOODLE_21_STABLE 2011-10-04 12:12:33 +02:00
Tim Hunt ae3056cb00 MDL-29520 question engine: work-around bad MySQL delete performance.
This is a temporary fix, until the new API from MDL-29589 is available.

(amended to fix comments)
2011-10-04 12:05:04 +02:00
Tim Hunt 74969d8866 MDL-29571 questions: improve class=accesshide screen-reader hints.
This changes the hint that comes before the question text. There are
unit tests to verify the new behaviour.

(amended to fix comments)
2011-10-04 11:53:07 +02:00
Tim Hunt 5e69fe4971 MDL-29571 qtype description refactor unit test code a bit. 2011-10-04 11:52:20 +02:00
Sam Hemelryk 133173e213 Merge branch 'MDL-29621_21_wip' of git://github.com/grabs/moodle into MOODLE_21_STABLE 2011-10-04 17:56:39 +13:00
Sam Hemelryk 747d6b5aac MDL-28615 forum: Fixed missing context regression 2011-10-04 16:37:04 +13:00
Sam Hemelryk 91a7a788aa Merge branch 'MDL-28725_wiki_section2_21' of git://github.com/andyjdavis/moodle into MOODLE_21_STABLE 2011-10-04 16:21:33 +13:00
Eloy Lafuente (stronk7) c3a4009a56 Merge branch 'MDL-29511_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-10-04 01:11:48 +02:00
Eloy Lafuente (stronk7) f0837f65d8 Merge branch 'MDL-29216_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-10-03 22:55:56 +02:00
Eloy Lafuente (stronk7) a70eda6cc8 Merge branch 'MDL-29341_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-10-03 22:50:30 +02:00
Eloy Lafuente (stronk7) c5c9be022d Merge branch 'MDL-29570_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-10-03 21:42:55 +02:00
Andreas Grabs 96909b1597 MDL-29621 - XHTML not welformed when creating Feedback questions 2011-10-03 18:44:55 +02:00
Tim Hunt 8f40d27954 MDL-28469 quiz settings pages should be pagelayout admin. 2011-10-03 16:38:59 +01:00
David Mudrak 59c8be2362 MDL-27857 Export to portfolio support in the assignment module improved
Portfolio API code in the assignment module expected that the current
user is the author of the submission. Therefore the "Export to
portfolio" button did not work when the submission was viewed by a
teacher (eg at the page with the list of all submissions in the Advanced
upload assignment).

This patch introduces a new callback argument 'submissionid' that holds
explicit ID of the submission the export deals with. With it available,
we do not need to expect the current user is the author of the
submission.

The patch also cleans some strings used for portfolio callback
exceptions.
2011-10-03 10:13:11 +02:00
David Mudrak f289c698a9 MDL-27857 Typo in the phpDocs fixed 2011-10-03 10:13:11 +02:00
David Mudrak daf4471a40 MDL-27857 Assignment does not use form tag to render portfolio export control widget
When this code was used as a part of the grading screen, the default
PORTFOLIO_ADD_FULL_FORM widget led to nested form elements. This patch replaces
the form widget with a plain text link that can be embedded safely.
2011-10-03 10:13:10 +02:00
Aparup Banerjee b056fee5ba MDL-26486 Lesson : fixed whitespace 2011-10-03 16:01:36 +08:00
Aparup Banerjee c6e321ccaf Merge branch 'MDL-26486_m21' of git://github.com/rwijaya/moodle into MOODLE_21_STABLE 2011-10-03 16:01:00 +08:00
Andrew Davis (andyjdavis) f6705d681a MDL-27640 rating: altered the return url provided by mod_data to ratings 2011-10-03 15:25:00 +08:00
Aparup Banerjee 30ed26a576 Merge branch 'wip-MDL-27867-m21' of git://github.com/samhemelryk/moodle into MOODLE_21_STABLE 2011-10-03 14:29:46 +08:00
Aparup Banerjee 1e6c738c6c MDL-29541 Administration : fixed whitespace 2011-10-03 14:04:08 +08:00
Aparup Banerjee 4cb89f4df4 Merge branch 'wip-mdl-29244-m21' of git://github.com/rajeshtaneja/moodle into MOODLE_21_STABLE 2011-10-03 13:54:09 +08:00
Rajesh Taneja 1f2d15dc62 MDL-29244 Users: Fixed filter for selecting users who never logged in and course roles dropdown show all revelent roles 2011-10-03 13:46:39 +08:00
Sam Hemelryk 7d9cb204be Merge branch 'MDL-29296_m21' of git://github.com/rwijaya/moodle into MOODLE_21_STABLE 2011-10-03 17:08:51 +13:00
Sam Hemelryk e6f5ebe25b Merge branch 'MDL-29605-M21' of git://github.com/lazydaisy/moodle into MOODLE_21_STABLE 2011-10-03 16:43:09 +13:00
Sam Hemelryk 6eeb293e04 Merge branch 'wip-mdl-29539-m21' of git://github.com/rajeshtaneja/moodle into MOODLE_21_STABLE 2011-10-03 15:09:53 +13:00
Sam Hemelryk 124414cc5e MDL-28566 theme_base: removed MDL comment 2011-10-03 15:01:06 +13:00
Sam Hemelryk 69a62c2646 Merge branch 'MDL-28566-M21' of git://github.com/lazydaisy/moodle into MOODLE_21_STABLE 2011-10-03 14:37:54 +13:00
Sam Hemelryk add033dafe Merge branch 'MDL-29323-M21' of git://github.com/lazydaisy/moodle into MOODLE_21_STABLE 2011-10-03 14:30:12 +13:00
Sam Hemelryk 90e44b5068 Merge branch 'wip-MDL-25454-MOODLE_21_STABLE' of git://github.com/marinaglancy/moodle into MOODLE_21_STABLE 2011-10-03 14:24:18 +13:00
Sam Hemelryk bf49e4404c Merge branch 'MDL-29558_2_1' of git://github.com/jamiepratt/moodle into MOODLE_21_STABLE 2011-10-03 14:04:47 +13:00
AMOS bot e4346a63ba Automatically generated installer lang files 2011-10-03 00:55:29 +00:00
Eloy Lafuente (stronk7) e438ff9942 MDL-29552 themes - show the name of the picked theme when working with device detection enabled 2011-10-03 13:30:09 +13:00
Sam Hemelryk ddf0d0dcd7 Merge branch 'MDL-29567_21' of git://github.com/stronk7/moodle into MOODLE_21_STABLE 2011-10-03 13:23:24 +13:00
Sam Hemelryk d85d6ccd3e Merge branch 'MDL-29566_21' of git://github.com/stronk7/moodle into MOODLE_21_STABLE 2011-10-03 12:49:54 +13:00
Sam Hemelryk bd90c5891f Merge branch 'MDL-29618_21' of git://github.com/stronk7/moodle into MOODLE_21_STABLE 2011-10-03 12:28:05 +13:00
Dan Poltawski e58c72d050 MDL-27295 Course Category View - Only display count when more than 0 courses 2011-10-03 11:52:09 +13:00
Eloy Lafuente (stronk7) 77be201a0f MDL-29618 backup - back to handling enrolments properly. Regession of MDL-26841, my fault, grrr 2011-10-03 00:47:28 +02:00
Sam Hemelryk 73a48291b3 MDL-28615 forum: Revised enrol_sharing_course to use the new enrol_get_shared_courses and fixed permission checking in forum_user_can_see_post 2011-10-03 11:23:56 +13:00
Mary Evans cb7699c3a9 MDL-29605-modify Afterburner menu to allow auto format 2011-10-01 23:20:29 +01:00
Tim Hunt 22ba72591c MDL-29216 multianswer qtype needs intereactive elements on the form. 2011-10-01 00:09:27 +01:00
Tim Hunt 41be2f3587 MDL-29341 qtype numerical/calc: display of mc units badly laid out. 2011-09-30 23:42:27 +01:00
Kordan 7bbad2e268 MDL-29403 fix for M21 2011-09-30 11:15:52 +02:00
Jamie Pratt fc15f0837a MDL-29558 question preview: limit variants drop-down to the first 100
In situations when question has many variants.
2011-09-30 09:43:26 +07:00
Mary Evans 9d0cc2cb4c MDL-29323-FIX invalid border style 2011-09-30 03:16:32 +01:00
AMOS bot f058ea24c9 Automatically generated installer lang files 2011-09-30 00:55:21 +00:00
Tim Hunt b99d21aaa9 MDL-29511 cannot review previous steps of a question attempt since MDL-28679. 2011-09-29 21:53:41 +01:00
Tim Hunt 778854eef5 MDL-29511 Fix problems on the quiz review questions page found while investigating this bug. 2011-09-29 21:53:40 +01:00
Marina Glancy 5c6377900a MDL-25454: using the faster way to check if record exists in db 2011-09-29 17:06:37 +08:00
Andrew Davis (andyjdavis) a00b84e864 MDL-28725 wiki: added urlencode around the section variable when it is being used to construct URLs 2011-09-29 16:49:52 +08:00
Andrew Davis (andyjdavis) 667ffef155 MDL-28725 wiki: added missing string
AMOS BEGIN
 CPY [invalidsection,core_admin],[invalidsection,mod_wiki]
AMOS END
2011-09-29 16:49:43 +08:00
Tim Hunt 8258ddff3b MDL-29570 Quiz editing page displays the wrong time in the status line sometimes. 2011-09-29 09:06:41 +01:00
Rossiani Wijaya 03fb10da20 MDL-26486 lesson mod: fixed grade report error on matching and shortanswers questions. 2011-09-29 13:05:50 +08:00
Ankit Kumar Agarwal 342f224f03 MDL-19575 Global Search Adding capability checks to the search and stat pages 2011-09-29 09:09:54 +05:30
Marina Glancy 0623443356 MDL-25454 before skipping course backup make sure that there are no change entries in it's log during the last month. Store the nextstarttime even for courses that were not backed up 2011-09-29 10:02:08 +08:00
Rajesh Taneja 4a313905bc MDL-29539 HTML Editor: Fixed XHTML formatting for editor 2011-09-29 09:36:22 +08:00
Sam Hemelryk 9c36051feb MDL-28615 mod_forum: Fixed the users page that shows all of the users posts 2011-09-29 14:21:15 +13:00
Sam Hemelryk fa447a513e MDL-25697 theme_base: Improved the alignment of the activity editing icons on the course frontpage 2011-09-29 14:15:24 +13:00
AMOS bot 037afad8c3 Automatically generated installer lang files 2011-09-29 00:55:41 +00:00
Eloy Lafuente (stronk7) 72a32ea968 MDL-29567 postgresql - handle negative defaults in numerical cols properly 2011-09-29 01:22:31 +02:00
Eloy Lafuente (stronk7) 21973a92a4 MDL-29567 unit tests - add some tests to cover negative defaults in numerical cols 2011-09-29 01:22:21 +02:00
Eloy Lafuente (stronk7) af9a00d398 MDL-29566 mysql - length / decimal specs in float columns are optional 2011-09-29 00:33:18 +02:00
Eloy Lafuente (stronk7) 3264974513 MDL-29566 unit tests - add some tests to cover get_columns() with number/float columns 2011-09-29 00:33:15 +02:00
Sam Hemelryk 214784a4af MDL-27867 course: Course and category theme selectors no longer show theme's that should be hidden from the selector 2011-09-29 10:47:52 +13:00
Mary Evans b15ab7630c MDL-28566 - Fix for participants user details 2011-09-28 15:45:20 +01:00
Eloy Lafuente (stronk7) 3973662145 weekly release 2.1.1+ 2011-09-28 11:08:00 +02:00
Eloy Lafuente (stronk7) f7bb84df23 Merge branch 'install_21_STABLE' of git://github.com/amosbot/moodle into MOODLE_21_STABLE 2011-09-28 11:04:28 +02:00
AMOS bot fc316236f5 Automatically generated installer lang files 2011-09-28 00:55:21 +00:00
Aparup Banerjee e9be98eed2 Merge branch 'MDL-29230_m21' of git://github.com/rwijaya/moodle into MOODLE_21_STABLE 2011-09-27 15:00:49 +08:00
Aparup Banerjee ca92a99a2e Merge branch 'MDL-25241_forum_search_ratings_21' of git://github.com/andyjdavis/moodle into MOODLE_21_STABLE 2011-09-27 11:35:44 +08:00
Sam Hemelryk d021250bf0 Merge branch 'm21_MDL-29519' of git://github.com/danmarsden/moodle into MOODLE_21_STABLE 2011-09-27 14:09:50 +13:00
Eloy Lafuente (stronk7) 2b4dcfdcbd Merge branch 'MDL-28686-21' of git://github.com/bostelm/moodle into MOODLE_21_STABLE 2011-09-27 00:54:49 +02:00
Sam Hemelryk fe245b725b Merge branch 'MDL-28424_21' of git://github.com/timhunt/moodle.git with changes 2011-09-27 11:26:37 +13:00
Eloy Lafuente (stronk7) 3dba01a40f Merge branch 'w38_MDL-29535_m21_filters' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-09-26 23:57:30 +02:00
Petr Skoda 5cac28fb2b MDL-29535 fix support for custom filter settings in contrib filters 2011-09-26 23:49:58 +02:00
Eloy Lafuente (stronk7) dc110687c8 Merge branch 'MDL-29462_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-09-26 22:42:09 +02:00
Eloy Lafuente (stronk7) 0518140c31 Merge branch 'MDL-28202_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-09-26 22:28:47 +02:00
Eloy Lafuente (stronk7) 4d7a9cd8f5 Merge branch 'MDL-29427_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-09-26 22:01:35 +02:00
Eloy Lafuente (stronk7) ba1afa0d95 Merge branch 'MDL-29528_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-09-26 21:44:49 +02:00
Tim Hunt f8431a1933 MDL-29528 qtype multichoice and caclulated combined feedback format overwritten during upgrade. 2011-09-26 13:39:11 +01:00
Aparup Banerjee 3cef27bf9f Merge branch 'MDL-29270-question-grade_21_STABLE' of git://github.com/mudrd8mz/moodle into MOODLE_21_STABLE 2011-09-26 17:04:28 +08:00
Rossiani Wijaya 9551f03606 MDL-29296 lesson mod: fixed regression for continue button on last lesson page. 2011-09-26 16:40:39 +08:00
Aparup Banerjee 8daff43635 Merge branch 'wip-MDL-29487-m21' of git://github.com/samhemelryk/moodle into MOODLE_21_STABLE 2011-09-26 16:01:11 +08:00
Aparup Banerjee e90206aaa4 Merge branch 'MDL-29464_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-09-26 14:49:21 +08:00
Aparup Banerjee b967bf6005 Merge branch 'MDL-29333_rating_ajax_21' of git://github.com/andyjdavis/moodle into MOODLE_21_STABLE 2011-09-26 14:07:25 +08:00
Sam Hemelryk ded9134e03 Merge branch 'MDL-29428_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-09-26 14:04:15 +13:00
AMOS bot 9d7b02bec0 Merge branch 'MOODLE_21_STABLE' into install_21_STABLE 2011-09-26 00:55:32 +00:00
Sam Hemelryk d496829c61 Merge branch 'MDL-29484_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-09-26 13:55:27 +13:00
Sam Hemelryk 9c43f8f7e1 Merge branch 'MDL-29493_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-09-26 13:48:11 +13:00
Dan Marsden 7af777217d MDL-29519 move plagiarism cron to after event queue 2011-09-26 13:16:28 +13:00
Sam Hemelryk 585bd02479 Merge branch 'MDL-29336-numerrors-mapping-21_STABLE' of git://github.com/mudrd8mz/moodle into MOODLE_21_STABLE 2011-09-26 12:36:46 +13:00
Sam Hemelryk d7749a10a6 Merge branch 'MDL-29478_21' of git://github.com/stronk7/moodle into MOODLE_21_STABLE 2011-09-26 10:53:10 +13:00
Sam Hemelryk 65072bfdc2 Merge branch 'MDL-29139_m21' of git://github.com/nebgor/moodle into MOODLE_21_STABLE 2011-09-26 10:45:40 +13:00
Sam Hemelryk 9f05075c61 Merge branch 'MDL-29190_21_wip' of git://github.com/grabs/moodle into MOODLE_21_STABLE 2011-09-26 10:39:26 +13:00
Jean-Michel Vedrine ef4cf39174 MDL-29270 Fixed question bank backup converter (field rename) 2011-09-25 23:30:40 +02:00
Eloy Lafuente (stronk7) 7294a0649b weekly release 2.1.1+ (emergency) 2011-09-25 17:26:40 +02:00
Eloy Lafuente (stronk7) 9c49600397 MDL-29512 Revert "MDL-25937 Froms Library: Added server side validation for filepicker and filemanager"
This reverts commit b19539bf44.
2011-09-25 17:14:47 +02:00
Eloy Lafuente (stronk7) 0a5afc0583 MDL-29512 Revert "MDL-25937 Forms Library: Added Javascript validation for filepicker and filemanager. Also fixed disbledif rule check for both"
This reverts commit 1f552b4c48.
2011-09-25 17:14:33 +02:00
AMOS bot 2de4e3872c Automatically generated installer lang files 2011-09-25 00:55:21 +00:00
AMOS bot d73581da42 Automatically generated installer lang files 2011-09-24 00:55:24 +00:00
Andreas Grabs dbd388acef MDL-29190 - XHTML not well formed in show_nonrespondents.php 2011-09-23 18:54:18 +02:00
Tim Hunt 51fd4dd261 MDL-29493 questions should be createable with defaultmark a float. 2011-09-23 12:52:39 +01:00
Tim Hunt dddcaf6b6b MDL-29484 qformat xml tests failing. 2011-09-23 12:09:31 +01:00
Sam Hemelryk 8710d49bec MDL-29487 enrol: Fixed typo in enrol_sharing_course 2011-09-23 18:18:10 +12:00
Rossiani Wijaya a672bd8ad5 MDL-29230 lesson_module: fixed question's answer to have 0 value. 2011-09-23 14:10:12 +08:00
Eloy Lafuente (stronk7) 4d1e35d8c0 MDL-29478 unittest - fix rating tests so they can be executed with accesslib caches cleaned 2011-09-23 01:48:09 +02:00
Eloy Lafuente (stronk7) 7bfc279ffb MDL-29478 unittest - explicity include blog/lib.php. Was causing "random" errors 2011-09-23 01:37:58 +02:00
Eloy Lafuente (stronk7) cb59f50fb8 MDL-29478 blog - fixed some recent regressions introduced by MDL-29186 2011-09-23 00:06:10 +02:00
Tim Hunt 5d81093e3c MDL-29427 quiz nav: information items should should have a state tooltip 2011-09-22 18:13:11 +01:00
Tim Hunt a9384ab0d0 MDL-29428 quiz navigation panel should use 'This page' (accessibility improvement) 2011-09-22 17:56:35 +01:00
Kyle Temkin 18d81bdb3c MDL-28202 qtype_calculated fix edge case in the rounding code. 2011-09-22 12:14:44 +01:00
Andrew Davis (andyjdavis) 4b5c0b461c MDL-25241 forum: reimplemented the display of ratings on the forum search page 2011-09-22 15:30:05 +08:00
Aparup Banerjee 0047a8f47d MDL-29139 Forms Library : fixed missing require_once 2011-09-22 14:56:40 +08:00
David Mudrak a39eb49fc2 MDL-29336 Saving grade mapping table in the Workshop
The Workshop module using the "Number of errors" grading strategy did
not save all items in the grade mapping table. If some assessment form
fields have weight > 1, the number of possible errors is greater that
the number of the assessment form fields. The previous code deleted all
mappings where the number of errors was greater than the number of
fields.

In this patch, the maximum number of possible errors is calculated as a
sum of weights of all fields. Only mappings over this maximum are
deleted now.
2011-09-22 05:17:44 +02:00
Andrew Davis (andyjdavis) cfb909d013 MDL-29333 rating: prevent the ratings JS from being intialized multiple times 2011-09-22 10:23:26 +08:00
Andrew Davis (andyjdavis) 81fa243ea4 MDL-29333 rating: refactored the ratings ajax 2011-09-22 10:23:15 +08:00
AMOS bot 747d4d3e25 Automatically generated installer lang files 2011-09-22 00:55:33 +00:00
Tim Hunt 74ca90e5fb MDL-29464 quiz add random question popup does not update sumgrades. 2011-09-21 16:43:05 +01:00
Tim Hunt 4e92a71fb3 MDL-29462 html_to_text('0') gives '', not '0'. 2011-09-21 16:42:33 +01:00
Tim Hunt e6674da8ff MDL-28424 Reviewing a quiz in 'secure mode' gives a fatal error.
The problem was when output was being started in relation to when the fake block was added.

Took the opportunity to clean up the quiz renderer API a bit.
2011-09-21 16:41:36 +01:00
Eloy Lafuente (stronk7) 136fa79e34 weekly release 2.1.1+ 2011-09-21 17:11:46 +02:00
Eloy Lafuente (stronk7) 06a22aecb7 Merge branch 'install_21_STABLE' of git://github.com/amosbot/moodle into MOODLE_21_STABLE 2011-09-21 17:04:43 +02:00
AMOS bot f7cf17a853 Automatically generated installer lang files 2011-09-21 00:55:20 +00:00
Eloy Lafuente (stronk7) e63827ad98 Merge branch 'MDL-26567_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-09-21 00:11:14 +02:00
Tim Hunt 84de2336fb MDL-26567 no grade category option on the quiz settings form.
Also, refine the standard_grading_coursemodule_elements method to add a
help string.

AMOS BEGIN
 CPY [gradecategory,grades],[gradecategoryonmodform,grades]
AMOS END
2011-09-20 12:15:07 +01:00
Eloy Lafuente (stronk7) 7f0d91d546 Merge branch 'wip-mdl-29079-m21' of git://github.com/rajeshtaneja/moodle into MOODLE_21_STABLE 2011-09-20 09:51:18 +02:00
Aparup Banerjee 14312ebc6a Merge branch 'MDL-26890-m21' of git://github.com/ankitagarwal/moodle into MOODLE_21_STABLE 2011-09-20 13:17:00 +08:00
Ankit Kumar Agarwal 292faa4f7d Forums check on filesize if the file is added to the forum from private area 2011-09-20 10:05:36 +05:30
Rajesh Taneja e93bb0ca52 MDL-29079 Administration: Added space on both sides of locked checkbox and for rtl language space will be applied accordingly 2011-09-20 11:50:46 +08:00
Aparup Banerjee a886ad10ea Merge branch 'wip-mdl-28726-m21' of git://github.com/rajeshtaneja/moodle into MOODLE_21_STABLE 2011-09-20 10:20:38 +08:00
Sam Hemelryk c4b234ec54 Merge branch 'MDL-26841_21' of git://github.com/stronk7/moodle into MOODLE_21_STABLE 2011-09-20 12:13:48 +12:00
Sam Hemelryk 6831c9ff36 Merge branch 'MDL-29392_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-09-20 11:58:23 +12:00
Colin Chambers 6a49c01825 MDL-29394 form editor - Use hidden field when only 1 format option is available #947 2011-09-20 00:36:35 +02:00
Eloy Lafuente (stronk7) 0ff54e134f Merge branch 'wip-mdl-29079-m21' of git://github.com/rajeshtaneja/moodle into MOODLE_21_STABLE 2011-09-20 00:17:42 +02:00
Eloy Lafuente (stronk7) 5af8bbf854 Merge branch 'MDL-28679_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-09-20 00:04:17 +02:00
Eloy Lafuente (stronk7) 75ebacb1ec Merge branch 'MDL-29126_export_separator_21' of git://github.com/andyjdavis/moodle into MOODLE_21_STABLE 2011-09-19 23:37:49 +02:00
M Kassaei 1859247e0c MDL-29392 grade/report/index.php should use $CFG->grade_profilereport 2011-09-19 11:32:18 +01:00
Eloy Lafuente (stronk7) f199117f05 MDL-26841 backup - prevent any enrolments info to be handled in IMPORT/HUB operations 2011-09-19 11:24:24 +02:00
Aparup Banerjee bc24c20388 Merge branch 's13_MDL-29036_ws_upload_21' of git://github.com/dongsheng/moodle into MOODLE_21_STABLE 2011-09-19 16:13:31 +08:00
Dongsheng Cai 4e970a5335 MDL-29036 WEBSERVICE : webservice upload script should respect maxbytes and userquota settings 2011-09-19 15:29:13 +08:00
Sam Hemelryk 955f15a71f Merge branch 'MDL-29366_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-09-19 19:20:17 +12:00
Sam Hemelryk 5585910ea7 Merge branch 'MDL-28329_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-09-19 18:36:55 +12:00
Rajesh Taneja 1b17be9050 MDL-29079 Administration: Added space between checkboxes on general backup setting page 2011-09-19 13:35:56 +08:00
Sam Hemelryk 26c28d0821 Merge branch 'wip-mdl-25937-m21' of git://github.com/rajeshtaneja/moodle into MOODLE_21_STABLE 2011-09-19 17:00:40 +12:00
Aparup Banerjee 8104e0f2df Merge branch 's13_MDL-28509_youtube_21' of github.com:dongsheng/moodle into MOODLE_21_STABLE 2011-09-19 12:15:00 +08:00
Dongsheng Cai 4ded0afd16 MDL-28509 repository : fixed youtube repository search keyword 2011-09-19 11:57:14 +08:00
Mark Johnson 2e348a6643 MDL-28509 repository_youtube Enable selection of sort order 2011-09-19 11:57:01 +08:00
Petr Skoda 84cae7bef8 MDL-29406 fix greedy config settings cleanup 2011-09-19 13:33:08 +12:00
Sam Hemelryk 3d2029f3d4 Merge branch 'MDL-29360_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-09-19 11:57:58 +12:00
KNDeepa 9acc5736a8 MDL-28329 local_qeupgradehelper make cron work. 2011-09-16 18:44:06 +01:00
Tim Hunt 08d1ba7106 MDL-28679 question response history displays states incorrectly. 2011-09-16 16:05:59 +01:00
Tim Hunt e9197a3711 MDL-29366 qtype_essay import/export as Moodle XML loses files from graderinfo 2011-09-16 12:00:40 +01:00
Tim Hunt 4394f91b26 MDL-29360 quiz comment.php has broken JS for the Cancel button.
This swtichest it to more modern YUI3 approach.
2011-09-16 12:00:03 +01:00
Tim Hunt 25aa44ea97 MDL-28259 Individual answers Feedback not shown in Cloze questions 2011-09-16 11:59:02 +01:00
Rajesh Taneja f9d4ab44e0 MDL-28726 wiki-2.0: Fixed XSS in wiki comments 2011-09-16 11:10:27 +08:00
Rajesh Taneja 1f552b4c48 MDL-25937 Forms Library: Added Javascript validation for filepicker and filemanager. Also fixed disbledif rule check for both 2011-09-16 09:18:23 +08:00
Rajesh Taneja b19539bf44 MDL-25937 Froms Library: Added server side validation for filepicker and filemanager 2011-09-16 09:18:23 +08:00
Eloy Lafuente (stronk7) ce0cb2451b weekly release 2.1.1+ 2011-09-16 01:38:33 +02:00
Eloy Lafuente (stronk7) 929c1e4a8b Merge branch 'install_21_STABLE' of git://github.com/amosbot/moodle into MOODLE_21_STABLE 2011-09-16 01:34:34 +02:00
Eloy Lafuente (stronk7) 7923d63b16 MDL-29093 auth - help string now specifies MNet exception. Thanks Helen! 2011-09-14 11:37:31 +02:00
Eloy Lafuente (stronk7) efb0aacf37 MDL-29093 auth - help string changed to VBFET suggestion
(very best favourite english translator, aka. Helen :-P)
2011-09-14 10:12:17 +02:00
Sam Hemelryk 9e312ed269 MDL-29188 course_formats Fixed up formatting of section name within navigation 2011-09-14 11:41:36 +12:00
Sam Hemelryk 6aa9352f66 MDL-29093 - Authentication improved new setting name and strings 2011-09-14 00:30:26 +02:00
Iñaki Arenaza 2023ca1f0f MDL-29093 - Authentication for authentication only, not for user creation
There are cases when a moodle installation needs to only deal
user authentication and not user creation (this is especially
interesting when using external authentication sources such as LDAP,
CAS, etc.)

Add an option to prevent automatic user creation if the administrator
does't want users to be automatically created.

Signed-off-by: Iñaki Arenaza <iarenaza@mondragon.edu>
2011-09-14 00:30:17 +02:00
Petr Skoda 6f1156a6c2 MDL-29295 do not use strtok in dml and ddl layers
This prevents clobbering of internal pointer when code calling DML
uses strtok too. Unit test added to prevent future uses.
2011-09-14 00:21:33 +02:00
Aparup Banerjee a7cb1e62f4 MDL-26257 Authentication : whitespace/style fixes 2011-09-13 19:15:48 +08:00
Aparup Banerjee edb8077e7b Merge branch 'MDL-26257-21' of git://github.com/bostelm/moodle into MOODLE_21_STABLE 2011-09-13 19:11:49 +08:00
Aparup Banerjee d8f2500f46 Merge branch MDL-29186-m21 of git://github.com/samhemelryk/moodle
- resolved conflicts, minor whitespace and fixed quote.
    - note: textlib_get_instance() is already deprecated
2011-09-13 16:19:47 +08:00
Aparup Banerjee 6519a7769d Merge branch MDL-29187-m21 of git://github.com/samhemelryk/moodle
- resolved conflict.
2011-09-13 13:54:43 +08:00
Aparup Banerjee 995b4d16cd Merge branch 'wip-MDL-29188-m21' of git://github.com/samhemelryk/moodle into MOODLE_21_STABLE 2011-09-13 13:33:56 +08:00
Aparup Banerjee 717c3395be Merge branch 'wip-MDL-29189-m21' of git://github.com/samhemelryk/moodle into MOODLE_21_STABLE 2011-09-13 11:45:51 +08:00
Sam Hemelryk 6bc526319e Merged branch '28595_m22_installcontinue' of git://github.com/skodak/moodle with changes 2011-09-13 15:35:27 +12:00
Sam Hemelryk b3c64930ff MDL-29189 course Minor fixups after code review 2011-09-13 11:19:17 +12:00
Andrew Davis (andyjdavis) a6f388c664 MDL-22232 messaging: added the ability to temporarily disable notifications to a particular user 2011-09-12 20:24:08 +12:00
Sam Hemelryk 90d14d089c Merge branch 'MDL-29211_M21' of git://github.com/kordan/moodle into MOODLE_21_STABLE 2011-09-12 19:49:26 +12:00
kordan 9d8dbe645c MDL-29211 fox for MOODLE_21_STABLE 2011-09-12 09:40:08 +02:00
Sun Zhigang 937e0a23d9 MDL-29112 trigger event mod_deleted after deleting mod through AJAX 2011-09-12 17:36:10 +12:00
Aparup Banerjee 910671644c MDL-28724 wiki : Fixed bugs in wiki forms 2011-09-12 17:27:56 +12:00
Petr Skoda 9e6ef6ccc2 MDL-29131 fix multiple groups issues on the recent activity report 2011-09-12 17:08:58 +12:00
Sam Hemelryk 4a277f4f4e Merge branch 'w36_MDL-29306_m21_dbenrolroles' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-09-12 15:30:33 +12:00
Sam Hemelryk 786a905607 Merge branch 'w36_MDL-29292_m21_featuretypo' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-09-12 15:17:25 +12:00
Sam Hemelryk 20ff7e3279 Merge branch 'MDL-27635_m21' of git://github.com/rwijaya/moodle into MOODLE_21_STABLE 2011-09-12 14:39:22 +12:00
Sam Hemelryk 2513a2b24f Merge branch 'w36_MDL-29312_m21_cookieless' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-09-12 14:25:02 +12:00
Rossiani Wijaya 4966b0ee71 MDL-27635 hub component: fixed default value for 'secret' field in 'registration_hubs' table 2011-09-12 10:21:45 +08:00
Sam Hemelryk 18fc309097 Merge branch 'MDL-28488_21' of git://github.com/stronk7/moodle into MOODLE_21_STABLE 2011-09-12 13:20:47 +12:00
kordan 3bfe7ce57a MDL-29056 theme-formal_white fix for the report pagelayout that was preventing horizontal scroll 2011-09-12 13:03:02 +12:00
Eloy Lafuente (stronk7) 366c19fabd MDL-28488 backup - conditionaly apply defaults based on mode
Some modes of backup cannot be preloaded with general backup
settings because they may conflict with the definitions required/set
by the mode (for example, import backups are, by definition, without
users always, so we cannot apply one default in the opposite direction).

So, after the patch, current general_backup setting will be only applied
to general backups, import/hub modes won't be using any default and
automated backup defaults should be loaded here (TODO)
2011-09-11 21:57:00 +02:00
Eloy Lafuente (stronk7) 56a1642c5b MDL-28488 backup - '[backup|restore]:configure cap does not control import mode anymore 2011-09-11 21:56:45 +02:00
Eloy Lafuente (stronk7) 9d74bab3bc MDL-28488 backup - fixup some strings and delete legacy ones 2011-09-11 21:56:31 +02:00
Eloy Lafuente (stronk7) 993261dcff MDL-28488 backup - make backup and import capabilities independent
Before this change, in order to perform one course import it was
necessary to have both the backupcourse and the backuptargetimport
capabilities. After agreement now each one will control its own
backup mode. Same applies for restore.
2011-09-11 21:56:13 +02:00
Eloy Lafuente (stronk7) 4b5233f9c4 MDL-28488 backup - activity duplication requires 2 capabilities in ctx 2011-09-11 21:55:43 +02:00
Petr Skoda 0cf269c1fc MDL-29292 fix feature typo
Credit goes to Raminder Singh.
2011-09-11 12:49:16 +02:00
Petr Skoda e1e082a809 MDL-29312 prevent cookieless mode for security reasons 2011-09-11 10:07:27 +02:00
AMOS bot 8cd0f221b6 Automatically generated installer lang files 2011-09-11 00:55:40 +00:00
Petr Skoda 94a720f287 MDL-28595 explain the need to install into new db if something fails during the initial install 2011-09-11 00:08:23 +02:00
Petr Skoda f6090a3531 MDL-28595 do not print continue link if install fails 2011-09-11 00:08:20 +02:00
Petr Skoda 3dfac46e97 MDL-29306 support multiple roles in ext enrol db 2011-09-10 23:34:06 +02:00
AMOS bot 3119ba9a2a Automatically generated installer lang files 2011-09-10 00:55:20 +00:00
AMOS bot 74743b5e48 Automatically generated installer lang files 2011-09-09 00:55:20 +00:00
Henning Bostelmann 033a066e4f MDL-26257 Shibboleth auth: run logout handler only if logged in via Shibboleth 2011-09-08 11:53:44 +01:00
AMOS bot 8ede1d5121 Automatically generated installer lang files 2011-09-08 00:55:31 +00:00
Sam Hemelryk 0347dd4d70 MDL-29186 multilang Reviewed the uses of course fullname and ensured things were being formatted consistently 2011-09-08 09:39:00 +12:00
Sam Hemelryk 5da6f4eeb6 MDL-29187 multilang Reviewed the uses of category name and ensured things are being formatted correctly 2011-09-08 09:36:55 +12:00
Sam Hemelryk 34c46428f1 MDL-29189 mutlilang Reviewed the uses of course shortname and ensured things are being formatted consistently 2011-09-08 09:30:10 +12:00
Sam Hemelryk 9ec4220c84 MDL-29188 multilang Reviewed the uses of section name and ensured things were being formatted consistently 2011-09-08 09:27:55 +12:00
Eloy Lafuente (stronk7) 22e8ad6134 weekly release 2.1.1+ 2011-09-07 17:55:05 +02:00
Eloy Lafuente (stronk7) 0780ba7ca7 Merge branch 'install_21_STABLE' of git://github.com/amosbot/moodle into MOODLE_21_STABLE 2011-09-07 17:49:21 +02:00
Eloy Lafuente (stronk7) 06b66d530b Merge branch 'wip-MDL-28043-m21' of git://github.com/samhemelryk/moodle into MOODLE_21_STABLE 2011-09-06 13:56:08 +02:00
Eloy Lafuente (stronk7) 57d30b5276 Merge branch 'wip-mdl-28987-m21' of git://github.com/rajeshtaneja/moodle into MOODLE_21_STABLE 2011-09-06 01:59:49 +02:00
Sam Hemelryk a640301b81 MDL-28043 user Fixed context hack in pluginfile for user pics leading to init of page, theme and output for redirect 2011-09-06 11:29:44 +12:00
Eloy Lafuente (stronk7) 593b4518ad Merge branch 'wip-mdl-23520-m21' of git://github.com/rajeshtaneja/moodle into MOODLE_21_STABLE 2011-09-06 01:27:51 +02:00
Eloy Lafuente (stronk7) abaff947c6 Merge branch 'wip-MDL-29006-m21' of git://github.com/samhemelryk/moodle into MOODLE_21_STABLE 2011-09-06 00:38:38 +02:00
Eloy Lafuente (stronk7) ae115cf229 Merge branch 'w35_MDL-29145_m21_imscpregression' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-09-05 21:52:08 +02:00
Eloy Lafuente (stronk7) 152ee16812 MDL-29072 Import course - whitespace fixes 2011-09-05 10:42:55 +02:00
Petr Skoda ed2448a342 MDL-29145 fix regression caused by MDL-27448 2011-09-05 09:47:09 +02:00
Rajesh Taneja 48f6a80092 MDL-28987 Forms Library: Removed onBlur validation. Now the validation will occur on form submit only 2011-09-05 14:26:19 +08:00
Iñaki Arenaza 85f5ab3145 MDL-27689 Vague README-LDAP file in auth/ldap
README-LDAP referes to a file that was renamed (to auth.php) in Moodle
1.8 and no longer exists. Make clear what file we are referring to.
2011-09-05 13:31:41 +08:00
Aparup Banerjee 26cfc10584 Merge branch 'wip-MDL-26811-m21' of git://github.com/samhemelryk/moodle into MOODLE_21_STABLE 2011-09-05 13:18:52 +08:00
Aparup Banerjee 5f856fdfe9 Merge branch 'MDL-29198_21' of git://github.com/stronk7/moodle into MOODLE_21_STABLE 2011-09-05 12:52:15 +08:00
Rajesh Taneja 0d7dcbf1ae MDL-28987 Forms Library: Added tinyMCE onblur event callback for required tinymce fields 2011-09-05 12:21:55 +08:00
Rajesh Taneja 6786f79ab4 MDL-28987 Forms Library: Added tinyMCE save for tinymce editor validation 2011-09-05 12:21:49 +08:00
Adam Olley a010bfe63d MDL-28987: Affix [text] to editor element in JS validation and add blur event 2011-09-05 12:21:43 +08:00
Sam Hemelryk 3cabe2de8c Merge branch 'MDL-29018_m21' of git://github.com/rwijaya/moodle into MOODLE_21_STABLE 2011-09-05 16:08:07 +12:00
Sam Hemelryk 7ecabfdce4 Merge branch 'MDL-28689_m21' of git://github.com/rwijaya/moodle into MOODLE_21_STABLE 2011-09-05 16:03:08 +12:00
Rossiani Wijaya c8fa99de72 MDL-29018 lesson module statistics: fixed statistics diplay for whole the class 2011-09-05 11:16:33 +08:00
Henning Bostelmann 02aac22ff8 MDL-29072 Import course: Use correct capability for course selection 2011-09-05 13:41:34 +12:00
Sam Hemelryk 05956888d7 Merge branch 'MDL-27975_m21' of git://github.com/rwijaya/moodle into MOODLE_21_STABLE 2011-09-05 13:37:33 +12:00
Sam Hemelryk caff2aa640 Merge branch 's13_MDL-29170_risklevel_21' of git://github.com/dongsheng/moodle into MOODLE_21_STABLE 2011-09-05 11:13:17 +12:00
AMOS bot 5031249d84 Automatically generated installer lang files 2011-09-03 00:55:20 +00:00
Eloy Lafuente (stronk7) 3c7a83744e MDL-28080 DML unit tests - cover tweak_param_names() and the new 30 chars limit exception 2011-09-01 19:59:13 +02:00
Eloy Lafuente (stronk7) 436135f52a MDL-28080 oracle - avoid tweak_param_names() tweaking too much :-P
Sometimes the (oracle only) tweak_param_names() method was causing
placeholders having > 28 chars length to exceed the 30 chars limit
imposed by Oracle. With this commit the tweak is performed by
replacement for such long placeholders and, at the same time, the
tweak has been commented out from insert/update because it is not
necessary there (placeholders are safe column name always)
2011-09-01 19:59:13 +02:00
Tim Hunt 41f17b384f MDL-28080 coding_exception for over-long placeholder names. 2011-09-01 19:59:12 +02:00
Rossiani Wijaya 47b9f44c6f MDL-27975 community block: fixed string typo 2011-09-01 17:10:29 +08:00
Eloy Lafuente (stronk7) 7a8a938077 MDL-29198 DB - make delete_records transactional safe when needed 2011-09-01 11:08:09 +02:00
Rossiani Wijaya e3a6a3878e MDL-28689 chat module: add input.png file. This is a simple fix by copying the file from bubbles themes. Proper fix should be done in the future 2011-09-01 16:27:13 +08:00
Andrew Davis (andyjdavis) 35dd29564b MDL-29126 gradebook: made text export with tabs as separator work 2011-09-01 15:32:27 +08:00
Dongsheng Cai 5c71cfca6a WEBSERVICE MDL-29170 reduce createmobiletoken capability risk level 2011-09-01 11:03:47 +08:00
AMOS bot e5df0e3e17 Automatically generated installer lang files 2011-09-01 00:55:25 +00:00
Rajesh Taneja 6b94a62ff8 MDL-23520 mod-wiki-2.0: Added delete page and version feature as it was in 1.9 2011-08-31 13:54:16 +08:00
Sam Hemelryk e9a574454c MDL-29006 block_html Added formatted to title printed on editing form when a hard freeze is in effect 2011-08-31 11:46:44 +12:00
Eloy Lafuente (stronk7) ddf322586e weekly release 2.1.1+ 2011-08-31 01:33:29 +02:00
Sam Hemelryk ed9041c9ce MDL-26811 upgrade Fixed up default handling causing exception on upgrade of used site in MSSQL 2011-08-31 11:33:29 +12:00
Eloy Lafuente (stronk7) 3853dc585c Merge branch 'install_21_STABLE' of git://github.com/amosbot/moodle into MOODLE_21_STABLE 2011-08-31 01:29:39 +02:00
Aparup Banerjee 132c116509 MDL-29005 blocks : clarified comment 2011-08-30 11:20:38 +08:00
Aparup Banerjee 97dd4ec539 Merge branch 'MDL-29005_MOODLE_21_STABLE' of git://github.com/mouneyrac/moodle into MOODLE_21_STABLE 2011-08-30 11:19:57 +08:00
Eloy Lafuente (stronk7) 5266e929da MDL-28489 site news forum - support multilang filter 2011-08-30 11:06:57 +12:00
Eloy Lafuente (stronk7) 9c89f307f8 Merge branch 'MDL-29141_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-08-29 13:01:57 +02:00
Eloy Lafuente (stronk7) 4524a47a0a Merge branch 'wip-MDL-24202-m21' of git://github.com/samhemelryk/moodle into MOODLE_21_STABLE 2011-08-29 10:30:59 +02:00
Aparup Banerjee 7816f5acb0 Merge branch 'MDL-29144_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-08-29 12:01:41 +08:00
Sam Hemelryk ce4285c883 Merge branch 'MDL-28564_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-08-29 13:59:26 +12:00
Sam Hemelryk 208b9e2a50 MDL-24202 navigation Fixed bug caused by navigation overriding a CFG setting 2011-08-29 13:45:36 +12:00
Eloy Lafuente (stronk7) 5a8f177c73 Merge branch 'MDL-28943_manage_message_name_21' of git://github.com/andyjdavis/moodle into MOODLE_21_STABLE 2011-08-29 03:26:41 +02:00
Eloy Lafuente (stronk7) fa3dff1318 Merge branch 'MDL-26302_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-08-29 03:23:28 +02:00
Sam Hemelryk a4ad64950b Merge branch 'MDL-26819_21' of git://github.com/stronk7/moodle into MOODLE_21_STABLE 2011-08-29 13:05:22 +12:00
Sam Hemelryk 6870b5dcbb Merge branch 'dev_MDL-27289_boxnet_21' of git://github.com/dongsheng/moodle into MOODLE_21_STABLE 2011-08-29 12:54:40 +12:00
Eloy Lafuente (stronk7) 6e582f1632 Merge branch 'MDL-29064_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-08-29 02:52:55 +02:00
Eloy Lafuente (stronk7) 3bdb9bfd54 Merge branch 'MOODLE_21_STABLE' of git.moodle.org:/git/integration into MOODLE_21_STABLE 2011-08-29 02:41:27 +02:00
Eloy Lafuente (stronk7) 1dd41f0eb1 Merge branch 'MDL-29062_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-08-29 02:40:08 +02:00
Sam Hemelryk 78b19caf0a Merge branch 'MDL-29135-mnet-login_21_STABLE' of git://github.com/mudrd8mz/moodle into MOODLE_21_STABLE 2011-08-29 12:24:57 +12:00
Eloy Lafuente (stronk7) 4984e712e6 Merge branch 'MDL-29111_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-08-29 02:02:55 +02:00
David Mudrak 174245497e MDL-29148 MNet - improved handling of a verification function return code 2011-08-29 01:48:41 +02:00
Eloy Lafuente (stronk7) 119b895133 Merge branch 'wip_MDL-16168_2.1_CAS_crash_if_no_LDAP' of https://github.com/iarenaza/moodle into MOODLE_21_STABLE 2011-08-29 01:33:03 +02:00
Eloy Lafuente (stronk7) 04dc7f877b Merge branch 'MDL-25872-21' of git://github.com/bostelm/moodle into MOODLE_21_STABLE 2011-08-29 01:22:42 +02:00
Iñaki Arenaza 5e7d9e3e36 MDL-28402 LDAP configuration values being stored in lower case, causing misconfiguration
It looks like array_change_key_case() does not work recursively, so we
were not actually lowercasing the expiration attribute key. As the
configuration setting is always lowercase they didn't match.
2011-08-29 01:08:42 +02:00
Eloy Lafuente (stronk7) c24ccde07f MDL-26819 quiz statistics - use cross-db GROUP BY expression 2011-08-28 22:16:11 +02:00
Iñaki Arenaza b38bcc3a1d MDL-16168 auth/cas CAS crashes if no LDAP is set up
Fix was pending for Moodle 2.1. Credit goes to Ivan Dackiewicz.
2011-08-28 15:32:32 +02:00
David Mudrak 9b81b37eb9 MDL-27107 auth_mnet - consider all incoming roaming users as confirmed
The 'confirmed' field can't be optional. If the identity provider did
not export it, the new remote user would be created with 'confirmed' set
to default zero and as such could be a subject of scheduled deletion.
2011-08-28 02:36:38 +02:00
David Mudrak 2f2cf818c2 MDL-29135 Reworded login prompt with SSO over MNet enabled 2011-08-27 18:24:55 +02:00
AMOS bot ed32596d3a Automatically generated installer lang files 2011-08-27 00:55:41 +00:00
M Kassaei 9651053bb4 MDL-29144 quiz navigation: Screen-readers speak question state twice 2011-08-26 19:10:54 +01:00
Tim Hunt 15e6246359 MDL-29111 quiz was passing 0 to ->review_url when it should have been null. 2011-08-26 18:16:57 +01:00
Henning Bostelmann b1a24c1eb0 MDL-25872 View assignment submissions: show only students, not teachers
Fixing incorrect capability reference mod/assignment:view to ...:submit
2011-08-26 17:34:35 +01:00
Tim Hunt 362d5c1ed1 MDL-29141 question bank show question text checkbox does not match state. 2011-08-26 17:01:52 +01:00
Henning Bostelmann d5ae2ed112 MDL-28686 QE2 upgrade: recognize manually graded, deleted questions 2011-08-26 14:37:49 +01:00
Eloy Lafuente (stronk7) e4527c5497 weekly release 2.1.1+ 2011-08-26 15:09:00 +02:00
Eloy Lafuente (stronk7) 200cb06bfc Merge branch 'install_21_STABLE' of git://github.com/amosbot/moodle into MOODLE_21_STABLE 2011-08-26 14:56:52 +02:00
Eloy Lafuente (stronk7) 97e4e3953a MDL-28684 QE2 upgrade: fix undefined $a regression. Thanks Henning! 2011-08-25 15:54:41 +02:00
Eloy Lafuente (stronk7) ee4dee99e8 Merge branch 'MDL-27823_bulk_messaging_2_21' of git://github.com/andyjdavis/moodle into MOODLE_21_STABLE 2011-08-25 10:46:11 +02:00
AMOS bot 7adfd55ec2 Automatically generated installer lang files 2011-08-25 00:55:21 +00:00
Eloy Lafuente (stronk7) efc2de0e97 Merge branch 'MDL-28650-MOODLE-21-STABLE' of https://github.com/mouneyrac/moodle into MOODLE_21_STABLE 2011-08-25 01:15:49 +02:00
Eloy Lafuente (stronk7) ddec658859 Merge branch 'MDL-28684_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-08-24 17:12:18 +02:00
Tim Hunt e9f707d38a MDL-28684 fix failing unit test - which means fix the acutal code.
Sorry for the noise.
2011-08-24 16:02:40 +01:00
Eloy Lafuente (stronk7) 7faa5b4e9c Merge branch 'MDL-28976_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-08-24 12:57:51 +02:00
Jerome Mouneyrac 2eb3bb390f MDL-29005 display enrollable courses total and downloadable courses total instead of courses/sites total 2011-08-24 14:49:54 +08:00
Aparup Banerjee 2134aa6129 Revert "MDL-28509 repository_youtube Enable selection of sort order"
This reverts commit 0638e55b14.
2011-08-24 14:43:05 +08:00
Eloy Lafuente (stronk7) adc0d74ac9 Merge branch 'w33_MDL-29022_m21_idnumber' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-08-24 03:51:51 +02:00
Aaron Barnes b5013dc868 MDL-28248 completion: Incorrect SQL for finding enrol start date 2011-08-24 12:07:18 +12:00
Eloy Lafuente (stronk7) b61fd419e8 Merge branch 'MDL-28979_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-08-24 01:56:06 +02:00
Tim Hunt 8c412f122c MDL-28942 qtype multichoice, multi-response. Avoid computing the wrong random guess score.
It is effectively impossible to compute the right random guess score, so we should not compute anything, rather than computing a number that we know is wrong.

This patch also fixes a multianswer unit test error that was shown up by this fix.
2011-08-24 01:53:26 +02:00
Eloy Lafuente (stronk7) 7a4a1f14ca Merge branch 'MDL-28975_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-08-24 01:45:23 +02:00
Sun Zhigang fad5ec9b5a MDL-29019 enrol - fix a typo 2011-08-24 01:31:29 +02:00
Petr Skoda 93e8c6c422 MDL-19380 fix redirect when virus found in JS-less mode 2011-08-24 01:21:08 +02:00
Petr Skoda 16dc846eb1 MDL-19380 reimplement antivir scanning in repositories 2011-08-24 01:21:00 +02:00
Petr Skoda c7c1a8cf14 MDL-29000 multiple password reset issues
* stop abusing get_complete_user_data()
* fix case-sensitiveness in password reset for PG
* do not allow reset of disabled accounts
* propose a solution for non-unique emails
2011-08-24 01:08:10 +02:00
Petr Skoda b13eda7e8d MDL-28981 fix forum_user_can_post() call params 2011-08-24 00:53:29 +02:00
Tony Levi a3ad8fd883 MDL-27228: Fix label 'eye' does not match show/hide setting 2011-08-23 23:36:29 +02:00
Eloy Lafuente (stronk7) 4ffedd8b0e Merge branch 'w33_MDL-28708_m21_f304' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-08-23 23:32:36 +02:00
Eloy Lafuente (stronk7) 71cf843ad2 Merge branch 'w33_MDL-28709_m21_h304' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-08-23 23:23:15 +02:00
Eloy Lafuente (stronk7) fd7bdf278c Merge branch 'w33_MDL-29011_m21_nomanualenrol' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-08-23 23:13:28 +02:00
Eloy Lafuente (stronk7) 80fc30b7bd MDL-28684 QE2 upgrade: whitespace fix 2011-08-23 22:53:26 +02:00
Eloy Lafuente (stronk7) 251037cefd Merge branch 'MDL-28684b-21' of git://github.com/bostelm/moodle into MOODLE_21_STABLE 2011-08-23 22:53:11 +02:00
Eloy Lafuente (stronk7) 3d95259d7e Merge branch 'MDL-28444-21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-08-23 22:48:06 +02:00
Aparup Banerjee 1b502dff19 Merge branch 'w33_MDL-28982_m21_sqlfullname' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-08-24 02:59:56 +08:00
Aparup Banerjee e9f8af2a1b Merge branch 'MDL-28687_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-08-24 02:28:21 +08:00
Eloy Lafuente (stronk7) 35dd038144 MDL-28962 enrol imsenterprise - whitespace fix 2011-08-23 18:43:37 +02:00
Eloy Lafuente (stronk7) f403941133 Merge branch 'm21_MDL-28962' of git://github.com/danmarsden/moodle into MOODLE_21_STABLE 2011-08-23 18:43:21 +02:00
Eloy Lafuente (stronk7) a1eeb0185a Merge branch 'MDL-28957_21' of git://github.com/colchambers/moodle into MOODLE_21_STABLE 2011-08-23 18:01:16 +02:00
Eloy Lafuente (stronk7) dc70aa7378 Merge branch 'MDL-28397-21' of https://github.com/totara/moodle into MOODLE_21_STABLE 2011-08-23 17:31:12 +02:00
Sam Hemelryk bb37aab093 MDL-25636 block_html Fixed up missing format config if block restored from early 2.0 backup 2011-08-23 18:41:48 +08:00
Eloy Lafuente (stronk7) 72bd83e0f1 Merge branch 'w33_MDL-28381_m21_cliphpver' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-08-23 11:03:42 +02:00
Eloy Lafuente (stronk7) 1b69c111cc Merge branch 'MDL-28996_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-08-23 10:42:52 +02:00
Petr Skoda 23eccfcd77 MDL-28935 use weekdays as calendar table headings 2011-08-23 10:05:14 +02:00
Jason Ilicic 68cfdb72f9 MDL-28935 Add days of week to monthly calendar view 2011-08-23 10:05:04 +02:00
Tim Hunt 0570e81ecb MDL-29062 qtype multianswer refers to old name for the question_delete_questions function. 2011-08-23 08:54:15 +01:00
Tim Hunt 5ce736caa8 MDL-29064 qtype multianswer, question text should be a required field. 2011-08-23 08:41:00 +01:00
Aparup Banerjee 8145290d43 Merge branch 'MDL-28509_21_STABLE' of git://github.com/marxjohnson/moodle into MOODLE_21_STABLE 2011-08-23 14:55:11 +08:00
Eloy Lafuente (stronk7) d94b4b327d Merge branch 'm21_MDL-28999' of git://github.com/danmarsden/moodle into MOODLE_21_STABLE 2011-08-23 02:49:59 +02:00
Petr Skoda c896d5c54d MDL-29016 allow distributions to set dataroot permissions 2011-08-23 02:43:10 +02:00
Eloy Lafuente (stronk7) 5cfb119475 Merge branch 'MDL-28990-MOODLE_21_STABLE' of git://github.com/mouneyrac/moodle into MOODLE_21_STABLE 2011-08-23 02:37:01 +02:00
Eloy Lafuente (stronk7) 092c6089c9 Merge branch 'w33_MDL-29031_m21_oldblock' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-08-23 02:05:08 +02:00
Eloy Lafuente (stronk7) 8fb3542126 Merge branch 'MDL-28226_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-08-23 01:42:25 +02:00
Adam Olley 4b0fbfcbd9 MDL-28481: Send headers before any possible output 2011-08-23 01:37:16 +02:00
Eloy Lafuente (stronk7) b1ea3fb2c6 Merge branch 'w33_MDL-28936_m21_msgstrlen' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-08-23 01:20:24 +02:00
Eloy Lafuente (stronk7) 94aa0fbe8c Merge branch 'MDL-28241_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-08-23 01:17:17 +02:00
Tom Cubanski 6be8a680e2 MDL-26302 quiz editing: top move button on the order and paging tab does not work.
It is strange that processes the submission already handles the submitted data from this change to the HTML.
2011-08-22 23:56:51 +01:00
Tim Hunt 6310adb3f4 MDL-28564 question type importing, improve Jamie's fix. 2011-08-22 23:32:48 +01:00
Jamie Pratt 80fa621c50 MDL-28564 "implement support for extra answer fields in question export and
import" implemented support for extra answer fields in questiontype base
export and import functions.
2011-08-22 23:32:47 +01:00
Tim Hunt 60854b669a MDL-28241 editing multianswer questions broken since the fix for MDL-24594. 2011-08-22 22:36:37 +01:00
Aparup Banerjee 8db14e344b Merge branch 'wip-mdl-28580-m21' of git://github.com/rajeshtaneja/moodle into MOODLE_21_STABLE 2011-08-23 01:49:51 +08:00
Andrew Davis (andyjdavis) a47827691a MDL-27823 messaging: preventing html tags from being output to the UI 2011-08-22 15:28:30 +08:00
Aaron Barnes 3b9bf6a949 MDL-28397 completion: Activity completion criteria not showing grading
requirement

Credit goes to Evan Irving-Pease for the patch
2011-08-22 14:57:13 +12:00
Petr Skoda 5eb8c77850 MDL-29011 do not require manual enrol cap on the enrolled users page 2011-08-21 18:18:35 +02:00
Petr Skoda 51606ad2d8 MDL-29031 remove blocks cleanup todo 2011-08-21 17:45:52 +02:00
Petr Skoda 812e3294be MDL-27248 remove forgotten unique sortorder index from the course table 2011-08-21 17:33:19 +02:00
Petr Skoda 181b0dc545 MDL-28982 fix DML use 2011-08-21 15:39:34 +02:00
Petr Skoda 6b3d645e9b MDL-28381 always verify PHP version in CLI scripts
The problem is that people may use different php binary for web and CLI.
2011-08-21 12:22:14 +02:00
Tim Hunt 3d233b9dab MDL-28444 unit test to verify the fix. 2011-08-20 13:18:05 +01:00
Henning Bostelmann 5c364504a6 MDL-28444 synchronized datasets: fix typo in get_variants_selection_seed() 2011-08-20 11:45:41 +01:00
Petr Skoda 0864c8a59d MDL-29022 do not require idnumber in ext courses - backport from MDL-29020 2011-08-20 11:34:58 +02:00
AMOS bot c498bf796b Automatically generated installer lang files 2011-08-20 00:55:28 +00:00
Petr Skoda a32da065ae MDL-28936 fix invalid >200 comparison and utf-8 incompatibility
Credit for discovery goes to Jason Ilicic.
2011-08-19 18:44:33 +02:00
Tony Levi 68d9daa187 MDL-28708: Send 304 Not Modified response when browser If-Modified-Since header is after file mtime 2011-08-19 17:27:20 +02:00
Petr Skoda 4bdcd23e19 MDL-28709 adding HTTP_IF_MODIFIED_SINCE and minor style tweaks 2011-08-19 16:50:16 +02:00
Tony Levi 716f93efdb MDL-28709: Performance: Send cache/contenttype headers with 304 responses 2011-08-19 16:50:16 +02:00
Henning Bostelmann ec5f40b1a9 MDL-28684 QE2 upgrade: recognize empty answer in multichoice questions 2011-08-19 10:33:55 +01:00
Rajesh Taneja 01f9bc7948 MDL-28580 Administration: Added sanity check to grab wrong usage of upgrade_main_savepoint 2011-08-19 07:41:13 +00:00
Jerome Mouneyrac fc218ba9e2 MDL-28990 add web service mobile overview 2011-08-19 11:47:17 +08:00
Dan Marsden f3e0eac04f MDL-28999 SCORM add missing yui2 require 2011-08-19 10:21:11 +12:00
Tim Hunt da45306da5 MDL-28996 Quiz view page list of attempts table is sometimes missing a cell. 2011-08-18 19:27:19 +01:00
Tim Hunt 96bab3e01d MDL-28979 qtype match: correct answer formatted badly. 2011-08-18 13:51:18 +01:00
Tim Hunt cb5a7bba89 MDL-28976 quiz was passing 0 to ->attempt_url when it should have been null.
There was also one other incorrect call that is fixed in this commit.
2011-08-18 13:50:51 +01:00
Tim Hunt 0a20ddbe7d MDL-28975 question engine, JavaScript error in IE. 2011-08-18 13:50:24 +01:00
Tim Hunt 3575052f81 MDL-28687 questions avoid fatal errors when reviewing attempts at deleted questions. 2011-08-18 13:49:33 +01:00
Tim Hunt 6d9ae2adf0 MDL-28226 quiz locallib. Fix PHPdoc comment and code to make the API clearer. 2011-08-18 13:44:01 +01:00
Jerome Mouneyrac f76dc0ff65 MDL-28650 add a page in the administration to the full web service API (API documentation). 2011-08-18 12:08:38 +08:00
Dan Marsden 1b64c78d36 MDL-28962 enrol imsenterprise - incorrect conversion of new dml syntax - thanks to Patrick Gagnon for report and fix. 2011-08-18 13:40:17 +12:00
Eloy Lafuente (stronk7) 24654d977b weekly release 2.1.1+ 2011-08-18 02:42:40 +02:00
Eloy Lafuente (stronk7) cd91adc715 Merge branch 'install_21_STABLE' of git://github.com/amosbot/moodle into MOODLE_21_STABLE 2011-08-18 02:38:43 +02:00
Colin Chambers e5ba71b479 #MDL-28957 outputrequirementslib reduced excessive js console logging 2011-08-17 14:58:15 +01:00
Eloy Lafuente (stronk7) ad307c7121 Merge branch 'MDL-28349_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-08-17 15:40:00 +02:00
Dongsheng Cai 1c64c52951 MDL-27289, upgrade box.net repository plugin to use new box.net authentication process 2011-08-17 11:45:32 +08:00
Eloy Lafuente (stronk7) 74475bd5d5 Merge branch 'wip-mdl-27219-m21' of git://github.com/rajeshtaneja/moodle into MOODLE_21_STABLE 2011-08-17 02:59:38 +02:00
Eloy Lafuente (stronk7) c30dadce6f Merge branch 'MDL-28737_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-08-17 02:51:57 +02:00
Eloy Lafuente (stronk7) f45cf8cb2c Revert "MDL-25757 SCORM fix issue with duplicate cmi values being saved"
This reverts commit 2c7cc519d8.
2011-08-17 02:28:49 +02:00
Eloy Lafuente (stronk7) 4239318be9 Merge branch 'MDL-21934_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-08-17 01:29:20 +02:00
Eloy Lafuente (stronk7) 33868528bb Merge branch 'MDL-27752_m21' of git://github.com/rwijaya/moodle into MOODLE_21_STABLE 2011-08-17 01:02:21 +02:00
Eloy Lafuente (stronk7) e3af6a00ba Merge branch 'MDL-28643-m21' of git://github.com/sammarshallou/moodle into MOODLE_21_STABLE 2011-08-17 00:45:25 +02:00
Eloy Lafuente (stronk7) 95caac3cc8 Merge branch 'm21_MDL-28649' of git://github.com/danmarsden/moodle into MOODLE_21_STABLE 2011-08-17 00:33:07 +02:00
Eloy Lafuente (stronk7) c89c390759 Merge branch 'MDL-28652_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-08-17 00:29:23 +02:00
Eloy Lafuente (stronk7) 25bde46869 Merge branch 'MDL-28653_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-08-17 00:25:46 +02:00
Tim Hunt 269c653560 MDL-28654 fix path for TinyMCE in lib/thirdpartylibs.xml. 2011-08-17 00:10:09 +02:00
Eloy Lafuente (stronk7) 88b340161b Merge branch 'MDL-28655-21' of git://github.com/bostelm/moodle into MOODLE_21_STABLE 2011-08-17 00:07:44 +02:00
Eloy Lafuente (stronk7) 5b18861bf0 Merge branch 'm21_MDL-28721' of git://github.com/danmarsden/moodle into MOODLE_21_STABLE 2011-08-16 23:44:12 +02:00
Eloy Lafuente (stronk7) 84e093e143 Merge branch 'wip-MDL-26754-MOODLE_21_STABLE' of github.com:marinaglancy/moodle into MOODLE_21_STABLE 2011-08-16 13:11:16 +02:00
Eloy Lafuente (stronk7) 02b36f79d2 Merge branch 'MDL-28365_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-08-16 13:03:59 +02:00
Eloy Lafuente (stronk7) a6f18c98f4 Merge branch 'MDL-23872_m21' of git://github.com/nebgor/moodle into MOODLE_21_STABLE 2011-08-16 11:51:53 +02:00
Rajesh Taneja 273ac54baa MDL-27219 chat: Beep will not display user fullname if user is not in chat 2011-08-16 16:35:33 +08:00
Andrew Davis (andyjdavis) 549af292b6 MDL-28943 messaging: made messaging admin page use a string instead of the plugin name 2011-08-16 14:33:57 +08:00
Eloy Lafuente (stronk7) 28f9b39287 Merge branch 'MDL-28931_m21' of git://github.com/stronk7/moodle into MOODLE_21_STABLE 2011-08-16 03:06:07 +02:00
Eloy Lafuente (stronk7) e42213ab72 Merge branch 'wip-mdl-27728-m21' of git://github.com/rajeshtaneja/moodle into MOODLE_21_STABLE 2011-08-16 02:14:49 +02:00
Eloy Lafuente (stronk7) 68d998c6cf Merge branch 'MDL-27030_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-08-16 02:07:37 +02:00
Eloy Lafuente (stronk7) bf22dc969c MDL-27896 filters/editor - fix whitespace 2011-08-16 02:01:20 +02:00
Eloy Lafuente (stronk7) 0031600453 Merge branch 'wip-mdl-27896-m21' of git://github.com/rajeshtaneja/moodle into MOODLE_21_STABLE 2011-08-16 02:00:36 +02:00
Eloy Lafuente (stronk7) 3bcd0781f1 Merge branch 'm21_MDL-25757' of git://github.com/danmarsden/moodle into MOODLE_21_STABLE 2011-08-16 00:39:18 +02:00
Petr Skoda 26e3dce466 Merge branch 'MDL-27845_rating_aggregation_21' into MOODLE_21_STABLE 2011-08-15 20:41:12 +02:00
Tim Hunt 5e54da0a69 MDL-21934 Removing all questions from the quiz should not delet overall feedback.
Overall feedback was being wiped because the quiz max grade was being set to zero when sumgrades was set to 0. The correct logic is to only set maxgrade to 0 if there are questions in the quiz and sumgrades is 0.
2011-08-15 19:10:47 +01:00
Eloy Lafuente (stronk7) a4f85cc579 Merge branch 'm21_MDL-28603' of git://github.com/danmarsden/moodle into MOODLE_21_STABLE 2011-08-15 20:02:33 +02:00
Dan Poltawski bf1b681560 MDL-28605 repsitory/local - Prevent server running out of memory
Removing useless code..
2011-08-15 19:58:27 +02:00
Eloy Lafuente (stronk7) 2ce0d40694 Merge branch 'MDL-28939_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-08-15 19:34:59 +02:00
Tim Hunt 7f10fbbf5f MDL-28349 error when GIFT-importing essay questions. 2011-08-15 16:18:03 +01:00
Tim Hunt e67a234c98 MDL-28365 Move question lang string to the right file
All the references to this sring were already referring to it in the new
place.

AMOS BEGIN
 MOV [cannotread,mod_quiz],[cannotread,question]
AMOS END
2011-08-15 15:20:15 +01:00
Tim Hunt 80e3f00091 MDL-28939 Bad lang string reference in grade/import/csv. 2011-08-15 15:12:19 +01:00
Tim Hunt d3fd75d21d MDL-28639 question import should set timemodified and modified by.
Thanks to Jean-Michel Vedrine for the fix.
2011-08-15 14:56:45 +01:00
Tim Hunt 8ad92a30f1 MDL-28438 Aiken question import broken since MDL-24594. 2011-08-15 14:47:16 +01:00
Eloy Lafuente (stronk7) bee0152fda MDL-28931 timezone - update to 2011h (2200 rules) 2011-08-14 18:06:10 +02:00
Dan Marsden 2c7cc519d8 MDL-25757 SCORM fix issue with duplicate cmi values being saved 2011-08-13 13:24:22 +12:00
Tim Hunt 643e2728df MDL-28737 advcheckboxes toggle state every submit if checkbox_controller present. 2011-08-12 19:13:20 +01:00
Rajesh Taneja 3a7de25755 MDL-27896 course - Rectified wrong use of itemid for preparing draft file area 2011-08-12 16:49:29 +08:00
Rajesh Taneja 56d57a9a4e MDL-27896 editor - parent context will be respected by editor in case context is not created. 2011-08-12 16:49:05 +08:00
Rajesh Taneja 1449e4faa2 MDL-27896 editor - added sanity check to pick wrong context passed to editor creation 2011-08-12 16:48:47 +08:00
Rajesh Taneja b51aac313f MDL-27896 context - Fixed editor context to observe filter status 2011-08-12 16:48:22 +08:00
Dan Marsden ee124f531b MDL-28603 SCORM fix regression with ADL scorm 1.2 tests 2011-08-12 17:24:48 +12:00
Rajesh Taneja 63ff326835 MDL-27728 Moodleforms: Added validation for element before checking element values 2011-08-12 10:54:33 +08:00
AMOS bot 5ce30862f2 Automatically generated installer lang files 2011-08-12 00:55:30 +00:00
Dan Marsden dbc61bc225 MDL-28649 SCORM start new attempt if set when skipview used. 2011-08-12 12:53:53 +12:00
Dan Marsden f08cc8276c MDL-28721 SCORM respect hidenav setting 2011-08-12 11:07:28 +12:00
Eloy Lafuente (stronk7) 3a5778ec5a weekly release 2.1.1+ 2011-08-12 00:19:27 +02:00
Eloy Lafuente (stronk7) d0aeb0abfa Merge branch 'install_21_STABLE' of git://github.com/amosbot/moodle into MOODLE_21_STABLE 2011-08-12 00:13:16 +02:00
Marina Glancy f364d3f91d MDL-26754: Removed unnecessary include 2011-08-11 13:40:24 +08:00
AMOS bot 07b5fbb9ca Automatically generated installer lang files 2011-08-11 00:55:47 +00:00
Eloy Lafuente (stronk7) 7637e2e5e4 Merge branch 'MDL-27491-m21' of git://github.com/sammarshallou/moodle into MOODLE_21_STABLE 2011-08-10 23:04:13 +02:00
Eloy Lafuente (stronk7) d980c1d746 Merge branch 'm21_MDL-28295' of git://github.com/danmarsden/moodle into MOODLE_21_STABLE 2011-08-10 22:58:04 +02:00
Daren Chandisingh 339c198ade MDL-23872 Forms Library : Updated MoodleQuickForm to honour setConstant(), prevents injection. 2011-08-10 15:22:07 +08:00
Sam Hemelryk 4f4cbbad8f Merge branch 'MDL-20501_m21' of git://github.com/rwijaya/moodle into MOODLE_21_STABLE 2011-08-10 14:10:12 +08:00
Dan Marsden 6a211fb52d MDL-28295 SCORM change mangement of pop-up windows, load full SCORM API in existing window - this fixes an issue with IE 7 and httpreq communication 2011-08-10 14:33:39 +12:00
Eloy Lafuente (stronk7) 9271414522 Merge branch 'MDL-27631_21' of git://github.com/mkassaei/moodle into MOODLE_21_STABLE 2011-08-10 03:06:52 +02:00
AMOS bot f715589ee5 Automatically generated installer lang files 2011-08-10 00:55:22 +00:00
Eloy Lafuente (stronk7) 6c506c9a07 Merge branch 'MDL-27550-workshop-feedback_21_STABLE' of git://github.com/mudrd8mz/moodle into MOODLE_21_STABLE 2011-08-10 02:49:03 +02:00
Eloy Lafuente (stronk7) a28b6620d6 Merge branch 'w31_MDL-27597_m21_catlike' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-08-10 02:37:07 +02:00
Dan Poltawski c0d30fbb75 MDL-23967 admin/cron.php - warn about use on CLI
Admins now need to use the explicit CLI script
2011-08-10 02:06:12 +02:00
Dan Poltawski 3b97dedfbd MDL-28059 weblib - don't strip mailto: anchors 2011-08-10 01:59:16 +02:00
Eloy Lafuente (stronk7) d04b3d580e Merge branch 'wip-MDL-28407-m21' of git://github.com/samhemelryk/moodle into MOODLE_21_STABLE 2011-08-10 01:11:51 +02:00
Eloy Lafuente (stronk7) 0f61d7f97c Merge branch 'w31_MDL-28533_m21_columnperf' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-08-09 19:33:09 +02:00
sam marshall 37f5c92302 MDL-28643 Fix debugging message when deleting activity with grade completion 2011-08-09 12:47:26 +01:00
Tim Hunt dc4bff71a2 MDL-28653 question output. Add a class to the main div based on question state.
This makes it possible themes do cool things. For example change more of the display depending on whether the answer was correct or not.
2011-08-09 11:32:18 +01:00
Eloy Lafuente (stronk7) fd6a17ecfb Merge branch 'MDL-28565_m21' of git://github.com/nebgor/moodle into MOODLE_21_STABLE 2011-08-09 10:15:48 +02:00
Henning Bostelmann fe34282df6 MDL-28655 qtype_calculated question engine upgrade: fix return value 2011-08-09 09:15:33 +01:00
Eloy Lafuente (stronk7) 6b4422a086 Merge branch 'MDL-28604_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-08-09 09:42:59 +02:00
AMOS bot 9dba637233 Automatically generated installer lang files 2011-08-09 00:55:22 +00:00
Tony Levi 5c5cb085c0 MDL-27030: Fix quiz overview report showing incorrect grades on regraded attempts
Conflicts:

	mod/quiz/report/overview/report.php
2011-08-08 23:46:19 +01:00
Petr Skoda 1c106106fd Merge branch 'MDL-28620_21' of git://github.com/jbrisland/moodle into MOODLE_21_STABLE 2011-08-08 15:35:05 +02:00
Tim Hunt 65be66e4d4 MDL-28652 qtype calculated, bad display of placeholder names on the editing form. 2011-08-08 13:14:20 +01:00
Aparup Banerjee 006776fc71 MDL-28565 General - updated lang files License link to docs.moodle.org/dev/License 2011-08-08 17:14:06 +08:00
Aparup Banerjee 6f80b9b3e9 MDL-28565 General - updated License and Credits links
to docs.moodle.org/dev/License and docs.moodle.org/dev/Credits
2011-08-08 17:13:36 +08:00
Sagie Maoz 56f2ab3335 MDL-26721 automated backups - Fix typo
Causing the 'role assignment' backup inclusion to be tied to the users

Signed-off-by: Dan Poltawski <dan.poltawski@luns.net.uk>
2011-08-08 15:39:12 +08:00
Sam Hemelryk 5553dcba67 Merge branch 'mdl-28517_2.1' of git://github.com/colchambers/moodle into MOODLE_21_STABLE 2011-08-08 14:22:41 +08:00
Sam Hemelryk 806e82b7fc Merge branch 'MDL-28569' of git://git.luns.net.uk/moodle into MOODLE_21_STABLE 2011-08-08 14:09:53 +08:00
Sam Hemelryk 172007a066 Merged branch 'MDL-28575_MOODLE_21_STABLE' of git://github.com/kordan/moodle.git with conflict resolution 2011-08-08 13:59:08 +08:00
Sam Hemelryk 9a2e30d8bc Merge branch 'MDL-28587_MOODLE_21_STABLE' of git://github.com/kordan/moodle into MOODLE_21_STABLE 2011-08-08 13:44:52 +08:00
Rossiani Wijaya 272d804840 MDL-27752 Calendar export: fixed typo in url parameter 2011-08-08 12:16:59 +08:00
Sam Hemelryk 40b4296d07 Merge branch 'MDL-28406_block_duplicate_21' of git://github.com/andyjdavis/moodle into MOODLE_21_STABLE 2011-08-08 11:18:54 +08:00
Sam Hemelryk f24eca0c6b Merge branch 'MDL-28602_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-08-08 11:08:08 +08:00
Sam Hemelryk 9d660d5f0e Merge branch 'MDL-28593_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-08-08 11:04:38 +08:00
Sam Hemelryk cf7daeae7e Merge branch 'MDL-28612_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-08-08 11:02:11 +08:00
Sam Hemelryk 62bdb79c26 Merge branch 'MDL-28618_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-08-08 10:57:31 +08:00
Sam Hemelryk 6f7c43c7de Merge branch 'w31_MDL-27586_m21_browser' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-08-08 10:47:33 +08:00
Sam Hemelryk cf8cc1bab1 Merge branch 'w31_MDL-27685_m21_pglike' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-08-08 10:25:47 +08:00
Sam Hemelryk 6b9c6cc54e Merge branch 'w31_MDL-28382_m21_iis' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-08-08 10:20:57 +08:00
Sam Hemelryk 31b4fdabbf Merge branch 'w31_MDL-28450_m21_defgroup' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-08-08 10:09:46 +08:00
Sam Hemelryk a9fbf9fb87 Merge branch 'w31_MDL-28468_m21_cohortassign' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-08-08 10:06:21 +08:00
Sam Hemelryk 2e81c307d0 Merge branch 'w31_MDL-28473_m21_blocksupgrade' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-08-08 10:03:07 +08:00
Petr Skoda c2edea7cbd MDL-28382 work around or detect REQUEST_URI IIS bug 2011-08-07 14:45:53 +02:00
Petr Skoda f6589dd72d MDL-27685 fix pg LIKE escape trouble 2011-08-07 13:22:36 +02:00
Petr Skoda 29a27d3ca4 MDL-28450 prefer member group for default 2011-08-07 13:07:54 +02:00
Petr Skoda e24225351c MDL-28634 fix forgotten references to Moodle 2.0 and old PHP version requirements 2011-08-06 22:57:47 +02:00
Petr Skoda 520f687cde MDL-27586 fix file_browser access control 2011-08-06 16:24:04 +02:00
Petr Skoda e25df8c464 MDL-28473 fix $instanceids troubles in blocks upgrade
Credit goes to Mateusz Wójcik.
2011-08-05 22:09:49 +02:00
Petr Skoda a5410db4e3 MDL-28468 fix cohort assign check 2011-08-05 21:47:41 +02:00
Petr Skoda d84336c27d verify where_clause() only in debug mode 2011-08-05 21:34:09 +02:00
Petr Skoda cbe6399300 MDL-27597 fix invalid results of get_categories when shallow is false 2011-08-05 20:14:59 +02:00
Tim Hunt c5fe3d7490 MDL-28618 question combined feedback: inconsistency in file areas.
The (partially|in)?correct feedback fields acutally store their files in a file area with component 'question'. Some code, however, was written as if they were stored in the qtype_whatever area.
2011-08-05 17:38:22 +01:00
James Brisland c04c6e6b8a MDL-28620 - Removed admin/generator.php include as it causes issues if this script is included from any other script that is running in the command line 2011-08-05 16:11:44 +01:00
M Kassaei 6f90ec4703 MDL-27631 question bank Show question text in the question list when top level category is used 2011-08-05 15:00:29 +01:00
Tim Hunt e3b8930087 MDL-28593 Missing include breaks editing quiz grade item. 2011-08-05 08:53:16 +01:00
Andrew Davis (andyjdavis) 70ade8e8d7 MDL-28406 blocks: added JS to prevent the addition of duplicate blocks 2011-08-05 11:33:42 +08:00
Andrew Davis (andyjdavis) b312305ccc MDL-27845 rating: altered the get_ratings() query to avoid possible future duplicate key problems 2011-08-05 11:19:11 +08:00
Sam Hemelryk 1ad4fb6f12 MDL-28407 Fixed up calendar preferences form handling 2011-08-05 09:34:43 +08:00
AMOS bot 056a53e81f Automatically generated installer lang files 2011-08-05 00:55:17 +00:00
Tim Hunt 788e2b30a5 MDL-28612 Quiz statistics report does not always show the 'Actual response' column when it should 2011-08-04 18:15:34 +01:00
Colin Chambers 005900fd2a MDL-28517 question editing fixed duplicate id in hint header field 2011-08-04 14:54:11 +01:00
Tim Hunt f97a14ba27 MDL-28602 Quiz review reports the wrong duration. 2011-08-04 14:20:02 +01:00
Tim Hunt 3e1d47f2cc MDL-28604 Question bank display forgets sort order 2011-08-04 13:55:38 +01:00
Marina Glancy ad66263bc1 MDL-26754 Display blocks in 'manage blocks' alphabetically sorted 2011-08-04 14:12:08 +08:00
AMOS bot 64d8fed91c Automatically generated installer lang files 2011-08-04 00:55:33 +00:00
Petr Skoda 80eb52c415 weekly release 2.1.1+ 2011-08-03 18:04:44 +02:00
Petr Skoda c0852d9a0c Merge branch 'install_21_STABLE' of git://github.com/amosbot/moodle into MOODLE_21_STABLE 2011-08-03 18:02:52 +02:00
kordan 5dd9ee192e MDL-28587 fix for MOODLE_21_STABLE 2011-08-03 15:25:08 +02:00
sam marshall e1bb4741f1 MDL-27491 Add 'complete on view' support to wiki, survey 2011-08-03 11:22:10 +01:00
Sam Hemelryk 4a45ddbae2 Revert "MDL-28284 don't load filepicker module for every page"
This reverts commit 279a874108.
2011-08-03 18:20:30 +08:00
kordan aa34ca4309 MDL-28575 fix for MOODLE_21_STABLE 2011-08-02 23:41:45 +02:00
David Mudrak 11351de2d3 MDL-27550 workshop: fixed XHTML strictness of H3 and A combo
H3 is block level element while A is in-line element in XHTML.
Credit goes to Sam Hemelryk for spotting this during the peer-review.
2011-08-02 23:32:46 +02:00
David Mudrak 08282ec16c MDL-27550 workshop: rendering links to the submission and the assessment page
This usability improvement helps to provide feedback quickly during the
grading evaluation phase.
2011-08-02 23:32:25 +02:00
David Mudrak 8981b64a41 MDL-27550 workshop: students do not see peer-assessment that are not graded yet 2011-08-02 23:32:25 +02:00
David Mudrak c6b8bbfa9b MDL-27550 workshop: display the feedback for the submission reviewer when the workshop is closed 2011-08-02 23:32:24 +02:00
David Mudrak 275a6f59d7 MDL-27550 workshop: assessments are now displayed via proper rendering subsystem
AMOS BEGIN
 MOV [assessmentbyknown,mod_workshop],[assessmentbyfullname,mod_workshop]
AMOS END
2011-08-02 23:32:24 +02:00
David Mudrak 308e4280e3 MDL-27550 workshop: display the feedback for the submission author when the workshop is closed
The method user_picture::fields() was not available when these SQL
statements were originally written. Now instead of hard-coding the list
of returned fields, the user_picture is asked for the list.

Together with this change, methods workshop::get_submission_by_id()
and workshop::get_submission_by_author() now return the information
about the user who provided the feedback and overwrote the grade.
2011-08-02 23:32:24 +02:00
Petr Skoda 5d08b03e5b Merge branch 'wip-mdl-27658-m21' of git://github.com/rajeshtaneja/moodle into MOODLE_21_STABLE 2011-08-02 15:12:54 +02:00
Petr Skoda e4e3b12325 Merge branch 'MDL-28338_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-08-02 15:08:48 +02:00
Dan Marsden 97247fdadd MDL-28410 Choice - allow single answer choice to be created 2011-08-02 15:05:01 +02:00
Petr Skoda fb563a9949 Merge branch 'MDL-28507_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-08-02 14:51:30 +02:00
Dan Marsden f166ab0bec MDL-28535 SCORM remove old IE 6 related warning about zlib 2011-08-02 14:40:41 +02:00
Tim Hunt bae927bebd MDL-28507 fix bad lang string uses, and remove two obsolete strings. 2011-08-02 13:38:39 +01:00
Dan Poltawski 7f62477a87 MDL-28569 blocks/rss_client - RSS feed autodiscovery fails with ampersands
Simpliepie is quoting urls and we need the url to be unescaped
2011-08-02 13:19:01 +01:00
Sam Hemelryk 5a5e7bb3b1 Merge branch 'MDL-28490_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-08-02 17:56:14 +08:00
Sam Hemelryk 6f2723ae83 Merge branch 'MDL-28508_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-08-02 17:47:42 +08:00
Sam Hemelryk 365ed23695 Merge branch 'MDL-28051_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-08-02 17:14:33 +08:00
Andrew Robert Nicols c0c2b3dc1a MDL-28515 Add cli install options for fullname and shortname 2011-08-02 17:07:44 +08:00
Sam Hemelryk 26dcfcb542 Merge branch 'MDL-28340_advanced_search_other_users_21' of git://github.com/andyjdavis/moodle into MOODLE_21_STABLE 2011-08-02 16:59:36 +08:00
Sam Hemelryk 34eee090a7 Merge branch 'wip-mdl-28504-m21' of git://github.com/rajeshtaneja/moodle into MOODLE_21_STABLE 2011-08-02 16:51:57 +08:00
Sam Hemelryk 9a1f42da6d Merge branch 'wip-MDL-19907-MOODLE_21_STABLE' of git://github.com/marinaglancy/moodle into MOODLE_21_STABLE 2011-08-02 16:46:07 +08:00
Sam Hemelryk 5be31c5bf2 MDL-27122 admin Improved block protection help string 2011-08-02 16:32:13 +08:00
Sam Hemelryk 3e2569f70d Merge branch 'wip-MDL-27122-MOODLE_21_STABLE' of git://github.com/marinaglancy/moodle into MOODLE_21_STABLE 2011-08-02 16:27:49 +08:00
Sam Hemelryk fa0f970835 Merge branch 'wip-MDL-27754-MOODLE_21_STABLE' of git://github.com/marinaglancy/moodle into MOODLE_21_STABLE 2011-08-02 14:09:30 +08:00
Sam Hemelryk f89a34fb77 Merge branch 's11_MDL-28284_filepicker_module_21' of git://github.com/dongsheng/moodle into MOODLE_21_STABLE 2011-08-02 13:42:12 +08:00
Sam Hemelryk 09e7c66714 Merge branch 'MDL-28510_21_STABLE' of git://github.com/marxjohnson/moodle into MOODLE_21_STABLE 2011-08-02 13:37:17 +08:00
unknown c4eea3e21a Merge branch 'm21_MDL-27876' of git://github.com/danmarsden/moodle into MOODLE_21_STABLE 2011-08-02 13:26:25 +08:00
Piers Harding 189bdcf125 MDL-27876 SCORM auto-adjust the stage height 2011-08-02 17:13:37 +12:00
Sam Hemelryk b587abd989 Merge branch 'MDL-28487-typo_21_STABLE' of git://github.com/mudrd8mz/moodle into MOODLE_21_STABLE 2011-08-02 12:23:14 +08:00
Sam Hemelryk 9cacdc07d7 Merged branch 'm21_MDL-28548' of git://github.com/danmarsden/moodle.git with comment changes 2011-08-02 11:46:11 +08:00
AMOS bot e054707e9a Automatically generated installer lang files 2011-08-02 00:55:21 +00:00
Marina Glancy 9cd9d86640 MDL-27754 fixed typo in language string 2011-08-02 08:52:10 +08:00
Marina Glancy 919fcc6f12 MDL-27122 Allow admin to change CFG->undeletableblocktypes on 'Manage blocks' settings page. Instances of protected block types will be undeletable only from site context 2011-08-02 08:52:03 +08:00
Marina Glancy f9694db2cb MDL-19907 rewrote validation for required fields in forms, including support for editor field. Added parameter to use strict (no spaces) required fields validation 2011-08-02 08:51:40 +08:00
Rossiani Wijaya 2154de3b3c MDL-20501 survey module: fix text alignment for right to left language. Change undefined string to 2011-08-01 17:40:04 +08:00
Sam Hemelryk 0c566ce339 Moodle 2.1.1 release 2011-08-01 16:57:23 +08:00
Rajesh Taneja 5bda1372a1 MDL-27658 javascript: Typo fixed for toUpperCase 2011-08-01 12:53:51 +08:00
Rajesh Taneja 877f061325 MDL-28504 filter: Typo in css fixed 2011-08-01 10:22:57 +08:00
Dan Marsden 263f258ae2 MDL-28548 allow backup to contain info from multiple plagiarism plugins. 2011-08-01 10:28:59 +12:00
Sam Hemelryk 06b04e5c62 weekly release 2.1+ (emergency) 2011-07-29 12:21:57 +08:00
Andrew Davis (andyjdavis) d0752d358e MDL-28340 messaging: fixed a display issue when you search for and tried to view a conversation between two other users 2011-07-29 11:50:51 +08:00
Sam Hemelryk c7f69afe4a Merge branch 'install_21_STABLE' of git://github.com/amosbot/moodle into MOODLE_21_STABLE 2011-07-29 10:13:43 +08:00
Sam Hemelryk 2fa0daefca MDL-28503 comment-caps Slight improvement to allow frontpage and guest users to view comments by default 2011-07-29 09:44:10 +08:00
AMOS bot 89c13e32a0 Automatically generated installer lang files 2011-07-29 00:55:17 +00:00
Wale Olujide 235a394e04 MDL-28051 Question numbers on the question edit page shoud be the same as during the quiz attempt. 2011-07-28 18:03:55 +01:00
Mark Johnson a10ec7f66a MDL-28510 repository_youtube Use smaller thumbnails in search results 2011-07-28 13:46:04 +01:00
Mark Johnson 0638e55b14 MDL-28509 repository_youtube Enable selection of sort order 2011-07-28 13:15:25 +01:00
Tim Hunt a637417d78 MDL-28508 bad string trunction in Aiken format. 2011-07-28 11:52:27 +01:00
Sam Hemelryk 9da3c2efad MDL-28503 Removed the ability for plugins to override comment capabilities and the defaults associated with it 2011-07-28 13:40:06 +08:00
AMOS bot 16e382f8c5 Automatically generated installer lang files 2011-07-28 00:55:17 +00:00
Tim Hunt e12ec6169a MDL-28490 Better class names in the statistics report to help themes. 2011-07-27 19:26:32 +01:00
Tim Hunt 01528075a2 MDL-28338 fix stupid '\n's in the quiz renderer 2011-07-27 19:25:49 +01:00
David Mudrak 3cddd60db7 MDL-28487 Fixed typo in media filter help string 2011-07-27 14:44:17 +02:00
AMOS bot 216113139f Automatically generated installer lang files 2011-07-27 00:55:30 +00:00
Petr Skoda f664cb7c29 weekly release 2.1+ 2011-07-26 11:10:56 +02:00
Petr Skoda 4ac669f1e8 Merge branch 'install_21_STABLE' of git://github.com/amosbot/moodle into MOODLE_21_STABLE 2011-07-26 11:09:49 +02:00
AMOS bot 99b0cba0ec Automatically generated installer lang files 2011-07-26 00:55:24 +00:00
Tim Hunt 526d69522d MDL-28218 allow testclient.php to find the necessary form for services defined in plugins. 2011-07-25 20:05:01 +02:00
Petr Skoda a24681a87a Merge branch 'MDL-28437_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-07-25 19:54:07 +02:00
Petr Skoda e1ad3c38bc Merge branch 'MDL-28369_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-07-25 19:52:26 +02:00
Petr Skoda 7ff71aca59 Merge branch 'MDL-28377_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-07-25 19:50:18 +02:00
Petr Skoda e205686397 Merge branch 'wip-MDL-28421-MOODLE_21_STABLE' of https://github.com/Beedell/moodle into MOODLE_21_STABLE 2011-07-25 17:03:18 +02:00
Petr Skoda ba295bba29 Merge branch 'wip-MDL-28191-m21' into MOODLE_21_STABLE 2011-07-25 16:46:42 +02:00
Petr Skoda 25f9dae427 Merge branch 'MDL-28453_MOODLE_21_STABLE' into MOODLE_21_STABLE 2011-07-25 16:25:40 +02:00
Tim Hunt d8f77afbb8 MDL-28369 Question hints not being restored. 2011-07-25 10:06:27 +01:00
John Beedell aa4292ad22 MDL-28421 admin config improve class
admin_setting_configmultiselect_modules to include a default
2011-07-25 09:56:55 +01:00
Aparup Banerjee 2d4c4b65d4 MDL-28453 backup - made temporary restoration courses hidden by default. 2011-07-25 16:44:50 +08:00
Tim Hunt ce9423eaa7 MDL-28377 Call to mod_quiz_renderer is screwed up. 2011-07-25 09:16:11 +01:00
Tim Hunt 26a4f319a8 MDL-28437 Question bank pages should all use General type: admin. 2011-07-25 08:52:22 +01:00
Sam Hemelryk 93c5c05423 Merge branch 'MDL-28107_m21' of git://github.com/rwijaya/moodle into MOODLE_21_STABLE 2011-07-25 15:14:27 +08:00
Andrew Davis (andyjdavis) 2f74865eef MDL-27845 rating: split the get_ratings() query into two to reduce query complexity 2011-07-25 14:21:17 +08:00
Andrew Davis (andyjdavis) fc391624f0 MDL-27845 rating: updated rating unit tests 2011-07-25 14:18:38 +08:00
Eloy Lafuente (stronk7) a5224e1f83 rating/lib.php unit tests 1st cut 2011-07-25 14:18:29 +08:00
Sam Hemelryk 30bfe73981 Merge branch 'MDL-28228' of git://git.luns.net.uk/moodle into MOODLE_21_STABLE 2011-07-25 13:04:19 +08:00
Sam Hemelryk b835eebad9 Merge branch 'MDL-28232' of git://git.luns.net.uk/moodle into MOODLE_21_STABLE 2011-07-25 12:57:01 +08:00
Michael Aherne 3152ccf0a4 MDL-27538 Added deprecation details to functions now in $DB 2011-07-25 11:31:39 +08:00
Sam Hemelryk 38a6a195a4 Merge branch 'w29_MDL-22584_m21_monsterpaths' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-07-25 11:18:37 +08:00
Sam Hemelryk 18c2fcf8f1 Merge branch 'w29_MDL-27464_m21_continue' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-07-25 11:03:52 +08:00
Sam Hemelryk dbb6d73c8c Merge branch 'w29_MDL-27653_m21_usercasting' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-07-25 10:59:21 +08:00
Sam Hemelryk ae5375722e Merge branch 'w29_MDL-27796_m21_httphost' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-07-25 10:55:04 +08:00
Sam Hemelryk 274d9cf950 Merge branch 'w29_MDL-27994_m21_creatorcaps' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-07-25 10:45:42 +08:00
Sam Hemelryk 7b205e100b Merge branch 'w29_MDL-28145_m21_renderer' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-07-25 10:39:47 +08:00
Sam Hemelryk 39a84a780b Merge branch 'w29_MDL-28182_m21_userdel' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-07-25 10:36:55 +08:00
Sam Hemelryk c782b4bb58 Merge branch 'w29_MDL-28337_m21_urlparams' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-07-25 10:30:00 +08:00
Sam Hemelryk b1591c6568 Merge branch 'w29_MDL-28384_m21_nullurl' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-07-25 10:14:47 +08:00
Sam Hemelryk 6e48852633 Merge branch 'w29_MDL-28432_m21_cohortconfig' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-07-25 09:52:49 +08:00
Sam Hemelryk 88b014092d Merge branch 'w29_MDL-28440_m21_jssemicol' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-07-25 09:45:42 +08:00
Mary Evans 7d8b8d1abe fix for MDL-27768 removed reference to gradient-sb image 2011-07-25 09:40:12 +08:00
Petr Skoda 13d0cc41eb MDL-27653 fix incorrect int | object detection 2011-07-24 15:05:16 +02:00
Petr Skoda f76942869c MDL-27994 course creator role is for creating courses only!
The course creator role is designed to be used to create courses, nothing else - that is create new course, create new course from backup + view hidden courses and categories.
2011-07-24 14:19:21 +02:00
Petr Skoda 50ecbad305 MDL-28384 convert empty log urls to ''
The problem is that the log table does not allow nulls, credit goes to Troy Williams.
2011-07-24 14:08:27 +02:00
Petr Skoda 1e075c08a0 MDL-27464 continuation link sometimes links off-site
This code was manually merged from MOODLE_19_STABLE, credit goes to Matt Meisberger.
2011-07-23 13:34:43 +02:00
Petr Skoda 4cbc500d1f MDL-28440 add missing semicolon causing JS issues
Credit goes to Mark Nielsen.
2011-07-23 11:49:39 +02:00
Petr Skoda 4e6464937c MDL-22584 deal with oversized dir and file names during upgrade 2011-07-23 11:40:21 +02:00
Petr Skoda cb52b340d3 MDL-28145 fix renderer typo in comments 2011-07-22 23:43:30 +02:00
Petr Skoda f1073b930b MDL-27796 ignore missing HTTP_HOST header 2011-07-22 23:18:13 +02:00
Petr Skoda 4133a3cd5b MDL-28182 always use full user object when deleting users 2011-07-22 22:48:16 +02:00
Petr Skoda bdbb48efe9 MDL-28337 add parameters explanation in URL resource configuration 2011-07-22 22:18:29 +02:00
Petr Skoda 965c9b97ab MDL-28432 use enrol/cohort and enrol/manual capabilities correctly in cohort enrol UI and fix input validation in ajax 2011-07-22 10:14:29 +02:00
Sam Hemelryk 22cf3b24a5 MDL-28191 Continue button after selecting a theme now redirects back to the theme selector 2011-07-22 14:58:06 +08:00
Rossiani Wijaya d19983fac1 MDL-28107 course enrolment icon: Fixed logged in user enrolment icons 2011-07-22 13:22:26 +08:00
AMOS bot 283ccdc71f Automatically generated installer lang files 2011-07-22 00:55:19 +00:00
Dongsheng Cai 279a874108 MDL-28284 don't load filepicker module for every page 2011-07-21 17:27:51 +08:00
AMOS bot e0d9ebc1f2 Automatically generated installer lang files 2011-07-20 00:55:26 +00:00
Petr Skoda aede1fe6a7 weekly release 2.1+ 2011-07-19 15:23:42 +02:00
Petr Skoda f21656d5d0 Merge branch 'install_21_STABLE' of git://github.com/amosbot/moodle into MOODLE_21_STABLE 2011-07-19 15:16:46 +02:00
Petr Skoda feccdaa0ff MDL-27696 initialise arrays
Credit goes to David Mudrak.
2011-07-19 15:04:38 +02:00
Petr Skoda fc7224bac7 MDL-27696 do not use placeholders in GROUP BY because pg does no like that 2011-07-19 10:54:04 +02:00
Petr Skoda 27b4936fcf MDL-27889 use new recaptcha google urls in lang packs 2011-07-19 10:26:30 +02:00
AMOS bot cdf9c89416 Automatically generated installer lang files 2011-07-19 00:55:36 +00:00
Dan Poltawski bf953fe670 MDL-28228 pagelib - incorrect DEBUG constant used 2011-07-19 00:02:56 +01:00
Dan Poltawski 677ee6dee7 MDL-28232 - Course log text export is missing a new line 2011-07-18 23:46:08 +01:00
Petr Skoda 8fa38242d0 Merge branch 'wip-MDL-28040-m21' of git://github.com/samhemelryk/moodle into MOODLE_21_STABLE 2011-07-18 15:34:09 +02:00
Petr Skoda aa3097da63 Merge branch 'wip-MDL-28184-m21' of git://github.com/samhemelryk/moodle into MOODLE_21_STABLE 2011-07-18 15:28:54 +02:00
Petr Skoda 719368f8cf Merge branch 'wip-MDL-28205-m21' of git://github.com/samhemelryk/moodle into MOODLE_21_STABLE 2011-07-18 15:25:31 +02:00
Petr Skoda dd70519ab4 Merge branch 'wip-MDL-28137-m21' of git://github.com/samhemelryk/moodle into MOODLE_21_STABLE 2011-07-18 15:22:57 +02:00
Petr Skoda 38a1040957 Merge branch 'wip-MDL-27771-m21' of git://github.com/samhemelryk/moodle into MOODLE_21_STABLE 2011-07-18 15:20:01 +02:00
Petr Skoda ea3317e782 Merge branch 'wip-MDL-27696-m21' of git://github.com/samhemelryk/moodle into MOODLE_21_STABLE 2011-07-18 15:17:55 +02:00
Petr Skoda f871cc1b8a Merge branch 'wip-MDL-27305-m21' of git://github.com/samhemelryk/moodle into MOODLE_21_STABLE 2011-07-18 15:14:42 +02:00
Petr Skoda 29d4f2eeb3 Merge branch 'wip-MDL-25870-m21' of git://github.com/samhemelryk/moodle into MOODLE_21_STABLE 2011-07-18 14:57:59 +02:00
Sam Hemelryk a699cbcdbc Merge branch 'wip-MDL-27756-MOODLE_21_STABLE' of github.com:marinaglancy/moodle into MOODLE_21_STABLE 2011-07-18 22:18:52 +10:00
Sam Hemelryk 8910a2d15a Merge branch 'MDL-27555_m21' of git://github.com/rwijaya/moodle into MOODLE_21_STABLE 2011-07-18 21:51:11 +10:00
Sam Hemelryk 0d9cdacf89 Merge branch 'wip-mdl-27837-MOODLE_21_STABLE' of git://github.com/rajeshtaneja/moodle into MOODLE_21_STABLE 2011-07-18 21:08:41 +10:00
Sam Hemelryk 982ea16909 Merge branch 'w28_MDL-23344_m21_loginfocus2' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-07-18 20:26:19 +10:00
Sam Hemelryk 39b10270a1 Merge branch 'w28_MDL-27804_m21_csvauth' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-07-18 20:19:20 +10:00
Sam Hemelryk 4e579f6067 Merge branch 'w28_MDL-28253_m21_managerupgrade' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-07-18 20:10:01 +10:00
Sam Hemelryk f6c2b4fc13 Merge branch 'w28_MDL-28313_m21_enroldb' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-07-18 20:04:01 +10:00
Sam Hemelryk 056c04c9b4 Merge branch 'w28_MDL-28348_m21_meta' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-07-18 19:39:28 +10:00
Sam Hemelryk 03368c0b2e Merge branch 'w28_MDL-28350_m21_wsra' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-07-18 19:28:27 +10:00
Petr Skoda 4bc43436b9 Merge branch 'wip-MDL-25125-MOODLE_21_STABLE' of github.com:marinaglancy/moodle into MOODLE_21_STABLE 2011-07-18 09:34:18 +02:00
Sam Hemelryk 5dd5e31616 Merge branch 'w28_MDL-28363_m21_dimmed' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-07-19 00:45:35 +10:00
Sam Hemelryk bd202c1531 Merge branch 'MDL-28298-workshop-constant_21_STABLE' of git://github.com/mudrd8mz/moodle into MOODLE_21_STABLE 2011-07-19 00:39:36 +10:00
Sam Hemelryk 9190787dff Merge branch 'MDL-28325-enrol-help_21_STABLE' of git://github.com/mudrd8mz/moodle into MOODLE_21_STABLE 2011-07-19 00:34:58 +10:00
Sam Hemelryk 3753033ef6 MDL-26482 minor whitespace fix 2011-07-19 00:28:15 +10:00
Sam Hemelryk 0a02548c23 Merge branch 'm21_MDL-26482' of git://github.com/danmarsden/moodle into MOODLE_21_STABLE 2011-07-19 00:27:04 +10:00
Petr Skoda 8399f5a230 MDL-28348 fix spelling and some whitespace issues 2011-07-17 20:40:48 +02:00
Petr Skoda ffbde27300 MDL-28348 fix fatal error caused by unenrolling of incorrect enrol instance 2011-07-17 20:40:47 +02:00
Petr Skoda dd6142b7d2 MDL-28348 prevent circular references in meta handler for enrolments 2011-07-17 20:40:47 +02:00
Petr Skoda d5cb69e9ba MDL-28348 fix meta sync when unassigning roles 2011-07-17 20:40:47 +02:00
Petr Skoda 285e578ed7 MDL-28363 make dimmed selectors more specific to prevent overriding from other themes 2011-07-16 21:04:53 +02:00
AMOS bot e7250e5bd0 Automatically generated installer lang files 2011-07-16 00:55:20 +00:00
Petr Skoda f2b1a6c2ad MDL-28350 prevent bogus role assignment via externallib 2011-07-15 12:24:10 +02:00
Petr Skoda 52bdbe7617 MDL-27804 allow changing of only auth in csv user uploads 2011-07-15 11:08:19 +02:00
David Mudrak bf225ac4c8 MDL-28325 Enrolment: added help to the duration, start date and end date setting
The patch also fixes one typo in enrol_manual detected while working on
this.
2011-07-15 08:53:43 +02:00
AMOS bot 697c3ab6b6 Automatically generated installer lang files 2011-07-15 00:55:18 +00:00
Petr Skoda 0954c43f81 MDL-28313 fix incorrect enrol database settings upgrade 2011-07-14 22:34:03 +02:00
Petr Skoda 536ac72d51 MDL-23344 new option to autofocus username or password on the login form
Nearly everybody else does this login page autofocus. Once we switch to HMTL 5 we should use the new autofocus input option. I believe the admin setting should be enabled by default but it would not be possible to get it through the reviews.
2011-07-14 15:59:21 +02:00
Petr Skoda 1024510a4a MDL-28253 use unique name for new manager role 2011-07-14 13:37:31 +02:00
Marina Glancy 659d31bf25 MDL-27756 Improving move_course() performance 2011-07-14 11:02:43 +08:00
Rajesh Taneja 3012b215f6 MDL-27837 enrol - Fixed checkboxes for multiple self enrolment 2011-07-14 10:04:33 +08:00
Marina Glancy 7a97eccc48 MDL-25125 fix YUI bug with overriding styles 2011-07-14 10:00:52 +08:00
AMOS bot b8dd2bb73c Automatically generated installer lang files 2011-07-14 00:55:18 +00:00
Dan Marsden 2987d698b4 MDL-26482 SCORM add option to disable TOC completely - thanks to Clark Burns for some help! 2011-07-14 11:07:41 +12:00
Dan Marsden 082325c271 MDL-28300 SCORM Fix check for SCORM 2004 thanks to Silvia Bastos for report/patch 2011-07-14 11:02:05 +12:00
Sam Hemelryk 93d82f4601 weekly release 2.1+ 2011-07-13 20:23:04 +08:00
Sam Hemelryk 3a9e75e464 Merge branch 'install_21_STABLE' of git://github.com/amosbot/moodle into MOODLE_21_STABLE 2011-07-13 20:08:56 +08:00
Sam Hemelryk accc55da27 Revert "MDL-23344 fix login form focus"
This reverts commit 2d28584695.
2011-07-13 20:03:56 +08:00
David Mudrak d1c368e050 MDL-28298 workshop: do not use a constant without explicit inclusion of the library
Instead of including whole formslib just to get the constant defined, I
decided to hard-code the value and put the reference to the comment so
that eventual grep would spot it. Of course that is is not nice at all
but it's lesser of two evils imho.
2011-07-13 10:28:04 +02:00
Rossiani Wijaya 35ef97232c MDL-27555 assignment module: remove 'submitted' option from optional setting for offline assignment type. 2011-07-13 15:32:21 +08:00
Sam Hemelryk f3e47fc8d2 MDL-28184 navigation: Tidied up handling of coursenode when adding course essentials 2011-07-13 14:59:31 +08:00
Sam Hemelryk 4479a18d52 MDL-27771 filter-text: Fixed typo contninue 2011-07-13 14:53:12 +08:00
Chris Follin 7869e36193 MDL-27305 forum: Added missing item to forum_get_view_actions 2011-07-13 14:23:08 +08:00
Sam Hemelryk aa132e3f9b MDL-25870 enrol-manual: Fixed pagination of AJAX search results for users when changing search 2011-07-13 14:02:53 +08:00
Sam Hemelryk 34ee79470f MDL-28137 unit tests: Fixed up problem with block manager tests when running unit tests after turning editing on 2011-07-13 13:45:15 +08:00
Sam Hemelryk 9b1ffd0159 MDL-28205 RSS: Fixed up notice and set better pagelayout type on manage feeds page 2011-07-13 10:32:15 +08:00
Sam Hemelryk 9741999e77 MDL-27696 datalib Fixed up misused params in get_logs_usercourse 2011-07-13 10:29:56 +08:00
Sam Hemelryk 3274dc1461 MDL-28040 navigation: Fixed up error with navigation when dealing with categories that have a lower sort order than the parent. 2011-07-13 10:00:16 +08:00
Eloy Lafuente (stronk7) fe97a3dc7a Merge branch 'MDL-28221-resource-conversion_21_STABLE' of git://github.com/mudrd8mz/moodle into MOODLE_21_STABLE 2011-07-12 19:05:04 +02:00
Eloy Lafuente (stronk7) 6f09ed8643 Merge branch 'm21_MDL-28017' of git://github.com/danmarsden/moodle into MOODLE_21_STABLE 2011-07-12 16:30:33 +02:00
Eloy Lafuente (stronk7) e0dfb65718 MDL-28210 messaging: all includes but config.php must use $CFG-based abosolute paths 2011-07-12 12:21:16 +02:00
Andrew Davis (andyjdavis) 9cf58aba08 MDL-28210 messaging: Fixed requires problems in /message/discussion.php 2011-07-12 12:21:07 +02:00
Petr Skoda c43a4beda8 MDL-28273 waring that removing user from cohorts may unenrol from courses 2011-07-12 16:27:18 +08:00
AMOS bot 64149328dd Automatically generated installer lang files 2011-07-12 00:55:23 +00:00
Dan Marsden 15bec9a365 MDL-28017 SCORM add unset_config for old config var 2011-07-12 09:48:28 +12:00
David Mudrak 665120d4e6 MDL-28221 Legacy resource URL pointing to the course itself are migrated as File module
This patch replays the logic of resource_20_migrate() function. If a
file is referred via URL to the course files of the course being
backed up, then such a resource is converted to the File module
(mod/resource) rather than URL module.
2011-07-11 22:37:34 +02:00
Petr Skoda 74275cf6e5 MDL-22404 add cohort ID to user filters
We are using only ID because there might be hundreds of cohorts in the system at different contexts. There is no special access control because filtering is supposed to be used by admins only.
2011-07-11 20:24:11 +02:00
Eloy Lafuente (stronk7) 1187c38d6d Merge branch 'm21_MDL-26942' of git://github.com/danmarsden/moodle into MOODLE_21_STABLE 2011-07-11 19:48:10 +02:00
Eloy Lafuente (stronk7) a19c77bd24 Merge branch 'MDL-27755_m21' of git://github.com/rwijaya/moodle into MOODLE_21_STABLE 2011-07-11 19:43:53 +02:00
Eloy Lafuente (stronk7) b8cde34b06 Merge branch 'MDL-27741_m21' of git://github.com/rwijaya/moodle into MOODLE_21_STABLE 2011-07-11 19:36:01 +02:00
Petr Skoda 2d28584695 MDL-23344 fix login form focus 2011-07-11 17:23:28 +02:00
Dan Poltawski c261b351cf MDL-23580 course overview - remove debugging junk 2011-07-11 16:47:28 +02:00
Tim Hunt 934c878eaa MDL-26165 quiz submit are-you-sure is potentially confusing. 2011-07-11 16:33:10 +02:00
Tim Hunt b11d374122 MDL-27483 make quiz repagination more robust. 2011-07-11 16:26:36 +02:00
Rossiani Wijaya 337284688d MDL-27931 admin bulk user upload: convert city as required field. Credit goes to Charles Fulton for supplying the patch. 2011-07-11 15:57:45 +02:00
Ruslan Kabalin 661dd2cf61 MDL-28186 messaging: Fix "Enable messagning setting" infuence on the menus
"Enable messaging system" (Site administration > Advanced features) is
supposed to control messaging between site users only, thus it should not
remove user messging preferences menu item. However, it may remove instant
messging preferences from providers list for the user.

Signed-off-by: Ruslan Kabalin <ruslan.kabalin@luns.net.uk>
2011-07-11 15:24:15 +02:00
David Mudrak b0e79df977 MDL-28221 resource: improved file not found handling
When the referenced file is not found, do not rely on the record in
resource_old as the resource can be actually restored from a 1.9 backup.
2011-07-11 12:12:38 +02:00
David Mudrak 6ca0ba0104 MDL-28221 resource: fixed a typo in variable names 2011-07-11 12:04:18 +02:00
Rossiani Wijaya 153694ed0a MDL-27741 forum subscribe link: Removed 'no' string in social course format to display a subscribe link if user is not enrolled 2011-07-11 17:04:05 +08:00
Sam Hemelryk 1541d1a36b Merge branch 'wip-mdl-27954-MOODLE_21_STABLE' of git://github.com/rajeshtaneja/moodle into MOODLE_21_STABLE 2011-07-11 16:02:18 +08:00
Tim Hunt c159d8e872 MDL-28195 confirm_action should allow the button labels to be customised 2011-07-11 15:03:39 +08:00
Sam Hemelryk a8361fc214 Merge branch 'wip-MDL-27429-m21' of git://github.com/Beedell/moodle into MOODLE_21_STABLE 2011-07-11 13:56:39 +08:00
Jamie Pratt 96c7aa3fe5 MDL-28268 Missing ORDER BY when using extra answer table.
From OU bug #921 "Order of answer fields in Variable numeric keeps changing" Cannot
reproduce this bug on my system but hopefully this will fix the problem. I added
an ORDER BY clause to the sql for fetching answers with extra answer fields.
2011-07-11 13:26:39 +08:00
Tim Hunt a3b71db63b MDL-28192 local_qeupgradehelper fix typo. 2011-07-11 13:18:37 +08:00
Dan Marsden 66c36644d3 MDL-28017 SCORM - remove admin setting incorrectly added as it was never used. 2011-07-11 15:44:50 +12:00
Sam Hemelryk 903c12c74b Merge branch 'm21_MDL-27947' of git://github.com/danmarsden/moodle into MOODLE_21_STABLE 2011-07-11 11:31:48 +08:00
Sam Hemelryk 73d78d8de4 Merge branch 'MDL-27890_m21' of git://github.com/stronk7/moodle into MOODLE_21_STABLE 2011-07-11 11:25:56 +08:00
Sam Hemelryk bbdd6f2dc1 Merge branch 'glossary_multilang_m21' of git://github.com/stronk7/moodle into MOODLE_21_STABLE 2011-07-11 11:15:17 +08:00
Sam Hemelryk f738eb06e7 Merge branch 'mod_url_decode_m21' of git://github.com/stronk7/moodle into MOODLE_21_STABLE 2011-07-11 11:04:18 +08:00
Sam Hemelryk 6f30a86bc7 Merge branch 'backup_groups_m21' of git://github.com/stronk7/moodle into MOODLE_21_STABLE 2011-07-11 10:57:15 +08:00
Rajesh Taneja 4db5d94af5 MDL-27954 mod_database - fixed search navigation link 2011-07-11 10:28:47 +08:00
Eloy Lafuente (stronk7) 5299507674 MDL-28048 glossary - fix double ampersand & missing string 2011-07-11 01:40:27 +02:00
Eloy Lafuente (stronk7) d5a8ec5ccd MDL-28048 glossary - add multilang support to categories 2011-07-11 01:03:58 +02:00
Eloy Lafuente (stronk7) 4daa20bb5b MDL-28156 restore - fix some notices restoring empty courses 2011-07-10 13:12:49 +02:00
Eloy Lafuente (stronk7) 3a32daedb5 MDL-28156 restore - support restoring files without grade items 2011-07-10 00:53:29 +02:00
Eloy Lafuente (stronk7) 130fcbd649 MDL-27438 backup - on course backups add course gropus and groupings 2011-07-09 19:28:50 +02:00
Eloy Lafuente (stronk7) 96ab22afc8 MDL-27018 restore - decode links missing url->externalurl support 2011-07-09 13:35:51 +02:00
AMOS bot b88f5de7ec Automatically generated installer lang files 2011-07-09 00:55:20 +00:00
Dan Marsden 0ae4c47c76 MDL-27947 - fix TOC display on skipview - use correct org in TOC title 2011-07-09 11:48:22 +12:00
Dan Marsden 60201a66e0 SCORM MDL-26942 - merge scorm_get_toc into a single global function 2011-07-09 11:12:18 +12:00
John Beedell 5a062fcd8f MDL-27429 Adding tabindex and on keypress to the blocks show/hide icon. 2011-07-08 12:31:49 +01:00
AMOS bot 4481d845e1 Automatically generated installer lang files 2011-07-08 12:34:51 +02:00
Rossiani Wijaya fefd37d864 MDL-27755 course search: Add course id and shortname to search fields 2011-07-08 17:24:26 +08:00
Eloy Lafuente (stronk7) a938306457 weekly release 2.1+ 2011-07-08 11:22:28 +02:00
Eloy Lafuente (stronk7) 8718d91313 fix permissions 2011-07-08 11:12:55 +02:00
Eloy Lafuente (stronk7) 24813d35f7 Merge branch 'MDL-28015-workshop-sql_21_STABLE' of git://github.com/mudrd8mz/moodle into MOODLE_21_STABLE 2011-07-08 01:18:44 +02:00
Eloy Lafuente (stronk7) 8437ce030d Merge branch 'MDL-28168-custommenu_21_STABLE' of git://github.com/mudrd8mz/moodle into MOODLE_21_STABLE 2011-07-08 00:58:08 +02:00
Tim Hunt 583e6a6992 MDL-27890 tinymce - enable 30 as min height within moodle 2011-07-07 19:59:35 +02:00
Eloy Lafuente (stronk7) f738546c8f MDL-NOBUG tinymce - updated instructions to cover local modifications and other minor changes 2011-07-07 18:21:15 +02:00
Eloy Lafuente (stronk7) 0e24cfb800 MDL-27890 tinymce - allow it to be smaller 2011-07-07 17:36:59 +02:00
David Mudrak cabce0e259 MDL-28015 workshop - fixed unique list of columns in ORDER BY clause
MSSQL requires that the columns in the ORDER BY clause list must be
unique. The patch populates the list of fields by combining an array of
explicit sort definition with an array of implicit (default) sort
definition.
2011-07-07 15:16:29 +02:00
Sun Zhigang fbe00fbec7 MDL-27833 Backup - Fix can't search courses with non-latin characters during importing
PARAM_ALPHANUMEXT filter out all non-latin characters, including
Chinese, Japanese and etc. Use PARAM_NOTAGS instead.
2011-07-07 10:39:24 +02:00
Aparup Banerjee 2fa78e85e9 MDL-28169 Installation Added 2.1 upgrade (idiot proof) lines to upgrade scripts. 2011-07-07 10:24:38 +02:00
Petr Skoda dd402d1fa3 MDL-28163 custom site frontpage support 2011-07-07 10:15:34 +02:00
Eloy Lafuente (stronk7) 14cf05a2cf Merge branch 'm21_MDL-28110' of git://github.com/danmarsden/moodle into MOODLE_21_STABLE 2011-07-07 03:01:30 +02:00
Eloy Lafuente (stronk7) acfa08a69f MDL-27989 whitespace fix 2011-07-07 02:22:54 +02:00
Eloy Lafuente (stronk7) e986a24a9d Merge branch 'MDL-27989_MOODLE_21_STABLE' of git://github.com/kordan/moodle into MOODLE_21_STABLE 2011-07-07 02:22:22 +02:00
Dan Poltawski 7a0374f6e7 MDL-26285 block_rss_client - do not disable with enablerssfeeds
This setting was used in 1.9 and below to control feed generation only, not
for RSS consumption.
2011-07-07 02:11:44 +02:00
Petr Skoda 78087ddfa5 MDL-27375 add missing lowercasing of external column names
Credit goes to Gail Preuninger.
2011-07-07 01:40:35 +02:00
Petr Skoda bde4f81335 MDL-28117 include repo lib when hacking file_picker renderer 2011-07-07 01:34:12 +02:00
Dan Poltawski 334b4f6301 MDL-27329 course report - correct use of wrong fullname
We are refering to users in this column of the course report not
course full name.
2011-07-07 00:25:11 +02:00
Dan Poltawski e4318be030 MDL-28100 - page resource was not using context for text filtering 2011-07-07 00:12:46 +02:00
Dan Poltawski 4c26ea1713 MDL-27279 lang/en/xmldb - Fix Typo in confirmcheckforeignkeys 2011-07-07 00:01:45 +02:00
Tim Hunt 40ff08d84f MDL-28222 quiz reports missing context in call to quiz_report_feedback_for_grade. 2011-07-06 20:29:20 +02:00
Tim Hunt 9a1da08340 MDL-27040 get_users_by_capability generates u.id IN () when no uesrs have accessallgroups 2011-07-06 19:26:30 +02:00
Tim Hunt eeb78f323a MDL-28166 fix some more instances of my favourite becuase typo. 2011-07-06 19:21:02 +02:00
Tim Hunt 54bf1cf7dc MDL-28166 send quiz event notifications asynchronously.
This avoids the problem that you cannot send messages in transactions.

It also means that the quiz submission will not be prevented, and the
message will still be sent eventually, if any part of the messaging
system is giving intermittent errors when the student wants to submit
their quiz.
2011-07-06 19:20:50 +02:00
Sun Zhigang 376d87ca03 MDL-27934 Upload Assignment - Remove useless code 2011-07-06 13:26:21 +08:00
Dan Poltawski fbb580c38a MDL-27855 navigation - only display participants link with permissions 2011-07-06 13:20:46 +08:00
Dan Poltawski 35a39e35e2 MDL-27168 completionstatus block - Use localized strings 2011-07-06 12:04:16 +08:00
Dan Poltawski 84a05572c9 MDL-26626 course competion block - fix hardcoded string 2011-07-06 11:21:35 +08:00
Dan Poltawski c01d7b4d79 MDL-26611 Roles Language - remove reference to 'legacy role type' 2011-07-06 11:10:08 +08:00
Sam Hemelryk baa97ed623 Merge branch 'MDL-28135_MOODLE_21_STABLE' of git://github.com/nebgor/moodle into MOODLE_21_STABLE 2011-07-06 11:02:55 +08:00
Petr Skoda 05f4555422 MDL-28147 do not double cache theme css/js 2011-07-06 03:15:03 +02:00
Tim Hunt a5dd15e921 MDL-28160 question preview window uses wrong pagelayout in activity contexts 2011-07-06 03:08:41 +02:00
Petr Skoda 05299908b4 MDL-28161 precreate htmlpurifier dir when resetting caches
Includes sloppy whitespace fix.
2011-07-06 02:55:00 +02:00
Petr Skoda 9a49e6004b MDL-28167 fix missing new
And sloppy whitespace.
2011-07-06 02:09:54 +02:00
Sam Hemelryk a3fd215cb8 MDL-28172 forum: Fixed up overzealous check for portfolio enabled. 2011-07-06 02:02:02 +02:00
Tim Hunt 6ff0bacee1 MDL-28179 make failed event hander error message much more useful. 2011-07-06 01:49:02 +02:00
Andrew Robert Nicols 757ca142ca MDL-28193 Add $external arg to get_driver_instance
Signed-off-by: Andrew Robert Nicols <andrew.nicols@luns.net.uk>
2011-07-06 01:40:35 +02:00
Eloy Lafuente (stronk7) 98e86d8b27 MDL-28196 quiz calls get_in_or_equal (fixing missing $DB) 2011-07-05 22:00:51 +02:00
Tim Hunt 69b88de0df MDL-28196 quiz calls get_in_or_equal (not DB->get_in_or_equal) in two places
Also, another minor error in one method call.
2011-07-05 21:56:37 +02:00
Tim Hunt 17b8d59a0a MDL-27821 backup_exception should not throw away debug info. 2011-07-05 19:43:54 +02:00
Eloy Lafuente (stronk7) d396a03bac Merge branch 'MDL-28185_m21' of git://github.com/stronk7/moodle into MOODLE_21_STABLE 2011-07-05 17:59:57 +02:00
Tim Hunt f404343487 MDL-26618 Moving sticky blocks on other pages does not work in Oracle.
This was due to some missing $DB->sql_empty() in a query affecting the
block_positions table.
2011-07-05 17:47:37 +02:00
Eloy Lafuente (stronk7) f8632149ad MDL-28185 upgrade - fix oracle problem upgrading blocks 2011-07-05 15:38:09 +02:00
David Mudrak a056d4fa9e MDL-28168 Multi-language support for custom_menu reimplemented
This is a reimplementation of the multi-language support for the
custom_menu class. The menu items now accept the forth optional
parameter with the explicit list of languages the item is valid for. If
no languages are listed, the item is valid for any language. The caller
of the custom_menu constructor must provide the user's current language
or null if the multi-language should not be supported (all items are
valid for any language then, regardless the definition).

See the attached unit tests for the examples of usage.
2011-07-05 12:22:26 +02:00
Kordan 3c9cd14006 addition to previous fix for MDL-27989 in MOODLE_21_STABLE 2011-07-05 11:30:50 +02:00
Tim Hunt d5670c612b MDL-25357 Allow maximum number of sections to be set by the admin. Also allow 0 sections at an choice.
Also fix one bad <br/> in another lang string.
2011-07-05 16:59:57 +08:00
David Mudrak 88d9d9fba5 MDL-28168 Improved custom_menu constructor
This improves custom_menu constructor by dropping support for useless
$text parameter and replacing it with the menu definition. This makes
custom_menu instance independent on the place where the menu is defined
($CFG->custommenuitems) and can be unit-tested. Also, multiple instances
of custom_menu can be instantiated now which can be interesting in the
future.
2011-07-05 10:26:01 +02:00
Kordan cc3e8c536c MDL-27989 fix for MOODLE_21_STABLE 2011-07-05 10:21:13 +02:00
Aparup Banerjee a43b8cf330 MDL-28135 general Updated broken and typo docs links 2011-07-05 15:17:23 +08:00
Aparup Banerjee 028fba6878 MDL-28135 general Updated the Copyright notice to point to docs.moodle.org/dev/Releases instead of en/Release 2011-07-05 15:17:15 +08:00
Aparup Banerjee 8f32d623c5 MDL-28135 general Updated doc links related to Release notes to docs.moodle.org/dev/Releases now 2011-07-05 15:17:06 +08:00
Aparup Banerjee 63e8936bb1 MDL-28135 general Updating all hardcoded "docs.moodle.org/en/Development:" type doc links to "docs.moodle.org/dev/" 2011-07-05 15:16:55 +08:00
David Mudrak 5b806d1524 MDL-28168 Revert "MDL-27073 Support multi-language content in custom menu"
This reverts commit 87e0230d0a.
2011-07-05 09:08:49 +02:00
Iñaki Arenaza 7679e8d256 MDL-24666 sync_users.php can throw db exception on sites upgraded from 1.x
From 2.0 on we lowercase all the settings related to LDAP attributes
to cope with differences in LDAP servers when returning attribute
names as array indices (some lowercase them, some leave them as
specified in the query, some normalize them, etc.).

But we only lowercase them when saving the settings page. So on sites
that have been migrated from 1.x, it may happen that we still have
mixed-case attribute names. And this is fatal for the user_attribute
setting, as we might not detect it in the returned array from LDAP and
it will be empty (and the db layer throws and exception).

So we just make sure the attribute name is lowercased (and trimmed,
in case it's got some white space around it).

Signed-off-by: Iñaki Arenaza <iarenaza@mondragon.edu>
2011-07-04 21:46:44 +02:00
Dan Marsden e1a1827b59 SCORM MDL-28110 fix string name 2011-07-03 12:54:41 +12:00
Dan Marsden 9f098ef0ec SCORM MDL-28110 set default for forcejavascript to yes - add string explaining what it does. 2011-07-03 12:54:31 +12:00
69129 changed files with 1914919 additions and 9040081 deletions
-185
View File
@@ -1,185 +0,0 @@
// 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/>.
/**
* Generates tsconfig.aliases.json for cross-component TypeScript imports.
*
* Moodle ESM source files can import from other components using the alias
* scheme @moodle/lms/<component>/* (e.g. @moodle/lms/core/SomeUtil). This
* file reads the Moodle component registry (.grunt/components.js), finds every
* component that has a js/esm/src/ directory, and writes the corresponding
* TypeScript path mappings to tsconfig.aliases.json.
*
* tsconfig.json extends tsconfig.aliases.json, so TypeScript picks up the
* mappings automatically. The file is skipped if its content is unchanged, to
* avoid unnecessary rebuilds.
*
* This must run before esbuild compilation. The Grunt `jsconfig` task calls
* generateAliases() so that both jsconfig.json and tsconfig.aliases.json are
* kept in sync. The `react` task depends on `jsconfig`, so aliases are always
* up to date before a React build.
*
* @copyright 2026 Adrian Greeve <adrian@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
import fs from "fs";
import path from "path";
import { createRequire } from "module";
const rootDir = process.cwd();
const tsconfigOut = path.join(rootDir, "tsconfig.aliases.json");
const TS_ALIASES_WARNING =
"// WARNING: Do not edit this file manually. It is generated by `grunt jsconfig`.\n";
/**
* Load Moodle component paths from `.grunt/components.js`.
*
* @returns {Record<string, string>} Map of component paths to component names.
*/
function loadComponentPathMap() {
const require = createRequire(import.meta.url);
// Load Moodle's components data from .grunt/components.js.
const { fetchComponentData } = require(
path.join(process.cwd(), ".grunt", "components.js")
);
// Format: `{ components: { "public/lib": "core", ... } }`.
const componentsData = fetchComponentData().components;
// Expected:
// `{ "public/lib": "core", "public/ai": "core_ai", ... }`.
return componentsData;
}
/**
* Compare two TypeScript `paths` maps for exact equality.
*
* @param {Record<string, string[]>} a First paths map.
* @param {Record<string, string[]>} b Second paths map.
* @returns {boolean} True when keys and values match in order.
*/
function pathsEqual(a, b) {
const aKeys = Object.keys(a);
const bKeys = Object.keys(b);
if (aKeys.length !== bKeys.length) {
return false;
}
for (const key of aKeys) {
if (!Object.prototype.hasOwnProperty.call(b, key)) {
return false;
}
const aArr = a[key] ?? [];
const bArr = b[key] ?? [];
if (aArr.length !== bArr.length) {
return false;
}
for (let i = 0; i < aArr.length; i++) {
if (aArr[i] !== bArr[i]) {
return false;
}
}
}
return true;
}
/**
* Parse JSON content and tolerate line comments.
*
* @param {string} content Raw JSON/JSONC file content.
* @returns {unknown}
*/
function parseJsonWithComments(content) {
const stripped = content
.replace(/^\uFEFF/, "")
.replace(/^\s*\/\/.*$/gm, "");
return JSON.parse(stripped);
}
/**
* Convert JSON output so single-value arrays are rendered on one line.
*
* @param {unknown} obj Data to stringify.
* @returns {string} JSON string with flattened single-value arrays.
*/
function stringifyFlatArrays(obj) {
const json = JSON.stringify(obj, null, 2);
return TS_ALIASES_WARNING + json.replace(/\[\s+\"(.*?)\"\s+\]/g, '["$1"]') + "\n";
}
/**
* Generate `tsconfig.aliases.json` from Moodle component metadata.
*
* Includes core aliases, discovers plugin React source aliases, and skips
* rewriting when aliases have not changed.
*
* @returns {void}
*/
export function generateAliases() {
const componentPathMap = loadComponentPathMap();
// Build TS paths for tsconfig.aliases.json
/** @type {Record<string, string[]>} */
const tsPaths = {
// Always include core alias.
"@moodle/lms/core/*": ["./public/lib/js/esm/src/*"],
};
for (const [componentPath, componentName] of Object.entries(componentPathMap)) {
const runtimeAliasKey = `@moodle/lms/${componentName}/*`;
const targetPattern = `./${path
.join(componentPath, "js", "esm", "src", "*")
.replace(/\\/g, "/")}`;
tsPaths[runtimeAliasKey] = [targetPattern];
}
const tsconfig = {
compilerOptions: { paths: tsPaths },
};
// If tsconfig paths didn't change, skip regeneration
let previousPaths = null;
let hasWarningHeader = false;
if (fs.existsSync(tsconfigOut)) {
try {
const previousContent = fs.readFileSync(tsconfigOut, "utf8");
hasWarningHeader = previousContent.startsWith(TS_ALIASES_WARNING);
const previousTsconfig = /** @type {{compilerOptions?: {paths?: Record<string, string[]>}}} */ (
parseJsonWithComments(previousContent)
);
previousPaths = previousTsconfig.compilerOptions?.paths ?? {};
} catch {
// ignore parse errors and treat as "no previous cache"
previousPaths = null;
}
}
if (previousPaths && hasWarningHeader && pathsEqual(previousPaths, tsPaths)) {
console.log("✓ Generating tsconfig.aliases.json was skipped. No alias modifications detected.");
return;
}
// Write tsconfig.aliases.json
fs.writeFileSync(tsconfigOut, stringifyFlatArrays(tsconfig));
console.log("✓ Generating tsconfig.aliases.json");
}
-324
View File
@@ -1,324 +0,0 @@
// 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/>.
/**
* Core esbuild library for Moodle ESM components.
*
* This is the single source of all build logic. The Grunt tasks
* (.grunt/tasks/react.js) import from here rather than duplicating
* configuration or build steps.
*
* Source layout convention:
* <component>/js/esm/src/**\/*.{ts,tsx} → <component>/js/esm/build/**\/*.js
*
* Exports:
* createBuildConfig(isDev) esbuild config object; pass isDev=true
* to disable minification / add sourcemaps.
* buildPluginComponents(isDev) Glob for every js/esm/src tree across
* core and plugins, compile all in parallel.
* buildSingleFile(filePath, isDev) Compile one source file; used by the
* Grunt watch task on incremental changes.
* watchComponents(isDev) Start esbuild's native watch mode so the
* compiler rebuilds affected files on save.
* resolveComponentPaths(entry) Map an absolute source path to its
* relative input path and output path.
*
* @copyright 2026 Adrian Greeve <adrian@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
import esbuild from "esbuild";
import { glob } from "glob";
import chalk from "chalk";
import path from "path";
import fs from "fs";
const projectRoot = process.cwd();
/**
* Resolve a path from the current project root.
*
* @param {...string} segments Path segments to resolve.
* @returns {string} Absolute path from project root.
*/
const fromRoot = (...segments) => path.resolve(projectRoot, ...segments);
/**
* Create an incremental dot progress indicator.
* Prints one dot per completed build and wraps lines for readability.
*
* @param {number} total Total number of items to build.
* @returns {{ start: () => void, tick: () => void, succeed: (msg: string) => void, fail: (msg: string) => void }}
*/
function createDotProgress(total) {
const dotsPerLine = 60;
let printed = 0;
return {
start: () => {
process.stdout.write(`${chalk.cyan("Building")} `);
},
tick: () => {
printed++;
process.stdout.write(chalk.cyan("."));
if (printed % dotsPerLine === 0 && printed < total) {
process.stdout.write(` ${chalk.dim(`[${printed}/${total}]`)}\n`);
}
},
succeed: (msg) => {
process.stdout.write(` ${chalk.dim(`[${printed}/${total}]`)}\n`);
process.stdout.write(`${chalk.green("✓")} ${msg}\n`);
},
fail: (msg) => {
process.stdout.write(` ${chalk.dim(`[${printed}/${total}]`)}\n`);
process.stdout.write(`${chalk.red("✗")} ${msg}\n`);
},
};
}
/**
* Build a single React component entry file.
*
* @param {string} entry Absolute entry file path.
* @param {import('esbuild').BuildOptions} buildConfig Shared esbuild configuration.
* @returns {Promise<{file: string, output?: string, error: Error|null}>}
*/
async function buildComponent(entry, buildConfig) {
const resolved = resolveComponentPaths(entry);
if (!resolved) {
return { file: entry, error: new Error(`Unknown path pattern: ${entry}`) };
}
const { file, output } = resolved;
fs.mkdirSync(path.dirname(output), { recursive: true });
try {
await esbuild.build({
...buildConfig,
entryPoints: [entry],
outfile: output,
});
return { file, output, error: null };
} catch (error) {
return { file, error: error instanceof Error ? error : new Error(String(error)) };
}
}
/**
* Resolve source and output paths for a component entry.
*
* @param {string} entry Absolute component source path.
* @returns {{file: string, output: string} | null} Relative file info and output path, or null for unsupported paths.
*/
export function resolveComponentPaths(entry) {
const rel = path.relative(projectRoot, entry);
if (rel.includes(path.join('esm', 'src'))) {
const [part, rawFile] = rel.split(path.join('esm', 'src'));
const file = rawFile.replace(/^[\/\\]/, '');
return {
file,
output: fromRoot(part, 'esm', 'build', file.replace(/\.(ts|tsx)$/, '.js')),
};
}
return null;
}
/**
* Run all builds in parallel, showing incremental dot progress.
*
* @param {string[]} entryPoints Absolute entry file paths.
* @param {import('esbuild').BuildOptions} buildConfig Shared esbuild configuration.
* @returns {Promise<{errors: {file: string, output?: string, error: Error|null}[]}>}
*/
async function runParallelBuilds(entryPoints, buildConfig) {
const total = entryPoints.length;
/** @type {{file: string, output?: string, error: Error|null}[]} */
const errors = [];
const startTime = Date.now();
const progress = createDotProgress(total);
progress.start();
await Promise.all(entryPoints.map(async (entry) => {
const result = await buildComponent(entry, buildConfig);
if (result.error) {
errors.push(result);
}
progress.tick();
}));
const elapsed = ((Date.now() - startTime) / 1000).toFixed(1);
const succeeded = total - errors.length;
if (errors.length > 0) {
progress.fail(`${succeeded}/${total} built · ${elapsed}s`);
for (const e of errors) {
console.error(chalk.red(`${e.file}: ${e.error?.message ?? ''}`));
}
} else {
progress.succeed(chalk.bold(`${total} components built`) + chalk.dim(` · ${elapsed}s`));
}
return { errors };
}
/**
* Create the shared esbuild build configuration.
*
* @param {boolean} isDev Whether development mode is enabled.
* @returns {import('esbuild').BuildOptions} esbuild configuration object.
*/
export function createBuildConfig(isDev) {
return {
bundle: true,
format: "esm",
external: ["react", "react/*", "react-dom", "react-dom/*", "@moodlehq/design-system", "@moodlehq/design-system/*", "@moodle/lms", "@moodle/lms/*"],
jsx: "automatic",
minify: !isDev,
sourcemap: isDev ? 'inline' : false,
jsxDev: isDev,
keepNames: isDev,
treeShaking: !isDev,
define: { 'process.env.NODE_ENV': isDev ? '"development"' : '"production"' },
};
}
/**
* Build all plugin and core React components.
*
* @param {boolean} isDev Whether development mode is enabled.
* @returns {Promise<void>}
*/
export async function buildPluginComponents(isDev) {
console.log(chalk.green('> Building components...'));
const entryPoints = glob.sync("**/js/esm/src/**/*.{ts,tsx}", {
cwd: projectRoot,
absolute: true,
ignore: [
`${process.cwd()}/node_modules/**`,
`${process.cwd()}/vendor/**`,
],
});
const buildConfig = createBuildConfig(isDev);
const { errors } = await runParallelBuilds(entryPoints, buildConfig);
if (errors.length > 0) {
throw new Error(`React build failed: ${errors.length} component(s) could not be built`);
}
}
/**
* Start esbuild in native watch mode over all React components.
*
* Creates a single incremental build context for all entry points so that
* esbuild can reuse its internal graph between rebuilds instead of starting
* from scratch on every file change.
*
* @param {boolean} isDev Whether to build in development mode.
* @param {((srcFiles: string[]) => void) | undefined} [onRebuild] Called with the rebuilt entry source
* files (relative to project root) after each non-initial successful rebuild. Use this to run
* follow-up tasks such as linting without coupling them to this module.
* @returns {Promise<import('esbuild').BuildContext|null>} The active context, or null if no source files exist.
*/
export async function watchComponents(isDev, onRebuild) {
const entryPoints = glob.sync("**/js/esm/src/**/*.{ts,tsx}", {
cwd: projectRoot,
absolute: true,
ignore: [
`${process.cwd()}/node_modules/**`,
`${process.cwd()}/vendor/**`,
],
});
if (entryPoints.length === 0) {
return null;
}
const buildConfig = createBuildConfig(isDev);
// Map each source file to an {in, out} pair so esbuild can write each
// component to its custom output directory while sharing a single context.
// The 'out' path is relative to outdir (projectRoot) and has no extension —
// esbuild appends the appropriate extension automatically.
// Build entry pairs and ensure output directories exist in a single pass.
const entryPairs = entryPoints.flatMap(entry => {
const resolved = resolveComponentPaths(entry);
if (!resolved) {
return [];
}
fs.mkdirSync(path.dirname(resolved.output), { recursive: true });
return [{ in: entry, out: path.relative(projectRoot, resolved.output).replace(/\.js$/, '') }];
});
// Report build results to the terminal after every build (initial and on each change).
// metafile: true populates result.metafile.outputs so we know which files were written.
// On a rebuild only the affected outputs appear, so it effectively names the changed file.
/** @type {import('esbuild').Plugin} */
const watchReporter = {
name: 'watch-reporter',
setup(build) {
let isInitial = true;
let startTime = 0;
build.onStart(() => {
startTime = Date.now();
});
build.onEnd(result => {
const now = new Date().toLocaleTimeString();
const elapsed = ((Date.now() - startTime) / 1000).toFixed(1);
if (result.errors.length > 0) {
console.error(chalk.red(`[${now}] ✗ Build failed (${result.errors.length} error(s))`) + chalk.dim(` · ${elapsed}s`));
return;
}
const outputs = Object.keys(result.metafile?.outputs ?? {});
console.log(chalk.green(`[${now}] ✓ ${outputs.length} component(s) built`) + chalk.dim(` · ${elapsed}s`));
if (isInitial) {
isInitial = false;
} else if (onRebuild) {
// entryPoint is the source file (relative to projectRoot) that triggered
// this rebuild. Pass it to the caller so they can run follow-up tasks
// (e.g. linting) without this module needing to know about them.
const srcFiles = Object.values(result.metafile?.outputs ?? {})
.map(output => output.entryPoint)
.filter(/** @param {string|undefined} f */ f => !!f);
onRebuild(/** @type {string[]} */ (srcFiles));
}
});
},
};
const ctx = await esbuild.context({
...buildConfig,
entryPoints: entryPairs,
outdir: projectRoot,
metafile: true,
plugins: [watchReporter],
});
await ctx.watch();
return ctx;
}
-266
View File
@@ -1,266 +0,0 @@
{
'plugins': [
'@babel',
'promise',
'jsdoc'
],
'extends': [
'eslint:recommended',
'plugin:promise/recommended'
],
'env': {
'browser': true,
// Enable ES6+ features by default.
// See http://eslint.org/docs/user-guide/configuring#specifying-environments
// Note: The YUI override must exactly match this when disabling the ES6+ version because those features are not supported by Shifter.
'es2020': true,
'amd': true
},
'globals': {
'M': true,
'Y': true
},
// Warn about unused eslint-disable statements.
'reportUnusedDisableDirectives': true,
'rules': {
// See http://eslint.org/docs/rules/ for all rules and explanations of all
// rules.
// === Possible Errors ===
'comma-dangle': 'off',
'no-console': 'error',
'no-empty': 'warn',
'no-extra-parens': 'off',
'no-prototype-builtins': 'off',
'no-unreachable': 'warn',
// === Best Practices ===
// (these mostly match our jshint config)
'array-callback-return': 'warn',
'block-scoped-var': 'warn',
'complexity': 'warn',
'consistent-return': 'warn',
'curly': 'error',
'dot-notation': 'warn',
'no-alert': 'warn',
'no-caller': 'error',
'no-div-regex': 'error',
'no-empty-function': 'warn',
'no-eq-null': 'error',
'no-eval': 'error',
'no-extend-native': 'error',
'no-extra-bind': 'warn',
'no-floating-decimal': 'warn',
'no-global-assign': 'warn',
'no-implied-eval': 'error',
'no-invalid-this': 'error',
'no-iterator': 'error',
'no-labels': 'error',
'no-loop-func': 'error',
'no-multi-spaces': 'warn',
'no-multi-str': 'error',
'no-new-func': 'error',
'no-new-wrappers': 'error',
'no-octal-escape': 'error',
'no-proto': 'error',
'no-redeclare': 'warn',
'no-restricted-globals': ['error', { 'name': 'Notification' }],
'no-return-assign': 'error',
'no-script-url': 'error',
'no-self-compare': 'error',
'no-sequences': 'warn',
'no-throw-literal': 'warn',
'no-unmodified-loop-condition': 'error',
'no-unused-expressions': 'error',
'no-useless-call': 'warn',
'no-useless-escape': 'warn',
'wrap-iife': ['error', 'any'],
// === Variables ===
'no-undef-init': 'error',
'no-unused-vars': ['error', { 'caughtErrors': 'none' }],
// === Stylistic Issues ===
'array-bracket-spacing': 'warn',
'block-spacing': 'warn',
'brace-style': ['warn', '1tbs'],
'camelcase': 'warn',
'capitalized-comments': ['warn', 'always', { 'ignoreConsecutiveComments': true }],
'comma-spacing': ['warn', { 'before': false, 'after': true }],
'comma-style': ['warn', 'last'],
'computed-property-spacing': 'error',
'consistent-this': 'off',
'eol-last': 'off',
'func-call-spacing': ['warn', 'never'],
'func-names': 'off',
'func-style': 'off',
// indent currently not doing well with our wrapping style, so disabled.
'indent': ['off', 4, { 'SwitchCase': 1 }],
'key-spacing': ['warn', { 'beforeColon': false, 'afterColon': true, 'mode': minimum }],
'keyword-spacing': 'warn',
'linebreak-style': ['error', 'unix'],
'lines-around-comment': 'off',
'max-len': ['error', 132],
'max-lines': 'off',
'max-depth': 'warn',
'max-nested-callbacks': ['warn', 5],
'max-params': 'off',
'max-statements': 'off',
'max-statements-per-line': ['warn', { max: 2 }],
'new-cap': ['warn', { 'properties': false }],
'new-parens': 'warn',
'newline-per-chained-call': 'off',
'no-array-constructor': 'off',
'no-bitwise': 'error',
'no-continue': 'off',
'no-inline-comments': 'off',
'no-lonely-if': 'off',
'no-mixed-operators': 'off',
'no-multiple-empty-lines': 'warn',
'no-negated-condition': 'off',
'no-nested-ternary': 'warn',
'no-new-object': 'off',
'no-plusplus': 'off',
'no-tabs': 'error',
'no-ternary': 'off',
'no-trailing-spaces': 'error',
'no-underscore-dangle': 'off',
'no-unneeded-ternary': 'off',
'no-whitespace-before-property': 'warn',
'object-curly-newline': 'off',
'object-curly-spacing': 'warn',
'object-property-newline': 'off',
'one-var': 'off',
'one-var-declaration-per-line': ['warn', 'initializations'],
'operator-assignment': 'off',
'operator-linebreak': 'off',
'padded-blocks': 'off',
'quote-props': ['warn', 'as-needed', {'unnecessary': false, 'keywords': true, 'numbers': true}],
'quotes': 'off',
'semi': 'error',
'semi-spacing': ['warn', {'before': false, 'after': true}],
'sort-vars': 'off',
'space-before-blocks': 'warn',
'space-before-function-paren': ['warn', 'never'],
'space-in-parens': 'warn',
'space-infix-ops': 'warn',
'space-unary-ops': 'warn',
'spaced-comment': 'warn',
'unicode-bom': 'error',
'wrap-regex': 'off',
// === Promises (override plugin:promise/recommended) ===
'promise/always-return': 'warn',
'promise/no-return-wrap': 'warn',
'promise/param-names': 'warn',
'promise/catch-or-return': ['warn', {terminationMethod: ['catch', 'fail', 'always'], allowFinally: true}],
'promise/no-native': 'warn',
'promise/avoid-new': 'warn',
// === Deprecations ===
"no-restricted-properties": ['warn', {
'object': 'M',
'property': 'str',
'message': 'Use "core/str" module or M.util.get_string()'
}],
},
overrides: [
{
files: ["**/yui/src/**/*.js"],
'env': {
// Disable ES6+ for YUI files.
'es2020': false,
},
// Disable some rules which we can't safely define for YUI rollups.
rules: {
'no-undef': 'off',
'no-unused-vars': 'off',
'no-unused-expressions': 'off',
// === JSDocs ===
"jsdoc/check-access": 'off',
"jsdoc/check-alignment": 'off',
"jsdoc/check-param-names": 'off',
"jsdoc/check-property-names": 'off',
"jsdoc/empty-tags": 'off',
"jsdoc/implements-on-classes": 'off',
"jsdoc/multiline-blocks": 'off',
"jsdoc/require-jsdoc": 'off',
"jsdoc/require-param": 'off',
"jsdoc/require-param-name": 'off',
"jsdoc/require-param-type": 'off',
"jsdoc/require-property": 'off',
"jsdoc/require-property-name": 'off',
"jsdoc/require-property-type": 'off',
}
},
{
files: ["**/amd/src/*.js", "**/amd/src/**/*.js", "Gruntfile.js", ".grunt/*.js", ".grunt/tasks/*.js", "jsdoc.conf.js"],
// We're using babel transpiling so use their parser
// for linting.
parser: '@babel/eslint-parser',
// Check AMD with some slightly stricter rules.
rules: {
'no-implicit-globals': 'error',
// Disable all of the rules that have babel versions.
'new-cap': 'off',
// Not using this rule for the time being because it isn't
// compatible with jQuery and ES6.
'no-invalid-this': 'off',
'object-curly-spacing': 'off',
'quotes': 'off',
'semi': 'off',
'no-unused-expressions': 'off',
// Enable all of the babel version of these rules.
'@babel/new-cap': ['warn', { 'properties': false }],
// Not using this rule for the time being because it isn't
// compatible with jQuery and ES6.
'@babel/no-invalid-this': 'off',
'@babel/object-curly-spacing': 'warn',
'@babel/semi': 'error',
'@babel/no-unused-expressions': 'error',
// === Promises ===
// We have Promise now that we're using ES6.
'promise/no-native': 'off',
'promise/avoid-new': 'off',
// === JSDocs ===
'jsdoc/check-access': 'error',
'jsdoc/check-alignment': 1, // Recommended.
'jsdoc/check-param-names': 'error',
'jsdoc/check-property-names': 'error',
'jsdoc/empty-tags': 'error',
'jsdoc/implements-on-classes': 'error',
'jsdoc/multiline-blocks': 'error',
'jsdoc/require-jsdoc': 'error',
'jsdoc/require-param': 'error',
'jsdoc/require-param-name': 'error',
'jsdoc/require-param-type': 'error',
'jsdoc/require-property': 'error',
'jsdoc/require-property-name': 'error',
'jsdoc/require-property-type': 'error'
},
parserOptions: {
'sourceType': 'module',
'requireConfigFile': false
}
},
{
files: ["**/*.ts", "**/*.tsx"],
parser: '@typescript-eslint/parser',
parserOptions: {
sourceType: 'module',
ecmaFeatures: {
jsx: true
},
allowSyntheticDefaultImports: true
},
rules: {
// promise/no-native crashes on TypeScript ASTs (same reason it is
// disabled for AMD files above). Native Promises are standard in TS.
'promise/no-native': 'off',
'promise/avoid-new': 'off',
}
}
]
}
-24
View File
@@ -1,24 +0,0 @@
{
"indentation": ["on",{
"Feature": 0,
"Background": 2,
"Scenario": 2,
"Examples": 4,
"example": 6,
"Step": 4,
"given": 4,
"and": 4
}],
"no-dupe-feature-names": "on",
"no-dupe-scenario-names": "off",
"no-empty-file": "on",
"no-files-without-scenarios": "on",
"no-multiple-empty-lines": "on",
"no-partially-commented-tag-lines": "on",
"no-trailing-spaces": "on",
"no-unnamed-features": "on",
"no-unnamed-scenarios": "on",
"no-scenario-outlines-without-examples": "on",
"no-examples-in-scenarios": "on",
"new-line-at-eof": ["on", "yes"]
}
-9
View File
@@ -1,9 +0,0 @@
**/yui/build/** -diff
**/amd/build/** -diff
**.js.map -diff
**-min.js -diff
**.min.js -diff
# Remove composer lock file changes from standard diff views.
/composer.lock -diff
/lib/js/bundles/*/*.js -diff
-2
View File
@@ -1,2 +0,0 @@
# Primary donations pages.
custom: ["https://moodle.com/donations/"]
-7
View File
@@ -1,7 +0,0 @@
*** PLEASE DO NOT OPEN PULL REQUESTS VIA GITHUB ***
The moodle.git repository at Github is just a mirror of the official repository. We do not accept pull requests at Github.
See CONTRIBUTING.md guidelines for how to contribute patches for Moodle. Thank you.
--
-6
View File
@@ -1,6 +0,0 @@
> [!IMPORTANT]
> PLEASE DO NOT PUBLISH SECURITY FINDINGS PUBLICLY.
If you discover a potential security issue, please report it via our [Security Submission Form](https://moodle.org/security/report).
For more information about our security processes and responsible disclosure policy, see the [Security Procedures documentation](https://moodledev.io/general/development/process/security).
-1
View File
@@ -1 +0,0 @@
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1231.24 314.44" preserveAspectRatio="xMinYMid meet"><defs><style>.cls-1{fill:#f48020;}.cls-2,.cls-3{fill:#383738;stroke:#4a4a4c;}.cls-2{stroke-width:2.37px;}.cls-3{stroke-width:2.38px;}.cls-4{fill:#585858;}</style></defs><title>Moodle_Logo_UseonBlack_RGB</title><path class="cls-1" d="M1086.3,235.34a53.42,53.42,0,0,0,16.71,29q13.26,12.27,29.48,12.27,11.29,0,24.56-5.89,16.23-6.88,16.22-16.22l58-.49q-12.29,29-41.76,45.2-27.52,15.23-60.43,15.24-42.25,0-70-26.29t-27.75-68.54q0-43.73,27.75-69.51t72-25.8q48.15,0,75.17,31.94,25.07,29.47,25.06,79.1Zm89.91-33.91q-3.43-17.69-14.73-29-12.8-12.28-29.49-12.29-17.21,0-28.74,11.79t-15.47,29.48Z"/><path class="cls-1" d="M965.45,308.54V0h55V308.54Z"/><path class="cls-1" d="M892.69,308.54V290.36q-7.38,9.83-25.06,15.72a92.31,92.31,0,0,1-30,5.41q-39.31,0-63.13-27T750.7,217.65q0-39.3,23.34-65.84t62.15-26.53q43.71,0,56.5,23.58V0h53.55V308.54Zm0-102.68q0-14.75-14-28.26t-28.74-13.51q-21.12,0-33.41,17.2-10.8,15.24-10.8,37.33,0,21.63,10.8,36.85,12.29,17.71,33.41,17.69,12.78,0,27.76-12t15-24.81Z"/><path class="cls-1" d="M647,313.45q-41.77,0-69-26.53t-27.27-68.3q0-41.73,27.27-68.28t69-26.53q41.75,0,69.27,26.53t27.52,68.28q0,41.79-27.52,68.3T647,313.45ZM647,168q-19.89,0-30.58,15.07t-10.68,35.79q0,20.73,9.94,35.05,11.43,16.31,31.32,16.28t31.32-16.28q10.44-14.31,10.44-35.05t-9.94-35Q667.42,168,647,168Z"/><path class="cls-1" d="M448.07,313.45q-41.76,0-69-26.53t-27.27-68.3q0-41.73,27.27-68.28t69-26.53q41.74,0,69.28,26.53t27.5,68.28q0,41.79-27.5,68.3T448.07,313.45Zm0-145.43q-19.89,0-30.59,15.07t-10.69,35.79q0,20.73,9.94,35.05,11.43,16.31,31.34,16.28t31.32-16.28q10.42-14.31,10.44-35.05t-9.94-35Q468.45,168,448.07,168Z"/><path class="cls-1" d="M288.89,309.11V201q0-33.9-28-33.9t-28,33.9V309.11h-55V201q0-33.9-27.52-33.9-28,0-28,33.9V309.11h-55V194.65q0-35.37,24.56-53.54,21.61-16.22,58.46-16.22,37.35,0,55,19.16,15.23-19.16,55.51-19.16,36.86,0,58.45,16.22,24.57,18.16,24.57,53.54V309.11Z"/><path class="cls-2" d="M.76,145.76"/><path class="cls-3" d="M1.73,145.32"/><path class="cls-4" d="M173.86,116.85l55.08-40.1-.7-2.44C135,83.92,80.42,96.44,0,144.13l.73,2.38,21-.67c15.17.52,30.85,1.26,46,1.32-1,24.09.83,32.65.83,32.65,51.92,17.58,101.22,1.53,127.14-43.9A248.72,248.72,0,0,0,173.86,116.85Z"/><path class="cls-4" d="M113.78,110c-.3-1.08-2.23-1.48-4.28-.9a4.73,4.73,0,0,0-3.14,2.19c-18.53,5-49.16,13.72-70.73,21l-1.33.45c-16.68,5.61-24.73,8.49-25.22,12.55-2.29,18.44-.87,42.18-.86,42.48l.19,6.4c-9.74,27.56.06,49.6,8.38,69.77.06-24.92,1.07-45.22-6-71-.2-3.82-1.49-30.36.61-47.34.34-2.75,11.65-6.56,23.63-10.59l1.33-.44c22-7.42,53.57-16.39,71.9-21.29a6.75,6.75,0,0,0,2.29-.25C112.64,112.43,114.08,111.09,113.78,110Z"/></svg>

Before

Width:  |  Height:  |  Size: 2.7 KiB

-31
View File
@@ -1,31 +0,0 @@
name: 'Close Pull Requests'
on:
pull_request_target:
types: opened
workflow_dispatch:
jobs:
close:
# Avoid forks to run this job
if: github.repository_owner == 'moodle'
name: Close Pull Requests
runs-on: ubuntu-latest
steps:
- uses: dessant/repo-lockdown@v4
with:
process-only: prs
close-pr: true
skip-closed-pr-comment: true
pr-comment: >
**Please, don't open pull requests via GitHub.**
This repository (moodle.git) at GitHub is just a mirror of the official Moodle repository.
For how to contribute patches for Moodle see
[CONTRIBUTING.md](https://github.com/moodle/moodle/blob/main/CONTRIBUTING.md).
Closing this pull request.
-118
View File
@@ -1,118 +0,0 @@
name: Run tests in a Composed Moodle Setup
on:
push:
branches-ignore:
- main
- MOODLE_[0-9]+_STABLE
tags-ignore:
- v[0-9]+.[0-9]+.[0-9]+*
workflow_dispatch:
inputs:
phpunit_extra_options:
description: Additional options to apply to PHPUnit
required: false
default: ''
env:
php: 8.4
jobs:
PHPUnit:
runs-on: ${{ matrix.os }}
services:
exttests:
image: moodlehq/moodle-exttests
ports:
- 8080:80
redis:
image: redis
ports:
- 6379:6379
postgres:
image: ${{ matrix.db == 'pgsql' && 'postgres:16' || '' }}
env:
POSTGRES_DB: test
POSTGRES_USER: test
POSTGRES_PASSWORD: test
ports:
- 5432:5432
strategy:
fail-fast: false
matrix:
include:
# MySQL builds always run with the lowest PHP supported version.
- os: ubuntu-24.04
php: 8.3
extensions:
db: mysqli
# PostgreSQL builds always run with the highest PHP supported version.
- os: ubuntu-24.04
php: 8.4
db: pgsql
steps:
- name: Run MySQL Server
if: ${{ matrix.db == 'mysqli' }}
run: |
docker run --rm \
-e MYSQL_DATABASE=test \
-e MYSQL_USER=test \
-e MYSQL_PASSWORD=test \
-e MYSQL_ROOT_PASSWORD=test \
-p 3306:3306 \
-d \
--tmpfs /var/lib/mysql:rw,noexec,nosuid,size=1024M \
mysql:8.4 \
--skip-log-bin \
--collation-server=utf8mb4_bin
- name: Configuring git vars
uses: rlespinasse/github-slug-action@v5
- name: Setting up PHP ${{ matrix.php }}
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
extensions: ${{ matrix.extensions }}
ini-values: max_input_vars=5000
coverage: none
tools: composer
- name: Checking out code from ${{ env.GITHUB_REF_SLUG }}
uses: actions/checkout@v6
with:
path: 'moodle'
- name: 'Preparing the environment'
run: |
echo "pathtophp=$(which php)" >> $GITHUB_ENV # Inject installed pathtophp to env. The template config needs it.
sudo locale-gen en_AU.UTF-8
- name: Create the new Composer Project
run: |
mkdir testsite
cp moodle/.github/workflows/composed/composer.json testsite/composer.json
cp moodle/.github/workflows/composed/config.php testsite/config.php
mkdir -p testsite/data/moodledata
mkdir -p testsite/data/phpunitdata
- name: Install the Moodle test site
working-directory: testsite
run: |
composer install --no-interaction
- name: Setting up PHPUnit
working-directory: testsite
env:
dbtype: ${{ matrix.db }}
run: |
php moodle/public/admin/tool/phpunit/cli/init.php --no-composer-self-update
- name: Running PHPUnit tests
working-directory: testsite
env:
dbtype: ${{ matrix.db }}
phpunit_options: ${{ secrets.phpunit_options }}
run: |
vendor/bin/phpunit $phpunit_options ${{ inputs.phpunit_extra_options }}
-25
View File
@@ -1,25 +0,0 @@
{
"type": "project",
"require": {
"moodle/composer-installer": "^1",
"moodle/moodle-composer-scaffold": "^1",
"moodle/moodle": "@dev",
"moodle/moodle-testing": "^1.0"
},
"repositories": [
{
"name": "moodleundertest",
"type": "path",
"url": "../moodle"
}
],
"config": {
"audit": {
"block-insecure": false
},
"allow-plugins": {
"moodle/composer-installer": true,
"moodle/moodle-composer-scaffold": true
}
}
}
-67
View File
@@ -1,67 +0,0 @@
<?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/>.
/**
* Template configuraton file for GitHub Actions CI/CD using Composer.
*
* @package core
* @copyright 2020 onwards Eloy Lafuente (stronk7) {@link https://stronk7.com}
* @license https://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
// This cannot be used out from a GitHub Actions workflow, so just exit.
getenv('GITHUB_WORKFLOW') || die; // phpcs:ignore moodle.Files.MoodleInternal.MoodleInternalGlobalState
unset($CFG);
global $CFG;
$CFG = new stdClass();
$CFG->dbtype = getenv('dbtype');
$CFG->dblibrary = 'native';
$CFG->dbhost = '127.0.0.1';
$CFG->dbname = 'test';
$CFG->dbuser = 'test';
$CFG->dbpass = 'test';
$CFG->prefix = 'm_';
$CFG->dboptions = ['dbcollation' => 'utf8mb4_bin'];
$host = 'localhost';
$CFG->wwwroot = "http://{$host}";
$CFG->dataroot = __DIR__ . '/data/moodledata';
$CFG->admin = 'admin';
$CFG->directorypermissions = 0777;
// Debug options - possible to be controlled by flag in future.
$CFG->debug = (E_ALL); // DEBUG_DEVELOPER.
$CFG->debugdisplay = 1;
$CFG->debugstringids = 1; // Add strings=1 to url to get string ids.
$CFG->perfdebug = 15;
$CFG->debugpageinfo = 1;
$CFG->allowthemechangeonurl = 1;
$CFG->passwordpolicy = 0;
$CFG->cronclionly = 0;
$CFG->pathtophp = getenv('pathtophp');
$CFG->phpunit_dataroot = __DIR__ . '/data/phpunitdata';
$CFG->phpunit_prefix = 't_';
$CFG->routerconfigured = true;
define('TEST_EXTERNAL_FILES_HTTP_URL', 'http://localhost:8080');
define('TEST_EXTERNAL_FILES_HTTPS_URL', 'http://localhost:8080');
define('TEST_SESSION_REDIS_HOST', 'localhost');
define('TEST_CACHESTORE_REDIS_TESTSERVERS', 'localhost');
-73
View File
@@ -1,73 +0,0 @@
<?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/>.
/**
* Template configuraton file for github actions CI/CD.
*
* @package core
* @copyright 2020 onwards Eloy Lafuente (stronk7) {@link https://stronk7.com}
* @license https://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
// This cannot be used out from a github actions workflow, so just exit.
getenv('GITHUB_WORKFLOW') || die; // phpcs:ignore moodle.Files.MoodleInternal.MoodleInternalGlobalState
unset($CFG);
global $CFG;
$CFG = new stdClass();
$CFG->dbtype = getenv('dbtype');
$CFG->dblibrary = 'native';
$CFG->dbhost = '127.0.0.1';
$CFG->dbname = 'test';
$CFG->dbuser = 'test';
$CFG->dbpass = 'test';
$CFG->prefix = 'm_';
$CFG->dboptions = ['dbcollation' => 'utf8mb4_bin'];
$host = 'localhost';
$CFG->wwwroot = "http://{$host}";
$CFG->dataroot = realpath(dirname(__DIR__)) . '/moodledata';
$CFG->admin = 'admin';
$CFG->directorypermissions = 0777;
// Debug options - possible to be controlled by flag in future.
$CFG->debug = (E_ALL); // DEBUG_DEVELOPER.
$CFG->debugdisplay = 1;
$CFG->debugstringids = 1; // Add strings=1 to url to get string ids.
$CFG->perfdebug = 15;
$CFG->debugpageinfo = 1;
$CFG->allowthemechangeonurl = 1;
$CFG->passwordpolicy = 0;
$CFG->cronclionly = 0;
$CFG->pathtophp = getenv('pathtophp');
$CFG->phpunit_dataroot = realpath(dirname(__DIR__)) . '/phpunitdata';
$CFG->phpunit_prefix = 't_';
$CFG->routerconfigured = true;
define('TEST_EXTERNAL_FILES_HTTP_URL', 'http://localhost:8080');
define('TEST_EXTERNAL_FILES_HTTPS_URL', 'http://localhost:8080');
define('TEST_SESSION_REDIS_HOST', 'localhost');
define('TEST_CACHESTORE_REDIS_TESTSERVERS', 'localhost');
// TODO: add others (solr, mongodb, memcached, ldap...).
// Too much for now: define('PHPUNIT_LONGTEST', true); // Only leaves a few tests out and they are run later by CI.
require_once(__DIR__ . '/lib/setup.php');
-143
View File
@@ -1,143 +0,0 @@
name: One by One Testing
# Run all the individual unit tests one by one, with
# fully independent PHPUnit executions. Useful to
# detect issues with some tests that are using stuff
# that has been made available by others, but is not
# available when running individually.
#
# Note that we aren't using PHPUnit's own isolation
# here but completely separated runs, one for each
# test.
#
# The workflow will fail reporting all the tests
# that have failed (and will pass if no failure is
# detected, of course).
#
# It's only executed via workflow dispatch (automated
# or manual), not by push/tag. And acceptd configuration
# of phpunit, specially useful to run it with PHPUnit's
# own isolation or any other option.
on:
workflow_dispatch:
inputs:
phpunit_extra_options:
description: Additional options to apply to PHPUnit
required: false
default: ''
env:
chunks: 7
jobs:
collect:
name: Collect individual unit tests
runs-on: ubuntu-latest
outputs:
matrix: ${{steps.individual-tests.outputs.matrix }}
steps:
- name: Checking out code
uses: actions/checkout@v4
- name: Looking for all individual tests
id: individual-tests
run: |
count=0 # Number of individual tests found.
while read -r testfile; do # For each test file.
while read -r testname; do # For each unit test in a file.
count=$((count + 1))
# Sent it to the correct chunk file.
chunk=$(((($count % $chunks)) + 1))
echo "$testname $testfile" >> ./chunk_$chunk.txt
done < <(grep "function test_" "${testfile}" | sed -r "s/^.*function (test_[a-zA-Z0-9_]+).*/\1/")
done < <(find . -name "*_test.php" -not -path "*/fixtures/*")
# Generate the matrix to run tests.
echo "matrix=$(ls -1 chunk_*.txt | jq -R -s -c 'split("\n")[:-1]')" >> $GITHUB_OUTPUT
echo "$count individual tests collected in $chunks files"
- name: Upload individual tests files
uses: actions/upload-artifact@v4
with:
name: individual_tests
path: chunk_*.txt
retention-days: 1
test:
name: Run tests
needs: collect
runs-on: ubuntu-latest
services:
exttests:
image: moodlehq/moodle-exttests
ports:
- 8080:80
redis:
image: redis
ports:
- 6379:6379
strategy:
fail-fast: false
matrix:
file: ${{ fromJson(needs.collect.outputs.matrix) }}
steps:
- name: Setting up DB pgsql
uses: m4nu56/postgresql-action@v1
with:
postgresql version: 16
postgresql db: test
postgresql user: test
postgresql password: test
- name: Setting up PHP
uses: shivammathur/setup-php@v2
with:
php-version: 8.4
ini-values: max_input_vars=5000
coverage: none
- name: Checking out code
uses: actions/checkout@v4
- name: Download individual test files
uses: actions/download-artifact@v4
with:
name: individual_tests # Make all the chunk files available for the next steps.
- name: Setting up PHPUnit
env:
dbtype: pgsql
run: |
echo "pathtophp=$(which php)" >> $GITHUB_ENV
cp .github/workflows/config-template.php config.php
mkdir ../moodledata
sudo locale-gen en_AU.UTF-8
php public/admin/tool/phpunit/cli/init.php --no-composer-self-update
- name: Run PHPUnit test (one by one)
env:
dbtype: pgsql
run: |
status=0
count=0
while read -r line; do # For each line in the chunk file
count=$((count + 1))
filter="${line% *}"
file="${line#* }"
# Run the individual unit test and report problems if needed to.
if ! php vendor/bin/phpunit \
--fail-on-empty-test-suite \
--fail-on-warning \
--fail-on-risky \
--filter "$filter" ${{ inputs.phpunit_extra_options }} \
"$file" >/dev/null 2>&1; then
if [ $status -eq 0 ]; then
echo "Problems found, list of PHPUnit commands failing:"
fi
echo "vendor/bin/phpunit --filter '${filter}' ${{ inputs.phpunit_extra_options }} $file"
status=$((status + 1))
fi
done < ${{ matrix.file }}
echo "Finished: $count individual tests executed, $status tests failed"
exit $status
-128
View File
@@ -1,128 +0,0 @@
name: Core
on:
push:
branches-ignore:
- main
- MOODLE_[0-9]+_STABLE
tags-ignore:
- v[0-9]+.[0-9]+.[0-9]+*
workflow_dispatch:
inputs:
phpunit_extra_options:
description: Additional options to apply to PHPUnit
required: false
default: ''
env:
php: 8.4
jobs:
Grunt:
runs-on: ubuntu-24.04
steps:
- name: Checking out code
uses: actions/checkout@v4
- name: Configuring node & npm
uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'
- name: Installing node stuff
run: npm install
- name: Running grunt
run: npx grunt
- name: Looking for uncommitted changes
# Add all files to the git index and then run diff --cached to see all changes.
# This ensures that we get the status of all files, including new files.
# We ignore npm-shrinkwrap.json to make the tasks immune to npm changes.
run: |
git add .
git reset -- npm-shrinkwrap.json
git diff --cached --exit-code
PHPUnit:
runs-on: ${{ matrix.os }}
services:
exttests:
image: moodlehq/moodle-exttests
ports:
- 8080:80
redis:
image: redis
ports:
- 6379:6379
postgres:
image: ${{ matrix.db == 'pgsql' && 'postgres:16' || '' }}
env:
POSTGRES_DB: test
POSTGRES_USER: test
POSTGRES_PASSWORD: test
ports:
- 5432:5432
strategy:
fail-fast: false
matrix:
include:
# MySQL builds always run with the lowest PHP supported version.
- os: ubuntu-24.04
php: 8.3
extensions:
db: mysqli
# PostgreSQL builds always run with the highest PHP supported version.
- os: ubuntu-24.04
php: 8.4
db: pgsql
steps:
- name: Run MySQL Server
if: ${{ matrix.db == 'mysqli' }}
run: |
docker run --rm \
-e MYSQL_DATABASE=test \
-e MYSQL_USER=test \
-e MYSQL_PASSWORD=test \
-e MYSQL_ROOT_PASSWORD=test \
-p 3306:3306 \
-d \
--tmpfs /var/lib/mysql:rw,noexec,nosuid,size=1024M \
mysql:8.4 \
--skip-log-bin \
--collation-server=utf8mb4_bin
- name: Configuring git vars
uses: rlespinasse/github-slug-action@v4
- name: Setting up PHP ${{ matrix.php }}
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
extensions: ${{ matrix.extensions }}
ini-values: max_input_vars=5000
coverage: none
- name: Checking out code from ${{ env.GITHUB_REF_SLUG }}
uses: actions/checkout@v4
- name: Setting up PHPUnit
env:
dbtype: ${{ matrix.db }}
run: |
echo "pathtophp=$(which php)" >> $GITHUB_ENV # Inject installed pathtophp to env. The template config needs it.
cp .github/workflows/config-template.php config.php
mkdir ../moodledata
sudo locale-gen en_AU.UTF-8
php public/admin/tool/phpunit/cli/init.php --no-composer-self-update
- name: Running PHPUnit tests
env:
dbtype: ${{ matrix.db }}
phpunit_options: ${{ secrets.phpunit_options }}
run: vendor/bin/phpunit $phpunit_options ${{ inputs.phpunit_extra_options }}
- name: Git status
run: git status
-23
View File
@@ -1,23 +0,0 @@
name: Web Installer Testing
on:
workflow_dispatch:
jobs:
InstallationTest:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
php: [8.3, 8.4]
steps:
- name: Construct repository URL
run: echo "REPOSITORY_URL=${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}" >> $GITHUB_ENV
shell: bash
- uses: moodlehq/moodle-webinstaller-test@main
with:
repository: ${{ env.REPOSITORY_URL }}
branch: ${{ github.ref_name }}
php: ${{ matrix.php }}
-149
View File
@@ -1,149 +0,0 @@
name: Windows Testing
on:
workflow_dispatch:
inputs:
phpunit_extra_options:
description: Additional options to apply to PHPUnit
required: false
default: ''
env:
php: 8.4
jobs:
Grunt:
runs-on: windows-latest
steps:
- name: Set git to use LF
run: |
git config --global core.autocrlf false
git config --global core.eol lf
- name: Checking out code
uses: actions/checkout@v4
- name: Configuring node & npm
uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'
- name: Installing node stuff
run: npm ci
- name: Running grunt
run: npx grunt
- name: Looking for uncommitted changes
# Add all files to the git index and then run diff --cached to see all changes.
# This ensures that we get the status of all files, including new files.
# We ignore npm-shrinkwrap.json to make the tasks immune to npm changes.
run: |
git add .
git reset -- npm-shrinkwrap.json
git diff --cached --exit-code
PHPUnit:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- os: windows-latest
php: 8.4
# Ideally we should use mysql/mariadb, but they are 4x slower without tweaks and configuration
# so let's run only postgres (1.5h vs 6h) only, If some day we want to improve the mysql runs,
# this is the place to enable them.
# db: mysqli
db: pgsql
extensions: exif, fileinfo, gd, intl, pgsql, mysql, redis, soap, sodium, zip
- os: windows-latest
php: 8.3
db: pgsql
extensions: exif, fileinfo, gd, intl, pgsql, mysql, redis, soap, sodium, zip
steps:
- name: Setting up DB mysql
if: ${{ matrix.db == 'mysqli' }}
uses: shogo82148/actions-setup-mysql@v1
with:
mysql-version: 8.4
user: test
password: test
- name: Creating DB mysql
if: ${{ matrix.db == 'mysqli' }}
run: mysql --host 127.0.0.1 -utest -ptest -e 'CREATE DATABASE IF NOT EXISTS test COLLATE = utf8mb4_bin;';
- name: Setting up DB pgsql
if: ${{ matrix.db == 'pgsql' }}
run: |
# TODO: Remove these conf. modifications when php74 or php80 are lowest.
# Change to old md5 auth, because php73 does not support it.
# #password_encryption = scram-sha-256
(Get-Content "$env:PGDATA\postgresql.conf"). `
replace('#password_encryption = scram-sha-256', 'password_encryption = md5') | `
Set-Content "$env:PGDATA\postgresql.conf"
(Get-Content "$env:PGDATA\pg_hba.conf"). `
replace('scram-sha-256', 'md5') | `
Set-Content "$env:PGDATA\pg_hba.conf"
$pgService = Get-Service -Name postgresql*
Set-Service -InputObject $pgService -Status running -StartupType automatic
Start-Process -FilePath "$env:PGBIN\pg_isready" -Wait -PassThru
& $env:PGBIN\psql --command="CREATE USER test PASSWORD 'test'" --command="\du"
- name: Creating DB pgsql
if: ${{ matrix.db == 'pgsql' }}
run: |
& $env:PGBIN\createdb --owner=test test
$env:PGPASSWORD = 'test'
& $env:PGBIN\psql --username=test --host=localhost --list test
- name: Configuring git vars
uses: rlespinasse/github-slug-action@v4
- name: Setting up PHP ${{ matrix.php }}
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
extensions: ${{ matrix.extensions }}
ini-values: max_input_vars=5000
coverage: none
- name: Set git to use LF
run: |
git config --global core.autocrlf false
git config --global core.eol lf
- name: Checking out code from ${{ env.GITHUB_REF_SLUG }}
uses: actions/checkout@v4
# Needs to be done after php is available, git configured and Moodle checkout has happened.
- name: Setting up moodle-exttests service
run: |
git clone https://github.com/moodlehq/moodle-exttests.git
nssm install php-built-in C:\tools\php\php.exe -S localhost:8080 -t D:\a\moodle\moodle\moodle-exttests
nssm start php-built-in
- name: Setting up redis service
run: |
choco install redis --version 5.0.7 --no-progress
nssm install redis redis-server
nssm start redis
- name: Setting up PHPUnit
env:
dbtype: ${{ matrix.db }}
shell: bash
run: |
echo "pathtophp=$(which php)" >> $GITHUB_ENV # Inject installed pathtophp to env. The template config needs it.
cp .github/workflows/config-template.php config.php
mkdir ../moodledata
php public/admin/tool/phpunit/cli/init.php --no-composer-self-update
- name: Running PHPUnit tests
env:
dbtype: ${{ matrix.db }}
phpunit_options: ${{ secrets.phpunit_options }}
run: vendor/bin/phpunit $phpunit_options ${{ inputs.phpunit_extra_options }}
+3 -39
View File
@@ -9,26 +9,15 @@
#
# See gitignore(5) man page for more details
#
# Swap files (vim)
[._]*.s[a-v][a-z]
[._]*.sw[a-p]
[._]s[a-rt-v][a-z]
[._]ss[a-gi-z]
[._]sw[a-p]
# Temporary files including undo
*~
#
/config.php
/lib/editor/tinymce/extra/tools/temp/
*~
*.swp
/tags
/TAGS
/cscope.*
/.patches/
/.idea/
.phpstorm.*
!/.phpstorm.meta.php/
/.phpstorm.meta.php/*
!/.phpstorm.meta.php/di.php
/nbproject/
CVS
.DS_Store
@@ -36,28 +25,3 @@ CVS
/.project
/.buildpath
/.cache
.phpunit.result.cache
phpunit.xml
# Composer support. Do not ignore composer.json, or composer.lock. These should be shipped by us.
composer.phar
/vendor/
/behat.yml
*/yui/build/*/*-coverage.js
/public/lib/yuilib/*/build/*/*-coverage.js
# lib/yuilib/version/module/module-coverage.js
/public/lib/yuilib/*/*/*-coverage.js
atlassian-ide-plugin.xml
/node_modules/
/.vscode/
moodle-plugin-ci.phar
.eslintignore
.stylelintignore
/jsdoc
/public/admin/tool/componentlibrary/docs
/public/admin/tool/componentlibrary/hugo/site/data/my-index.json
.hugo_build.lock
phpcs.xml
jsconfig.json
UPGRADING-CURRENT.md
.phpunit.cache
tsconfig.aliases.json
-169
View File
@@ -1,169 +0,0 @@
// 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/>.
/**
* This is a babel plugin to add the Moodle module names to the AMD modules
* as part of the transpiling process.
*
* In addition it will also add a return statement for the default export if the
* module is using default exports. This is a highly specific Moodle thing because
* we're transpiling to AMD and none of the existing Babel 7 plugins work correctly.
*
* This will fix the issue where an ES6 module using "export default Foo" will be
* transpiled into an AMD module that returns {default: Foo}; Instead it will now
* just simply return Foo.
*
* Note: This means all other named exports in that module are ignored and won't be
* exported.
*
* @copyright 2018 Ryan Wyllie <ryan@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
"use strict";
/* eslint-env node */
module.exports = ({template, types}) => {
const fs = require('fs');
const path = require('path');
const cwd = process.cwd();
const ComponentList = require(path.join(process.cwd(), '.grunt', 'components.js'));
/**
* Search the list of components that match the given file name
* and return the Moodle component for that file, if found.
*
* Throw an exception if no matching component is found.
*
* @throws {Error}
* @param {string} searchFileName The file name to look for.
* @return {string} Moodle component
*/
function getModuleNameFromFileName(searchFileName) {
searchFileName = fs.realpathSync(searchFileName);
const relativeFileName = searchFileName.replace(`${cwd}${path.sep}`, '').replace(/\\/g, '/');
const [componentPath, file] = relativeFileName.split('/amd/src/');
const fileName = file.replace('.js', '');
// Check subsystems first which require an exact match.
const componentName = ComponentList.getComponentFromPath(componentPath);
if (componentName) {
return `${componentName}/${fileName}`;
}
// This matches the previous PHP behaviour that would throw an exception
// if it couldn't parse an AMD file.
throw new Error(`Unable to find module name for ${searchFileName} (${componentPath}::${file}}`);
}
/**
* This is heavily inspired by the babel-plugin-add-module-exports plugin.
* See: https://github.com/59naga/babel-plugin-add-module-exports
*
* This is used when we detect a module using "export default Foo;" to make
* sure the transpiled code just returns Foo directly rather than an object
* with the default property (i.e. {default: Foo}).
*
* Note: This means that we can't support modules that combine named exports
* with a default export.
*
* @param {String} path
* @param {String} exportObjectName
*/
function addModuleExportsDefaults(path, exportObjectName) {
const rootPath = path.findParent(path => {
return path.key === 'body' || !path.parentPath;
});
// HACK: `path.node.body.push` instead of path.pushContainer(due doesn't work in Plugin.post).
// This is hardcoded to work specifically with AMD.
rootPath.node.body.push(template(`return ${exportObjectName}.default`)());
}
return {
pre() {
this.seenDefine = false;
this.addedReturnForDefaultExport = false;
},
visitor: {
// Plugin ordering is only respected if we visit the "Program" node.
// See: https://babeljs.io/docs/en/plugins.html#plugin-preset-ordering
//
// We require this to run after the other AMD module transformation so
// let's visit the "Program" node.
Program: {
exit(path) {
path.traverse({
CallExpression(path) {
// If we find a "define" function call.
if (!this.seenDefine && path.get('callee').isIdentifier({name: 'define'})) {
// We only want to modify the first instance of define that we find.
this.seenDefine = true;
// Get the Moodle component for the file being processed.
var moduleName = getModuleNameFromFileName(this.file.opts.filename);
// The function signature of `define()` is:
// define = function (name, deps, callback) {...}
// Ensure that if the moduel supplied its own name that it is replaced.
if (path.node.arguments.length > 0) {
// Ensure that there is only one name.
if (path.node.arguments[0].type === 'StringLiteral') {
// eslint-disable-next-line
console.log(`Replacing module name '${path.node.arguments[0].extra.rawValue}' with ${moduleName}`);
path.node.arguments.shift();
}
}
// Add the module name as the first argument to the define function.
path.node.arguments.unshift(types.stringLiteral(moduleName));
// Add a space after the define function in the built file so that previous versions
// of Moodle will not try to add the module name to the file when it's being served
// by PHP. This forces the regex in PHP to not match for this file.
path.node.callee.name = 'define ';
}
// Check for any Object.defineProperty('exports', 'default') calls.
if (!this.addedReturnForDefaultExport && path.get('callee').matchesPattern('Object.defineProperty')) {
const [identifier, prop] = path.get('arguments');
const objectName = identifier.get('name').node;
const propertyName = prop.get('value').node;
if ((objectName === 'exports' || objectName === '_exports') && propertyName === 'default') {
addModuleExportsDefaults(path, objectName);
this.addedReturnForDefaultExport = true;
}
}
},
AssignmentExpression(path) {
// Check for an exports.default assignments.
if (
!this.addedReturnForDefaultExport &&
(
path.get('left').matchesPattern('exports.default') ||
path.get('left').matchesPattern('_exports.default')
)
) {
const objectName = path.get('left.object.name').node;
addModuleExportsDefaults(path, objectName);
this.addedReturnForDefaultExport = true;
}
}
}, this);
}
}
}
};
};
-455
View File
@@ -1,455 +0,0 @@
// 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/>.
/**
* Helper functions for working with Moodle component names, directories, and sources.
*
* @copyright 2019 Andrew Nicols <andrew@nicols.co.uk>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
"use strict";
/* eslint-env node */
/** @var {Object} A list of subsystems in Moodle */
const componentData = {};
/**
* Load details of all moodle modules.
*
* @returns {object}
*/
const fetchComponentData = () => {
const fs = require('fs');
const path = require('path');
const glob = require('glob');
const gruntFilePath = process.cwd();
if (!Object.entries(componentData).length) {
componentData.subsystems = {};
componentData.pathList = [];
componentData.components = {};
componentData.standardComponents = {};
// Fetch the component definiitions from the distributed JSON file.
const components = JSON.parse(fs.readFileSync(`${gruntFilePath}/lib/components.json`));
const pluginData = JSON.parse(fs.readFileSync(`${gruntFilePath}/lib/plugins.json`));
componentData.pluginTypes = components.plugintypes
const standardPlugins = Object.entries(pluginData.standard).map(
([pluginType, pluginNames]) => {
return pluginNames.map(pluginName => `${pluginType}_${pluginName}`);
}
).reduce((acc, val) => acc.concat(val), []);
// Build the list of moodle subsystems.
componentData.subsystems['public/lib'] = 'core';
componentData.pathList.push(`${process.cwd()}/public/lib`);
for (const [component, thisPath] of Object.entries(components.subsystems)) {
if (thisPath) {
// Prefix "core_" to the front of the subsystems.
componentData.subsystems[thisPath] = `core_${component}`;
componentData.pathList.push(`${process.cwd()}/${thisPath}`);
}
}
// The list of components includes the list of subsystems.
componentData.components = Object.fromEntries(
Object.entries(componentData.subsystems)
.map(([path, name]) => ([path, name]))
);
const subpluginAdder = (subpluginType, subpluginTypePath) => {
glob.sync(`${subpluginTypePath}/*/version.php`).forEach(versionPath => {
const componentPath = fs.realpathSync(path.dirname(versionPath));
const componentName = path.basename(componentPath);
const frankenstyleName = `${subpluginType}_${componentName}`;
componentData.components[`${subpluginTypePath}/${componentName}`] = frankenstyleName;
componentData.pathList.push(componentPath);
});
};
// Go through each of the plugintypes.
Object.entries(components.plugintypes).forEach(([pluginType, pluginTypePath]) => {
// We don't allow any code in this place..?
glob.sync(`${pluginTypePath}/*/version.php`).forEach(versionPath => {
const componentPath = fs.realpathSync(path.dirname(versionPath));
const componentName = path.basename(componentPath);
const frankenstyleName = `${pluginType}_${componentName}`;
componentData.components[`${pluginTypePath}/${componentName}`] = frankenstyleName;
componentData.pathList.push(componentPath);
// Look for any subplugins.
const subPluginConfigurationFile = `${componentPath}/db/subplugins.json`;
if (fs.existsSync(subPluginConfigurationFile)) {
const subpluginList = JSON.parse(fs.readFileSync(fs.realpathSync(subPluginConfigurationFile)));
if (subpluginList.subplugintypes) {
Object.entries(subpluginList.subplugintypes).forEach(([subpluginType, subpluginTypePath]) => {
subpluginAdder(
subpluginType,
`${pluginTypePath}/${componentName}/${subpluginTypePath}`
);
});
} else if (subpluginList.plugintypes) {
Object.entries(subpluginList.plugintypes).forEach(([subpluginType, subpluginTypePath]) => {
subpluginAdder(subpluginType, `public/${subpluginTypePath}`);
});
}
}
});
});
// Create a list of the standard subsystem and plugins.
componentData.standardComponents = Object.fromEntries(
Object.entries(componentData.components).filter(([, name]) => {
if (name === 'core' || name.startsWith('core_')) {
return true;
}
return standardPlugins.indexOf(name) !== -1;
})
);
componentData.componentMapping = Object.fromEntries(
Object.entries(componentData.components).map(([path, name]) => [name, path])
);
}
return componentData;
};
/**
* Get the list of component paths.
*
* @param {string} relativeTo
* @returns {array}
*/
const getComponentPaths = (relativeTo = '') => fetchComponentData().pathList.map(componentPath => {
return componentPath.replace(relativeTo, '');
});
/**
* Get the list of paths to build AMD sources.
*
* @returns {Array}
*/
const getAmdSrcGlobList = () => {
const globList = [];
fetchComponentData().pathList.forEach(componentPath => {
globList.push(`${componentPath}/amd/src/*.js`);
globList.push(`${componentPath}/amd/src/**/*.js`);
});
return globList;
};
/**
* Get the list of paths to build YUI sources.
*
* @param {String} relativeTo
* @returns {Array}
*/
const getYuiSrcGlobList = relativeTo => {
const globList = [];
fetchComponentData().pathList.forEach(componentPath => {
const relativeComponentPath = componentPath.replace(relativeTo, '');
globList.push(`${relativeComponentPath}/yui/src/**/*.js`);
});
return globList;
};
/**
* Get the list of paths to thirdpartylibs.xml.
*
* @param {String} relativeTo
* @returns {Array}
*/
const getThirdPartyLibsList = relativeTo => {
const fs = require('fs');
const path = require('path');
const pathList = fetchComponentData().pathList
.map(componentPath => path.relative(relativeTo, componentPath) + '/thirdpartylibs.xml')
.map(componentPath => componentPath.replace(/\\/g, '/'))
.filter(path => fs.existsSync(path));
pathList.push('lib/thirdpartylibs.xml');
return pathList.sort();
};
/**
* Get the list of thirdparty library paths.
*
* @returns {array}
*/
const getThirdPartyPaths = () => {
const DOMParser = require('@xmldom/xmldom').DOMParser;
const fs = require('fs');
const path = require('path');
const xpath = require('xpath');
const thirdpartyfiles = getThirdPartyLibsList(fs.realpathSync('./'));
const libs = ['node_modules/', 'vendor/'];
const addLibToList = lib => {
if (!lib.match('\\*') && fs.statSync(lib).isDirectory()) {
// Ensure trailing slash on dirs.
lib = lib.replace(/\/?$/, '/');
}
// Look for duplicate paths before adding to array.
if (libs.indexOf(lib) === -1) {
libs.push(lib);
}
};
thirdpartyfiles.forEach(function(file) {
const dirname = path.dirname(file);
const xmlContent = fs.readFileSync(file, 'utf8');
const doc = new DOMParser().parseFromString(xmlContent);
const nodes = xpath.select("/libraries/library/location/text()", doc);
nodes.forEach(function(node) {
let lib = path.posix.join(dirname, node.toString());
addLibToList(lib);
});
});
return libs;
};
/**
* Find the name of the component matching the specified path.
*
* @param {String} path
* @returns {String|null} Name of matching component.
*/
const getComponentFromPath = path => {
const componentList = fetchComponentData().components;
if (componentList.hasOwnProperty(path)) {
return componentList[path];
}
return null;
};
/**
* Check whether the supplied path, relative to the Gruntfile.js, is in a known component.
*
* @param {String} checkPath The path to check. This can be with either Windows, or Linux directory separators.
* @returns {String|null}
*/
const getOwningComponentDirectory = checkPath => {
const path = require('path');
// Fetch all components into a reverse sorted array.
// This ensures that components which are within the directory of another component match first.
const pathList = Object.keys(fetchComponentData().components).sort().reverse();
for (const componentPath of pathList) {
// If the componentPath is the directory being checked, it will be empty.
// If the componentPath is a parent of the directory being checked, the relative directory will not start with ..
if (!path.relative(componentPath, checkPath).startsWith('..')) {
return componentPath;
}
}
return null;
};
/**
* Get the latest tag in a remote GitHub repository.
*
* @param {string} url The remote repository.
* @returns {Array}
*/
const getRepositoryTags = async(url) => {
const gtr = require('git-tags-remote');
try {
const tags = await gtr.get(url);
if (tags !== undefined) {
return tags;
}
} catch (error) {
return [];
}
return [];
};
/**
* Get the list of thirdparty libraries that could be upgraded.
*
* @returns {Array}
*/
const getThirdPartyLibsUpgradable = async() => {
const libraries = getThirdPartyLibsData().filter((library) => !!library.repository);
const upgradableLibraries = [];
const versionCompare = (a, b) => {
if (a === b) {
return 0;
}
const aParts = a.split('.');
const bParts = b.split('.');
for (let i = 0; i < Math.min(aParts.length, bParts.length); i++) {
const aPart = parseInt(aParts[i], 10);
const bPart = parseInt(bParts[i], 10);
if (aPart > bPart) {
// 1.1.0 > 1.0.9
return 1;
} else if (aPart < bPart) {
// 1.0.9 < 1.1.0
return -1;
} else {
// Same version.
continue;
}
}
if (aParts.length > bParts.length) {
// 1.0.1 > 1.0
return 1;
}
// 1.0 < 1.0.1
return -1;
};
for (let library of libraries) {
upgradableLibraries.push(
getRepositoryTags(library.repository).then((tagMap) => {
library.version = library.version.replace(/^v/, '');
const currentVersion = library.version.replace(/moodle-/, '');
const currentMajorVersion = library.version.split('.')[0];
const tags = [...tagMap]
.map((tagData) => tagData[0])
.filter((tag) => !tag.match(/(alpha|beta|rc)/))
.map((tag) => tag.replace(/^v/, ''))
.sort((a, b) => versionCompare(b, a));
if (!tags.length) {
library.warning = "Unable to find any comparable tags.";
return library;
}
library.latestVersion = tags[0];
tags.some((tag) => {
if (!tag) {
return false;
}
// See if the version part matches.
const majorVersion = tag.split('.')[0];
if (majorVersion === currentMajorVersion) {
library.latestSameMajorVersion = tag;
return true;
}
return false;
});
if (versionCompare(currentVersion, library.latestVersion) > 0) {
// Moodle somehow has a newer version than the latest version.
library.warning = `Newer version found: ${currentVersion} > ${library.latestVersion} for ${library.name}`;
return library;
}
if (library.version !== library.latestVersion) {
// Delete version and add it again at the end of the array. That way, current and new will stay closer.
delete library.version;
library.version = currentVersion;
return library;
}
return null;
})
);
}
return (await Promise.all(upgradableLibraries)).filter((library) => !!library);
};
/**
* Get the list of paths to build react sources.
*
* @param {string} relativeTo
* @returns {string[]}
*/
const getReactTsSrcGlobList = (relativeTo = '') => {
const globList = [];
fetchComponentData().pathList.forEach(componentPath => {
const relativeComponentPath = componentPath.replace(relativeTo, '');
globList.push(`${relativeComponentPath}/js/esm/src/**/*.ts`);
globList.push(`${relativeComponentPath}/js/esm/src/**/*.tsx`);
});
return globList.map(componentPath => componentPath.replace(/\\/g, '/'));
};
/**
* Get the list of thirdparty libraries.
*
* @returns {Array}
*/
const getThirdPartyLibsData = () => {
const DOMParser = require('@xmldom/xmldom').DOMParser;
const fs = require('fs');
const xpath = require('xpath');
const path = require('path');
const libraryList = [];
const libraryFields = [
'location',
'name',
'version',
'repository',
];
const thirdpartyfiles = getThirdPartyLibsList(fs.realpathSync('./'));
thirdpartyfiles.forEach(function(libraryPath) {
const xmlContent = fs.readFileSync(libraryPath, 'utf8');
const doc = new DOMParser().parseFromString(xmlContent);
const libraries = xpath.select("/libraries/library", doc);
for (const library of libraries) {
const libraryData = [];
for (const field of libraryFields) {
libraryData[field] = xpath.select(`${field}/text()`, library)?.toString();
}
libraryData.location = path.join(path.dirname(libraryPath), libraryData.location);
libraryList.push(libraryData);
}
});
return libraryList.sort((a, b) => a.location.localeCompare(b.location));
};
module.exports = {
fetchComponentData,
getAmdSrcGlobList,
getComponentFromPath,
getComponentPaths,
getOwningComponentDirectory,
getYuiSrcGlobList,
getThirdPartyLibsList,
getThirdPartyPaths,
getThirdPartyLibsUpgradable,
getReactTsSrcGlobList,
};
-19
View File
@@ -1,19 +0,0 @@
# Moodle JavaScript Documentation
```
.-..-.
_____ | || |
/____/-.---_ .---. .---. .-.| || | .---.
| | _ _ |/ _ \/ _ \/ _ || |/ __ \
* | | | | | || |_| || |_| || |_| || || |___/
|_| |_| |_|\_____/\_____/\_____||_|\_____)
Moodle - the world's open source learning platform
```
## About
This generated documentation includes API documentation for JavaScript written in the AMD and ES2015 module formats within Moodle.
## Related information
See [https://moodledev.io](https://moodledev.io) for other related Developer Documentation.
-131
View File
@@ -1,131 +0,0 @@
// 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/>.
/**
* Helper functions for working with Moodle component names, directories, and sources.
*
* @copyright 2019 Andrew Nicols <andrew@nicols.co.uk>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
"use strict";
/* eslint-env node */
// Do not include any plugins as stanard.
const plugins = [];
plugins.push('plugins/markdown');
/**
* Get the source configuration.
*
* @return {Object}
*/
const getSource = () => {
const glob = require('glob');
const path = require('path');
const ComponentList = require(path.resolve('.grunt/components.js'));
const thirdPartyPaths = ComponentList.getThirdPartyPaths();
const source = {
include: [],
includePattern: ".+\\.js$",
};
let includeList = [];
ComponentList.getAmdSrcGlobList().forEach(async pattern => {
includeList.push(...glob.sync(pattern));
});
const cwdLength = process.cwd().length + 1;
includeList.forEach(path => {
if (source.include.indexOf(path) !== -1) {
// Ensure no duplicates.
return;
}
const relPath = path.substring(cwdLength);
if (thirdPartyPaths.indexOf(relPath) !== -1) {
return;
}
source.include.push(path);
});
source.include.push('.grunt/jsdoc/README.md');
return source;
};
const tags = {
// Allow the use of unknown tags.
// We have a lot of legacy uses of these.
allowUnknownTags: true,
// We make use of jsdoc and closure dictionaries as standard.
dictionaries: [
'jsdoc',
'closure',
],
};
// Template configuraiton.
const templates = {
cleverLinks: false,
monospaceLinks: false,
};
module.exports = {
opts: {
destination: "./public/jsdoc/",
template: "node_modules/docdash",
},
plugins,
recurseDepth: 10,
source: getSource(),
sourceType: 'module',
tags,
templates,
docdash: {
collapse: true,
search: true,
sort: true,
sectionOrder: [
"Namespaces",
"Modules",
"Events",
"Classes",
"Externals",
"Mixins",
"Tutorials",
"Interfaces"
],
"menu": {
"Developer Docs": {
href: "https://moodledev.io",
target: "_blank",
"class": "menu-item",
id: "devdocs"
},
"MDN Docs": {
href: "https://developer.mozilla.org/en-US/docs/Web/JavaScript",
target: "_blank",
"class": "menu-item",
id: "mdndocs",
},
},
typedefs: true,
},
};
-138
View File
@@ -1,138 +0,0 @@
// 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/>.
import * as Components from '../../components.js';
const componentData = Components.fetchComponentData();
/**
* The standard components shipped with core Moodle.
*
* @type {Object}
*/
export const standardComponents = componentData.standardComponents;
/**
* All components of the current Moodle instance.
*
* @type {Object}
*/
export const allComponents = componentData.components;
/**
* Get all components of the current Moodle instance.
*
* @returns {Array}
*/
export const getAllComponents = () => {
let components = new Map(Object.entries(componentData.pluginTypes).map(([value, path]) => ([path,{
path,
value,
name: `${value} (plugin type)`,
}])));
Object
.entries(componentData.components)
.filter(([path, value]) => Object.values(componentData.standardComponents).includes(value))
.forEach(([path, value]) => {
const entry = {
path,
value,
name: value,
};
if (Object.values(componentData.subsystems).includes(value)) {
if (components.has(path)) {
entry.name = `${value} (subsystem / plugintype)`;
} else {
entry.name = `${value} (subsystem)`;
}
}
components.set(path, entry);
});
return Array.from(components.values());
};
/**
* Whether the specified component is a standard component shipped with core Moodle.
*
* @param {string} componentName
* @returns {boolean}
*/
export const isStandardComponent = (componentName) => {
if (Object.values(componentData.standardComponents).includes(componentName)) {
return true;
}
if (Object.keys(componentData.pluginTypes).includes(componentName)) {
return true;
}
return false;
};
export const rewritePlugintypeAsSubsystem = (componentName) => {
if (Object.keys(componentData.pluginTypes).includes(componentName)) {
const pluginTypePath = componentData.pluginTypes[componentName];
if (Object.keys(componentData.subsystems).includes(pluginTypePath)) {
return true;
}
}
return false;
};
/**
* Whether the specified component is a community component.
*
* @param {string} componentName
* @returns {boolean}
*/
export const isCommunityComponent = (componentName) => {
if (isStandardComponent(componentName)) {
return false;
}
return Object.values(componentData.components).indexOf(componentName) !== -1;
};
/**
* Sort method for components.
*
* This method sorts components putting `core` first, followed by core subsystems, then everything else.
*
* @param {String} a
* @param {String} b
* @returns {Number}
*/
export const sortComponents = (a, b) => {
// Always put 'core' first.
if (a === 'core') {
return -1;
} else if (b === 'core') {
return 1;
}
// Put core subsystems next.
if (a.startsWith('core_') && !b.startsWith('core_')) {
return -1;
} else if (b.startsWith('core_') && !a.startsWith('core_')) {
return 1;
}
// Sort alphabetically for everything else.
return a.localeCompare(b);
};
-85
View File
@@ -1,85 +0,0 @@
#!/usr/bin/env node
// 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/>.
import inquirer from 'inquirer';
import chalk from 'chalk';
import { createNote } from './note.mjs';
import { getInitialValues, getIssueNumberFromBranchName } from './helpers.mjs';
import * as Prompts from './prompts.mjs';
import logger from './logger.mjs';
export default async (options) => {
// Processs the initial values.
const initialValues = getInitialValues(options);
// Fetch information.
const messages = [];
const { issueNumber } = await inquirer.prompt([
Prompts.getIssuePrompt(getIssueNumberFromBranchName()),
], initialValues);
let selection = {};
let notePath;
do {
selection = {};
selection = await inquirer.prompt([
Prompts.getComponentsPrompt(),
Prompts.getTypePrompt(),
Prompts.getMessagePromptInput(),
], initialValues);
if (selection.message === '') {
selection = Object.assign(
selection,
await inquirer.prompt([
Prompts.getMessagePromptEditor(),
]),
);
}
logger.info(`
Creating upgrade note with the following options:
- Issue: ${chalk.bold(issueNumber)}
- Component: ${chalk.bold(selection.components)}
- Type: ${chalk.bold(selection.type)}
- Message:
${chalk.bold(selection.message)}
`);
messages.push({
components: [selection.components],
type: selection.type,
message: selection.message,
});
// Save the note so far.
if (notePath) {
await createNote(issueNumber, messages, notePath);
logger.info(`Updated note at: ${chalk.underline(chalk.bold(notePath))}`);
} else {
notePath = await createNote(issueNumber, messages);
logger.info(`Note created at: ${chalk.underline(chalk.bold(notePath))}`);
}
selection = Object.assign(
selection,
await inquirer.prompt([
Prompts.getAddAnotherPrompt(),
], initialValues),
);
} while (selection.addAnother);
};
-357
View File
@@ -1,357 +0,0 @@
#!/usr/bin/env node
// 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/>.
import chalk from 'chalk';
import { getAllComponents } from './components.mjs';
import { getCombinedNotesByComponent, deleteAllNotes } from './note.mjs';
import { getNoteName } from './noteTypes.mjs';
import { writeFile, readFile, unlink } from 'fs/promises';
import { join as joinPath } from 'path';
import logger from './logger.mjs';
import { getCurrentVersion } from './helpers.mjs';
/**
* Helper to fetch the current notes from a file.
*
* @param {string} file
* @returns {Promise<string>}
*/
const getCurrentNotes = async (file) => {
try {
return await readFile(file, 'utf8');
} catch (error) {
return null;
}
}
/**
* Update the UPGRADING.md file.
*
* @param {string} upgradeNotes
* @param {Object} options
* @param {boolean} options.deleteNotes
* @returns {Promise<void>}
*/
const updateUpgradeNotes = async (upgradeNotes, options) => {
const fileName = 'UPGRADING.md';
// Write the notes to a file.
logger.info(`Writing notes to ${chalk.underline(chalk.bold(fileName))}`);
// Prepend to the existing file.
const existingContent = await getCurrentNotes(fileName);
if (existingContent) {
await writeFile(fileName, getUpdatedNotes(existingContent, upgradeNotes));
} else {
// This should not normally happen.
await writeFile(fileName, upgradeNotes);
}
if (options.deleteNotes) {
logger.warn(`>>> Deleting all notes <<<`)
// Delete the notes.
deleteAllNotes();
}
};
/**
* Create the current summary notes.
*
* @param {string} upgradeNotes
* @returns {Promise<void>}
*/
const createCurrentSummary = async (upgradeNotes) => {
const fileName = 'UPGRADING-CURRENT.md';
const notes = `# Moodle upgrade notes\n\n${upgradeNotes}`;
await writeFile(fileName, notes);
logger.info(`Running upgrade notes written to ${chalk.underline(chalk.bold(fileName))}`);
};
/**
* Get the indexes of the lines that contain the version headings.
*
* @param {array<string>} lines
* @returns {array<object>}
*/
const getVersionLineIndexes = (lines) => {
const h2Indexes = [];
lines.forEach((line, index) => {
const matches = line.match(/^##\s(?<version>.*)$/);
if (matches) {
h2Indexes.push({
index,
line,
version: matches.groups.version,
});
}
});
return h2Indexes;
};
/**
* Find the index of the Unreleased heading.
*
* @param {array<object>} versionHeadings
* @returns {number}
*/
const findUnreleasedHeadingIndex = (versionHeadings) => versionHeadings.findIndex((heading) => {
if (heading.version === 'Unreleased') {
// Used if version cannot be guessed.
return true;
}
if (heading.version.endsWith('+')) {
// Weekly release for a stable branch.
return true;
}
if (heading.version.match(/beta|rc\d/)) {
// Beta and RC rolls are treated as weeklies.
return true;
}
if (heading.version.endsWith('dev')) {
// Development version.
return true;
}
return false;
});
/**
* Get the before and after content, to facilitate replacing any existing Unreleased notes.
*
* @param {array<string>} lines
* @returns {Object} {beforeContent: string, afterContent: string}
*/
const getBeforeAndAfterContent = (lines) => {
const existingLines = lines.split('\n');
const versionHeadings = getVersionLineIndexes(existingLines);
if (versionHeadings.length > 0) {
const unreleasedHeadingIndex = findUnreleasedHeadingIndex(versionHeadings);
if (unreleasedHeadingIndex !== -1) {
const beforeContent = existingLines.slice(0, versionHeadings[unreleasedHeadingIndex].index).join('\n');
if (versionHeadings.length > unreleasedHeadingIndex + 1) {
const afterContent = existingLines.slice(versionHeadings[unreleasedHeadingIndex + 1].index).join('\n');
return {
beforeContent,
afterContent,
};
}
return {
beforeContent,
afterContent: '',
};
}
return {
beforeContent: existingLines.slice(0, versionHeadings[0].index).join('\n'),
afterContent: existingLines.slice(versionHeadings[0].index).join('\n'),
};
}
return {
beforeContent: existingLines.join('\n'),
afterContent: '',
}
};
/**
* Get the notes for the component.
*
* @param {string} types
* @param {Number} headingLevel
* @returns {string}
*/
const getNotesForComponent = (types, headingLevel) => {
let upgradeNotes = '';
Object.entries(types).forEach(([type, notes]) => {
upgradeNotes += '#'.repeat(headingLevel);
upgradeNotes += ` ${getNoteName(type)}\n\n`;
notes.forEach(({ message, issueNumber }) => {
// Split the message into lines, removing empty lines.
const messageLines = message
.split('\n')
// Remove empty lines between tables, and list entries, but not after lists.
.filter((line, index, lines) => {
if (line.trim().length === 0) {
// This line is empty.
// If it's the first line in the file, remove it.
if (index === 0) {
return false;
}
// This is the last line in the file, remove it.
if (index === lines.length - 1) {
return false;
}
// If the previous line relates to a table, remove this line.
if (lines[index - 1].match(/^\s*\|/)) {
return false;
}
// If the next line is also empty, do not remove this line.
if (lines[index + 1].trim().length === 0) {
return true;
}
// Do not remove the line if the previous line was a list item.
if (lines[index - 1].match(/^\s*[-*]\s/)) {
return true;
}
if (lines[index - 1].match(/^\s*\d+\.\s/)) {
return true;
}
// Preserve all other empty lines by default.
return true;
}
// Keep any line which has content.
return true;
});
const firstLine = messageLines.shift().trim();
upgradeNotes += `- ${firstLine}\n`;
messageLines
.forEach((line) => {
upgradeNotes += ` ${line}`.trimEnd() + `\n`;
});
upgradeNotes += `\n For more information see [${issueNumber}](https://tracker.moodle.org/browse/${issueNumber})\n`;
});
upgradeNotes += '\n';
});
return upgradeNotes;
};
/**
* Get the updated notes mixed with existing content.
*
* @param {string} existingContent
* @param {string} upgradeNotes
*/
const getUpdatedNotes = (existingContent, upgradeNotes) => {
const { beforeContent, afterContent } = getBeforeAndAfterContent(existingContent);
const newContent = `${beforeContent}\n${upgradeNotes}\n${afterContent}`
.split('\n')
.filter((line, index, lines) => {
if (line === '' && lines[index - 1] === '') {
// Remove multiple consecutive empty lines.
return false;
}
return true;
})
.join('\n');
return newContent;
};
/**
* Update the notes for each component.
*/
const updateComponentNotes = (
notes,
version,
notesFileName = 'UPGRADING.md',
removeEmpty = false,
) => {
return getAllComponents().map(async (component) => {
logger.verbose(`Updating notes for ${component.name} into ${component.path}`);
const fileName = joinPath(component.path, notesFileName);
const existingContent = await getCurrentNotes(fileName);
if (!existingContent) {
if (!notes[component.value]) {
// No existing notes, and no new notes to add.
return;
}
} else {
if (!notes[component.value]) {
// There is existing content, but nothing to add.
if (removeEmpty) {
logger.verbose(`Removing empty notes file ${fileName}`);
await unlink(fileName);
}
return;
}
}
const componentNotes = notes[component.value];
let upgradeNotes = `## ${version}\n\n`;
upgradeNotes += getNotesForComponent(componentNotes, 3);
if (existingContent) {
await writeFile(fileName, getUpdatedNotes(existingContent, upgradeNotes));
} else {
await writeFile(
fileName,
`# ${component.name} Upgrade notes\n\n${upgradeNotes}`,
);
}
});
}
/**
* Generate the upgrade notes for a new release.
*
* @param {string|undefined} version
* @param {Object} options
* @param {boolean} options.generateUpgradeNotes
* @param {boolean} options.deleteNotes
* @returns {Promise<void>}
*/
export default async (version, options = {}) => {
const notes = await getCombinedNotesByComponent();
if (Object.keys(notes).length === 0) {
logger.warn('No notes to generate');
return;
}
if (!version) {
version = await getCurrentVersion();
}
// Generate the upgrade notes for this release.
// We have
// - a title with the release name
// - the change types
// - which contain the components
// - which document each change
let upgradeNotes = `## ${version}\n\n`;
Object.entries(notes).forEach(([component, types]) => {
upgradeNotes += `### ${component}\n\n`;
upgradeNotes += getNotesForComponent(types, 4);
});
await Promise.all([
createCurrentSummary(upgradeNotes),
...updateComponentNotes(notes, version, 'UPGRADING-CURRENT.md', true),
]);
if (options.generateUpgradeNotes) {
await Promise.all(updateComponentNotes(notes, version));
await updateUpgradeNotes(upgradeNotes, options);
}
};
-244
View File
@@ -1,244 +0,0 @@
// 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/>.
import chalk from 'chalk';
import branchName from 'current-git-branch';
import { isStandardComponent, isCommunityComponent, rewritePlugintypeAsSubsystem } from './components.mjs';
import { isValidNoteName } from './noteTypes.mjs';
import logger from './logger.mjs';
import { readFile } from 'fs/promises';
/**
* Validate an issue number input
*
* @param {string} input
* @returns {string|boolean}
*/
export const validateIssueNumber = (input) => {
if (!input) {
return 'You must provide a tracker issue number';
}
if (input.match(/^[a-zA-Z]*-\d+$/)) {
return true;
}
if (input.match(/^\d+$/)) {
return true;
}
return 'The issue number was not recognised as a valid issue number';
};
/**
* Format an issue number input.
*
* @param {string} input
* @returns {string}
*/
export const formatIssueNumber = (input) => {
if (input.match(/^[a-zA-Z]*-\d+$/)) {
return input;
}
if (input.match(/^\d+$/)) {
return `MDL-${input}`;
}
return input;
};
/**
* Get the issue number, based off current git branch name
*
* @returns {string|null}
*/
export const getIssueNumberFromBranchName = () => {
const issueNumber = String(branchName()).match(/^[a-zA-Z]*-\d+/);
if (issueNumber) {
return formatIssueNumber(issueNumber[0]);
}
return null;
};
/**
* Validate a component.
*
* @param {string} input
* @returns {string|boolean}
*/
export const validateComponent = (input) => {
if (isStandardComponent(input)) {
return true;
}
if (isCommunityComponent(input)) {
return 'Currently only core plugins are supported.';
}
return 'The component was not recognised as a standard component';
};
export const formatComponent = (input) => {
if (rewritePlugintypeAsSubsystem(input)) {
return `core_${input}`;
}
return input;
}
/**
* Get the initial values from the options.
*
* @param {object} options
* @returns {object}
*/
export const getInitialValues = (options) => {
const initialValues = {};
const type = getInitialTypeValue(options);
if (type) {
initialValues.type = type;
}
const issueNumber = getInitialIssueValue(options);
if (issueNumber) {
initialValues.issueNumber = issueNumber;
}
const component = getInitialComponentValue(options);
if (component) {
initialValues.components = component;
}
const message = getInitialMessageValue(options);
if (message) {
initialValues.message = message
initialValues.addAnother = false;
}
return initialValues;
};
/**
* Get the initial type value.
*
* @param {Object} options
* @returns {string|undefined}
*/
const getInitialTypeValue = (options) => {
if (!options.type) {
return;
}
options.type = options.type.trim().toLowerCase();
if (isValidNoteName(options.type)) {
return options.type;
}
logger.warn(`Note type "${chalk.underline(chalk.red(options.type))}" is not valid.`);
};
/**
* Get the initial issue number value.
*
* @param {Object} options
* @returns {string|undefined}
*/
const getInitialIssueValue = (options) => {
if (!options.issue) {
return;
}
options.issue = options.issue.trim().toUpperCase();
const issueNumberValidated = validateIssueNumber(options.issue);
if (issueNumberValidated === true) {
const issueNumber = formatIssueNumber(options.issue);
if (issueNumber !== options.issue) {
logger.warn(
`Issue number "${chalk.underline(chalk.red(options.issue))}" was updated to ` +
`"${chalk.underline(chalk.green(issueNumber))}"`
);
}
return issueNumber;
} else {
logger.warn(`Issue number "${chalk.underline(chalk.red(options.issue))}" is not valid: ${issueNumberValidated}`);
}
};
/**
* Get the initial component value.
*
* @param {Object} options
* @returns {string|undefined}
*/
const getInitialComponentValue = (options) => {
if (!options.component) {
return;
}
options.component = options.component.trim().toLowerCase();
const componentValidated = validateComponent(options.component);
if (componentValidated === true) {
const component = formatComponent(options.component);
if (component !== options.component) {
logger.warn(
`Component "${chalk.underline(chalk.red(options.component))}" was updated to ` +
`"${chalk.underline(chalk.green(component))}"`
);
}
return component;
} else {
logger.warn(`Component "${chalk.underline(chalk.red(options.component))}" is not valid: ${componentValidated}`);
}
};
/**
* Get the initial message value.
*
* @param {Object} options
* @returns {string|undefined}
*/
const getInitialMessageValue = (options) => {
if (!options.message) {
return;
}
return options.message.trim();
};
/**
* Get the current version from the project /version.php file.
*
* @returns {Promise<string>}
*/
export const getCurrentVersion = async () => {
const versionRegex = new RegExp(/^ *\$release *= *['\"](?<release>[^ \+]+\+?) *\(Build:.*/m);
try {
const versionFile = await readFile('public/version.php', 'utf8');
const match = versionFile.match(versionRegex);
if (match) {
return match.groups.release;
}
} catch(error) {
logger.error('Unable to read the version file');
}
return "Unreleased";
}
-30
View File
@@ -1,30 +0,0 @@
#!/usr/bin/env node
// 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/>.
import winston from 'winston';
const logger = winston.createLogger({
level: 'info',
format: winston.format.combine(
winston.format.colorize(),
winston.format.simple()
),
transports: [
new winston.transports.Console(),
],
});
export default logger;
-194
View File
@@ -1,194 +0,0 @@
// 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/>.
import yaml from 'js-yaml';
import path from 'path';
import { writeFile, mkdir, readdir, readFile, unlink } from 'fs/promises';
import { isValidNoteName, sortNoteTypes } from './noteTypes.mjs';
import { sortComponents } from './components.mjs';
const unreleasedPath = path.resolve('.upgradenotes');
/**
* Get the filename for the note.
*
* @param {string} issueNumnber The issue number
* @returns {string}
*/
const getFilename = (issueNumber) => {
const dateTimeFormat = new Intl.DateTimeFormat(undefined, {
year: 'numeric',
month: '2-digit',
day: '2-digit',
hour: '2-digit',
minute: '2-digit',
second: '2-digit',
fractionalSecondDigits: 2,
timeZone: 'UTC',
});
const date = Object.fromEntries(
dateTimeFormat.formatToParts(new Date())
.filter((p) => p.type !== 'literal')
.map((p) => ([p.type, p.value]))
);
const dateString = [
date.year,
date.month,
date.day,
date.hour,
date.minute,
date.second,
date.fractionalSecond,
].join('');
return `${issueNumber}-${dateString}.yml`;
};
/**
* Create a new note.
*
* @param {string} issueNumber
* @param {[type: string]: {message: string}} messages
* @returns {string} The path to the note on disk
*/
export const createNote = async (
issueNumber,
messages,
notePath,
) => {
const note = {
issueNumber,
notes: {},
};
messages.forEach(({components, type, message}) => {
note.notes[components] = note.notes[components] || [];
note.notes[components].push({message, type});
});
if (!notePath) {
notePath = path.resolve(unreleasedPath, getFilename(issueNumber));
}
const noteContent = yaml.dump(note);
await mkdir(unreleasedPath, {recursive: true});
await writeFile(notePath, noteContent);
return notePath;
};
/**
* Get all unreleased notes.
*
* @returns {Promise<{issueNumber: string, components: string[], types: {[type: string]: {message: string}[]}}[]>
*/
export const getAllNotes = async () => {
const files = await readdir(unreleasedPath);
const notes = files
.filter((file) => file.endsWith('.yml'))
.map(async (file) => {
const filePath = path.resolve(unreleasedPath, file);
const fileContent = await readFile(filePath, 'utf8');
return {
...yaml.load(fileContent),
filePath,
};
});
return Promise.all(notes);
};
/**
* Get the list of notes, grouped by note type, then component.
*
* @returns {Promise<{[type: string]: {[components: string]: {message: string, issueNumber: string}[]}}>}
*/
export const getCombinedNotes = async () => {
const notes = await getAllNotes();
const combinedNotes = {};
notes.forEach((note) => {
Object.entries(note.notes).forEach(([components, data]) => {
data.forEach((entry) => {
if (!isValidNoteName(entry.type)) {
throw new Error(`Invalid note type: "${entry.type}" in file ${note.filePath}`);
}
combinedNotes[entry.type] = combinedNotes[entry.type] || {};
combinedNotes[entry.type][components] = combinedNotes[entry.type][components] || [];
combinedNotes[entry.type][components].push({message: entry.message, issueNumber: note.issueNumber});
});
});
});
return combinedNotes;
};
/**
* Get the list of notes, grouped by component, then by note type.
*
* @returns {Promise<{[component: string]: {[type: string]: {message: string, issueNumber: string}[]}}>}
*/
export const getCombinedNotesByComponent = async () => {
const notes = await getAllNotes();
const combinedNotes = {};
notes.forEach((note) => {
Object.entries(note.notes).forEach(([component, data]) => {
combinedNotes[component] = combinedNotes[component] || {};
data.forEach((entry) => {
if (!isValidNoteName(entry.type)) {
throw new Error(`Invalid note type: "${entry.type}" in file ${note.filePath}`);
}
combinedNotes[component][entry.type] = combinedNotes[component][entry.type] || [];
combinedNotes[component][entry.type].push({
component,
message: entry.message,
issueNumber: note.issueNumber,
type: entry.type,
});
});
});
});
// Sort notes by note type.
Object.entries(combinedNotes).forEach(([component, types]) => {
combinedNotes[component] = Object.fromEntries(
Object.entries(types).sort(([a], [b]) => sortNoteTypes(a, b))
);
});
// Sort components.
return Object.fromEntries(
Object.entries(combinedNotes).sort(([a], [b]) => sortComponents(a, b))
);
};
/**
* Delete all unreleased notes.
*
* @returns {Promise<void>}
*/
export const deleteAllNotes = async () => {
const files = await readdir(unreleasedPath);
return Promise.all(
files
.filter((item, index) => files.indexOf(item) === index)
.filter((file) => file.endsWith('.yml'))
.map((file) => unlink(`${unreleasedPath}/${file}`))
);
};
-80
View File
@@ -1,80 +0,0 @@
// 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/>.
/**
* The note types.
*
* Matches the suggested order in https://keepachangelog.com/en/1.1.0/.
* @type {Object<string, string>}
*/
const noteTypes = {
'improved': 'Added',
'changed': 'Changed',
'deprecated': 'Deprecated',
'removed': 'Removed',
'fixed': 'Fixed',
};
/**
* The preferred order of note types.
*
* @type {string[]}
*/
const preferredOrder = Object.keys(noteTypes);
/**
* Comparison method to sort note types.
*
* @param {String} a
* @param {String} b
* @returns {Number}
*/
export const sortNoteTypes = (a, b) => {
const aIndex = preferredOrder.indexOf(a);
const bIndex = preferredOrder.indexOf(b);
if (aIndex === -1) {
return 1;
}
if (bIndex === -1) {
return -1;
}
return aIndex - bIndex;
};
/**
* Get the note names.
*
* @returns {string[]}
*/
export const getNoteNames = () => Object.keys(noteTypes);
/**
* Get the human-readable note name.
*
* @param {string} type
* @returns {string}
*/
export const getNoteName = (type) => noteTypes[type];
/**
* Whether the note name is valid.
*
* @param {string} type
* @returns {boolean}
*/
export const isValidNoteName = (type) => noteTypes[type] !== undefined;
-153
View File
@@ -1,153 +0,0 @@
// 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/>.
import inquirer from 'inquirer';
import SearchList from 'inquirer-search-list';
import { getNoteNames } from './noteTypes.mjs';
import { getAllComponents } from './components.mjs';
import {
formatComponent,
formatIssueNumber,
validateComponent,
validateIssueNumber,
} from './helpers.mjs';
/**
* A Search List which accepts an initial value.
*/
class SearchListWithInitialValue extends SearchList {
constructor(options, ...args) {
super(options, ...args);
if (options.default) {
const pointer = this.filterList.findIndex((item) => {
return item.value === options.default;
});
if (pointer > -1) {
this.pointer = pointer;
}
}
}
}
inquirer.registerPrompt('search-list', SearchListWithInitialValue);
/**
* Get the issue type prompt.
*
* @param {string} defaultData The initially selected value
* @returns {Object}
*/
export const getTypePrompt = (defaultData) => ({
default: defaultData,
type: 'search-list',
message: 'Type of change',
name: 'type',
choices: getNoteNames(),
validate: (selection) => {
if (selection.length < 1) {
return 'You must select at least one type of change';
}
return true;
},
});
/**
* Get the component prompt.
*
* @param {string} [defaultValue='core'] The initally selected value.
* @returns
*/
export const getComponentsPrompt = (defaultValue) => {
if (!defaultValue ) {
defaultValue = 'core';
}
return {
choices: getAllComponents(),
default: defaultValue,
type: 'search-list',
message: 'Component',
name: 'components',
validate: validateComponent,
filter: formatComponent,
};
};
/**
* Get the issue number prompt as an inline input.
*
* @param {string} defaultData
* @returns {object}
*/
export const getIssuePrompt = (defaultData) => ({
default: defaultData,
type: 'input',
message: 'Tracker issue number',
name: 'issueNumber',
validate: validateIssueNumber,
filter: formatIssueNumber,
});
/**
* Get a message prompt.
*
* @param {string} defaultData
* @returns
*/
export const getMessagePromptEditor = (defaultData) => ({
default: defaultData,
type: process.stdin.isTTY ? 'editor' : 'input',
postfix: '.md',
message: 'Message',
name: 'message',
waitUserInput: false,
validate: (input) => {
if (!input) {
return 'You must provide a message';
}
return true;
},
// Remove any trailing whitespace.
filter: (input) => input.split('\n').map((line) => line.trimEnd()).join('\n'),
});
/**
* Get a message prompt.
*
* @param {string} defaultData
* @returns
*/
export const getMessagePromptInput = (defaultData) => ({
default: defaultData,
type: 'input',
message: 'Message (leave empty to use editor)',
name: 'message',
filter: (input) => input.trim(),
});
/**
* Get a prompt to ask the user if they wish to add another entry.
*
* @returns {Object}
*/
export const getAddAnotherPrompt = () => ({
type: 'confirm',
message: 'Do you want to add another note?',
default: false,
name: 'addAnother',
});
-58
View File
@@ -1,58 +0,0 @@
#!/usr/bin/env node
// 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/>.
import { getAllComponents } from './components.mjs';
import { getCombinedNotesByComponent } from './note.mjs';
import logger from './logger.mjs';
import { existsSync } from 'fs';
/**
* Generate links to component-specific upgrade notes for each component.
*
* @param {string|undefined} tag The git tag to link to
* @returns {Promise<void>}
*/
export default async (tag) => {
const notes = await getCombinedNotesByComponent();
if (Object.keys(notes).length === 0) {
logger.warn('No notes to generate');
return;
}
if (!tag) {
logger.error('No tag provided');
return;
}
// Generate the links for the components which have upgrade notes in this release.
let upgradeNotes = `### Component API updates\n<!--cspell: disable -->\n\n`;
const componentList = Object.fromEntries(
Object.values(getAllComponents()).map(({path, value}) => [value, path]),
);
Object.entries(notes)
.map(([component]) => ({
component,
componentPath: componentList[component],
}))
.filter(({ componentPath }) => existsSync(`./${componentPath}/UPGRADING.md`))
.forEach(({component, componentPath}) => {
upgradeNotes += `- [${component}](https://github.com/moodle/moodle/blob/${tag}/${componentPath}/UPGRADING.md)\n`;
});
console.log(upgradeNotes);
};
-142
View File
@@ -1,142 +0,0 @@
// 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/>.
/* jshint node: true, browser: false */
/* eslint-env node */
/**
* Component Library build tasks.
*
* @copyright 2021 Andrew Nicols
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
module.exports = grunt => {
/**
* Get a child path of the component library.
*
* @param {string} path
* @returns {string}
*/
const getCLPath = path => `public/admin/tool/componentlibrary/${path}`;
/**
* Get a spawn handler.
*
* This is a generic function to write the spawn output, and then to exit if required and mark the async task as
* complete.
*
* @param {Promise} done
* @returns {function}
*/
const getSpawnHandler = done => (error, result, code) => {
grunt.log.write(result);
if (error) {
grunt.log.error(result.stdout);
process.exit(code);
}
done();
};
/**
* Spawn a function against Node with the provided args.
*
* @param {array} args
* @returns {object}
*/
const spawnNodeCall = (args) => grunt.util.spawn({
cmd: 'node',
args,
}, getSpawnHandler(grunt.task.current.async()));
/**
* Build the docs using Hugo.
*
* @returns {Object} Reference to the spawned task
*/
const docsBuild = () => spawnNodeCall([
'node_modules/hugo-bin/cli.js',
'--config', getCLPath('config.yml'),
'--cleanDestinationDir',
]);
/**
* Build the docs index using the hugo-lunr-indexer.
*
* @returns {Object} Reference to the spawned task
*/
const indexBuild = () => spawnNodeCall([
'node_modules/hugo-lunr-indexer/bin/hli.js',
'-i', getCLPath('content/**'),
'-o', getCLPath('hugo/site/data/my-index.json'),
'-l', 'yaml',
'-d', '---',
]);
/**
* Build the hugo CSS.
*
* @returns {Object} Reference to the spawned task
*/
const cssBuild = () => spawnNodeCall([
'node_modules/sass/sass.js',
'--style', 'expanded',
'--source-map',
'--embed-sources',
'--precision', 6,
'--load-path', `${process.cwd()}/public`,
getCLPath('hugo/scss/docs.scss'),
getCLPath('hugo/dist/css/docs.css'),
]);
// Register the various component library tasks.
grunt.registerTask('componentlibrary:docsBuild', 'Build the component library', docsBuild);
grunt.registerTask('componentlibrary:cssBuild', 'Build the component library', cssBuild);
grunt.registerTask('componentlibrary:indexBuild', 'Build the component library', indexBuild);
grunt.registerTask('componentlibrary', 'Build the component library', [
'componentlibrary:docsBuild',
'componentlibrary:cssBuild',
'componentlibrary:indexBuild',
]);
grunt.config.merge({
watch: {
componentLibraryDocs: {
files: [
getCLPath('content/**/*.md'),
getCLPath('hugo'),
],
tasks: ['componentlibrary:docsBuild', 'componentlibrary:indexBuild'],
},
componentLibraryCSS: {
files: [
getCLPath('hugo/scss/**/*.scss'),
'hugo',
],
tasks: ['componentlibrary:cssBuild'],
},
},
});
// Add the 'componentlibrary' task as a startup task.
grunt.moodleEnv.startupTasks.push('componentlibrary');
return {
docsBuild,
cssBuild,
indexBuild,
};
};
-72
View File
@@ -1,72 +0,0 @@
// 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/>.
/* jshint node: true, browser: false */
/* eslint-env node */
/**
* @copyright 2021 Andrew Nicols
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
module.exports = grunt => {
const files = grunt.moodleEnv.files;
// Project configuration.
grunt.config.merge({
eslint: {
// Even though warnings dont stop the build we don't display warnings by default because
// at this moment we've got too many core warnings.
// To display warnings call: grunt eslint --show-lint-warnings
// To fail on warnings call: grunt eslint --max-lint-warnings=0
// Also --max-lint-warnings=-1 can be used to display warnings but not fail.
options: {
quiet: (!grunt.option('show-lint-warnings')) && (typeof grunt.option('max-lint-warnings') === 'undefined'),
maxWarnings: ((typeof grunt.option('max-lint-warnings') !== 'undefined') ? grunt.option('max-lint-warnings') : -1)
},
// Check AMD src files.
amd: {src: files ? files : grunt.moodleEnv.amdSrc},
// Check YUI module source files.
yui: {src: files ? files : grunt.moodleEnv.yuiSrc},
// Check React source files.
'react': {
options: {
fix: true,
},
src: files ? files : grunt.moodleEnv.reactSrc,
},
},
});
grunt.loadNpmTasks('grunt-eslint');
// On watch, we dynamically modify config to build only affected files. This
// method is slightly complicated to deal with multiple changed files at once (copied
// from the grunt-contrib-watch readme).
let changedFiles = Object.create(null);
const onChange = grunt.util._.debounce(function() {
const files = Object.keys(changedFiles);
grunt.config('eslint.amd.src', files);
grunt.config('eslint.yui.src', files);
changedFiles = Object.create(null);
}, 200);
grunt.event.on('watch', (action, filepath) => {
changedFiles[filepath] = action;
onChange();
});
};
-92
View File
@@ -1,92 +0,0 @@
// 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/>.
/* jshint node: true, browser: false */
/* eslint-env node */
/**
* @copyright 2021 Andrew Nicols
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
module.exports = grunt => {
/**
* Get the list of feature files to pass to the gherkin linter.
*
* @returns {Array}
*/
const getGherkinLintTargets = () => {
if (grunt.moodleEnv.files) {
// Specific files were requested. Only check these.
return grunt.moodleEnv.files;
}
if (grunt.moodleEnv.inComponent) {
return [`${grunt.moodleEnv.runDir}/tests/behat/*.feature`];
}
return ['**/tests/behat/*.feature'];
};
const handler = function() {
const done = this.async();
const options = grunt.config('gherkinlint.options');
// Grab the gherkin-lint linter and required scaffolding.
const linter = require('gherkin-lint/dist/linter.js');
const featureFinder = require('gherkin-lint/dist/feature-finder.js');
const configParser = require('gherkin-lint/dist/config-parser.js');
const formatter = require('gherkin-lint/dist/formatters/stylish.js');
// Run the linter.
return linter.lint(
featureFinder.getFeatureFiles(grunt.file.expand(options.files)),
configParser.getConfiguration(configParser.defaultConfigFileName)
)
.then(results => {
// Print the results out uncondtionally.
formatter.printResults(results);
return results;
})
.then(results => {
// Report on the results.
// The done function takes a bool whereby a falsey statement causes the task to fail.
return results.every(result => result.errors.length === 0);
})
.then(done); // eslint-disable-line promise/no-callback-in-promise
};
grunt.registerTask('gherkinlint', 'Run gherkinlint against the current directory', handler);
grunt.config.set('gherkinlint', {
options: {
files: getGherkinLintTargets(),
}
});
grunt.config.merge({
watch: {
gherkinlint: {
files: [grunt.moodleEnv.inComponent ? 'tests/behat/*.feature' : '**/tests/behat/*.feature'],
tasks: ['gherkinlint'],
},
},
});
// Add the 'gherkinlint' task as a startup task.
grunt.moodleEnv.startupTasks.push('gherkinlint');
return handler;
};
-139
View File
@@ -1,139 +0,0 @@
// 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/>.
/* jshint node: true, browser: false */
/* eslint-env node */
/**
* @copyright 2021 Andrew Nicols
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
module.exports = grunt => {
/**
* Generate the PHPCS configuration.
*
* @param {Object} thirdPartyPaths
*/
const phpcsIgnore = (thirdPartyPaths) => {
const {toXML} = require('jstoxml');
const config = {
_name: 'ruleset',
_attrs: {
name: "MoodleCore",
},
_content: [
{
rule: {
_attrs: {
ref: './phpcs.xml.dist',
},
},
},
],
};
thirdPartyPaths.forEach(library => {
config._content.push({
'exclude-pattern': library,
});
});
grunt.file.write('phpcs.xml', toXML(config, {
header: true,
indent: ' ',
}) + "\n");
};
/**
* Extracts ignore entries from a local ignore file.
*
* @param {string} componentPath the file path to the component, relative to the code base directory
* @param {string} ignoreFilePath the path to the ignore file
* @return {array} array of ignore paths to be included in the global ignore files
*/
const getEntriesFromLocalIgnoreFile = (componentPath, ignoreFilePath) => {
const ignorePaths = [];
if (grunt.file.exists(ignoreFilePath)) {
const ignoreFile = grunt.file.read(ignoreFilePath);
const entries = ignoreFile.split('\n');
entries.forEach(entry => {
entry = entry.trim();
if (entry.length > 0 && !entry.startsWith('#') && !entry.startsWith('!')) {
while (entry.startsWith('/')) {
entry = entry.substring(1);
}
ignorePaths.push(componentPath + '/' + entry);
}
});
}
return ignorePaths;
};
/**
* Generate ignore files (utilising thirdpartylibs.xml data)
*/
const handler = function() {
const path = require('path');
const ComponentList = require(path.join(process.cwd(), '.grunt', 'components.js'));
// An array of paths to third party directories.
const thirdPartyPaths = ComponentList.getThirdPartyPaths();
const localStylelintIgnorePaths = [];
const localEslintIgnorePaths = [];
ComponentList.getComponentPaths(process.cwd() + '/').forEach(componentPath => {
const localEslintIgnorePath = process.cwd() + '/' + componentPath + '/.eslintignore';
const localEslintIgnoreEntries = getEntriesFromLocalIgnoreFile(componentPath, localEslintIgnorePath);
if (localEslintIgnoreEntries.length > 0) {
localEslintIgnorePaths.push(...localEslintIgnoreEntries);
}
const localStylelintIgnorePath = process.cwd() + '/' + componentPath + '/.stylelintignore';
const localStylelintIgnoreEntries = getEntriesFromLocalIgnoreFile(componentPath, localStylelintIgnorePath);
if (localStylelintIgnoreEntries.length > 0) {
localStylelintIgnorePaths.push(...localStylelintIgnoreEntries);
}
});
// Generate .eslintignore.
const eslintIgnores = [
'# Generated by "grunt ignorefiles"',
// Do not ignore the .grunt directory.
'!/.grunt',
// Ignore all yui/src meta directories and build directories.
'*/**/yui/src/*/meta/',
'*/**/build/',
].concat(thirdPartyPaths).concat(localEslintIgnorePaths);
grunt.file.write('.eslintignore', eslintIgnores.join('\n') + '\n');
// Generate .stylelintignore.
const stylelintIgnores = [
'# Generated by "grunt ignorefiles"',
'**/yui/build/*',
'public/theme/boost/style/moodle.css',
'public/theme/classic/style/moodle.css',
'jsdoc/styles/*.css',
'public/admin/tool/componentlibrary/hugo/dist/css/docs.css',
].concat(thirdPartyPaths).concat(localStylelintIgnorePaths);
grunt.file.write('.stylelintignore', stylelintIgnores.join('\n') + '\n');
phpcsIgnore(thirdPartyPaths);
};
grunt.registerTask('ignorefiles', 'Generate ignore files for linters', handler);
return handler;
};
-218
View File
@@ -1,218 +0,0 @@
// 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/>.
/* jshint node: true, browser: false */
/* eslint-env node */
/**
* @copyright 2021 Andrew Nicols
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
/**
* Function to generate the destination for the minification task
* (e.g. build/file.min.js). This function will be passed to
* the rename property of files array when building dynamically:
* http://gruntjs.com/configuring-tasks#building-the-files-object-dynamically
*
* @param {String} destPath the current destination
* @param {String} srcPath the matched src path
* @return {String} The rewritten destination path.
*/
const babelRename = function(destPath, srcPath) {
destPath = srcPath.replace(`amd/src`, `amd/build`);
destPath = destPath.replace(/\.js$/, '.min.js');
return destPath;
};
module.exports = grunt => {
// Load the React build tasks.
require('./react')(grunt);
// Load the Ignorefiles tasks.
require('./ignorefiles')(grunt);
// Load the Shifter tasks.
require('./shifter')(grunt);
// Load ESLint.
require('./eslint')(grunt);
// Load jsconfig.
require('./jsconfig')(grunt);
// Load JSDoc.
require('./jsdoc')(grunt);
const path = require('path');
// Register JS tasks.
grunt.registerTask('yui', ['eslint:yui', 'shifter']);
grunt.registerTask('amd', ['ignorefiles', 'eslint:amd', 'rollup']);
grunt.registerTask('js', ['amd', 'yui', 'react']);
// Register NPM tasks.
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-rollup');
const babelTransform = require('@babel/core').transform;
const babel = (options = {}) => {
return {
name: 'babel',
transform: (code, id) => {
grunt.log.debug(`Transforming ${id}`);
options.filename = id;
const transformed = babelTransform(code, options);
return {
code: transformed.code,
map: transformed.map
};
}
};
};
// Note: We have to use a rate limit plugin here because rollup runs all tasks asynchronously and in parallel.
// When we kick off a full run, if we kick off a rollup of every file this will fork-bomb the machine.
// To work around this we use a concurrent Promise queue based on the number of available processors.
const rateLimit = () => {
const queue = [];
let queueRunner;
const startQueue = () => {
if (queueRunner) {
return;
}
queueRunner = setTimeout(() => {
const limit = Math.max(1, require('os').cpus().length / 2);
grunt.log.debug(`Starting rollup with queue size of ${limit}`);
runQueue(limit);
}, 100);
};
// The queue runner will run the next `size` items in the queue.
const runQueue = (size = 1) => {
queue.splice(0, size).forEach(resolve => {
grunt.log.debug(`Item resolved. Kicking off next one.`);
resolve();
});
};
return {
name: 'ratelimit',
// The options hook is run in parallel.
// We can return an unresolved Promise which is queued for later resolution.
options: async(options) => {
return new Promise(resolve => {
queue.push(resolve);
startQueue();
return options;
});
},
// When an item in the queue completes, start the next item in the queue.
generateBundle: (options, bundle) => {
grunt.log.debug(`Finished output phase for ${Object.keys(bundle).join(', ')}`);
runQueue();
},
};
};
const terser = require('rollup-plugin-terser').terser;
grunt.config.merge({
rollup: {
options: {
format: 'esm',
dir: 'output',
sourcemap: true,
treeshake: false,
context: 'window',
plugins: [
rateLimit(),
babel({
sourceMaps: true,
comments: false,
compact: false,
plugins: [
'transform-es2015-modules-amd-lazy',
'system-import-transformer',
// This plugin modifies the Babel transpiling for "export default"
// so that if it's used then only the exported value is returned
// by the generated AMD module.
//
// It also adds the Moodle plugin name to the AMD module definition
// so that it can be imported as expected in other modules.
path.resolve('.grunt/babel-plugin-add-module-to-define.js')
],
presets: [
['@babel/preset-env', {
modules: false,
useBuiltIns: false
}]
]
}),
terser({
// Do not mangle variables.
// Makes debugging easier.
mangle: false,
}),
],
},
dist: {
files: [{
expand: true,
src: grunt.moodleEnv.files ? grunt.moodleEnv.files : grunt.moodleEnv.amdSrc,
rename: babelRename
}],
},
},
});
grunt.config.merge({
watch: {
amd: {
files: grunt.moodleEnv.inComponent
? ['amd/src/*.js', 'amd/src/**/*.js']
: ['**/amd/src/**/*.js'],
tasks: ['amd']
},
},
});
// Add the 'js' task as a startup task.
grunt.moodleEnv.startupTasks.push('js');
// On watch, we dynamically modify config to build only affected files. This
// method is slightly complicated to deal with multiple changed files at once (copied
// from the grunt-contrib-watch readme).
let changedFiles = Object.create(null);
const onChange = grunt.util._.debounce(function() {
const files = Object.keys(changedFiles);
grunt.config('rollup.dist.files', [{expand: true, src: files, rename: babelRename}]);
changedFiles = Object.create(null);
}, 200);
grunt.event.on('watch', function(action, filepath) {
changedFiles[filepath] = action;
onChange();
});
return {
babelRename,
};
};
-83
View File
@@ -1,83 +0,0 @@
// 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/>.
/* jshint node: true, browser: false */
/* eslint-env node */
// @ts-nocheck
/**
* @copyright 2022 Andrew Lyons <andrew@nicols.co.uk>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
const configuration = {
compilerOptions: {
baseUrl: ".",
paths: {
},
target: "es2015",
allowSyntheticDefaultImports: false,
},
exclude: [
"node_modules",
],
include: [],
};
/**
* Generate jsconfig.json with AMD module path aliases for all components.
*
* @param {object} grunt The Grunt instance.
*/
const generateJsconfig = (grunt) => {
const jsconfigData = Object.assign({}, configuration);
const path = require('path');
const {fetchComponentData} = require(path.join(process.cwd(), '.grunt', 'components.js'));
const componentData = fetchComponentData().components;
for (const [thisPath, component] of Object.entries(componentData)) {
jsconfigData.compilerOptions.paths[`${component}/*`] = [`${thisPath}/amd/src/*`];
jsconfigData.include.push(`${thisPath}/amd/src/**/*`);
}
grunt.file.write('jsconfig.json', JSON.stringify(jsconfigData, null, " ") + "\n");
grunt.log.write('✓ Generating jsconfig.json\n');
};
/**
* Generate tsconfig.aliases.json with TypeScript path aliases for all ESM components.
*
* @returns {Promise<void>}
*/
const generateTsAliases = async() => {
const {generateAliases} = await import('../../.esbuild/generate-aliases.mjs');
generateAliases();
};
module.exports = (grunt) => {
const handler = async function() {
const done = this.async();
try {
generateJsconfig(grunt);
await generateTsAliases();
done();
} catch (err) {
grunt.log.error(err.message);
done(false);
}
};
grunt.registerTask('jsconfig', 'Generate a jsconfig configuration compatible with the LSP', handler);
};
-52
View File
@@ -1,52 +0,0 @@
// 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/>.
/* jshint node: true, browser: false */
/* eslint-env node */
/**
* @copyright 2021 Andrew Nicols
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
module.exports = (grunt) => {
const path = require('path');
grunt.registerTask('jsdoc', 'Generate JavaScript documentation using jsdoc', function() {
const done = this.async();
const configuration = path.resolve('.grunt/jsdoc/jsdoc.conf.js');
grunt.util.spawn({
cmd: 'jsdoc',
args: [
'--configure',
configuration,
]
}, function(error, result, code) {
if (result.stdout) {
grunt.log.write(result.stdout);
}
if (result.stderr) {
grunt.log.error(result.stderr);
}
if (error) {
grunt.fail.fatal(`JSDoc failed with error code ${code}`);
} else {
grunt.log.write('JSDoc completed successfully'.green);
}
done();
});
});
};
-111
View File
@@ -1,111 +0,0 @@
// 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/>.
/* jshint node: true, browser: false */
/* eslint-env node */
// @ts-nocheck
/**
* Grunt tasks for building React components.
*
* @copyright Meirza <meirza.arson@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
module.exports = grunt => {
/**
* Register react task — build or watch React components.
*
* Modes:
* grunt react — production build
* grunt react:dev — development build (sourcemaps, no minification)
* grunt react:watch — esbuild native watch (dev mode, incremental context)
*
* Note: react:watch uses esbuild's own context.watch() and is intentionally
* separate from grunt-contrib-watch. This keeps esbuild's incremental build
* graph alive between rebuilds rather than restarting from scratch on each change.
*/
grunt.registerTask('react', 'Build all React components', function(mode) {
const done = this.async();
const isWatch = mode === 'watch';
const isDev = isWatch || mode === 'dev';
if (isWatch) {
const path = require('path');
const {spawn} = require('child_process');
// Run ESLint on the rebuilt source files in check-only mode (no --fix)
// to avoid writing changes that would re-trigger esbuild.
const eslintBin = path.join(grunt.moodleEnv.gruntFilePath, 'node_modules', '.bin', 'eslint');
const onRebuild = (srcFiles) => {
if (srcFiles.length === 0) {
return;
}
const absSrcFiles = srcFiles.map(f => path.join(grunt.moodleEnv.gruntFilePath, f));
spawn(eslintBin, absSrcFiles, {stdio: 'inherit'})
.on('error', err => grunt.log.error(`ESLint: ${err.message}`));
};
(async() => {
try {
const {watchComponents} = await import('../../.esbuild/plugin/plugincomponents.mjs');
const { generateAliases } = await import('../../.esbuild/generate-aliases.mjs');
const { buildPluginComponents } = await import('../../.esbuild/plugin/plugincomponents.mjs');
generateAliases();
await buildPluginComponents(isDev);
const ctx = await watchComponents(true, onRebuild);
if (!ctx) {
grunt.log.warn('No React source files found. Nothing to watch.');
done();
return;
}
grunt.log.ok('esbuild is watching for React changes. Press Ctrl+C to stop.');
// Keep the process alive until the user interrupts. done() is intentionally
// not called here — grunt's async mechanism holds the process open.
process.on('SIGINT', async() => {
await ctx.dispose();
done();
});
} catch (err) {
grunt.log.error(err.message);
done(false);
}
})();
return;
}
grunt.log.writeln(`Building React components in ${isDev ? 'DEVELOPMENT' : 'PRODUCTION'} mode...`);
(async() => {
try {
const {generateAliases} = await import('../../.esbuild/generate-aliases.mjs');
const {buildPluginComponents} = await import('../../.esbuild/plugin/plugincomponents.mjs');
generateAliases();
await buildPluginComponents(isDev);
done();
} catch (err) {
grunt.log.error(err.message);
done(false);
}
})();
});
};
-43
View File
@@ -1,43 +0,0 @@
// 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/>.
/* jshint node: true, browser: false */
/* eslint-env node */
/**
* @copyright 2021 Andrew Nicols
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
module.exports = grunt => {
grunt.loadNpmTasks('grunt-sass');
grunt.config.merge({
sass: {
dist: {
files: {
"public/theme/boost/style/moodle.css": "public/theme/boost/scss/preset/default.scss",
"public/theme/classic/style/moodle.css": "public/theme/classic/scss/classicgrunt.scss"
}
},
options: {
implementation: require('sass'),
includePaths: [
"public/theme/boost/scss/",
"public/theme/classic/scss/",
]
}
},
});
};
-155
View File
@@ -1,155 +0,0 @@
// 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/>.
/* jshint node: true, browser: false */
/* eslint-env node */
/**
* @copyright 2021 Andrew Nicols
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
/* eslint-env node */
module.exports = grunt => {
/**
* Shifter task. Is configured with a path to a specific file or a directory,
* in the case of a specific file it will work out the right module to be built.
*
* Note that this task runs the invidiaul shifter jobs async (becase it spawns
* so be careful to to call done().
*/
const handler = function() {
const done = this.async();
const options = grunt.config('shifter.options');
const async = require('async');
const path = require('path');
// Run the shifter processes one at a time to avoid confusing output.
async.eachSeries(options.paths, function(src, filedone) {
var args = [];
args.push(path.normalize(process.cwd() + '/node_modules/shifter/bin/shifter'));
// Always ignore the node_modules directory.
args.push('--excludes', 'node_modules');
// Determine the most appropriate options to run with based upon the current location.
if (grunt.file.isMatch('**/yui/**/*.js', src)) {
// When passed a JS file, build our containing module (this happen with
// watch).
grunt.log.debug('Shifter passed a specific JS file');
src = path.dirname(path.dirname(src));
options.recursive = false;
} else if (grunt.file.isMatch('**/yui/src', src)) {
// When in a src directory --walk all modules.
grunt.log.debug('In a src directory');
args.push('--walk');
options.recursive = false;
} else if (grunt.file.isMatch('**/yui/src/*', src)) {
// When in module, only build our module.
grunt.log.debug('In a module directory');
options.recursive = false;
} else if (grunt.file.isMatch('**/yui/src/*/js', src)) {
// When in module src, only build our module.
grunt.log.debug('In a source directory');
src = path.dirname(src);
options.recursive = false;
}
if (grunt.option('watch')) {
grunt.fail.fatal('The --watch option has been removed, please use `grunt watch` instead');
}
// Add the stderr option if appropriate
if (grunt.option('verbose')) {
args.push('--lint-stderr');
}
if (grunt.option('no-color')) {
args.push('--color=false');
}
var execShifter = function() {
grunt.log.ok("Running shifter on " + src);
grunt.util.spawn({
cmd: "node",
args: args,
opts: {cwd: src, stdio: 'inherit', env: process.env}
}, function(error, result, code) {
if (code) {
grunt.fail.fatal('Shifter failed with code: ' + code);
} else {
grunt.log.ok('Shifter build complete.');
filedone();
}
});
};
// Actually run shifter.
if (!options.recursive) {
execShifter();
} else {
// Check that there are yui modules otherwise shifter ends with exit code 1.
if (grunt.file.expand({cwd: src}, '**/yui/src/**/*.js').length > 0) {
args.push('--recursive');
execShifter();
} else {
grunt.log.ok('No YUI modules to build.');
filedone();
}
}
}, done);
};
// Register the shifter task.
grunt.registerTask('shifter', 'Run Shifter against the current directory', handler);
// Configure it.
grunt.config.set('shifter', {
options: {
recursive: true,
// Shifter takes a relative path.
paths: grunt.moodleEnv.files ? grunt.moodleEnv.files : [grunt.moodleEnv.runDir]
}
});
grunt.config.merge({
watch: {
yui: {
files: grunt.moodleEnv.inComponent
? ['yui/src/*.json', 'yui/src/**/*.js']
: ['**/yui/src/**/*.js'],
tasks: ['yui']
},
},
});
// On watch, we dynamically modify config to build only affected files. This
// method is slightly complicated to deal with multiple changed files at once (copied
// from the grunt-contrib-watch readme).
let changedFiles = Object.create(null);
const onChange = grunt.util._.debounce(function() {
const files = Object.keys(changedFiles);
grunt.config('shifter.options.paths', files);
changedFiles = Object.create(null);
}, 200);
grunt.event.on('watch', (action, filepath) => {
changedFiles[filepath] = action;
onChange();
});
return handler;
};
-49
View File
@@ -1,49 +0,0 @@
// 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/>.
/* jshint node: true, browser: false */
/* eslint-env node */
/**
* @copyright 2021 Andrew Nicols
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
module.exports = grunt => {
/**
* Generate ignore files (utilising thirdpartylibs.xml data)
*/
const handler = function() {
const path = require('path');
// Are we in a YUI directory?
if (path.basename(path.resolve(grunt.moodleEnv.cwd, '../../')) == 'yui') {
grunt.task.run('yui');
// Are we in an AMD directory?
} else if (grunt.moodleEnv.inAMD) {
grunt.task.run('amd');
// Are we in an ESM source directory?
} else if (grunt.moodleEnv.inEsm) {
grunt.task.run('react');
} else {
// Run all of the requested startup tasks.
grunt.moodleEnv.startupTasks.forEach(taskName => grunt.task.run(taskName));
}
};
// Register the startup task.
grunt.registerTask('startup', 'Run the correct tasks for the current directory', handler);
return handler;
};
-35
View File
@@ -1,35 +0,0 @@
// 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/>.
/* jshint node: true, browser: false */
/* eslint-env node */
/**
* @copyright 2021 Andrew Nicols
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
module.exports = grunt => {
// Load the ignorefiles tasks.
require('./ignorefiles')(grunt);
// Load the Style Lint tasks.
require('./stylelint')(grunt);
// Load the SASS tasks.
require('./sass')(grunt);
// Add the 'css' task as a startup task.
grunt.moodleEnv.startupTasks.push('css');
};
-187
View File
@@ -1,187 +0,0 @@
// 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/>.
/* jshint node: true, browser: false */
/* eslint-env node */
/**
* @copyright 2021 Andrew Nicols
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
module.exports = grunt => {
const getCssConfigForFiles = files => {
return {
stylelint: {
css: {
// Use a fully-qualified path.
src: files,
options: {
quietDeprecationWarnings: true,
configOverrides: {
rules: {
// These rules have to be disabled in .stylelintrc for scss compat.
"at-rule-no-unknown": true,
}
}
}
},
},
};
};
const getScssConfigForFiles = files => {
return {
stylelint: {
scss: {
options: {
quietDeprecationWarnings: true,
customSyntax: 'postcss-scss',
},
src: files,
},
},
};
};
/**
* Register any stylelint tasks.
*
* @param {Object} grunt
* @param {Array} files
* @param {String} fullRunDir
*/
const registerStyleLintTasks = () => {
const glob = require('glob');
// The stylelinters do not handle the case where a configuration was provided but no files were included.
// Keep track of whether any files were found.
let hasCss = false;
let hasScss = false;
// The stylelint processors do not take a path argument. They always check all provided values.
// As a result we must check through each glob and determine if any files match the current directory.
const scssFiles = [];
const cssFiles = [];
const requestedFiles = grunt.moodleEnv.files;
if (requestedFiles) {
// Grunt was called with a files argument.
// Check whether each of the requested files matches either the CSS or SCSS source file list.
requestedFiles.forEach(changedFilePath => {
let matchesGlob;
// Check whether this watched path matches any watched SCSS file.
matchesGlob = grunt.moodleEnv.scssSrc.some(watchedPathGlob => {
return glob.sync(watchedPathGlob).indexOf(changedFilePath) !== -1;
});
if (matchesGlob) {
scssFiles.push(changedFilePath);
hasScss = true;
}
// Check whether this watched path matches any watched CSS file.
matchesGlob = grunt.moodleEnv.cssSrc.some(watchedPathGlob => {
return glob.sync(watchedPathGlob).indexOf(changedFilePath) !== -1;
});
if (matchesGlob) {
cssFiles.push(changedFilePath);
hasCss = true;
}
});
} else {
// Grunt was called without a list of files.
// The start directory (runDir) may be a child dir of the project.
// Check each scssSrc file to see if it's in the start directory.
// This means that we can lint just mod/*/styles.css if started in the mod directory.
grunt.moodleEnv.scssSrc.forEach(path => {
if (path.startsWith(grunt.moodleEnv.runDir)) {
scssFiles.push(path);
hasScss = true;
}
});
grunt.moodleEnv.cssSrc.forEach(path => {
if (path.startsWith(grunt.moodleEnv.runDir)) {
cssFiles.push(path);
hasCss = true;
}
});
}
// Register the tasks.
const scssTasks = ['sass'];
if (hasScss) {
grunt.config.merge(getScssConfigForFiles(scssFiles));
scssTasks.unshift('stylelint:scss');
}
scssTasks.unshift('ignorefiles');
const cssTasks = ['ignorefiles'];
if (hasCss) {
grunt.config.merge(getCssConfigForFiles(cssFiles));
cssTasks.push('stylelint:css');
}
// The tasks must be registered, even if empty to ensure a consistent command list.
// They jsut won't run anything.
grunt.registerTask('scss', scssTasks);
grunt.registerTask('rawcss', cssTasks);
};
// Register CSS tasks.
grunt.loadNpmTasks('grunt-stylelint');
// Register the style lint tasks.
registerStyleLintTasks();
grunt.registerTask('css', ['scss', 'rawcss']);
const getCoreThemeMatches = () => {
const scssMatch = 'scss/**/*.scss';
if (grunt.moodleEnv.inTheme) {
return [scssMatch];
}
if (grunt.moodleEnv.runDir.startsWith('theme')) {
return [`*/${scssMatch}`];
}
return [`theme/*/${scssMatch}`];
};
// Add the watch configuration for rawcss, and scss.
grunt.config.merge({
watch: {
rawcss: {
files: [
'**/*.css',
],
excludes: [
'**/moodle.css',
'**/editor.css',
'jsdoc/styles/*.css',
],
tasks: ['rawcss']
},
scss: {
files: getCoreThemeMatches(),
tasks: ['scss']
},
},
});
};
-42
View File
@@ -1,42 +0,0 @@
// 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/>.
/* jshint node: true, browser: false */
/* eslint-env node */
/**
* @copyright 2023 Sara Arjona <sara@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
module.exports = grunt => {
/**
* Generate upgradable third-party libraries (utilising thirdpartylibs.xml data)
*/
grunt.registerTask('upgradablelibs', 'Generate upgradable third-party libraries', async function() {
const done = this.async();
const path = require('path');
const ComponentList = require(path.join(process.cwd(), '.grunt', 'components.js'));
// An array of third party libraries that have a newer version in their repositories.
const thirdPartyLibs = await ComponentList.getThirdPartyLibsUpgradable({progress: true});
for (let library of thirdPartyLibs) {
grunt.log.ok(JSON.stringify(Object.assign({}, library), null, 4));
}
done();
});
};
-276
View File
@@ -1,276 +0,0 @@
/**
* This is a wrapper task to handle the grunt watch command. It attempts to use
* Watchman to monitor for file changes, if it's installed, because it's much faster.
*
* If Watchman isn't installed then it falls back to the grunt-contrib-watch file
* watcher for backwards compatibility.
*/
/* eslint-env node */
module.exports = grunt => {
/**
* This is a wrapper task to handle the grunt watch command. It attempts to use
* Watchman to monitor for file changes, if it's installed, because it's much faster.
*
* If Watchman isn't installed then it falls back to the grunt-contrib-watch file
* watcher for backwards compatibility.
*/
const watchHandler = function() {
const async = require('async');
const watchTaskDone = this.async();
let watchInitialised = false;
let watchTaskQueue = {};
let processingQueue = false;
const watchman = require('fb-watchman');
const watchmanClient = new watchman.Client();
// Grab the tasks and files that have been queued up and execute them.
var processWatchTaskQueue = function() {
if (!Object.keys(watchTaskQueue).length || processingQueue) {
// If there is nothing in the queue or we're already processing then wait.
return;
}
processingQueue = true;
// Grab all tasks currently in the queue.
var queueToProcess = watchTaskQueue;
// Reset the queue.
watchTaskQueue = {};
async.forEachSeries(
Object.keys(queueToProcess),
function(task, next) {
var files = queueToProcess[task];
var filesOption = '--files=' + files.join(',');
grunt.log.ok('Running task ' + task + ' for files ' + filesOption);
// Spawn the task in a child process so that it doesn't kill this one
// if it failed.
var args = [task, filesOption];
if (grunt.option('force')) {
args.push('--force');
}
grunt.util.spawn(
{
// Spawn with the grunt bin.
grunt: true,
// Run from current working dir and inherit stdio from process.
opts: {
cwd: grunt.moodleEnv.fullRunDir,
stdio: 'inherit'
},
args: args
},
function(err, res, code) {
if (code !== 0) {
// The grunt task failed.
grunt.log.error(err);
}
// Move on to the next task.
next();
}
);
},
function() {
// No longer processing.
processingQueue = false;
// Once all of the tasks are done then recurse just in case more tasks
// were queued while we were processing.
processWatchTaskQueue();
}
);
};
const originalWatchConfig = grunt.config.get(['watch']);
const watchConfig = Object.keys(originalWatchConfig).reduce(function(carry, key) {
if (key == 'options') {
return carry;
}
const value = originalWatchConfig[key];
const taskNames = value.tasks;
const files = value.files;
let excludes = [];
if (value.excludes) {
excludes = value.excludes;
}
taskNames.forEach(function(taskName) {
carry[taskName] = {
files,
excludes,
};
});
return carry;
}, {});
watchmanClient.on('error', function(error) {
// We have to add an error handler here and parse the error string because the
// example way from the docs to check if Watchman is installed doesn't actually work!!
// See: https://github.com/facebook/watchman/issues/509
if (error.message.match('Watchman was not found')) {
// If watchman isn't installed then we should fallback to the other watch task.
grunt.log.ok('It is recommended that you install Watchman for better performance using the "watch" command.');
// Fallback to the old grunt-contrib-watch task.
grunt.renameTask('watch-grunt', 'watch');
grunt.task.run(['watch']);
// This task is finished.
watchTaskDone(0);
} else {
grunt.log.error(error);
// Fatal error.
watchTaskDone(1);
}
});
watchmanClient.on('subscription', function(resp) {
if (resp.subscription !== 'grunt-watch') {
return;
}
resp.files.forEach(function(file) {
grunt.log.ok('File changed: ' + file.name);
var fullPath = grunt.moodleEnv.fullRunDir + '/' + file.name;
Object.keys(watchConfig).forEach(function(task) {
const fileGlobs = watchConfig[task].files;
var match = fileGlobs.some(function(fileGlob) {
return grunt.file.isMatch(`**/${fileGlob}`, fullPath);
});
if (match) {
// If we are watching a subdirectory then the file.name will be relative
// to that directory. However the grunt tasks expect the file paths to be
// relative to the Gruntfile.js location so let's normalise them before
// adding them to the queue.
var relativePath = fullPath.replace(grunt.moodleEnv.gruntFilePath + '/', '');
if (task in watchTaskQueue) {
if (!watchTaskQueue[task].includes(relativePath)) {
watchTaskQueue[task] = watchTaskQueue[task].concat(relativePath);
}
} else {
watchTaskQueue[task] = [relativePath];
}
}
});
});
processWatchTaskQueue();
});
process.on('SIGINT', function() {
// Let the user know that they may need to manually stop the Watchman daemon if they
// no longer want it running.
if (watchInitialised) {
grunt.log.ok('The Watchman daemon may still be running and may need to be stopped manually.');
}
process.exit();
});
// Initiate the watch on the current directory.
watchmanClient.command(['watch-project', grunt.moodleEnv.fullRunDir], function(watchError, watchResponse) {
if (watchError) {
grunt.log.error('Error initiating watch:', watchError);
watchTaskDone(1);
return;
}
if ('warning' in watchResponse) {
grunt.log.error('warning: ', watchResponse.warning);
}
var watch = watchResponse.watch;
var relativePath = watchResponse.relative_path;
watchInitialised = true;
watchmanClient.command(['clock', watch], function(clockError, clockResponse) {
if (clockError) {
grunt.log.error('Failed to query clock:', clockError);
watchTaskDone(1);
return;
}
// Generate the expression query used by watchman.
// Documentation is limited, but see https://facebook.github.io/watchman/docs/expr/allof.html for examples.
// We generate an expression to match any value in the files list of all of our tasks, but excluding
// all value in the excludes list of that task.
//
// [anyof, [
// [allof, [
// [anyof, [
// ['match', validPath, 'wholename'],
// ['match', validPath, 'wholename'],
// ],
// [not,
// [anyof, [
// ['match', invalidPath, 'wholename'],
// ['match', invalidPath, 'wholename'],
// ],
// ],
// ],
var matchWholeName = fileGlob => ['match', fileGlob, 'wholename'];
var matches = Object.keys(watchConfig).map(function(task) {
const matchAll = [];
matchAll.push(['anyof'].concat(watchConfig[task].files.map(matchWholeName)));
if (watchConfig[task].excludes.length) {
matchAll.push(['not', ['anyof'].concat(watchConfig[task].excludes.map(matchWholeName))]);
}
return ['allof'].concat(matchAll);
});
matches = ['anyof'].concat(matches);
var sub = {
expression: matches,
// Which fields we're interested in.
fields: ["name", "size", "type"],
// Add our time constraint.
since: clockResponse.clock
};
if (relativePath) {
/* eslint-disable camelcase */
sub.relative_root = relativePath;
}
watchmanClient.command(['subscribe', watch, 'grunt-watch', sub], function(subscribeError) {
if (subscribeError) {
// Probably an error in the subscription criteria.
grunt.log.error('failed to subscribe: ', subscribeError);
watchTaskDone(1);
return;
}
grunt.log.ok('Listening for changes to files in ' + grunt.moodleEnv.fullRunDir);
});
});
});
};
// Rename the grunt-contrib-watch "watch" task because we're going to wrap it.
grunt.renameTask('watch', 'watch-grunt');
// Register the new watch handler.
grunt.registerTask('watch', 'Run tasks on file changes', watchHandler);
grunt.config.merge({
watch: {
options: {
nospawn: true // We need not to spawn so config can be changed dynamically.
},
},
});
return watchHandler;
};
-111
View File
@@ -1,111 +0,0 @@
#!/usr/bin/env node
// 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/>.
import { Argument, Option, program } from 'commander';
import chalk from 'chalk';
import { getNoteNames } from './notes/src/noteTypes.mjs';
import createAction from './notes/src/create.mjs';
import generateAction from './notes/src/generate.mjs';
import generateReleaseNotesLinks from './notes/src/releasenotes.mjs';
import logger from './notes/src/logger.mjs';
console.log(`
${chalk.bold(chalk.underline(chalk.green('Moodle Upgrade Notes Generator')))}
This tool is used to generate the upgrade notes for changes you make in Moodle.
Please remember that the intended audience of these changes is
${chalk.italic('plugin developers')} who need to know how to update their plugins
for a new Moodle version.
Upgrade notes should not be used to document changes for site administrators, or
for internal API changes which are not expected to be used outside of the
relevant component.
`)
program.configureHelp({
helpWidth: 100,
});
program.on('option:verbose', () => {
logger.level = 'verbose';
});
program.addOption(
new Option(
'-v, --verbose',
'Output more information during the generation process',
)
.default(false)
);
// Define the command line options.
program
.command('create')
.summary('Generate a new upgrade note')
.addOption(
new Option('-t, --type <type>', `The type of change to document. Valid types are: ${getNoteNames().join(', ')}`)
)
.addOption(new Option('-i, --issue <issue>', 'The tracker issue number'))
.addOption(new Option('-c, --component <component>', 'The component to write a note for'))
.addOption(new Option(
'-m, --message <message>',
'The message to use for the upgrade note',
))
.action((options) => createAction(options));
program
.command('summary')
.summary('Generate a local copy of the upgrade notes summary')
.addArgument(
new Argument('[version]', 'The Moodle version to create the summary notes for')
)
.action((version) => generateAction(version));
program
.command('releasenotes')
.summary('Generate a list of upgrade notes for individual components in markdown format for the release notes')
.addArgument(
new Argument('[tag]', 'The Moodle tag')
)
.action((tag) => generateReleaseNotesLinks(tag));
program
.command('release')
.summary('Generate the markdown copies of the upgrade notes for a Moodle release')
.addArgument(
new Argument('[version]', 'The Moodle version to create the release notes for')
)
.addOption(
new Option(
'--generate-upgrade-notes',
'Generate the UPGRADING.md notes for the release. ' +
'Note: This option is intended for use by the release manager when generating the upgrade notes.',
)
.default(true)
)
.addOption(
new Option(
'-d, --delete-notes',
'Delete the notes after generating the UPGRADING.md notes for the release. ' +
'Note: This option is intended for use by the release manager when generating the upgrade notes.' +
'This option has no effect unless --generate-upgrade-notes is also set.'
)
.default(false)
)
.action((version, options) => generateAction(version, options));
program.parse();
-2
View File
@@ -1,2 +0,0 @@
**/amd/**
/*.js
-58
View File
@@ -1,58 +0,0 @@
// NOTE: We use eslint now. This file is used only by shifter. We keep the configuration
// here because shifter uses jshint after modules have been concating. Eslint can't
// currently do this.
{
"asi": false,
"bitwise": true,
"boss": false,
"browser": true,
"curly": true,
"debug": false,
"eqeqeq": false,
"eqnull": false,
"es5": false,
"esnext": false,
"evil": false,
"expr": false,
"forin": false,
"funcscope": false,
"globalstrict": false,
"immed": true,
"indent": 4,
"iterator": false,
"lastsemic": false,
"latedef": true,
"laxbreak": true,
"laxcomma": false,
"loopfunc": false,
"maxerr": 500,
"maxlen": 132,
"multistr": false,
"newcap": true,
"noarg": true,
"noempty": true,
"nomen": false,
"onecase": false,
"onevar": false,
"passfail": false,
"plusplus": false,
"predef": [
"M",
"define",
"require"
],
"proto": false,
"regexdash": false,
"regexp": false,
"scripturl": false,
"shadow": false,
"smarttabs": false,
"strict": false,
"sub": false,
"supernew": false,
"trailing": true,
"undef": true,
"unused": true,
"white": false,
"yui": true
}
-1
View File
@@ -1 +0,0 @@
lts/jod
-40
View File
@@ -1,40 +0,0 @@
<?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/>.
/**
* Helper file for PhpStorm, and other IDEs, to provide better code completion.
*
* @package core
* @copyright 2024 Andrew Lyons <andrew@nicols.co.uk>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
namespace PHPSTORM_META;
// Assume that anything returned by \core\di::get('...') is an instance of the first argument.
override(\core\di::get(0), map([
'' => '@',
]));
// Assume that anything returned by \Psr\Container\ContainerInterface::get('...') is an instance of the first argument.
override(\Psr\Container\ContainerInterface::get(0), map([
'' => '@',
]));
// Assume that anything returned by \DI\Container::get('...') is an instance of the first argument.
override(\DI\Container::get(0), map([
'' => '@',
]));
-5
View File
@@ -1,5 +0,0 @@
{
"coverage": false,
"lint": "config",
"clean": true
}
-107
View File
@@ -1,107 +0,0 @@
{
"customSyntax": "postcss-scss",
"plugins": [
"stylelint-csstree-validator"
],
"rules": {
"csstree/validator": {
"syntaxExtensions": [
"sass"
]
},
"at-rule-empty-line-before": [ "always",
{"except": [ "blockless-after-blockless"], ignore: ["after-comment", "inside-block"]}
],
"at-rule-name-case": "lower",
"at-rule-name-space-after": "always-single-line",
"at-rule-no-unknown": null, # Enabled for non-scss in grunt.
"at-rule-semicolon-newline-after": "always",
"at-rule-semicolon-space-before": "never",
"block-closing-brace-newline-after": "always",
"block-closing-brace-newline-before": "always",
"block-closing-brace-space-before": "always-single-line",
"block-no-empty": true,
"block-opening-brace-newline-after": "always",
"block-opening-brace-space-after": "always-single-line",
"block-opening-brace-space-before": "always",
"color-hex-case": ["lower", { "severity": "warning" }],
"color-hex-length": ["short", { "severity": "warning" }],
"color-no-invalid-hex": true,
"declaration-bang-space-after": "never",
"declaration-bang-space-before": "always",
"declaration-block-no-duplicate-properties": true,
"declaration-block-no-shorthand-property-overrides": true,
"declaration-block-semicolon-newline-after": "always-multi-line",
"declaration-block-semicolon-space-after": "always-single-line",
"declaration-block-semicolon-space-before": "never",
"declaration-block-single-line-max-declarations": 1,
"declaration-block-trailing-semicolon": "always",
"declaration-colon-newline-after": "always-multi-line",
"declaration-colon-space-after": "always-single-line",
"declaration-colon-space-before": "never",
"declaration-no-important": true,
"font-family-no-duplicate-names": true,
"function-calc-no-unspaced-operator": true,
"function-comma-newline-after": "always-multi-line",
"function-comma-space-after": "always-single-line",
"function-comma-space-before": "never",
"function-linear-gradient-no-nonstandard-direction": true,
"function-max-empty-lines": 0,
"function-name-case": "lower",
"function-parentheses-newline-inside": "always-multi-line",
"function-parentheses-space-inside": "never-single-line",
"function-url-scheme-disallowed-list": ["data"],
"function-whitespace-after": "always",
"indentation": 4,
"keyframe-declaration-no-important": true,
"length-zero-no-unit": [true, { "severity": "warning" }],
"max-empty-lines": 2,
"max-line-length": [132, { "severity": "warning" }],
"media-feature-colon-space-after": "always",
"media-feature-colon-space-before": "never",
"media-feature-parentheses-space-inside": "never",
"media-feature-range-operator-space-after": "always",
"media-feature-range-operator-space-before": "always",
"media-query-list-comma-newline-after": "always-multi-line",
"media-query-list-comma-space-after": "always-single-line",
"media-query-list-comma-space-before": "never",
"no-empty-source": true,
"no-eol-whitespace": true,
"no-extra-semicolons": [true, { "severity": "warning" }],
"no-invalid-double-slash-comments": true,
"no-unknown-animations": true,
"property-case": "lower",
"property-no-unknown": true,
"selector-attribute-brackets-space-inside": "never",
"selector-attribute-operator-space-after": "never",
"selector-attribute-operator-space-before": "never",
"selector-combinator-space-after": "always",
"selector-combinator-space-before": "always",
"selector-list-comma-newline-after": "always",
"selector-list-comma-space-before": "never",
"selector-max-empty-lines": 0,
"selector-pseudo-class-case": "lower",
"selector-pseudo-class-no-unknown": true,
"selector-pseudo-class-parentheses-space-inside": "never",
"selector-pseudo-element-case": "lower",
"selector-pseudo-element-no-unknown": true,
"selector-type-case": "lower",
"selector-type-no-unknown": true,
"string-no-newline": true,
"time-min-milliseconds": 100,
"unit-disallowed-list": ["pt"],
"unit-case": "lower",
"unit-no-unknown": true,
"value-keyword-case": ["lower", {"ignoreKeywords": ["/(@|$)/"]}],
"value-list-comma-newline-after": "always-multi-line",
"value-list-comma-space-after": "always-single-line",
"value-list-comma-space-before": "never",
},
"overrides": [
{
"files": ["**/yui/**/*.css"],
"rules": {
}
}
]
}
@@ -1,7 +0,0 @@
issueNumber: MDL-51152
notes:
enrol_manual:
- message: >-
The unused parameter 'roleid' has been removed from the external
function `unenrol_users()`
type: removed
@@ -1,22 +0,0 @@
issueNumber: MDL-71368
notes:
core:
- message: >
The `arg_separator.output` has been changed from a default of `amp;` to
a default of `&` in line with PHP defaults.
If you were previously relying on the legacy default when using
`http_build_query()` then you should _actively_ specify the value as the
third
parameter, for example:
```
http_build_query($formdata, '', '&amp;');
```
type: changed
@@ -1,8 +0,0 @@
issueNumber: MDL-73602
notes:
core:
- message: >-
Removed `qtype_random` from core.
`core\component::is_valid_plugin_name` has an additional check to ensure no-one can create a new plugin called qtype_random,
as this would conflict with the support for restoring old backups.
type: removed
@@ -1,8 +0,0 @@
issueNumber: MDL-75067
notes:
tool_behat:
- message: >-
The `behat_session_trait::ensure_element_[does_not_]exists(...)` methods
now accept optional `$container` parameter to define the parent node to
look within
type: improved
@@ -1,5 +0,0 @@
issueNumber: MDL-77894
notes:
core:
- message: Appending an exclamation mark to template names ignores theme overrides
type: improved
@@ -1,10 +0,0 @@
issueNumber: MDL-78325
notes:
core_grades:
- message: >-
In Moodle 4.2, the legacy Gradebook base widget from 4.1 has been removed and
replaced with a simpler class-based system due to a breaking change and
excessive complexity in the old pattern. The files `core/grades/basewidget.js` and
templates in `grade/templates/searchwidget/` have been deleted,
with minimal expected third-party impact.
type: removed
@@ -1,13 +0,0 @@
issueNumber: MDL-79182
notes:
core:
- message: >
The following AMD modules have been removed following the final
deprecation process. It is no longer possible or necessary to manually
register modal types. See MDL-78324 for further details.
- `core/modal_registry`
- `core/modal_factory`
type: removed
@@ -1,7 +0,0 @@
issueNumber: MDL-79574
notes:
core:
- message: >-
The `\core\persistent::get_records(...)` class method now returns
instances keyed by record ID
type: changed
@@ -1,13 +0,0 @@
issueNumber: MDL-81514
notes:
core_group:
- message: >
`groups_print_activity_menu()` and `groups_get_activity_group()` now
include an additional `$participationonly` parameter, which is true by
default. This can be set false when we want the user to be able to
select a non-participation group within an activity, for example if a
teacher wants to filter assignment submissions by non-participation
groups. It should never be used when the menu is displayed to students,
as this may allow them to participate using non-participation groups.
Non-participation groups are labeled as such.
type: improved
@@ -1,8 +0,0 @@
issueNumber: MDL-81608
notes:
mod_quiz:
- message: >-
The language strings `addpagebreak` and `removepagebreak` have been
deprecated and should no longer be used. These have been replaced by
the `addpagebreakafter` and `removepagebreakafter` language strings.
type: deprecated
@@ -1,12 +0,0 @@
issueNumber: MDL-81961
notes:
core_question:
- message: |
core_question:
- message: |
Final deprecation of `moodle-question-chooser` YUI module.
type: removed
- message: |
Final deprecation of `core_question/qbank_chooser` template.
type: removed
type: removed
-13
View File
@@ -1,13 +0,0 @@
issueNumber: MDL-81962
notes:
core:
- message: The `moodle-core-notification-confirm` YUI module has been removed after an extensive deprecation period. Please use the AMD `core/modal` module as a replacement.
type: removed
- message: |
The following feaetures of the `moodle-core-notification` YUI module have been removed after an extensive deprecation process.:
- method: `keyDelegation`
- property: `lightbox`
There is no direct replacement for these features, but they were not widely used and their removal should not cause significant issues. If you were using these features, you will need to implement your own solutions for key delegation and lightbox functionality.
type: removed
@@ -1,7 +0,0 @@
issueNumber: MDL-82284
notes:
core:
- message: >-
Legacy constructors have been removed. These relate to PHP 4 and
earlier.
type: removed
@@ -1,15 +0,0 @@
issueNumber: MDL-83902
notes:
core_badges:
- message: >-
The following classes and functions are now also available in the following new
locations. They will continue to work in their old locations:
| Old classname/function | New classname/function |
| --- | --- |
| `\badge_award_selector_base` | `\core_badges\award_selector_base` |
| `\badge_potential_users_selector` | `\core_badges\potential_award_selector` |
| `\badge_existing_users_selector` | `\core_badges\existing_award_selector` |
| `process_manual_award()` | `\core_badges\award_manager::process_manual_award()` |
| `process_manual_revoke()` | `\core_badges\award_manager::process_manual_revoke()` |
type: improved
@@ -1,7 +0,0 @@
issueNumber: MDL-84082
notes:
core_reportbuilder:
- message: >-
The text filter "Contains" and "Not contains" operators now support `*`
and `?` wildcard characters for better text content filtering
type: improved
@@ -1,30 +0,0 @@
issueNumber: MDL-84960
notes:
core:
- message: >-
Several core web services now include a new initials field in user data
structures. This change is backward-compatible and only adds an optional
field; no existing fields or field semantics have been changed.
Client applications should ensure they can handle the additional initials
field in web service responses, but clients that ignore unknown fields can
continue working without changes. The affected web services are:
- core_enrol_get_enrolled_users
- core_enrol_get_enrolled_users_with_capability
- core_enrol_get_potential_users
- core_enrol_search_users
- core_user_get_users_by_field
- core_user_get_users
- core_user_get_course_user_profiles
- core_grades_get_enrolled_users_for_selector
- core_grades_get_gradable_users
- gradereport_grader_get_users_in_report
- core_message_get_contact_requests
- core_message_get_conversation_members
- core_message_message_search_users
- core_message_get_user_contacts
- core_message_get_member_info
- core_message_get_conversation_messages
- mod_assign_list_participants
- mod_assign_get_participant
- mod_forum_get_forum_discussions
type: improved
@@ -1,9 +0,0 @@
issueNumber: MDL-85233
notes:
core_filters:
- message: >-
MimeTeX support has been removed from both `filter_tex` and
`filter_algebra`. These filters now depend on LaTeX tools (`latex`,
`dvips`, and `convert`/`dvisvgm`), and as a result, the `pathmimetex`
setting has been removed.
type: removed
@@ -1,8 +0,0 @@
issueNumber: MDL-85322
notes:
block_html:
- message: >-
Treat Dashboard (pagetype 'my-index') as trusted in web services so
get_content_for_external preserves embedded HTML (e.g. iframes) on user
Dashboard.
type: changed
@@ -1,8 +0,0 @@
issueNumber: MDL-85336
notes:
core:
- message: >-
Redis connection timeout settings for cachestores and sessions have been
split into connection timeout and read timeout to allow for finer
control. These settings now also accept floats.
type: improved
@@ -1,9 +0,0 @@
issueNumber: MDL-85405
notes:
core_course:
- message: >-
The external function `core_course_get_course_contents` now includes the
`candisplay` property for each returned module. If this is false, the
module should not be displayed on the course page (for example, for
question banks).
type: improved
@@ -1,5 +0,0 @@
issueNumber: MDL-85621
notes:
core_badges:
- message: The create_issued_badge generator now returns the issued badge object.
type: changed
@@ -1,11 +0,0 @@
issueNumber: MDL-85621
notes:
core_badges:
- message: >-
The class core_badges_assertion has been deprecated and replaced by
\core_badges\achievement_credential.
The method badges_get_default_issuer() has also been deprecated because
it is no longer needed.
The file badges/endorsement.php has been removed because it stopped being used
when MDL-84323 was integrated.
type: deprecated
@@ -1,17 +0,0 @@
issueNumber: MDL-85975
notes:
core:
- message: >
`restore_qtype_plugin::unset_excluded_fields` now returns the modified
questiondata structure,
in order to support structures that contain arrays.
If your qtype plugin overrides
`restore_qtype_plugin::remove_excluded_question_data` without
calling the parent method, you may need to modify your overridden method
to use the returned
value.
type: fixed
@@ -1,8 +0,0 @@
issueNumber: MDL-86332
notes:
core_completion:
- message: >-
The `completion_info::clear_criteria` method takes an optional
`$removetypecriteria` to determine whether to remove course type
criteria from other courses that refer to the current course
type: changed
@@ -1,26 +0,0 @@
issueNumber: MDL-86493
notes:
mod_quiz:
- message: >-
The quiz overrides cache implementation has been replaced with a faster alternative with a different API.
This should be a transparent change but any direct references will still need to be updated.
type: deprecated
- message: >
`mod_quiz_cm_info_dynamic()` now uses the new `quiz_overrides` cache via `override_manager`, performing a single cache fetch per quiz/user.
This significantly reduces cache calls on course pages with many quizzes and groups.
The new `mod_quiz:quiz_overrides` cache is keyed by `quizid_userid` using datasource `\mod_quiz\cache\quiz_overrides_cache`.
This cache returns all applicable overrides for a user in a quiz (the user override, if any, plus all group overrides for groups they belong to in the quiz's course).
New class `\mod_quiz\local\quiz_overrides_cache_manager` to interact with the cache:
- `get_overrides(int $quizid, int $userid): array`
- `purge_for_user(int $quizid, int $userid): void`
- `purge_for_users(int $quizid, array $userids): void`
- `purge_for_group(int $quizid, int $groupid): void`
- `purge_for_group_members(int $groupid, array $userids): void`
Hook callbacks in `db/hooks.php` to keep the cache in sync with group
membership changes:
- `\core_group\hook\after_group_membership_added`
- `\core_group\hook\after_group_membership_removed`
type: improved
@@ -1,12 +0,0 @@
issueNumber: MDL-86524
notes:
core_question:
- message: >-
During restore of a question_set_reference, mapping of IDs in the
filtercondition is now delegated to qbank plugins.
If your qbank plugin defines a filter condition that uses database
IDs, add an override of `restore_filtercondition()` to the `condition`
class, which checks the condition's data and replaces the IDs with
mapped values if required. See
`qbank_managecategories\category_condition` for an example.
type: improved
@@ -1,7 +0,0 @@
issueNumber: MDL-86607
notes:
mod_feedback:
- message: >-
The method `feedback_init_feedback_session()` has been deprecated, along
with all other direct access to `$SESSION` from the module
type: deprecated
@@ -1,7 +0,0 @@
issueNumber: MDL-86660
notes:
core_courseformat:
- message: >-
The `$cm` attribute in `activityoverviewbase` has been updated to public
visibility, allowing direct access to the course module instance
type: changed
@@ -1,8 +0,0 @@
issueNumber: MDL-86660
notes:
core_courseformat:
- message: >-
A new `available` attribute has been added to `activityname_exporter`
class. It allows the external API to return the activity's availability
status relative to the current user.
type: changed
@@ -1,9 +0,0 @@
issueNumber: MDL-86660
notes:
core_courseformat:
- message: >-
Two new public static methods have been added to the `overviewtable`
class:
- `is_cm_displayable`: Determines if a course module should be listed in the overview table.
- `is_cm_available`: Checks if a course module is accessible to the user (and should therefore be rendered as a link).
type: changed
@@ -1,19 +0,0 @@
issueNumber: MDL-86678
notes:
core_reportbuilder:
- message: >-
The base entity class now implements a default `initialise` method, that
will automatically call each of the following methods to load entity
report data:
* `get_available_columns()`
* `get_available_filters()`
* `get_available_conditions()`
This change allows for a lot of boilerplate to be removed from report
entity classes
type: improved
@@ -1,12 +0,0 @@
issueNumber: MDL-86699
notes:
core_reportbuilder:
- message: >-
There are two new entities intended for reports specific to course
module data, in order to provide a baseline in terms of module reporting
and API usage:
*
`core_course\reportbuilder\local\entities\{course_module,course_module_base}`
type: improved
@@ -1,7 +0,0 @@
issueNumber: MDL-86699
notes:
mod_forum:
- message: >-
The forum report entity `->get_context_joins()` method is deprecated,
replaced with `->get_course_modules_joins(...)`
type: deprecated
@@ -1,17 +0,0 @@
issueNumber: MDL-86798
notes:
core_question:
- message: >
In order to prevent re-use of question version numbers after a version
is deleted, the `nextversion` column was added to
`question_bank_entries`. This serves as a counter incremented each time
a version is created.
Do not query this field directly. Instead use
`core_question\versions::get_next_version()` to read the value, which
will initialise it based on the existing versions if it is not set yet.
By default, it will increment the version number automatically, unless
you pass `increment: false`. Because of this, it is advisable to call
it inside a transaction, that is only committed after the version number
is used in a `question_versions` record.
type: fixed
@@ -1,7 +0,0 @@
issueNumber: MDL-86798
notes:
core_question:
- message: >-
`get_next_version()` from questionlib.php is now deprecated. Use
`\core_question\versions::get_next_version()` instead.
type: deprecated
@@ -1,5 +0,0 @@
issueNumber: MDL-86832
notes:
core_block:
- message: Removed block_activity_modules from Moodle 5.2.
type: removed
@@ -1,10 +0,0 @@
issueNumber: MDL-86839
notes:
core:
- message: >
"grunt watch" now accepts a force flag. Run "grunt watch -f" or "grunt
watch --force" to prevent grunt from cancelling builds when errors
occur. This is especially useful during development, because js build
files will be built even if, for example, jslint errors are still
present in the files.
type: improved
@@ -1,8 +0,0 @@
issueNumber: MDL-86846
notes:
core:
- message: >-
The `core/drag_handle` template has been modified to use a native HTML
button for a more accessible experience and a consistent look with other
buttons on the page.
type: changed
@@ -1,7 +0,0 @@
issueNumber: MDL-86854
notes:
core_courseformat:
- message: >-
Add core_courseformat\cmactions::move_before that will allow to move a coursemodule to a position before another coursemodule.
Add core_courseformat\cmactions::move_end_section that will allow to move a coursemodule the end of a section.
type: improved
@@ -1,8 +0,0 @@
issueNumber: MDL-86854
notes:
core_course:
- message: >-
Deprecates moveto_module (core_course) in favor of
cmactions::move_before or cmactions::move_end_section
(core_courseformat\local\cmactions).
type: deprecated
@@ -1,11 +0,0 @@
issueNumber: MDL-86855
notes:
qbank_columnsortorder:
- message: >-
The Behat selector `column move handle` for the `qbank_columnsortorder` plugin has been removed.
When interacting with the column's move handle, please use the move handle's accessible name and type.
For example:
- `And I drag "Move Created by" "button" and I drop it in "Move T" "button"`
type: removed
@@ -1,9 +0,0 @@
issueNumber: MDL-86856
notes:
core_course:
- message: >-
The following methods have been deprecated and should no longer be used:
- `course_delete_module`
- `course_module_flag_for_async_deletion`
Please consider using the equivalent methods, delete and delete_async, in `core_courseformat\local\cmactions` instead.
type: deprecated
@@ -1,5 +0,0 @@
issueNumber: MDL-86856
notes:
core_courseformat:
- message: Add delete method to the core_courseformat\cmactions
type: improved
@@ -1,7 +0,0 @@
issueNumber: MDL-86857
notes:
core_courseformat:
- message: >-
Add set_groupmode method to the core_courseformat\cmactions (course
format actions)
type: improved
@@ -1,7 +0,0 @@
issueNumber: MDL-86857
notes:
core_course:
- message: >-
Deprecates set_coursemodule_groupmode in favor of
core_courseformat\cmactions::set_groupmode
type: deprecated
@@ -1,7 +0,0 @@
issueNumber: MDL-86858
notes:
core_courseformat:
- message: >-
Create a new core_courseformat\cmactions::duplicate aiming to replace
the course/lib.php version
type: improved

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