Merge branch 'MDL-48044-master' of git://github.com/andrewnicols/moodle
authorSam Hemelryk <sam@moodle.com>
Wed, 5 Nov 2014 22:55:46 +0000 (11:55 +1300)
committerSam Hemelryk <sam@moodle.com>
Wed, 5 Nov 2014 22:55:46 +0000 (11:55 +1300)
431 files changed:
admin/tool/assignmentupgrade/version.php
admin/tool/availabilityconditions/version.php
admin/tool/behat/version.php
admin/tool/capability/version.php
admin/tool/customlang/version.php
admin/tool/dbtransfer/version.php
admin/tool/generator/version.php
admin/tool/health/version.php
admin/tool/innodb/version.php
admin/tool/installaddon/version.php
admin/tool/langimport/version.php
admin/tool/log/store/database/version.php
admin/tool/log/store/legacy/version.php
admin/tool/log/store/standard/version.php
admin/tool/log/version.php
admin/tool/messageinbound/lang/en/tool_messageinbound.php
admin/tool/messageinbound/version.php
admin/tool/monitor/classes/eventobservers.php
admin/tool/monitor/classes/output/managerules/renderable.php
admin/tool/monitor/classes/output/managesubs/subs.php
admin/tool/monitor/classes/rule_form.php
admin/tool/monitor/classes/task/clean_events.php
admin/tool/monitor/db/access.php
admin/tool/monitor/index.php
admin/tool/monitor/lang/en/tool_monitor.php
admin/tool/monitor/lib.php
admin/tool/monitor/managerules.php
admin/tool/monitor/tests/behat/disabled.feature [new file with mode: 0644]
admin/tool/monitor/tests/behat/rule.feature
admin/tool/monitor/tests/behat/subscription.feature
admin/tool/monitor/tests/eventobservers_test.php
admin/tool/monitor/tests/events_test.php
admin/tool/monitor/tests/generator_test.php
admin/tool/monitor/tests/rule_manager_test.php
admin/tool/monitor/tests/task_clean_events_test.php
admin/tool/monitor/version.php
admin/tool/multilangupgrade/version.php
admin/tool/phpunit/version.php
admin/tool/profiling/version.php
admin/tool/replace/version.php
admin/tool/spamcleaner/version.php
admin/tool/task/version.php
admin/tool/timezoneimport/version.php
admin/tool/unsuproles/version.php
admin/tool/uploadcourse/version.php
admin/tool/uploaduser/version.php
admin/tool/xmldb/version.php
auth/cas/version.php
auth/db/version.php
auth/email/version.php
auth/fc/version.php
auth/imap/version.php
auth/ldap/lang/en/auth_ldap.php
auth/ldap/version.php
auth/manual/version.php
auth/mnet/version.php
auth/nntp/version.php
auth/nologin/version.php
auth/none/version.php
auth/pam/version.php
auth/pop3/version.php
auth/radius/version.php
auth/shibboleth/version.php
auth/webservice/version.php
availability/condition/completion/version.php
availability/condition/date/version.php
availability/condition/grade/version.php
availability/condition/group/version.php
availability/condition/grouping/version.php
availability/condition/profile/version.php
availability/condition/profile/yui/build/moodle-availability_profile-form/moodle-availability_profile-form-debug.js
availability/condition/profile/yui/build/moodle-availability_profile-form/moodle-availability_profile-form-min.js
availability/condition/profile/yui/build/moodle-availability_profile-form/moodle-availability_profile-form.js
availability/condition/profile/yui/src/form/js/form.js
backup/backup.class.php
blocks/activity_modules/version.php
blocks/admin_bookmarks/version.php
blocks/badges/version.php
blocks/blog_menu/version.php
blocks/blog_recent/version.php
blocks/blog_tags/version.php
blocks/calendar_month/version.php
blocks/calendar_upcoming/version.php
blocks/comments/version.php
blocks/community/version.php
blocks/completionstatus/version.php
blocks/course_list/version.php
blocks/course_overview/version.php
blocks/course_summary/version.php
blocks/feedback/version.php
blocks/glossary_random/version.php
blocks/html/version.php
blocks/login/version.php
blocks/mentees/version.php
blocks/messages/version.php
blocks/mnet_hosts/version.php
blocks/myprofile/version.php
blocks/navigation/version.php
blocks/news_items/version.php
blocks/online_users/version.php
blocks/participants/version.php
blocks/private_files/version.php
blocks/quiz_results/version.php
blocks/recent_activity/version.php
blocks/rss_client/version.php
blocks/search_forums/version.php
blocks/section_links/version.php
blocks/selfcompletion/version.php
blocks/settings/version.php
blocks/site_main_menu/version.php
blocks/social_activities/version.php
blocks/tag_flickr/version.php
blocks/tag_youtube/version.php
blocks/tags/version.php
cache/locks/file/version.php
cache/stores/file/version.php
cache/stores/memcache/version.php
cache/stores/memcached/version.php
cache/stores/mongodb/version.php
cache/stores/session/version.php
cache/stores/static/version.php
calendar/lib.php
calendar/type/gregorian/version.php
course/format/singleactivity/version.php
course/format/social/version.php
course/format/topics/version.php
course/format/weeks/version.php
course/rest.php
enrol/category/version.php
enrol/cohort/version.php
enrol/database/version.php
enrol/flatfile/version.php
enrol/guest/version.php
enrol/imsenterprise/version.php
enrol/ldap/version.php
enrol/manual/version.php
enrol/meta/version.php
enrol/mnet/version.php
enrol/paypal/version.php
enrol/self/version.php
filter/activitynames/version.php
filter/algebra/version.php
filter/censor/version.php
filter/data/version.php
filter/emailprotect/version.php
filter/emoticon/version.php
filter/glossary/version.php
filter/mathjaxloader/version.php
filter/mediaplugin/version.php
filter/multilang/version.php
filter/tex/version.php
filter/tidy/version.php
filter/urltolink/version.php
grade/export/grade_export_form.php
grade/export/ods/version.php
grade/export/txt/version.php
grade/export/xls/version.php
grade/export/xml/export.php
grade/export/xml/version.php
grade/grading/form/guide/version.php
grade/grading/form/rubric/version.php
grade/import/csv/version.php
grade/import/direct/version.php
grade/import/xml/version.php
grade/report/grader/version.php
grade/report/history/version.php
grade/report/outcomes/version.php
grade/report/overview/version.php
grade/report/singleview/classes/local/screen/grade.php
grade/report/singleview/classes/local/screen/screen.php
grade/report/singleview/classes/local/screen/tablelike.php
grade/report/singleview/classes/local/screen/user.php
grade/report/singleview/classes/local/ui/checkbox_attribute.php
grade/report/singleview/classes/local/ui/dropdown_attribute.php
grade/report/singleview/classes/local/ui/feedback.php
grade/report/singleview/classes/local/ui/finalgrade.php
grade/report/singleview/classes/local/ui/grade_attribute_format.php
grade/report/singleview/classes/local/ui/override.php
grade/report/singleview/classes/local/ui/tabbable.php [deleted file]
grade/report/singleview/classes/local/ui/text_attribute.php
grade/report/singleview/index.php
grade/report/singleview/js/singleview.js
grade/report/singleview/lang/en/gradereport_singleview.php
grade/report/singleview/tests/behat/singleview.feature
grade/report/singleview/version.php
grade/report/user/version.php
lang/en/admin.php
lang/en/backup.php
lang/en/grades.php
lang/en/install.php
lib/dml/moodle_database.php
lib/dml/oci_native_moodle_database.php
lib/editor/atto/plugins/accessibilitychecker/version.php
lib/editor/atto/plugins/accessibilityhelper/version.php
lib/editor/atto/plugins/align/version.php
lib/editor/atto/plugins/backcolor/version.php
lib/editor/atto/plugins/bold/version.php
lib/editor/atto/plugins/charmap/version.php
lib/editor/atto/plugins/clear/version.php
lib/editor/atto/plugins/collapse/version.php
lib/editor/atto/plugins/emoticon/version.php
lib/editor/atto/plugins/equation/version.php
lib/editor/atto/plugins/fontcolor/version.php
lib/editor/atto/plugins/html/version.php
lib/editor/atto/plugins/image/version.php
lib/editor/atto/plugins/indent/version.php
lib/editor/atto/plugins/italic/version.php
lib/editor/atto/plugins/link/version.php
lib/editor/atto/plugins/managefiles/version.php
lib/editor/atto/plugins/media/version.php
lib/editor/atto/plugins/noautolink/version.php
lib/editor/atto/plugins/orderedlist/version.php
lib/editor/atto/plugins/rtl/version.php
lib/editor/atto/plugins/strike/version.php
lib/editor/atto/plugins/subscript/version.php
lib/editor/atto/plugins/superscript/version.php
lib/editor/atto/plugins/table/version.php
lib/editor/atto/plugins/title/lang/en/atto_title.php
lib/editor/atto/plugins/title/version.php
lib/editor/atto/plugins/underline/version.php
lib/editor/atto/plugins/undo/version.php
lib/editor/atto/plugins/unorderedlist/version.php
lib/editor/atto/version.php
lib/editor/textarea/version.php
lib/editor/tinymce/plugins/ctrlhelp/version.php
lib/editor/tinymce/plugins/managefiles/version.php
lib/editor/tinymce/plugins/moodleemoticon/version.php
lib/editor/tinymce/plugins/moodleimage/version.php
lib/editor/tinymce/plugins/moodlemedia/version.php
lib/editor/tinymce/plugins/moodlenolink/version.php
lib/editor/tinymce/plugins/pdw/version.php
lib/editor/tinymce/plugins/spellchecker/version.php
lib/editor/tinymce/plugins/wrap/version.php
lib/editor/tinymce/version.php
lib/outputrenderers.php
lib/tests/moodle_page_test.php
message/output/airnotifier/version.php
message/output/email/version.php
message/output/jabber/version.php
message/output/popup/version.php
mnet/service/enrol/version.php
mod/assign/feedback/comments/version.php
mod/assign/feedback/editpdf/version.php
mod/assign/feedback/file/version.php
mod/assign/feedback/offline/version.php
mod/assign/locallib.php
mod/assign/submission/comments/version.php
mod/assign/submission/file/version.php
mod/assign/submission/onlinetext/version.php
mod/assign/version.php
mod/assignment/type/offline/version.php
mod/assignment/type/online/version.php
mod/assignment/type/upload/version.php
mod/assignment/type/uploadsingle/version.php
mod/assignment/version.php
mod/book/tool/exportimscp/version.php
mod/book/tool/importhtml/version.php
mod/book/tool/print/version.php
mod/book/version.php
mod/chat/version.php
mod/choice/lang/en/choice.php
mod/choice/version.php
mod/data/edit.php
mod/data/field/checkbox/version.php
mod/data/field/date/version.php
mod/data/field/file/field.class.php
mod/data/field/file/version.php
mod/data/field/latlong/version.php
mod/data/field/menu/version.php
mod/data/field/multimenu/version.php
mod/data/field/number/version.php
mod/data/field/picture/field.class.php
mod/data/field/picture/version.php
mod/data/field/radiobutton/version.php
mod/data/field/text/version.php
mod/data/field/textarea/version.php
mod/data/field/url/version.php
mod/data/preset/imagegallery/version.php
mod/data/version.php
mod/feedback/version.php
mod/folder/version.php
mod/forum/deprecatedlib.php
mod/forum/forum.js
mod/forum/index.php
mod/forum/lang/en/forum.php
mod/forum/lib.php
mod/forum/settracking.php
mod/forum/styles.css
mod/forum/subscribe.php
mod/forum/tests/mail_test.php
mod/forum/version.php
mod/glossary/version.php
mod/imscp/version.php
mod/label/version.php
mod/lesson/lang/en/lesson.php
mod/lesson/locallib.php
mod/lesson/styles.css
mod/lesson/timer.js
mod/lesson/version.php
mod/lti/lang/en/lti.php
mod/lti/service/profile/version.php
mod/lti/service/toolproxy/version.php
mod/lti/service/toolsettings/version.php
mod/lti/version.php
mod/page/version.php
mod/quiz/accessrule/delaybetweenattempts/version.php
mod/quiz/accessrule/ipaddress/version.php
mod/quiz/accessrule/numattempts/version.php
mod/quiz/accessrule/openclosedate/version.php
mod/quiz/accessrule/password/version.php
mod/quiz/accessrule/safebrowser/version.php
mod/quiz/accessrule/securewindow/version.php
mod/quiz/accessrule/timelimit/version.php
mod/quiz/report/grading/version.php
mod/quiz/report/overview/version.php
mod/quiz/report/responses/version.php
mod/quiz/report/statistics/version.php
mod/quiz/version.php
mod/resource/version.php
mod/scorm/datamodels/scorm_13.js
mod/scorm/datamodels/scorm_13lib.php
mod/scorm/report/basic/version.php
mod/scorm/report/graphs/version.php
mod/scorm/report/interactions/version.php
mod/scorm/report/objectives/version.php
mod/scorm/version.php
mod/survey/version.php
mod/url/version.php
mod/wiki/version.php
mod/workshop/allocation/manual/version.php
mod/workshop/allocation/random/version.php
mod/workshop/allocation/scheduled/version.php
mod/workshop/eval/best/version.php
mod/workshop/form/accumulative/version.php
mod/workshop/form/comments/version.php
mod/workshop/form/numerrors/version.php
mod/workshop/form/rubric/version.php
mod/workshop/version.php
portfolio/boxnet/version.php
portfolio/download/version.php
portfolio/flickr/version.php
portfolio/googledocs/version.php
portfolio/mahara/version.php
portfolio/picasa/version.php
question/behaviour/adaptive/version.php
question/behaviour/adaptivenopenalty/version.php
question/behaviour/deferredcbm/version.php
question/behaviour/deferredfeedback/version.php
question/behaviour/immediatecbm/version.php
question/behaviour/immediatefeedback/version.php
question/behaviour/informationitem/version.php
question/behaviour/interactive/version.php
question/behaviour/interactivecountback/version.php
question/behaviour/manualgraded/version.php
question/behaviour/missing/version.php
question/format/aiken/version.php
question/format/blackboard_six/version.php
question/format/examview/version.php
question/format/gift/version.php
question/format/missingword/version.php
question/format/multianswer/version.php
question/format/webct/version.php
question/format/xhtml/version.php
question/format/xml/version.php
question/type/calculated/version.php
question/type/calculatedmulti/version.php
question/type/calculatedsimple/version.php
question/type/description/version.php
question/type/essay/version.php
question/type/match/version.php
question/type/missingtype/version.php
question/type/multianswer/version.php
question/type/multichoice/version.php
question/type/numerical/version.php
question/type/random/version.php
question/type/randomsamatch/version.php
question/type/shortanswer/version.php
question/type/truefalse/version.php
report/backups/version.php
report/completion/version.php
report/configlog/version.php
report/courseoverview/version.php
report/eventlist/version.php
report/log/version.php
report/loglive/version.php
report/outline/version.php
report/participation/version.php
report/performance/version.php
report/progress/version.php
report/questioninstances/version.php
report/security/version.php
report/stats/version.php
repository/alfresco/version.php
repository/areafiles/version.php
repository/boxnet/version.php
repository/coursefiles/version.php
repository/dropbox/version.php
repository/equella/version.php
repository/filesystem/version.php
repository/flickr/version.php
repository/flickr_public/version.php
repository/googledocs/version.php
repository/local/version.php
repository/merlot/version.php
repository/picasa/version.php
repository/recent/version.php
repository/s3/version.php
repository/skydrive/version.php
repository/upload/version.php
repository/url/version.php
repository/user/version.php
repository/webdav/version.php
repository/wikimedia/version.php
repository/youtube/version.php
theme/base/version.php
theme/bootstrapbase/version.php
theme/canvas/version.php
theme/clean/version.php
theme/more/version.php
user/lib.php
user/profile/field/checkbox/version.php
user/profile/field/datetime/version.php
user/profile/field/menu/version.php
user/profile/field/text/version.php
user/profile/field/textarea/version.php
user/renderer.php
version.php
webservice/amf/version.php
webservice/rest/version.php
webservice/soap/version.php
webservice/xmlrpc/version.php

index 6a649a9..70a9fd6 100644 (file)
@@ -24,7 +24,7 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014051200;
-$plugin->requires  = 2014050800;
+$plugin->version   = 2014111000;
+$plugin->requires  = 2014110400;
 $plugin->component = 'tool_assignmentupgrade';
-$plugin->dependencies = array('mod_assign' => 2014050800);
+$plugin->dependencies = array('mod_assign' => 2014110400);
index b1be891..2272aa3 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version = 2014051200;
-$plugin->requires = 2014050800;
+$plugin->version = 2014111000;
+$plugin->requires = 2014110400;
 $plugin->component = 'tool_availabilityconditions';
index edef3bb..35adb63 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014051200;   // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014050800;   // Requires this Moodle version
+$plugin->version   = 2014111000;   // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400;   // Requires this Moodle version
 $plugin->component = 'tool_behat'; // Full name of the plugin (used for diagnostics)
index 7e62685..863822c 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014051200; // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires  = 2014050800; // Requires this Moodle version.
+$plugin->version   = 2014111000; // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires  = 2014110400; // Requires this Moodle version.
 $plugin->component = 'tool_capability'; // Full name of the plugin (used for diagnostics).
index beb8bfd..f0ffed6 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014051200;
-$plugin->requires  = 2014050800;
+$plugin->version   = 2014111000;
+$plugin->requires  = 2014110400;
 $plugin->component = 'tool_customlang'; // Full name of the plugin (used for diagnostics)
index 0b69995..b1d8ab0 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014051200; // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires  = 2014050800; // Requires this Moodle version.
+$plugin->version   = 2014111000; // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires  = 2014110400; // Requires this Moodle version.
 $plugin->component = 'tool_dbtransfer'; // Full name of the plugin (used for diagnostics).
index 42503a6..bbd2747 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version = 2014051200;
-$plugin->requires = 2014050800;
+$plugin->version = 2014111000;
+$plugin->requires = 2014110400;
 $plugin->component = 'tool_generator';
index ca1e83e..11c1b60 100644 (file)
@@ -25,8 +25,8 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014051200; // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014050800; // Requires this Moodle version
+$plugin->version   = 2014111000; // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400; // Requires this Moodle version
 $plugin->component = 'tool_health'; // Full name of the plugin (used for diagnostics)
 
 $plugin->maturity  = MATURITY_ALPHA; // this version's maturity level
index f6b3705..c5ea4a7 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014051200; // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014050800; // Requires this Moodle version
+$plugin->version   = 2014111000; // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400; // Requires this Moodle version
 $plugin->component = 'tool_innodb'; // Full name of the plugin (used for diagnostics)
index 998c645..da278d9 100644 (file)
@@ -24,6 +24,6 @@
 defined('MOODLE_INTERNAL') || die();
 
 $plugin->component  = 'tool_installaddon';
-$plugin->version    = 2014051200;
-$plugin->requires   = 2014050800;
+$plugin->version    = 2014111000;
+$plugin->requires   = 2014110400;
 $plugin->maturity   = MATURITY_STABLE;
index 7050367..f29650c 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014092801; // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014050800; // Requires this Moodle version
+$plugin->version   = 2014111000; // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400; // Requires this Moodle version
 $plugin->component = 'tool_langimport'; // Full name of the plugin (used for diagnostics)
index 9bceb93..8cc3fcf 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version = 2014051200; // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires = 2014050800; // Requires this Moodle version.
+$plugin->version = 2014111000; // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires = 2014110400; // Requires this Moodle version.
 $plugin->component = 'logstore_database'; // Full name of the plugin (used for diagnostics).
index 156dddc..060f925 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version = 2014051200; // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires = 2014050800; // Requires this Moodle version.
+$plugin->version = 2014111000; // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires = 2014110400; // Requires this Moodle version.
 $plugin->component = 'logstore_legacy'; // Full name of the plugin (used for diagnostics).
index 290e268..c8a2225 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version = 2014051200; // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires = 2014050800; // Requires this Moodle version.
+$plugin->version = 2014111000; // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires = 2014110400; // Requires this Moodle version.
 $plugin->component = 'logstore_standard'; // Full name of the plugin (used for diagnostics).
index 258312b..766ed73 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version = 2014051200; // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires = 2014050800; // Requires this Moodle version.
+$plugin->version = 2014111000; // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires = 2014110400; // Requires this Moodle version.
 $plugin->component = 'tool_log'; // Full name of the plugin (used for diagnostics).
index 329c956..c8271f3 100644 (file)
@@ -28,7 +28,7 @@ $string['configmessageinboundhost'] = 'The address of the server that Moodle sho
 $string['defaultexpiration'] = 'Default address expiry period';
 $string['defaultexpiration_help'] = 'When an email address is generated by the handler, it can be set to automatically expire after a period of time, so that it can no longer be used. It is advisable to set an expiry period.';
 $string['description'] = 'Description';
-$string['domain'] = 'Email Domain';
+$string['domain'] = 'Email domain';
 $string['edit'] = 'Edit';
 $string['edithandler'] = 'Edit settings for the {$a} handler';
 $string['editinghandler'] = 'Editing {$a}';
@@ -48,22 +48,22 @@ It is not possible to disable sender verification of this handler because the us
 $string['invalid_recipient_handler_name'] = 'Invalid recipient handler';
 $string['invalidrecipientdescription'] = 'The message "{$a->subject}" could not be authenticated, since it was sent from a different email address than in your user profile. For the message to be authenticated, you need to reply to this message.';
 $string['invalidrecipientdescriptionhtml'] = 'The message "{$a->subject}" could not be authenticated, since it was sent from a different email address than in your user profile. For the message to be authenticated, you need to reply to this message.';
-$string['invalidrecipientfinal'] = 'The message you sent with subject "{$a->subject}" could not be authenticated. Please check that you are sending your message from the e-mail account listed in your Moodle profile.';
+$string['invalidrecipientfinal'] = 'The message "{$a->subject}" could not be authenticated. Please check that you are sending your message from the same email address as in your profile.';
 $string['mailbox'] = 'Mailbox name';
 $string['mailboxconfiguration'] = 'Mailbox configuration';
 $string['mailboxdescription'] = '[mailbox]+subaddress@[domain]';
 $string['mailsettings'] = 'Mail settings';
 $string['message_handlers'] = 'Message handlers';
-$string['messageprocessingerror'] = 'You recently sent an e-mail to Moodle with the subject "{$a->subject}" but Moodle was unable to process it.
+$string['messageprocessingerror'] = 'You recently sent an email "{$a->subject}" but unfortunately it could not be processed.
 
 The details of the error are shown below.
 
 {$a->error}';
-$string['messageprocessingerrorhtml'] = '<p>You recently sent an e-mail to Moodle with the subject "{$a->subject}" but Moodle was unable to process it.</p>
+$string['messageprocessingerrorhtml'] = '<p>You recently sent an email "{$a->subject}" but unfortunately it could not be processed.</p>
 <p>The details of the error are shown below.</p>
 <p>{$a->error}</p>';
-$string['messageprocessingfailed'] = 'Moodle was unable to process the e-mail you sent with subject "{$a->subject}". The following error was given: "{$a->message}".';
-$string['messageprocessingfailedunknown'] = 'Moodle was unable to process the e-mail you sent with subject "{$a->subject}". Contact your system administrator for further information.';
+$string['messageprocessingfailed'] = 'The email "{$a->subject}" could not be processed. The error is as follows: "{$a->message}".';
+$string['messageprocessingfailedunknown'] = 'The email "{$a->subject}" could not be processed. Contact your administrator for further information.';
 $string['messageprocessingsuccess'] = '{$a->plain}
 
 If you do not wish to receive these notifications in the future, you can edit your personal messaging preferences by opening {$a->messagepreferencesurl} in your browser.';
@@ -76,14 +76,14 @@ $string['messageinboundgeneralconfiguration'] = 'General configuration';
 $string['messageinboundgeneralconfiguration_desc'] = 'Inbound message processing allows you to receive and process email within Moodle. This has applications such as sending email replies to forum posts or adding files to a user\'s private files.';
 $string['messageinboundhost'] = 'Incoming Mail Server';
 $string['messageinboundhostpass'] = 'Password';
-$string['messageinboundhostpass_desc'] = 'This is the password your service provider will have provided to log into your e-mail account with.';
+$string['messageinboundhostpass_desc'] = 'This is the password your service provider will have provided to log in to your email account with.';
 $string['messageinboundhostssl'] = 'Use SSL';
 $string['messageinboundhostssl_desc'] = 'Some mail servers support an additional level of security by encrypting communication between Moodle and your server. We recommend using this SSL encryption if your server supports it.';
 $string['messageinboundhosttype'] = 'Server type';
 $string['messageinboundhostuser'] = 'Username';
-$string['messageinboundhostuser_desc'] = 'This is the username your service provider will have provided to log into your e-mail account with.';
+$string['messageinboundhostuser_desc'] = 'This is the username your service provider will have provided to log in to your email account with.';
 $string['messageinboundmailboxconfiguration_desc'] = 'When messages are sent out, they fit into the format address+data@example.com. To reliably generate addresses from Moodle, please specify the address that you would normally use before the @ sign, and the domain after the @ sign separately. For example, the Mailbox name in the example would be "address", and the E-mail domain would be "example.com". You should use a dedicated e-mail account for this purpose.';
-$string['messageprovider:invalidrecipienthandler'] = 'Messages to confirm that an inbound messages came from you';
+$string['messageprovider:invalidrecipienthandler'] = 'Message to confirm that an inbound message came from you';
 $string['messageprovider:messageprocessingerror'] = 'Warning when an inbound message could not be processed';
 $string['messageprovider:messageprocessingsuccess'] = 'Confirmation that a message was successfully processed';
 $string['noencryption'] = 'Off - No encryption';
index 57e55ae..44c3bc7 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014091200;
-$plugin->requires  = 2014050800;
+$plugin->version   = 2014111000;
+$plugin->requires  = 2014110400;
 $plugin->component = 'tool_messageinbound';
index 3918a7d..f6c7939 100644 (file)
@@ -72,6 +72,9 @@ class eventobservers {
      * @param \core\event\base $event event object
      */
     public static function process_event(\core\event\base $event) {
+        if (!get_config('tool_monitor', 'enablemonitor')) {
+            return; // The tool is disabled. Nothing to do.
+        }
 
         if (empty(self::$instance)) {
             self::$instance = new static();
index 198a606..d37b734 100644 (file)
@@ -122,7 +122,7 @@ class renderable extends \table_sql implements \renderable {
         if (empty($courseid)) {
             return $coursename;
         } else {
-            return \html_writer::link(new \moodle_url('/course/view.php', array('id' => $this->courseid)), $coursename);
+            return \html_writer::link(new \moodle_url('/course/view.php', array('id' => $courseid)), $coursename);
         }
     }
 
index b0403d8..de8eebe 100644 (file)
@@ -60,12 +60,14 @@ class subs extends \table_sql implements \renderable {
         parent::__construct($uniqueid);
 
         $this->set_attribute('class', 'toolmonitor subscriptions generaltable generalbox');
-        $this->define_columns(array('name', 'description', 'course', 'plugin', 'eventname', 'filters', 'unsubscribe'));
+        $this->define_columns(array('name', 'description', 'course', 'plugin', 'instance', 'eventname',
+            'filters', 'unsubscribe'));
         $this->define_headers(array(
                 get_string('rulename', 'tool_monitor'),
                 get_string('description'),
                 get_string('course'),
                 get_string('area', 'tool_monitor'),
+                get_string('moduleinstance', 'tool_monitor'),
                 get_string('event', 'tool_monitor'),
                 get_string('frequency', 'tool_monitor'),
                 get_string('unsubscribe', 'tool_monitor')
@@ -115,7 +117,7 @@ class subs extends \table_sql implements \renderable {
         if (empty($courseid)) {
             return $coursename;
         } else {
-            return \html_writer::link(new \moodle_url('/course/view.php', array('id' => $this->courseid)), $coursename);
+            return \html_writer::link(new \moodle_url('/course/view.php', array('id' => $courseid)), $coursename);
         }
     }
 
@@ -129,6 +131,16 @@ class subs extends \table_sql implements \renderable {
         return $sub->get_plugin_name();
     }
 
+    /**
+     * Generate content for instance column.
+     *
+     * @param \tool_monitor\subscription $sub subscription object
+     * @return string html used to display the instance name.
+     */
+    public function col_instance(\tool_monitor\subscription $sub) {
+        return $sub->get_instance_name();
+    }
+
     /**
      * Generate content for eventname column.
      *
index ec7beb4..549adba 100644 (file)
@@ -123,7 +123,8 @@ class rule_form extends \moodleform {
 
         // Message template.
         $mform->addElement('editor', 'template', get_string('messagetemplate', 'tool_monitor'), $editoroptions);
-        $mform->setDefault('template', get_string('defaultmessagetemplate', 'tool_monitor'));
+        $mform->setDefault('template', array('text' => get_string('defaultmessagetemplate', 'tool_monitor'),
+                'format' => FORMAT_HTML));
         $mform->addRule('template', get_string('required'), 'required');
         $mform->addHelpButton('template', 'messagetemplate', 'tool_monitor');
 
index 9efb360..84e8560 100644 (file)
@@ -44,6 +44,10 @@ class clean_events extends \core\task\scheduled_task {
     public function execute() {
         global $DB;
 
+        if (!get_config('tool_monitor', 'enablemonitor')) {
+            return; // The tool is disabled. Nothing to do.
+        }
+
         // Array to store which events have been triggered in which course.
         $courses = array();
 
index d1b687c..6fed5e8 100644 (file)
@@ -49,5 +49,13 @@ $capabilities = array(
             'manager' => CAP_ALLOW
         ),
     ),
-);
 
+    'tool/monitor:managetool' => array(
+        'riskbitmask' => RISK_XSS, RISK_CONFIG,
+        'captype' => 'write',
+        'contextlevel' => CONTEXT_SYSTEM,
+        'archetypes' => array(
+            'manager' => CAP_ALLOW
+        ),
+    ),
+);
index e6fd7d1..3e06a33 100644 (file)
@@ -45,6 +45,11 @@ if (empty($courseid)) {
     $coursename = format_string($course->fullname, true, array('context' => $coursecontext));
 }
 
+if (!get_config('tool_monitor', 'enablemonitor')) {
+    // This should never happen as the this page does not appear in navigation when the tool is disabled.
+    throw new coding_exception('Event monitoring is disabled');
+}
+
 // Always build the page in site context.
 $context = context_system::instance();
 $sitename = format_string($SITE->fullname, true, array('context' => $context));
index 2a57c94..474629e 100644 (file)
@@ -29,15 +29,18 @@ $string['allevents'] = 'All events';
 $string['allmodules'] = 'All instances';
 $string['area'] = 'Area';
 $string['areatomonitor'] = 'Area to monitor';
+$string['contactadmin'] = 'Contact your administrator to enable it.';
 $string['core'] = 'Core';
 $string['currentsubscriptions'] = 'Your current subscriptions';
-$string['defaultmessagetemplate'] = 'The rule "{rulename}" you have subscribed to has occurred - please find further details at {link}';
+$string['defaultmessagetemplate'] = 'Rule name: {rulename}<br />Description: {description}<br />Event name: {eventname}';
 $string['deleterule'] = 'Delete rule';
 $string['deletesubscription'] = 'Delete subscription';
 $string['description'] = 'Description:';
-$string['disablefieldswarning'] = 'Plugin and events fields can not be edited because this rule already has subscriptions.';
+$string['disablefieldswarning'] = 'Some fields can not be edited as this rule already has subscriptions.';
 $string['duplicaterule'] = 'Duplicate rule';
 $string['editrule'] = 'Edit rule';
+$string['enablehelp'] = 'Enable/disable event monitoring';
+$string['enablehelp_help'] = 'Event monitoring must be enabled before it can be used. Please note that enabling event monitoring can have associated permformance implications.';
 $string['event'] = 'Event';
 $string['eventnotfound'] = 'Event not found';
 $string['eventrulecreated'] = 'Rule created';
@@ -67,7 +70,12 @@ $string['messagetemplate_help'] = 'A notification message is sent to subscribers
 * Rule name {rulename}<br />
 * Description {description}<br />
 * Event {eventname}';
+$string['messagetemplate_link'] = 'admin/tool/monitor/managerules';
+$string['moduleinstance'] = 'Instance';
+$string['monitorenabled'] = 'Event monitoring is currently enabled. ';
+$string['monitordisabled'] = 'Event monitoring is currently disabled.';
 $string['monitor:managerules'] = 'Manage event monitor rules';
+$string['monitor:managetool'] = 'Enable/disable event monitoring';
 $string['monitor:subscribe'] = 'Subscribe to event monitor rules';
 $string['norules'] = 'There are no event monitoring rules.';
 $string['pluginname'] = 'Event monitor';
index d06ec5e..1bab454 100644 (file)
@@ -32,8 +32,7 @@ defined('MOODLE_INTERNAL') || die;
  * @param context         $context    The context of the course
  */
 function tool_monitor_extend_navigation_course($navigation, $course, $context) {
-
-    if (has_capability('tool/monitor:managerules', $context)) {
+    if (has_capability('tool/monitor:managerules', $context) && get_config('tool_monitor', 'enablemonitor')) {
         $url = new moodle_url('/admin/tool/monitor/managerules.php', array('courseid' => $course->id));
         $settingsnode = navigation_node::create(get_string('managerules', 'tool_monitor'), $url, navigation_node::TYPE_SETTING,
                 null, null, new pix_icon('i/settings', ''));
@@ -56,7 +55,8 @@ function tool_monitor_extend_navigation_course($navigation, $course, $context) {
  */
 function tool_monitor_extend_navigation_user_settings($navigation, $user, $usercontext, $course, $coursecontext) {
     global $USER;
-    if (($USER->id == $user->id) && (has_capability('tool/monitor:subscribe', $coursecontext))) {
+    if (($USER->id == $user->id) && (has_capability('tool/monitor:subscribe', $coursecontext)
+            && get_config('tool_monitor', 'enablemonitor'))) {
         $url = new moodle_url('/admin/tool/monitor/index.php', array('courseid' => $course->id));
         $subsnode = navigation_node::create(get_string('managesubscriptions', 'tool_monitor'), $url,
                 navigation_node::TYPE_SETTING, null, null, new pix_icon('i/settings', ''));
index 8a664b0..c7ff382 100644 (file)
@@ -29,6 +29,7 @@ $courseid = optional_param('courseid', 0, PARAM_INT);
 $ruleid = optional_param('ruleid', 0, PARAM_INT);
 $action = optional_param('action', '', PARAM_ALPHA);
 $confirm = optional_param('confirm', false, PARAM_BOOL);
+$status = optional_param('status', 0, PARAM_BOOL);
 
 // Validate course id.
 if (empty($courseid)) {
@@ -58,6 +59,14 @@ if (empty($courseid)) {
     admin_externalpage_setup('toolmonitorrules', '', null, '', array('pagelayout' => 'report'));
 }
 
+if (!empty($action) && $action == 'changestatus') {
+    require_sesskey();
+    require_capability('tool/monitor:managetool', context_system::instance());
+    // Toggle status of the plugin.
+    set_config('enablemonitor', $status, 'tool_monitor');
+    redirect(new moodle_url('/admin/tool/monitor/managerules.php', array('courseid' => 0)));
+}
+
 // Copy/delete rule if needed.
 if (!empty($action) && $ruleid) {
     require_sesskey();
@@ -102,6 +111,32 @@ if (!empty($action) && $ruleid) {
 }
 
 echo $OUTPUT->heading(get_string('managerules', 'tool_monitor'));
+$status = get_config('tool_monitor', 'enablemonitor');
+$help = new help_icon('enablehelp', 'tool_monitor');
+
+// Display option to enable/disable the plugin.
+if ($status) {
+    if (has_capability('tool/monitor:managetool', context_system::instance())) {
+        // We don't need to show enabled status to everyone.
+        echo get_string('monitorenabled', 'tool_monitor');
+        $disableurl = new moodle_url("/admin/tool/monitor/managerules.php",
+                array('courseid' => $courseid, 'action' => 'changestatus', 'status' => 0, 'sesskey' => sesskey()));
+        echo ' ' . html_writer::link($disableurl, get_string('disable'));
+        echo $OUTPUT->render($help);
+    }
+} else {
+    echo get_string('monitordisabled', 'tool_monitor');
+    if (has_capability('tool/monitor:managetool', context_system::instance())) {
+        $enableurl = new moodle_url("/admin/tool/monitor/managerules.php",
+                array('courseid' => $courseid, 'action' => 'changestatus', 'status' => 1, 'sesskey' => sesskey()));
+        echo ' ' . html_writer::link($enableurl, get_string('enable'));
+        echo $OUTPUT->render($help);
+    } else {
+        echo get_string('contactadmin', 'tool_monitor');
+    }
+    echo $OUTPUT->footer(); // Do not render anything else.
+    exit();
+}
 
 // Render the rule list.
 $renderable = new \tool_monitor\output\managerules\renderable('toolmonitorrules', $manageurl, $courseid);
diff --git a/admin/tool/monitor/tests/behat/disabled.feature b/admin/tool/monitor/tests/behat/disabled.feature
new file mode 100644 (file)
index 0000000..24dbea6
--- /dev/null
@@ -0,0 +1,20 @@
+@javascript @tool @tool_monitor
+Feature: Enable/disable managment of the event monitor
+  In order to manage event monitoring
+  As an admin
+  I need to enable/disable it
+
+  @javascript
+  Scenario: Tool is disabled by default.
+    Given I log in as "admin"
+    When I navigate to "Event monitoring rules" node in "Site administration > Reports"
+    Then I should see "Event monitoring is currently disabled"
+    And I should see "Enable"
+    And I should not see "Add a new rule"
+    And I click on "Enable" "link"
+    And I should see "Event monitoring is currently enabled"
+    And I should see "Disable"
+    And I should see "Add a new rule"
+    And I click on "Disable" "link"
+    And I should see "Event monitoring is currently disabled"
+    And I should not see "Add a new rule"
index 1458133..bd9ff74 100644 (file)
@@ -15,6 +15,9 @@ Feature: tool_monitor_rule
       | user | course | role |
       | teacher1 | C1 | editingteacher |
     And I log in as "admin"
+    And I navigate to "Event monitoring rules" node in "Site administration > Reports"
+    And I click on "Enable" "link"
+    And I am on homepage
     And I follow "Course 1"
     And I navigate to "Event monitoring rules" node in "Course administration > Reports"
     And I press "Add a new rule"
index 826cd30..70d9043 100644 (file)
@@ -15,6 +15,9 @@ Feature: tool_monitor_subscriptions
       | user | course | role |
       | teacher1 | C1 | editingteacher |
     And I log in as "admin"
+    And I navigate to "Event monitoring rules" node in "Site administration > Reports"
+    And I click on "Enable" "link"
+    And I am on homepage
     And I follow "Course 1"
     And I navigate to "Event monitoring rules" node in "Course administration > Reports"
     And I press "Add a new rule"
@@ -45,7 +48,7 @@ Feature: tool_monitor_subscriptions
     And I follow "Course 1"
     And I navigate to "Event monitoring" node in "My profile settings"
     And I set the field "Select a course" to "Course 1"
-    When I set the field "Subscribe to rule \"New rule course level\"" to "All events"
+    When I follow "Subscribe to rule \"New rule course level\""
     Then I should see "Subscription successfully created"
     And "#toolmonitorsubs_r0" "css_element" should exist
 
@@ -54,7 +57,7 @@ Feature: tool_monitor_subscriptions
     And I follow "Course 1"
     And I navigate to "Event monitoring" node in "My profile settings"
     And I set the field "Select a course" to "Course 1"
-    And I set the field "Subscribe to rule \"New rule course level\"" to "All events"
+    And I follow "Subscribe to rule \"New rule course level\""
     And I should see "Subscription successfully created"
     When I click on "Delete subscription" "link" in the "New rule course level" "table_row"
     And I should see "Are you sure you want to delete this subscription for the rule \"New rule course level\"?"
@@ -66,7 +69,7 @@ Feature: tool_monitor_subscriptions
     Given I log in as "admin"
     And I navigate to "Event monitoring" node in "My profile settings"
     And I set the field "Select a course" to "Site"
-    When I set the field "Subscribe to rule \"New rule site level\"" to "All events"
+    When I follow "Subscribe to rule \"New rule site level\""
     Then I should see "Subscription successfully created"
     And "#toolmonitorsubs_r0" "css_element" should exist
 
@@ -74,7 +77,7 @@ Feature: tool_monitor_subscriptions
     Given I log in as "admin"
     And I navigate to "Event monitoring" node in "My profile settings"
     And I set the field "Select a course" to "Site"
-    And I set the field "Subscribe to rule \"New rule site level\"" to "All events"
+    And I follow "Subscribe to rule \"New rule site level\""
     And I should see "Subscription successfully created"
     And "#toolmonitorsubs_r0" "css_element" should exist
     When I click on "Delete subscription" "link" in the "New rule site level" "table_row"
@@ -92,7 +95,7 @@ Feature: tool_monitor_subscriptions
     And I follow "Course 1"
     And I navigate to "Event monitoring" node in "My profile settings"
     And I set the field "Select a course" to "Site"
-    And I set the field "Subscribe to rule \"New rule site level\"" to "All events"
+    And I follow "Subscribe to rule \"New rule site level\""
     And I should see "Subscription successfully created"
     And "#toolmonitorsubs_r0" "css_element" should exist
     And I am on homepage
@@ -111,7 +114,7 @@ Feature: tool_monitor_subscriptions
     And I follow "Course 1"
     And I navigate to "Event monitoring" node in "My profile settings"
     And I set the field "Select a course" to "Course 1"
-    And I set the field "Subscribe to rule \"New rule course level\"" to "All events"
+    And I follow "Subscribe to rule \"New rule course level\""
     And I should see "Subscription successfully created"
     And "#toolmonitorsubs_r0" "css_element" should exist
     And I am on homepage
index f9d0ed0..74276d3 100644 (file)
@@ -35,6 +35,13 @@ require_once($CFG->dirroot . '/blog/lib.php');
  * Tests for event observers
  */
 class tool_monitor_eventobservers_testcase extends advanced_testcase {
+    /**
+     * Set up method.
+     */
+    public function setUp() {
+        // Enable monitor.
+        set_config('enablemonitor', 1, 'tool_monitor');
+    }
 
     /**
      * Test observer for course delete event.
index 730e18d..825fd5a 100644 (file)
@@ -34,6 +34,7 @@ class tool_monitor_events_testcase extends advanced_testcase {
      * Tests set up.
      */
     public function setUp() {
+        set_config('enablemonitor', 1, 'tool_monitor');
         $this->resetAfterTest();
     }
 
index 7e6403e..ca7f003 100644 (file)
@@ -36,6 +36,14 @@ defined('MOODLE_INTERNAL') || die();
  */
 class tool_monitor_generator_testcase extends advanced_testcase {
 
+    /**
+     * Set up method.
+     */
+    public function setUp() {
+        // Enable monitor.
+        set_config('enablemonitor', 1, 'tool_monitor');
+    }
+
     /**
      * Test create_rule data generator.
      */
index 1296791..a5173fa 100644 (file)
@@ -34,6 +34,14 @@ global $CFG;
  */
 class tool_monitor_rule_manager_testcase extends advanced_testcase {
 
+    /**
+     * Set up method.
+     */
+    public function setUp() {
+        // Enable monitor.
+        set_config('enablemonitor', 1, 'tool_monitor');
+    }
+
     /**
      * Test add_rule method.
      */
index 0e87e9e..c9067ea 100644 (file)
@@ -36,6 +36,7 @@ class tool_monitor_task_clean_events_testcase extends advanced_testcase {
      * Test set up.
      */
     public function setUp() {
+        set_config('enablemonitor', 1, 'tool_monitor');
         $this->resetAfterTest(true);
     }
 
index 9231910..98589eb 100644 (file)
@@ -26,6 +26,6 @@
 
 defined('MOODLE_INTERNAL') || die;
 
-$plugin->version   = 2014102000;       // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires  = 2014061900;       // Requires this Moodle version.
+$plugin->version   = 2014111000;       // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires  = 2014110400;       // Requires this Moodle version.
 $plugin->component = 'tool_monitor'; // Full name of the plugin (used for diagnostics).
index a861c9b..0758b92 100644 (file)
@@ -25,7 +25,7 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014051200; // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014050800; // Requires this Moodle version
+$plugin->version   = 2014111000; // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400; // Requires this Moodle version
 $plugin->component = 'tool_multilangupgrade'; // Full name of the plugin (used for diagnostics)
 
index 4e54505..847bd6e 100644 (file)
@@ -24,7 +24,7 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014051200; // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014050800; // Requires this Moodle version
+$plugin->version   = 2014111000; // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400; // Requires this Moodle version
 $plugin->component = 'tool_phpunit'; // Full name of the plugin (used for diagnostics)
 
index 45e4532..028eee4 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014051200; // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014050800; // Requires this Moodle version
+$plugin->version   = 2014111000; // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400; // Requires this Moodle version
 $plugin->component = 'tool_profiling'; // Full name of the plugin (used for diagnostics)
index d25532e..7bbf3dc 100644 (file)
@@ -25,8 +25,8 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014051200; // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014050800; // Requires this Moodle version
+$plugin->version   = 2014111000; // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400; // Requires this Moodle version
 $plugin->component = 'tool_replace'; // Full name of the plugin (used for diagnostics)
 
 $plugin->maturity  = MATURITY_ALPHA; // this version's maturity level
index 1d00d81..379ac32 100644 (file)
@@ -25,7 +25,7 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014051200;
-$plugin->requires  = 2014050800;
+$plugin->version   = 2014111000;
+$plugin->requires  = 2014110400;
 $plugin->component = 'tool_spamcleaner'; // Full name of the plugin (used for diagnostics)
 
index 443df77..1dcf9d5 100644 (file)
@@ -24,7 +24,7 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014051200; // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014050800; // Requires this Moodle version
+$plugin->version   = 2014111000; // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400; // Requires this Moodle version
 $plugin->component = 'tool_task'; // Full name of the plugin (used for diagnostics)
 
index 8ba569f..7d34825 100644 (file)
@@ -25,7 +25,7 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014051200;
-$plugin->requires  = 2014050800;
+$plugin->version   = 2014111000;
+$plugin->requires  = 2014110400;
 $plugin->component = 'tool_timezoneimport'; // Full name of the plugin (used for diagnostics)
 
index d643b39..97de3cf 100644 (file)
@@ -25,7 +25,7 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014051200; // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014050800; // Requires this Moodle version
+$plugin->version   = 2014111000; // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400; // Requires this Moodle version
 $plugin->component = 'tool_unsuproles'; // Full name of the plugin (used for diagnostics)
 
index 47e8766..5d6d4c8 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014051200;            // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires  = 2014050800;            // Requires this Moodle version.
+$plugin->version   = 2014111000;            // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires  = 2014110400;            // Requires this Moodle version.
 $plugin->component = 'tool_uploadcourse';   // Full name of the plugin (used for diagnostics).
index dfab35b..6ccf6d8 100644 (file)
@@ -25,7 +25,7 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014051200; // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014050800; // Requires this Moodle version
+$plugin->version   = 2014111000; // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400; // Requires this Moodle version
 $plugin->component = 'tool_uploaduser'; // Full name of the plugin (used for diagnostics)
 
index 39a79f3..aef0b02 100644 (file)
@@ -24,7 +24,7 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014051200; // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014050800; // Requires this Moodle version
+$plugin->version   = 2014111000; // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400; // Requires this Moodle version
 $plugin->component = 'tool_xmldb'; // Full name of the plugin (used for diagnostics)
 
index 5a1a6dc..874605c 100644 (file)
@@ -26,8 +26,8 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014051200;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014050800;        // Requires this Moodle version
+$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400;        // Requires this Moodle version
 $plugin->component = 'auth_cas';        // Full name of the plugin (used for diagnostics)
 
-$plugin->dependencies = array('auth_ldap' => 2014050800);
+$plugin->dependencies = array('auth_ldap' => 2014110400);
index 0b053e8..e83ace7 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014051200;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014050800;        // Requires this Moodle version
+$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400;        // Requires this Moodle version
 $plugin->component = 'auth_db';         // Full name of the plugin (used for diagnostics)
index 2f5cfd3..80a0de7 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die;
 
-$plugin->version   = 2014051200;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014050800;        // Requires this Moodle version
+$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400;        // Requires this Moodle version
 $plugin->component = 'auth_email';      // Full name of the plugin (used for diagnostics)
index 4867c7a..c389549 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014051200;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014050800;        // Requires this Moodle version
+$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400;        // Requires this Moodle version
 $plugin->component = 'auth_fc';         // Full name of the plugin (used for diagnostics)
index 6714111..7c629cd 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014051200;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014050800;        // Requires this Moodle version
+$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400;        // Requires this Moodle version
 $plugin->component = 'auth_imap';       // Full name of the plugin (used for diagnostics)
index 07b69a4..647835b 100644 (file)
@@ -79,7 +79,7 @@ $string['auth_ldap_passtype'] = 'Specify the format of new or changed passwords
 $string['auth_ldap_passtype_key'] = 'Password format';
 $string['auth_ldap_passwdexpire_settings'] = 'LDAP password expiration settings.';
 $string['auth_ldap_preventpassindb'] = 'Select yes to prevent passwords from being stored in Moodle\'s DB.';
-$string['auth_ldap_preventpassindb_key'] = 'Hide passwords';
+$string['auth_ldap_preventpassindb_key'] = 'Cache passwords';
 $string['auth_ldap_search_sub'] = 'Search users from subcontexts.';
 $string['auth_ldap_search_sub_key'] = 'Search subcontexts';
 $string['auth_ldap_server_settings'] = 'LDAP server settings';
index d1e4d10..2b10708 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014051200;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014050800;        // Requires this Moodle version
+$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400;        // Requires this Moodle version
 $plugin->component = 'auth_ldap';       // Full name of the plugin (used for diagnostics)
index 19e9ad0..9a5e1fb 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014051200;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014050800;        // Requires this Moodle version
+$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400;        // Requires this Moodle version
 $plugin->component = 'auth_manual';     // Full name of the plugin (used for diagnostics)
index 374fc84..2f6bbb2 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014051200;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014050800;        // Requires this Moodle version
+$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400;        // Requires this Moodle version
 $plugin->component = 'auth_mnet';       // Full name of the plugin (used for diagnostics)
index 9f9c048..a0bbd7a 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014051200;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014050800;        // Requires this Moodle version
+$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400;        // Requires this Moodle version
 $plugin->component = 'auth_nntp';       // Full name of the plugin (used for diagnostics)
index 303beea..2d1824a 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014051200;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014050800;        // Requires this Moodle version
+$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400;        // Requires this Moodle version
 $plugin->component = 'auth_nologin';    // Full name of the plugin (used for diagnostics)
index 14cf833..5e28e65 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014051200;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014050800;        // Requires this Moodle version
+$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400;        // Requires this Moodle version
 $plugin->component = 'auth_none';       // Full name of the plugin (used for diagnostics)
index 2d35dc9..ef06fde 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014051200;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014050800;        // Requires this Moodle version
+$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400;        // Requires this Moodle version
 $plugin->component = 'auth_pam';       // Full name of the plugin (used for diagnostics)
index 3a42901..25c1158 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014051200;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014050800;        // Requires this Moodle version
+$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400;        // Requires this Moodle version
 $plugin->component = 'auth_pop3';       // Full name of the plugin (used for diagnostics)
index a833dfe..2b309e6 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014051200;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014050800;        // Requires this Moodle version
+$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400;        // Requires this Moodle version
 $plugin->component = 'auth_radius';     // Full name of the plugin (used for diagnostics)
index 67c86c7..c609a58 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014051200;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014050800;        // Requires this Moodle version
+$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400;        // Requires this Moodle version
 $plugin->component = 'auth_shibboleth'; // Full name of the plugin (used for diagnostics)
index 8fa9510..77c1f4c 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014051200;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014050800;        // Requires this Moodle version
+$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400;        // Requires this Moodle version
 $plugin->component = 'auth_webservice'; // Full name of the plugin (used for diagnostics)
index 7c2b906..b7596e4 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version = 2014051200;
-$plugin->requires = 2014050800;
+$plugin->version = 2014111000;
+$plugin->requires = 2014110400;
 $plugin->component = 'availability_completion';
index 9d90ff3..7f785e1 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version = 2014051200;
-$plugin->requires = 2014050800;
+$plugin->version = 2014111000;
+$plugin->requires = 2014110400;
 $plugin->component = 'availability_date';
index 87bf28e..ad2f3a3 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version = 2014051200;
-$plugin->requires = 2014050800;
+$plugin->version = 2014111000;
+$plugin->requires = 2014110400;
 $plugin->component = 'availability_grade';
index 7261d7e..80706ed 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version = 2014051200;
-$plugin->requires = 2014050800;
+$plugin->version = 2014111000;
+$plugin->requires = 2014110400;
 $plugin->component = 'availability_group';
index 4cc1638..1020022 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version = 2014051200;
-$plugin->requires = 2014050800;
+$plugin->version = 2014111000;
+$plugin->requires = 2014110400;
 $plugin->component = 'availability_grouping';
index 2786078..dabf49e 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version = 2014051200;
-$plugin->requires = 2014050800;
+$plugin->version = 2014111000;
+$plugin->requires = 2014110400;
 $plugin->component = 'availability_profile';
index 0973f47..c4b906d 100644 (file)
Binary files a/availability/condition/profile/yui/build/moodle-availability_profile-form/moodle-availability_profile-form-debug.js and b/availability/condition/profile/yui/build/moodle-availability_profile-form/moodle-availability_profile-form-debug.js differ
index f0ab241..6251004 100644 (file)
Binary files a/availability/condition/profile/yui/build/moodle-availability_profile-form/moodle-availability_profile-form-min.js and b/availability/condition/profile/yui/build/moodle-availability_profile-form/moodle-availability_profile-form-min.js differ
index 0973f47..c4b906d 100644 (file)
Binary files a/availability/condition/profile/yui/build/moodle-availability_profile-form/moodle-availability_profile-form.js and b/availability/condition/profile/yui/build/moodle-availability_profile-form/moodle-availability_profile-form.js differ
index afc486e..aa01d6a 100644 (file)
@@ -72,6 +72,9 @@ M.availability_profile.form.getNode = function(json) {
     if (json.op !== undefined &&
             node.one('select[name=op] > option[value=' + json.op + ']')) {
         node.one('select[name=op]').set('value', json.op);
+        if (json.op === 'isempty' || json.op === 'isnotempty') {
+            node.one('input[name=value]').set('disabled', true);
+        }
     }
     if (json.v !== undefined) {
         node.one('input').set('value', json.v);
index 7b56b05..08f66c8 100644 (file)
@@ -126,7 +126,7 @@ abstract class backup implements checksumable {
     const OPERATION_RESTORE ='restore';// We are performing one restore
 
     // Version (to keep CFG->backup_version (and release) updated automatically)
-    const VERSION = 2014051200;
+    const VERSION = 2014111000;
     const RELEASE = '2.8';
 }
 
index 7494d19..3b90b31 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014051200;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014050800;        // Requires this Moodle version
+$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400;        // Requires this Moodle version
 $plugin->component = 'block_activity_modules'; // Full name of the plugin (used for diagnostics)
index 7682aa4..bb3ea54 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014051200;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014050800;        // Requires this Moodle version
+$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400;        // Requires this Moodle version
 $plugin->component = 'block_admin_bookmarks'; // Full name of the plugin (used for diagnostics)
index dd5ffab..d20af66 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014062600;        // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires  = 2014050800;        // Requires this Moodle version.
+$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires  = 2014110400;        // Requires this Moodle version.
 $plugin->component = 'block_badges';
index c1f2b8e..0c8e5e2 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014051200;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014050800;        // Requires this Moodle version
+$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400;        // Requires this Moodle version
 $plugin->component = 'block_blog_menu'; // Full name of the plugin (used for diagnostics)
index 9520d13..7179180 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014051200;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014050800;        // Requires this Moodle version
+$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400;        // Requires this Moodle version
 $plugin->component = 'block_blog_recent'; // Full name of the plugin (used for diagnostics)
index d1519fb..c9c49b7 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014051200;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014050800;        // Requires this Moodle version
+$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400;        // Requires this Moodle version
 $plugin->component = 'block_blog_tags'; // Full name of the plugin (used for diagnostics)
index 2b169f1..6c1475f 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014062600;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014050800;        // Requires this Moodle version
+$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400;        // Requires this Moodle version
 $plugin->component = 'block_calendar_month'; // Full name of the plugin (used for diagnostics)
index 2113bc9..e04a6f2 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014062600;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014050800;        // Requires this Moodle version
+$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400;        // Requires this Moodle version
 $plugin->component = 'block_calendar_upcoming'; // Full name of the plugin (used for diagnostics)
index 4b68fe4..4ddd58c 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014051200;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014050800;        // Requires this Moodle version
+$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400;        // Requires this Moodle version
 $plugin->component = 'block_comments'; // Full name of the plugin (used for diagnostics)
index c824432..e1139fc 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014051200;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014050800;        // Requires this Moodle version
+$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400;        // Requires this Moodle version
 $plugin->component = 'block_community'; // Full name of the plugin (used for diagnostics)
index d98e209..2012c0e 100644 (file)
@@ -25,7 +25,7 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version      = 2014051200; // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires     = 2014050800; // Requires this Moodle version.
+$plugin->version      = 2014111000; // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires     = 2014110400; // Requires this Moodle version.
 $plugin->component    = 'block_completionstatus';
-$plugin->dependencies = array('report_completion' => 2014050800);
+$plugin->dependencies = array('report_completion' => 2014110400);
index 279389a..53e65ea 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014051200;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014050800;        // Requires this Moodle version
+$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400;        // Requires this Moodle version
 $plugin->component = 'block_course_list'; // Full name of the plugin (used for diagnostics)
index aaf4feb..728b514 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014051200;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014050800;        // Requires this Moodle version
+$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400;        // Requires this Moodle version
 $plugin->component = 'block_course_overview'; // Full name of the plugin (used for diagnostics)
index d0752bd..22ad6b4 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014051200;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014050800;        // Requires this Moodle version
+$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400;        // Requires this Moodle version
 $plugin->component = 'block_course_summary'; // Full name of the plugin (used for diagnostics)
index 3f01098..d01f743 100644 (file)
@@ -24,8 +24,8 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014051200;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014050800;        // Requires this Moodle version
+$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400;        // Requires this Moodle version
 $plugin->component = 'block_feedback';  // Full name of the plugin (used for diagnostics)
 
-$plugin->dependencies = array('mod_feedback' => 2014050800);
+$plugin->dependencies = array('mod_feedback' => 2014110400);
index 4701236..294501d 100644 (file)
@@ -24,8 +24,8 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014051200;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014050800;        // Requires this Moodle version
+$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400;        // Requires this Moodle version
 $plugin->component = 'block_glossary_random'; // Full name of the plugin (used for diagnostics)
 
-$plugin->dependencies = array('mod_glossary' => 2014050800);
+$plugin->dependencies = array('mod_glossary' => 2014110400);
index 17b4e41..2f0c52c 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014051200;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014050800;        // Requires this Moodle version
+$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400;        // Requires this Moodle version
 $plugin->component = 'block_html';      // Full name of the plugin (used for diagnostics)
index 0977bb0..2b6342f 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014051200;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014050800;        // Requires this Moodle version
+$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400;        // Requires this Moodle version
 $plugin->component = 'block_login';     // Full name of the plugin (used for diagnostics)
index 5bbeac5..57a761a 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014051200;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014050800;        // Requires this Moodle version
+$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400;        // Requires this Moodle version
 $plugin->component = 'block_mentees';   // Full name of the plugin (used for diagnostics)
index da2934b..e10006e 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014051200;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014050800;        // Requires this Moodle version
+$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400;        // Requires this Moodle version
 $plugin->component = 'block_messages';  // Full name of the plugin (used for diagnostics)
index 8710e22..cef8763 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014051200;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014050800;        // Requires this Moodle version
+$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400;        // Requires this Moodle version
 $plugin->component = 'block_mnet_hosts'; // Full name of the plugin (used for diagnostics)
index e74aa6c..67368a6 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014051200;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014050800;        // Requires this Moodle version
+$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400;        // Requires this Moodle version
 $plugin->component = 'block_myprofile'; // Full name of the plugin (used for diagnostics)
index 1214ac2..31323b8 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014051200;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014050800;        // Requires this Moodle version
+$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400;        // Requires this Moodle version
 $plugin->component = 'block_navigation'; // Full name of the plugin (used for diagnostics)
index fab4c07..14eadc6 100644 (file)
@@ -24,7 +24,7 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014051200;         // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014050800;         // Requires this Moodle version
+$plugin->version   = 2014111000;         // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400;         // Requires this Moodle version
 $plugin->component = 'block_news_items'; // Full name of the plugin (used for diagnostics)
-$plugin->dependencies = array('mod_forum' => 2014050800);
+$plugin->dependencies = array('mod_forum' => 2014110400);
index 0d1cf96..97cce20 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014051200;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014050800;        // Requires this Moodle version
+$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400;        // Requires this Moodle version
 $plugin->component = 'block_online_users'; // Full name of the plugin (used for diagnostics)
index 8122ed3..d8490b0 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014051200;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014050800;        // Requires this Moodle version
+$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400;        // Requires this Moodle version
 $plugin->component = 'block_participants'; // Full name of the plugin (used for diagnostics)
index ef71b89..cda89b5 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014051200;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014050800;        // Requires this Moodle version
+$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400;        // Requires this Moodle version
 $plugin->component = 'block_private_files'; // Full name of the plugin (used for diagnostics)
index be34ba4..88308e5 100644 (file)
@@ -24,8 +24,8 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014051200;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014050800;        // Requires this Moodle version
+$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400;        // Requires this Moodle version
 $plugin->component = 'block_quiz_results'; // Full name of the plugin (used for diagnostics)
 
-$plugin->dependencies = array('mod_quiz' => 2014050800);
+$plugin->dependencies = array('mod_quiz' => 2014110400);
index 9b34f11..25f293c 100644 (file)
@@ -24,7 +24,7 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014051200;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014050800;        // Requires this Moodle version
+$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400;        // Requires this Moodle version
 $plugin->component = 'block_recent_activity'; // Full name of the plugin (used for diagnostics)
 $plugin->cron      = 24*3600;           // Cron interval 1 day.
\ No newline at end of file
index d29bbdf..a3973de 100644 (file)
@@ -24,7 +24,7 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014051200;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014050800;        // Requires this Moodle version
+$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400;        // Requires this Moodle version
 $plugin->component = 'block_rss_client'; // Full name of the plugin (used for diagnostics)
 $plugin->cron      = 300;               // Set min time between cron executions to 300 secs (5 mins)
index 7074a4f..7b5eb5a 100644 (file)
@@ -24,8 +24,8 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014051200;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014050800;        // Requires this Moodle version
+$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400;        // Requires this Moodle version
 $plugin->component = 'block_search_forums'; // Full name of the plugin (used for diagnostics)
 
-$plugin->dependencies = array('mod_forum' => 2014050800);
+$plugin->dependencies = array('mod_forum' => 2014110400);
index 7c5311a..e4bd031 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014051200;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014050800;        // Requires this Moodle version
+$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400;        // Requires this Moodle version
 $plugin->component = 'block_section_links'; // Full name of the plugin (used for diagnostics)
index c632442..0974152 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014051200;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014050800;        // Requires this Moodle version
+$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400;        // Requires this Moodle version
 $plugin->component = 'block_selfcompletion'; // Full name of the plugin (used for diagnostics)
index b0295f9..a6e93ac 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014051200;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014050800;        // Requires this Moodle version
+$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400;        // Requires this Moodle version
 $plugin->component = 'block_settings';  // Full name of the plugin (used for diagnostics)
index 72de70c..fe1c46a 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014051200;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014050800;        // Requires this Moodle version
+$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400;        // Requires this Moodle version
 $plugin->component = 'block_site_main_menu'; // Full name of the plugin (used for diagnostics)
index 2144246..18dcd12 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014051200;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014050800;        // Requires this Moodle version
+$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400;        // Requires this Moodle version
 $plugin->component = 'block_social_activities'; // Full name of the plugin (used for diagnostics)
index 08acbaf..5d52bcd 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014051200;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014050800;        // Requires this Moodle version
+$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400;        // Requires this Moodle version
 $plugin->component = 'block_tag_flickr'; // Full name of the plugin (used for diagnostics)
index d59a6dc..0cef6d0 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014051200;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014050800;        // Requires this Moodle version
+$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400;        // Requires this Moodle version
 $plugin->component = 'block_tag_youtube'; // Full name of the plugin (used for diagnostics)
index 6b5e5bc..a846a1e 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014051200;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014050800;        // Requires this Moodle version
+$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400;        // Requires this Moodle version
 $plugin->component = 'block_tags';      // Full name of the plugin (used for diagnostics)
index 1cd12b7..a460dee 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014051200;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014050800;        // Requires this Moodle version
+$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400;        // Requires this Moodle version
 $plugin->component = 'cachelock_file';  // Full name of the plugin (used for diagnostics)
index f130464..dfb4cf2 100644 (file)
@@ -27,6 +27,6 @@
 
 defined('MOODLE_INTERNAL') || die;
 
-$plugin->version = 2014051200;    // The current module version (Date: YYYYMMDDXX)
-$plugin->requires = 2014050800;    // Requires this Moodle version.
+$plugin->version = 2014111000;    // The current module version (Date: YYYYMMDDXX)
+$plugin->requires = 2014110400;    // Requires this Moodle version.
 $plugin->component = 'cachestore_file';  // Full name of the plugin.
\ No newline at end of file
index 6b201e4..b90457a 100644 (file)
@@ -26,6 +26,6 @@
 
 defined('MOODLE_INTERNAL') || die;
 
-$plugin->version = 2014051200;    // The current module version (Date: YYYYMMDDXX)
-$plugin->requires = 2014050800;    // Requires this Moodle version.
+$plugin->version = 2014111000;    // The current module version (Date: YYYYMMDDXX)
+$plugin->requires = 2014110400;    // Requires this Moodle version.
 $plugin->component = 'cachestore_memcache';  // Full name of the plugin.
index 8925b12..8d39090 100644 (file)
@@ -26,6 +26,6 @@
 
 defined('MOODLE_INTERNAL') || die;
 
-$plugin->version   = 2014051200;    // The current module version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014050800;    // Requires this Moodle version.
+$plugin->version   = 2014111000;    // The current module version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400;    // Requires this Moodle version.
 $plugin->component = 'cachestore_memcached';  // Full name of the plugin.
\ No newline at end of file
index 504123c..d3f0466 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die;
 
-$plugin->version   = 2014051200;    // The current module version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014050800;    // Requires this Moodle version.
+$plugin->version   = 2014111000;    // The current module version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400;    // Requires this Moodle version.
 $plugin->component = 'cachestore_mongodb';  // Full name of the plugin.
\ No newline at end of file
index 933d5a4..f801f42 100644 (file)
@@ -27,6 +27,6 @@
 
 defined('MOODLE_INTERNAL') || die;
 
-$plugin->version = 2014051200;    // The current module version (Date: YYYYMMDDXX)
-$plugin->requires = 2014050800;    // Requires this Moodle version.
+$plugin->version = 2014111000;    // The current module version (Date: YYYYMMDDXX)
+$plugin->requires = 2014110400;    // Requires this Moodle version.
 $plugin->component = 'cachestore_session';  // Full name of the plugin.
\ No newline at end of file
index 2c6fc19..88aa04d 100644 (file)
@@ -27,6 +27,6 @@
 
 defined('MOODLE_INTERNAL') || die;
 
-$plugin->version   = 2014051200;    // The current module version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014050800;    // Requires this Moodle version.
+$plugin->version   = 2014111000;    // The current module version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400;    // Requires this Moodle version.
 $plugin->component = 'cachestore_static';  // Full name of the plugin.
\ No newline at end of file
index b435842..9037cbb 100644 (file)
@@ -683,19 +683,18 @@ function calendar_get_events($tstart, $tend, $users, $groups, $courses, $withdur
     global $DB;
 
     $whereclause = '';
+    $params = array();
     // Quick test
     if(is_bool($users) && is_bool($groups) && is_bool($courses)) {
         return array();
     }
 
-    if(is_array($users) && !empty($users)) {
+    if ((is_array($users) && !empty($users)) or is_numeric($users)) {
         // Events from a number of users
         if(!empty($whereclause)) $whereclause .= ' OR';
-        $whereclause .= ' (userid IN ('.implode(',', $users).') AND courseid = 0 AND groupid = 0)';
-    } else if(is_numeric($users)) {
-        // Events from one user
-        if(!empty($whereclause)) $whereclause .= ' OR';
-        $whereclause .= ' (userid = '.$users.' AND courseid = 0 AND groupid = 0)';
+        list($insqlusers, $inparamsusers) = $DB->get_in_or_equal($users, SQL_PARAMS_NAMED);
+        $whereclause .= " (userid $insqlusers AND courseid = 0 AND groupid = 0)";
+        $params = array_merge($params, $inparamsusers);
     } else if($users === true) {
         // Events from ALL users
         if(!empty($whereclause)) $whereclause .= ' OR';
@@ -704,14 +703,12 @@ function calendar_get_events($tstart, $tend, $users, $groups, $courses, $withdur
         // No user at all, do nothing
     }
 
-    if(is_array($groups) && !empty($groups)) {
+    if ((is_array($groups) && !empty($groups)) or is_numeric($groups)) {
         // Events from a number of groups
         if(!empty($whereclause)) $whereclause .= ' OR';
-        $whereclause .= ' groupid IN ('.implode(',', $groups).')';
-    } else if(is_numeric($groups)) {
-        // Events from one group
-        if(!empty($whereclause)) $whereclause .= ' OR ';
-        $whereclause .= ' groupid = '.$groups;
+        list($insqlgroups, $inparamsgroups) = $DB->get_in_or_equal($groups, SQL_PARAMS_NAMED);
+        $whereclause .= " groupid $insqlgroups ";
+        $params = array_merge($params, $inparamsgroups);
     } else if($groups === true) {
         // Events from ALL groups
         if(!empty($whereclause)) $whereclause .= ' OR ';
@@ -719,15 +716,11 @@ function calendar_get_events($tstart, $tend, $users, $groups, $courses, $withdur
     }
     // boolean false (no groups at all): we don't need to do anything
 
-    if(is_array($courses) && !empty($courses)) {
-        if(!empty($whereclause)) {
-            $whereclause .= ' OR';
-        }
-        $whereclause .= ' (groupid = 0 AND courseid IN ('.implode(',', $courses).'))';
-    } else if(is_numeric($courses)) {
-        // One course
+    if ((is_array($courses) && !empty($courses)) or is_numeric($courses)) {
         if(!empty($whereclause)) $whereclause .= ' OR';
-        $whereclause .= ' (groupid = 0 AND courseid = '.$courses.')';
+        list($insqlcourses, $inparamscourses) = $DB->get_in_or_equal($courses, SQL_PARAMS_NAMED);
+        $whereclause .= " (groupid = 0 AND courseid $insqlcourses)";
+        $params = array_merge($params, $inparamscourses);
     } else if ($courses === true) {
         // Events from ALL courses
         if(!empty($whereclause)) $whereclause .= ' OR';
@@ -761,7 +754,7 @@ function calendar_get_events($tstart, $tend, $users, $groups, $courses, $withdur
         $whereclause .= ' AND visible = 1';
     }
 
-    $events = $DB->get_records_select('event', $whereclause, null, 'timestart');
+    $events = $DB->get_records_select('event', $whereclause, $params, 'timestart');
     if ($events === false) {
         $events = array();
     }
index 3fce24f..fa52ab4 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014051200; // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires  = 2014050800; // Requires this Moodle version.
+$plugin->version   = 2014111000; // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires  = 2014110400; // Requires this Moodle version.
 $plugin->component = 'calendartype_gregorian'; // Full name of the plugin (used for diagnostics).
index be8e044..866bbeb 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014051200;              // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014050800;              // Requires this Moodle version
+$plugin->version   = 2014111000;              // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400;              // Requires this Moodle version
 $plugin->component = 'format_singleactivity'; // Full name of the plugin (used for diagnostics)
index 288ae4e..e361fb6 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014051200;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014050800;        // Requires this Moodle version
+$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400;        // Requires this Moodle version
 $plugin->component = 'format_social';   // Full name of the plugin (used for diagnostics)
index ebe7b1d..6b54d3f 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014051200;        // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires  = 2014050800;        // Requires this Moodle version.
+$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires  = 2014110400;        // Requires this Moodle version.
 $plugin->component = 'format_topics';    // Full name of the plugin (used for diagnostics).
index dcba0cf..390568f 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014051200;        // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires  = 2014050800;        // Requires this Moodle version.
+$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires  = 2014110400;        // Requires this Moodle version.
 $plugin->component = 'format_weeks';    // Full name of the plugin (used for diagnostics).
index 1f7f8bc..eed9a3d 100644 (file)
@@ -108,9 +108,9 @@ switch($requestmethod) {
                         break;
 
                     case 'duplicate':
-                        require_capability('moodle/course:manageactivities', $modcontext);
-                        require_capability('moodle/backup:backuptargetimport', $modcontext);
-                        require_capability('moodle/restore:restoretargetimport', $modcontext);
+                        require_capability('moodle/course:manageactivities', $coursecontext);
+                        require_capability('moodle/backup:backuptargetimport', $coursecontext);
+                        require_capability('moodle/restore:restoretargetimport', $coursecontext);
                         if (!course_allowed_module($course, $cm->modname)) {
                             throw new moodle_exception('No permission to create that activity');
                         }
index 54262d8..1301c5c 100644 (file)
@@ -24,7 +24,7 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014072200;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014072200;        // Requires this Moodle version
+$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400;        // Requires this Moodle version
 $plugin->component = 'enrol_category';  // Full name of the plugin (used for diagnostics)
 $plugin->cron      = 60;
index 02cf824..ac9845b 100644 (file)
@@ -24,7 +24,7 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014072200;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014072200;        // Requires this Moodle version
+$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400;        // Requires this Moodle version
 $plugin->component = 'enrol_cohort';    // Full name of the plugin (used for diagnostics)
 $plugin->cron      = 60*60;             // run cron every hour by default, it is not out-of-sync often
index 9dff389..679da30 100644 (file)
@@ -24,7 +24,7 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014072200;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014072200;        // Requires this Moodle version
+$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400;        // Requires this Moodle version
 $plugin->component = 'enrol_database';  // Full name of the plugin (used for diagnostics)
 //TODO: should we add cron sync?
index 05fb255..f6596d6 100644 (file)
@@ -25,7 +25,7 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014072200;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014072200;        // Requires this Moodle version
+$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400;        // Requires this Moodle version
 $plugin->component = 'enrol_flatfile';  // Full name of the plugin (used for diagnostics)
 $plugin->cron      = 60;
index 1ef76e0..d2303d2 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014072200;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014072200;        // Requires this Moodle version
+$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400;        // Requires this Moodle version
 $plugin->component = 'enrol_guest';     // Full name of the plugin (used for diagnostics)
index 2e86461..caf0476 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014081300;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014072200;        // Requires this Moodle version
+$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400;        // Requires this Moodle version
 $plugin->component = 'enrol_imsenterprise';
index 76505ab..f89443d 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014072200;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014072200;        // Requires this Moodle version
+$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400;        // Requires this Moodle version
 $plugin->component = 'enrol_ldap';      // Full name of the plugin (used for diagnostics)
index 963d30d..3b9b563 100644 (file)
@@ -24,7 +24,7 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014072200;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014072200;        // Requires this Moodle version
+$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400;        // Requires this Moodle version
 $plugin->component = 'enrol_manual';    // Full name of the plugin (used for diagnostics)
 $plugin->cron      = 600;
index 4951f33..df71ec9 100644 (file)
@@ -24,7 +24,7 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014072200;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014072200;        // Requires this Moodle version
+$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400;        // Requires this Moodle version
 $plugin->component = 'enrol_meta';      // Full name of the plugin (used for diagnostics)
 $plugin->cron      = 60*60;             // run cron every hour by default, it is not out-of-sync often
index c78a309..a55dcaf 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014072200;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014072200;        // Requires this Moodle version
+$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400;        // Requires this Moodle version
 $plugin->component = 'enrol_mnet';      // Full name of the plugin (used for diagnostics)
index abce57d..312c4ca 100644 (file)
@@ -25,7 +25,7 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014072200;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014072200;        // Requires this Moodle version
+$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400;        // Requires this Moodle version
 $plugin->component = 'enrol_paypal';    // Full name of the plugin (used for diagnostics)
 $plugin->cron      = 60;
index 47de8ce..adc754e 100644 (file)
@@ -24,7 +24,7 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014072200;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014072200;        // Requires this Moodle version
+$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400;        // Requires this Moodle version
 $plugin->component = 'enrol_self';      // Full name of the plugin (used for diagnostics)
 $plugin->cron      = 600;
index b56da6a..dd0f31c 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014051200;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014050800;        // Requires this Moodle version
+$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400;        // Requires this Moodle version
 $plugin->component = 'filter_activitynames'; // Full name of the plugin (used for diagnostics)
index 2b11c24..36b3437 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014051200;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014050800;        // Requires this Moodle version
+$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400;        // Requires this Moodle version
 $plugin->component = 'filter_algebra';  // Full name of the plugin (used for diagnostics)
index c353671..aa8d726 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014051200;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014050800;        // Requires this Moodle version
+$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400;        // Requires this Moodle version
 $plugin->component = 'filter_censor';   // Full name of the plugin (used for diagnostics)
index 043100b..33c8b30 100644 (file)
@@ -25,8 +25,8 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version  = 2014051200;
-$plugin->requires = 2014050800;  // Requires this Moodle version
+$plugin->version  = 2014111000;
+$plugin->requires = 2014110400;  // Requires this Moodle version
 $plugin->component= 'filter_data';
 
-$plugin->dependencies = array('mod_data' => 2014050800);
+$plugin->dependencies = array('mod_data' => 2014110400);
index ffce0d9..3e2bfe1 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014051200;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014050800;        // Requires this Moodle version
+$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400;        // Requires this Moodle version
 $plugin->component = 'filter_emailprotect'; // Full name of the plugin (used for diagnostics)
index ed7ab2a..4df5512 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014051200;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014050800;        // Requires this Moodle version
+$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400;        // Requires this Moodle version
 $plugin->component = 'filter_emoticon'; // Full name of the plugin (used for diagnostics)
index ead97b3..47c23ae 100644 (file)
@@ -25,8 +25,8 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version  = 2014051200;
-$plugin->requires = 2014050800;  // Requires this Moodle version
+$plugin->version  = 2014111000;
+$plugin->requires = 2014110400;  // Requires this Moodle version
 $plugin->component= 'filter_glossary';
 
-$plugin->dependencies = array('mod_glossary' => 2014050800);
+$plugin->dependencies = array('mod_glossary' => 2014110400);
index 8de1236..b825781 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version  = 2014081100;
-$plugin->requires = 2014050800;  // Requires this Moodle version
+$plugin->version  = 2014111000;
+$plugin->requires = 2014110400;  // Requires this Moodle version
 $plugin->component= 'filter_mathjaxloader';
index cc5c35a..b086b43 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014051200;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014050800;        // Requires this Moodle version
+$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400;        // Requires this Moodle version
 $plugin->component = 'filter_mediaplugin'; // Full name of the plugin (used for diagnostics)
index a20e1a1..e190cf5 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014051200;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014050800;        // Requires this Moodle version
+$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400;        // Requires this Moodle version
 $plugin->component = 'filter_multilang'; // Full name of the plugin (used for diagnostics)
index b467deb..171bb57 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014051200;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014050800;        // Requires this Moodle version
+$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400;        // Requires this Moodle version
 $plugin->component = 'filter_tex';      // Full name of the plugin (used for diagnostics)
index 7777c03..2a93b93 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014051200;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014050800;        // Requires this Moodle version
+$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400;        // Requires this Moodle version
 $plugin->component = 'filter_tidy';     // Full name of the plugin (used for diagnostics)
index 30ee8c7..7d5e707 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014051200;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014050800;        // Requires this Moodle version
+$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400;        // Requires this Moodle version
 $plugin->component = 'filter_urltolink'; // Full name of the plugin (used for diagnostics)
index 5441dbb..138a9a1 100644 (file)
@@ -61,7 +61,7 @@ class grade_export_form extends moodleform {
                 }
 
                 if (!empty($features['idnumberrequired']) and empty($grade_item->idnumber)) {
-                    $mform->addElement('advcheckbox', 'itemids['.$grade_item->id.']', $grade_item->get_name(), get_string('noidnumber', 'grades'));
+                    $mform->addElement('checkbox', 'itemids['.$grade_item->id.']', $grade_item->get_name(), get_string('noidnumber', 'grades'));
                     $mform->hardFreeze('itemids['.$grade_item->id.']');
                 } else {
                     $mform->addElement('advcheckbox', 'itemids['.$grade_item->id.']', $grade_item->get_name(), null, array('group' => 1));
index 1fd3f66..4be0749 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014051200;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014050800;        // Requires this Moodle version
+$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400;        // Requires this Moodle version
 $plugin->component = 'gradeexport_ods'; // Full name of the plugin (used for diagnostics)
index 66dd6f4..338c814 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014051200;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014050800;        // Requires this Moodle version
+$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400;        // Requires this Moodle version
 $plugin->component = 'gradeexport_txt'; // Full name of the plugin (used for diagnostics)
index 4eccff5..60e112f 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014051200;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014050800;        // Requires this Moodle version
+$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400;        // Requires this Moodle version
 $plugin->component = 'gradeexport_xls'; // Full name of the plugin (used for diagnostics)
index 3ab49a4..b138f06 100644 (file)
@@ -37,7 +37,8 @@ if (groups_get_course_groupmode($COURSE) == SEPARATEGROUPS and !has_capability('
         print_error('cannotaccessgroup', 'grades');
     }
 }
-$mform = new grade_export_form(null, array('publishing' => true, 'simpleui' => true, 'multipledisplaytypes' => false));
+$mform = new grade_export_form(null, array('publishing' => true, 'simpleui' => true, 'multipledisplaytypes' => false,
+        'idnumberrequired' => true));
 $formdata = $mform->get_data();
 
 // print all the exported data here
index d3564ca..4f21600 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014051200;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014050800;        // Requires this Moodle version
+$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400;        // Requires this Moodle version
 $plugin->component = 'gradeexport_xml'; // Full name of the plugin (used for diagnostics)
index d24252e..5fd1d02 100644 (file)
@@ -25,6 +25,6 @@
 defined('MOODLE_INTERNAL') || die();
 
 $plugin->component  = 'gradingform_guide';
-$plugin->version    = 2014051200;
-$plugin->requires   = 2014050800;
+$plugin->version    = 2014111000;
+$plugin->requires   = 2014110400;
 $plugin->maturity   = MATURITY_STABLE;
\ No newline at end of file
index 8a8e24c..221b342 100644 (file)
@@ -25,8 +25,8 @@
 defined('MOODLE_INTERNAL') || die();
 
 $plugin->component  = 'gradingform_rubric';
-$plugin->version    = 2014051200;
+$plugin->version    = 2014111000;
 
-$plugin->requires   = 2014050800;
+$plugin->requires   = 2014110400;
 
 $plugin->maturity   = MATURITY_STABLE;
index 2db93cc..2f753a2 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014093000;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014050800;        // Requires this Moodle version
+$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400;        // Requires this Moodle version
 $plugin->component = 'gradeimport_csv'; // Full name of the plugin (used for diagnostics)
index 023e95e..51cb9c1 100644 (file)
@@ -24,7 +24,7 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014080400;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014050800;        // Requires this Moodle version
+$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400;        // Requires this Moodle version
 $plugin->component = 'gradeimport_direct'; // Full name of the plugin (used for diagnostics).
-$plugin->dependencies = array('gradeimport_csv' => 2014093000); // Grade import csv is required for this plugin.
\ No newline at end of file
+$plugin->dependencies = array('gradeimport_csv' => 2014110400); // Grade import csv is required for this plugin.
\ No newline at end of file
index 29711e4..874f18b 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014051200;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014050800;        // Requires this Moodle version
+$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400;        // Requires this Moodle version
 $plugin->component = 'gradeimport_xml'; // Full name of the plugin (used for diagnostics)
index 9b31002..f4dae3a 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014051200;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014050800;        // Requires this Moodle version
+$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400;        // Requires this Moodle version
 $plugin->component = 'gradereport_grader'; // Full name of the plugin (used for diagnostics)
index 683cff7..00654ae 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014072900;
-$plugin->requires  = 2014072400;
+$plugin->version   = 2014111000;
+$plugin->requires  = 2014110400;
 $plugin->component = 'gradereport_history';
index 89c4dcb..5504396 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014051200;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014050800;        // Requires this Moodle version
+$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400;        // Requires this Moodle version
 $plugin->component = 'gradereport_outcomes'; // Full name of the plugin (used for diagnostics)
index df6deb0..1c5ee3b 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014051200;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014050800;        // Requires this Moodle version
+$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400;        // Requires this Moodle version
 $plugin->component = 'gradereport_overview'; // Full name of the plugin (used for diagnostics)
index 87c8cdb..2739f0f 100644 (file)
@@ -329,10 +329,19 @@ class grade extends tablelike implements selectable_items, filterable_items {
 
                     $data->$field = empty($grade) ? $null : $grade->finalgrade;
                     $data->{"old$field"} = $data->$field;
+
+                    preg_match('/_(\d+)_(\d+)/', $field, $oldoverride);
+                    $oldoverride = 'oldoverride' . $oldoverride[0];
+                    if (empty($data->$oldoverride)) {
+                        $data->$field = (!isset($grade->rawgrade)) ? $null : $grade->rawgrade;
+                    }
                 }
             }
 
             foreach ($data as $varname => $value) {
+                if (preg_match('/override_(\d+)_(\d+)/', $varname, $matches)) {
+                    $data->$matches[0] = '1';
+                }
                 if (!preg_match('/^finalgrade_(\d+)_/', $varname, $matches)) {
                     continue;
                 }
index fd4fa6d..c8b46e0 100644 (file)
@@ -255,7 +255,17 @@ abstract class screen {
 
         $fields = $this->definition();
 
+        // Avoiding execution timeouts when updating
+        // a large amount of grades.
+        $progress = 0;
+        $progressbar = new \core\progress\display_if_slow();
+        $progressbar->start_html();
+        $progressbar->start_progress(get_string('savegrades', 'gradereport_singleview'), count((array) $data) - 1);
+        $changecount = array();
+
         foreach ($data as $varname => $throw) {
+            $progressbar->progress($progress);
+            $progress++;
             if (preg_match("/(\w+)_(\d+)_(\d+)/", $varname, $matches)) {
                 $itemid = $matches[2];
                 $userid = $matches[3];
@@ -270,6 +280,9 @@ abstract class screen {
             if (preg_match('/^old[oe]{1}/', $varname)) {
                 $elementname = preg_replace('/^old/', '', $varname);
                 if (!isset($data->$elementname)) {
+                    // Decrease the progress because we've increased the
+                    // size of the array we are iterating through.
+                    $progress--;
                     $data->$elementname = false;
                 }
             }
@@ -309,6 +322,9 @@ abstract class screen {
             if (!empty($msg)) {
                 $warnings[] = $msg;
             }
+            if (preg_match('/_(\d+)_(\d+)/', $varname, $matchelement)) {
+                $changecount[$matchelement[0]] = 1;
+            }
         }
 
         // Some post-processing.
@@ -316,8 +332,11 @@ abstract class screen {
         $eventdata->warnings = $warnings;
         $eventdata->post_data = $data;
         $eventdata->instance = $this;
+        $eventdata->changecount = $changecount;
+
+        $progressbar->end_html();
 
-        return $eventdata->warnings;
+        return $eventdata;
     }
 
     /**
index c718787..3b0a4af 100644 (file)
@@ -124,15 +124,6 @@ abstract class tablelike extends screen {
         return $this;
     }
 
-    /**
-     * Get the tabindex for the table in the page.
-     *
-     * @return int
-     */
-    public function get_tabindex() {
-        return (count($this->definition()) * $this->total) + $this->index;
-    }
-
     /**
      * Get a element to generate the HTML for this table row
      * @param array $line This is a list of lines in the table (modified)
@@ -232,7 +223,6 @@ abstract class tablelike extends screen {
         $save = html_writer::empty_tag('input', array(
             'type' => 'submit',
             'value' => get_string('update'),
-            'tabindex' => $this->get_tabindex(),
         ));
 
         return array($save);
index d98bb1f..cf3fddd 100644 (file)
@@ -337,27 +337,36 @@ class user extends tablelike implements selectable_items {
         if ($bulk->is_applied($data)) {
             $filter = $bulk->get_type($data);
             $insertvalue = $bulk->get_insert_value($data);
-            // Appropriately massage data that may not exist.
 
             $userid = $this->item->id;
             foreach ($this->items as $gradeitemid => $gradeitem) {
                 $null = $gradeitem->gradetype == GRADE_TYPE_SCALE ? -1 : '';
-                $field = "finalgrade_{$gradeitem->id}_{$gradeitemid}";
+                $field = "finalgrade_{$gradeitem->id}_{$this->itemid}";
                 if (isset($data->$field)) {
                     continue;
                 }
 
                 $grade = grade_grade::fetch(array(
-                    'itemid' => $gradeitem->id,
+                    'itemid' => $this->itemid,
                     'userid' => $userid
                 ));
 
                 $data->$field = empty($grade) ? $null : $grade->finalgrade;
                 $data->{"old$field"} = $data->$field;
+
+                preg_match('/_(\d+)_(\d+)/', $field, $oldoverride);
+                $oldoverride = 'oldoverride' . $oldoverride[0];
+                if (empty($data->$oldoverride)) {
+                    $data->$field = (!isset($grade->rawgrade)) ? $null : $grade->rawgrade;
+                }
+
             }
 
             foreach ($data as $varname => $value) {
-                if (!preg_match('/^finalgrade_(\d+)_/', $varname, $matches)) {
+                if (preg_match('/override_(\d+)_(\d+)/', $varname, $matches)) {
+                    $data->$matches[0] = '1';
+                }
+                if (!preg_match('/^finalgrade_(\d+)_(\d+)/', $varname, $matches)) {
                     continue;
                 }
 
@@ -376,7 +385,6 @@ class user extends tablelike implements selectable_items {
                 }
             }
         }
-
         return parent::process($data);
     }
 }
index a16b081..c83ff77 100644 (file)
@@ -39,21 +39,16 @@ class checkbox_attribute extends element {
     /** @var bool $ischecked Is it checked? */
     private $ischecked;
 
-    /** @var int $tabindex The tab index for this form element. */
-    private $tabindex;
-
     /**
      * Constructor
      *
      * @param string $name The element name
      * @param string $label The label for the form element
      * @param bool $ischecked Is this thing on?
-     * @param int $tabindex The tab index for the form element.
      * @param int $locked Is this element locked either 0 or a time.
      */
-    public function __construct($name, $label, $ischecked = false, $tabindex = null, $locked=0) {
+    public function __construct($name, $label, $ischecked = false, $locked=0) {
         $this->ischecked = $ischecked;
-        $this->tabindex = $tabindex;
         $this->locked = $locked;
         parent::__construct($name, 1, $label);
     }
@@ -90,10 +85,6 @@ class checkbox_attribute extends element {
             'name' => 'old' . $this->name
         );
 
-        if (!empty($this->tabindex)) {
-            $attributes['tabindex'] = $this->tabindex;
-        }
-
         if ($this->ischecked) {
             $attributes['checked'] = 'CHECKED';
             $hidden['value'] = 1;
index 921ba92..aaaed88 100644 (file)
@@ -54,12 +54,10 @@ class dropdown_attribute extends element {
      * @param string $label The form label for this input.
      * @param string $selected The name of the selected item in this input.
      * @param bool $isdisabled Are we disabled?
-     * @param int $tabindex The tab index for this field
      */
-    public function __construct($name, $options, $label, $selected = '', $isdisabled = false, $tabindex = null) {
+    public function __construct($name, $options, $label, $selected = '', $isdisabled = false) {
         $this->selected = $selected;
         $this->options = $options;
-        $this->tabindex = $tabindex;
         $this->isdisabled = $isdisabled;
         parent::__construct($name, $selected, $label);
     }
@@ -86,9 +84,6 @@ class dropdown_attribute extends element {
         );
 
         $attributes = array();
-        if (!empty($this->tabindex)) {
-            $attributes['tabindex'] = $this->tabindex;
-        }
 
         if (!empty($this->isdisabled)) {
             $attributes['disabled'] = 'DISABLED';
index a41e0f2..e14b60a 100644 (file)
@@ -95,8 +95,7 @@ class feedback extends grade_attribute_format implements unique_value, be_disabl
             $this->get_name(),
             $this->get_value(),
             $this->get_label(),
-            $this->is_disabled(),
-            $this->get_tabindex()
+            $this->is_disabled()
         );
     }
 
index d3d9f7f..dd5348c 100644 (file)
@@ -120,16 +120,14 @@ class finalgrade extends grade_attribute_format implements unique_value, be_disa
                 $options,
                 $this->get_label(),
                 $this->get_value(),
-                $this->is_disabled(),
-                $this->get_tabindex()
+                $this->is_disabled()
             );
         } else {
             return new text_attribute(
                 $this->get_name(),
                 $this->get_value(),
                 $this->get_label(),
-                $this->is_disabled(),
-                $this->get_tabindex()
+                $this->is_disabled()
             );
         }
     }
index dcaebcd..94f027f 100644 (file)
@@ -33,7 +33,7 @@ defined('MOODLE_INTERNAL') || die;
  * @copyright 2014 Moodle Pty Ltd (http://moodle.com)
  * @license   http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
-abstract class grade_attribute_format extends attribute_format implements unique_name, tabbable {
+abstract class grade_attribute_format extends attribute_format implements unique_name {
 
     /** @var string $name The first part of the name attribute of the form input */
     public $name;
@@ -44,19 +44,13 @@ abstract class grade_attribute_format extends attribute_format implements unique
     /** @var grade_grade $grade The grade_grade of the input */
     public $grade;
 
-    /** @var int $tabindex The tabindex of the input */
-    public $tabindex;
-
     /**
      * Constructor
      *
      * @param grade_grade $grade The grade_grade we are editing.
-     * @param int $tabindex The tabindex for the input.
      */
-    public function __construct($grade = 0, $tabindex = 1) {
-
+    public function __construct($grade = 0) {
         $this->grade = $grade;
-        $this->tabindex = $tabindex;
     }
 
     /**
@@ -68,15 +62,6 @@ abstract class grade_attribute_format extends attribute_format implements unique
         return "{$this->name}_{$this->grade->itemid}_{$this->grade->userid}";
     }
 
-    /**
-     * Get the tabindex for this form input
-     *
-     * @return int The tab index
-     */
-    public function get_tabindex() {
-        return isset($this->tabindex) ? $this->tabindex : null;
-    }
-
     /**
      * Should be overridden by the child class to save the value returned in this input.
      *
index 64b8292..0db1f0f 100644 (file)
@@ -88,7 +88,6 @@ class override extends grade_attribute_format implements be_checked, be_disabled
             $this->get_name(),
             $this->get_label(),
             $this->is_checked(),
-            null,
             $this->is_disabled()
         );
     }
diff --git a/grade/report/singleview/classes/local/ui/tabbable.php b/grade/report/singleview/classes/local/ui/tabbable.php
deleted file mode 100644 (file)
index d904931..0000000
+++ /dev/null
@@ -1,43 +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/>.
-
-/**
- * The gradebook simple view - UI factory
- *
- * @package   gradereport_singleview
- * @copyright 2014 Moodle Pty Ltd (http://moodle.com)
- * @license   http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
- */
-
-namespace gradereport_singleview\local\ui;
-
-defined('MOODLE_INTERNAL') || die;
-
-/**
- * This element has a tabindex
- *
- * @package   gradereport_singleview
- * @copyright 2014 Moodle Pty Ltd (http://moodle.com)
- * @license   http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
- */
-interface tabbable {
-    /**
-     * Get the tabindex for this element
-     * @return int
-     */
-    public function get_tabindex();
-}
-
index 8c86349..2766a9d 100644 (file)
@@ -39,9 +39,6 @@ class text_attribute extends element {
     /** @var bool $isdisabled Is this input disabled? */
     private $isdisabled;
 
-    /** @var int $tabindex Tabindex value for this input. */
-    private $tabindex;
-
     /**
      * Constructor
      *
@@ -49,11 +46,9 @@ class text_attribute extends element {
      * @param string $value The input initial value.
      * @param string $label The label for this input field.
      * @param bool $isdisabled Is this input disabled.
-     * @param int $tabindex Tab index for this input.
      */
-    public function __construct($name, $value, $label, $isdisabled = false, $tabindex = null) {
+    public function __construct($name, $value, $label, $isdisabled = false) {
         $this->isdisabled = $isdisabled;
-        $this->tabindex = $tabindex;
         parent::__construct($name, $value, $label);
     }
 
@@ -77,9 +72,6 @@ class text_attribute extends element {
             'id' => $this->name
         );
 
-        if (!empty($this->tabindex)) {
-            $attributes['tabindex'] = $this->tabindex;
-        }
         if ($this->isdisabled) {
             $attributes['disabled'] = 'DISABLED';
         }
index 802cc8f..a355b28 100644 (file)
@@ -48,7 +48,6 @@ if (!$course = $DB->get_record('course', $courseparams)) {
 }
 
 require_login($course);
-$PAGE->set_pagelayout('report');
 
 if (!in_array($itemtype, gradereport_singleview::valid_screens())) {
     print_error('notvalid', 'gradereport_singleview', '', $itemtype);
@@ -99,15 +98,25 @@ $pageparams = array(
 $currentpage = new moodle_url('/grade/report/singleview/index.php', $pageparams);
 
 if ($data = data_submitted()) {
+    $PAGE->set_pagelayout('redirect');
+    $PAGE->set_title(get_string('savegrades', 'gradereport_singleview'));
+    echo $OUTPUT->header();
+
     require_sesskey(); // Must have a sesskey for all actions.
-    $warnings = $report->process_data($data);
+    $result = $report->process_data($data);
 
-    if (empty($warnings)) {
-        redirect($currentpage);
-        die();
+    if (!empty($result->warnings)) {
+        foreach ($result->warnings as $warning) {
+            echo $OUTPUT->notification($warning);
+        }
     }
+    echo $OUTPUT->notification(get_string('savegradessuccess', 'gradereport_singleview', count ((array)$result->changecount)));
+    echo $OUTPUT->continue_button($currentpage);
+    echo $OUTPUT->footer();
+    die();
 }
 
+$PAGE->set_pagelayout('report');
 print_grade_page_head($course->id, 'report', 'singleview', $reportname);
 
 $graderrightnav = $graderleftnav = null;
@@ -157,12 +166,6 @@ if ($report->screen->display_group_selector()) {
     echo $report->group_selector;
 }
 
-if (!empty($warnings)) {
-    foreach ($warnings as $warning) {
-        echo $OUTPUT->notification($warning);
-    }
-}
-
 echo $report->output();
 
 if ($report->screen->supports_paging()) {
index 02d7be8..0c377b8 100644 (file)
@@ -12,9 +12,9 @@ M.gradereport_singleview.init = function(Y) {
             };
         };
 
-        link.on('click', function() {
+        link.on('click', function(e) {
+            e.preventDefault();
             Y.all('input[name^=' + type + ']').each(toggle(link.hasClass('all')));
-            return false;
         });
     });
 
index 7264b71..d8a1844 100644 (file)
@@ -45,6 +45,8 @@ $string['overrideall'] = 'Override all grades';
 $string['overridefor'] = 'Override for {$a}';
 $string['overridenone'] = 'Override no grades';
 $string['pluginname'] = 'Single view';
+$string['savegrades'] = 'Saving grades';
+$string['savegradessuccess'] = 'Grades were set for {$a} items';
 $string['singleview:view'] = 'View report';
 $string['summarygrade'] = 'A table of users, with columns for range, grade, feedback, and whether to override or exclude a particular grade.';
 $string['summaryuser'] = 'A table of grade items, with columns for grade category, range, grade, feedback, and whether to override or exclude a particular grade.';
index 0c90836..ef4aba7 100644 (file)
@@ -58,7 +58,9 @@ Feature: We can use Single view
         | Feedback for Test assignment one | test data |
     And I click on "Exclude for Test assignment four" "checkbox"
     And I press "Update"
-    Then the following should exist in the "generaltable" table:
+    Then I should see "Grades were set for 2 items"
+    And I press "Continue"
+    And the following should exist in the "generaltable" table:
         | Test assignment four |
         | excluded |
     And the following should exist in the "generaltable" table:
@@ -71,6 +73,8 @@ Feature: We can use Single view
         | Feedback for james (Student) 1 | test data2 |
     And I click on "Exclude for holly (Student) 2" "checkbox"
     And I press "Update"
+    Then I should see "Grades were set for 2 items"
+    And I press "Continue"
     And the following should exist in the "generaltable" table:
         | Test assignment three |
         | 12.05 |
@@ -79,6 +83,8 @@ Feature: We can use Single view
     And I click on "new grade item 1" "option"
     And I click on "Very good" "option"
     And I press "Update"
+    Then I should see "Grades were set for 1 items"
+    And I press "Continue"
     And the following should exist in the "generaltable" table:
         | Grade for james (Student) 1 | "Very good" |
 
index e56813f..67c9a8b 100644 (file)
@@ -25,5 +25,5 @@
 defined('MOODLE_INTERNAL') || die();
 
 $plugin->component = 'gradereport_singleview'; // Full name of the plugin (used for diagnostics).
-$plugin->version  = 2013081002;
-$plugin->requires = 2010090501;
+$plugin->version  = 2014111000;
+$plugin->requires = 2014110400;
index e6b9299..96b87e2 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014101500;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014050800;        // Requires this Moodle version
+$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2014110400;        // Requires this Moodle version
 $plugin->component = 'gradereport_user'; // Full name of the plugin (used for diagnostics)
index c9f4611..8f5ebf8 100644 (file)
@@ -345,7 +345,7 @@ $string['configsupportpage'] = 'This web address will be published to users of t
 $string['configthemedesignermode'] = 'Normally all theme images and style sheets are cached in browsers and on the server for a very long time, for performance. If you are designing themes or developing code then you probably want to turn this mode on so that you are not served cached versions.  Warning: this will make your site slower for all users!  Alternatively, you can also reset the theme caches manually from the Theme selection page.';
 $string['configthemelist'] = 'Leave this blank to allow any valid theme to be used.  If you want to shorten the theme menu, you can specify a comma-separated list of names here (Don\'t use spaces!).
 For example:  standard,orangewhite.';
-$string['configtimezone'] = 'You can set the default timezone here.  This is the only the DEFAULT timezone for displaying dates - each user can override this by setting their own in their profile. "Server time" here will make Moodle default to the server\'s operating system setting, but "Server time" in the user profile will make the user default to this timezone setting.  Cronjobs that depend on a time of day to run will use this timezone.';
+$string['configtimezone'] = 'This is the default timezone for displaying dates - each user can override this setting in their profile. "Server timezone" here will make Moodle default to the server setting in PHP, but "Server timezone" in the user profile will make the user default to this timezone setting. It is recommended that you update timezones then select a named timezone specific to your region.';
 $string['con