Commit Graph

95 Commits

Author SHA1 Message Date
Simey Lameze 5b0282847e MDL-71156 core: machinery to recover orphaned calendar events
The machinery to fix orphaned calendar events that were broken by MDL-67494.

The solution consists of:

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

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

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

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

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

4) Unit tests and helper functions to generate calendar events. We have decided to
   keep the tests simple, testing only true and false and not using data generators because
   the code is purely to recover the calendar events and won't turn into an API or something
   and also due to the urgency of this issue.
   The helpers have been created in calendar/tests/helpers.php since there are no data generators
   for calendar.
2021-04-22 10:28:52 +08:00
Tom Dickman 4399e4759a MDL-45184 tool_licenses: Add custom licenses
This feature adds an admin tool for creating custom licenses.
Now custom licenses can be added and amended in Moodle, and the site
default can be set to a custom license.

Core licenses remain hard-coded and are uneditable, so they will always
require update within Moodle core updates, and maintain their
internationalisation through core language strings.

This also includes fundamental changes to the license API including
the addition of license caching and deprecation of no longer required
admin settings for license management.
2020-05-26 12:08:05 +10:00
Sara Arjona 6f46aa2040 MDL-65809 upgrade: remove upgrade_block_positions
This function was used only by deleted upgrade steps
so it's safe to proceed with straight deletion, considering
it internal. Deletion has been documented in corresponding
upgrade.txt files.
2019-12-20 12:20:43 +01:00
Sara Arjona c230306957 MDL-65809 upgrade: remove upgrade_fix_block_instance_configuration
The upgrade_fix_block_instance_configuration() function was used
only by deleted upgrade steps so it's safe to proceed with straight
deletion, considering it internal. Deletion has been documented in
corresponding upgrade.txt files.
2019-12-20 12:19:03 +01:00
David Monllaó a461d36010 MDL-67187 analytics: Fix broken text comparison 2019-11-11 11:00:28 +08:00
David Mudrák ecc9960ead MDL-66118 hub: Stop using the hub URL as the setting name suffix
Site indicators shared with the registration hub used to have the hub
URL in the relevant setting names - such as site_name_httpsmoodlenet.
This upgrade step converts all such settings and drops the URL suffix
because we do not support alternative hubs any more.

Additionally the upgrade step renames the official hub and updates its
URL so that existing registrations with https://moodle.net are still
valid.
2019-10-04 21:23:11 +02:00
David Monllaó 386d109172 MDL-62191 analytics: Support for bulk actions 2019-09-27 14:13:52 +08:00
Ilya Tregubov f408e1f888 MDL-63710 repository: Delete orphaned file records. 2018-12-06 12:39:31 +11:00
Andrew Nicols 03d174d733 MDL-61268 core: Fix empty string DB cehck
(amended by stronk7 to use the helper better)
2018-03-02 16:31:11 +01:00
Adrian Greeve e78849e837 MDL-61268 blocks: Fix corrupt configdata in block instances.
Old configuration data in the block instances is base64 encoded with
the deprecated object class instead of stdClass.
2018-03-02 09:22:05 +08:00
Eloy Lafuente (stronk7) f83d212bcf MDL-57432 upgrade: remove unused functions/settings from upgradelib
All these functions were used only by deleted upgrade steps
so it's safe to proceed with straight deletion, considering
them internal. Deletion has been documented in corresponding
upgrade.txt files:

- upgrade_mimetypes()
- upgrade_fix_missing_root_folders_draft()
- upgrade_minmaxgrade() and upgrade_minmaxgradestepignored setting
- upgrade_course_tags()
- atto_equation_update_librarygroup4_setting()
- mod_lti_upgrade_custom_separator()

These have been kept because continue being used by restore:

- upgrade_group_members_only()
- upgrade_extra_credit_weightoverride()
- upgrade_calculated_grade_items()
2017-07-10 09:18:56 +01:00
Marina Glancy a572272768 MDL-50770 blocks: remove orphaned block positions 2017-02-13 15:18:51 +08:00
Adrian Greeve 05156571c0 MDL-55107 gradebook: Improve the 57 letter boundary upgrade.
This fixes a setting not being checked before and also
reduces the number of false positives.
2016-07-12 13:30:10 +08:00
Adrian Greeve 41abbbbde5 MDL-45390 gradebook: sql tidy up and version alignment. 2016-05-18 10:41:30 +08:00
David Monllao ece791dbd4 MDL-45390 grades: Courses letters using system bad boundaries
Added unit tests to highlight the existing failures and adding
unset_config between each set of tests.
2016-05-18 10:08:10 +08:00
Adrian Greeve 405b90bcd2 MDL-45390 gradebook: Grade boundary fix.
Code to upgrade, fix, and freeze the gradebook for
courses with letter boundary problems.
2016-05-18 09:56:00 +08:00
Andrew Nicols a1057084e1 MDL-52253 scales: Correct doc 2016-05-13 18:12:31 +08:00
Damyon Wiese 8de0b1ab7d MDL-52253 scales: Add new competence scale 2016-05-13 18:12:28 +08:00
Eloy Lafuente (stronk7) 1405f010b7 MDL-51580 upgradelib: Delete stuff used by removed upgrade steps
This commits removes stuff from different upgradelib files, used
exclusively by the already deleted upgrade steps. Given such
exclusivity it was not needed to proceed with a 2-phase deprecation
as far as the functions were 100% internal to upgrade.

This is the list of deleted functions, all them docummented in their
corresponding upgrade.txt files:

- repository_picasa_admin_upgrade_notification();
- repository_googledocs_admin_upgrade_notification();
- repository_boxnet_admin_upgrade_notification();
- repository_alfresco_admin_security_key_notice();
- qtype_essay_convert_to_html();
- portfolio_picasa_admin_upgrade_notification();
- portfolio_googledocs_admin_upgrade_notification();
- portfolio_boxnet_admin_upgrade_notification();
- mod_book_migrate_moddata_dir_to_legacy();
- mod_book_migrate_all_areas();
- mod_book_migrate_area();
- mod_assignment_pending_upgrades_notification();
- upgrade_mysql_fix_unsigned_and_lob_columns();
- upgrade_course_completion_remove_duplicates();
- upgrade_save_orphaned_questions();
- upgrade_rename_old_backup_files_using_shortname();
- upgrade_mssql_nvarcharmax();
- upgrade_mssql_varbinarymax();
- upgrade_fix_missing_root_folders();
- upgrade_course_modules_sequences();
- upgrade_grade_item_fix_sortorder();
- upgrade_availability_item();
2016-02-15 18:38:21 +01:00
Marina Glancy 0d1e545612 MDL-51132 tags: do not use user tags for tagging courses 2015-09-05 11:21:15 +08:00
Adrian Greeve 316c560cc5 MDL-50757 gradebook: Update fix for pre 2.8 upgrades.
Moodle installations that updated before the 2.8 grade push
were being flagged for a gradebook freeze. This was resulting in
calculated grades being shown as different to how they were
displayed before the upgrade. This fix retains the original
grade value.
2015-07-03 13:13:12 +08:00
Adrian Greeve 3f8a714f36 MDL-48239 gradebook: Oracle fix for string compare.
Update to upgradelib.php where string comparisions cause
phpunit failures in Oracle.
2015-07-02 12:30:26 +08:00
Adrian Greeve 4d4dcc2718 MDL-48239 gradebook: Calculated grades maxgrade now able to be set. 2015-07-02 11:13:25 +08:00
Marina Glancy 156d048659 MDL-49257 grades: fix bugs with extra credit weights
When we adjust the weights in natural grading (setup screen), the extra credit items
should not depend on other overrides. If extra credit item's weight was overriden, it stays as it is.
Otherwise it is calculated as itemgrademax / totalgrademax (total excludes extra credit items)
2015-06-23 14:25:50 +08:00
sam marshall 061e6b2864 MDL-44725 Availability: Replace groupmembersonly - upgrade, core (1)
* Upgrades existing data so that the groupmembersonly option is
  replaced with equivalent data for the new availability API.
* Removes the database field and admin setting used for
  groupmembersonly.
* Changes core modinfo library to remove/deprecate groupmembersonly
  data and functions.
* Changes other core library files to remove groupmembersonly
  references.

Includes deprecation of several functions, listed in lib/upgrade.txt.
2014-09-02 13:03:07 +01:00
Jason Fowler b5725a9727 MDL-45418 Files: Adding upgrade steps for publisher docs
Conflicts:
	lib/db/upgrade.php
	version.php
2014-06-10 19:18:35 +02:00
sam marshall 8e97006ad0 MDL-44070 Conditional availability enhancements (1): DB upgrade
Converts existing data to new structure in database as part of
upgrade, including a progress bar.

Deletes the database tables and fields that were used by the old
system and are no longer needed.
2014-04-07 18:27:43 +01:00
Marina Glancy 47644f7d6a MDL-38228 upgrade: Rewrite and re-apply script that fixes corrupt course modules to sequence relation 2013-11-05 14:20:50 +11:00
Petr Škoda 656250de83 MDL-11270 use NVARCHAR(MAX) and VARBINARY(MAX) in SQL Server 2013-07-26 09:28:50 +02:00
Petr Škoda 57160c25d7 MDL-36493 improve timeout handling in mysql upgrade
Credit goes to Mark Nielsen, thanks.
2012-12-15 11:43:52 +01:00
Petr Škoda 801ae0f4d8 MDL-36493 improve performance of mysql unsigned/lob upgrade 2012-12-15 11:43:52 +01:00
Petr Škoda 3182d885e7 MDL-35080 skip views and weird tables in mysql structure upgrades 2012-09-01 16:23:08 +02:00
Petr Škoda 72263b8f33 MDL-34782 detect code abusing integer limits in mysql database
It is allowed to store only ranges specified in install.xml, for integers it means number of digits specified in size.
2012-08-10 10:18:19 +02:00
Petr Skoda e427ad302f MDL-32595 fix mysql int and lob defaults during conversion
Integer columns can not have empty string default, lobs fields handle empty strings defaults automatically too if null not allowed.
2012-04-27 13:45:10 +02:00
Eloy Lafuente (stronk7) 39b90b5152 MDL-30981 Upgrade API: Added related phpdocs 2012-04-02 00:40:13 +02:00
Petr Skoda 436650b075 MDL-31985 convert all existing LOBs 2012-03-11 15:51:49 +01:00
Petr Skoda 7385cc000e MDL-27982 add unsigned removal for mysql 2012-03-06 12:04:48 +01:00
Petr Skoda 2e210163ee MDL-30610 remove outdated main upgrade code 2011-12-23 10:38:13 +01:00
Petr Skoda 5bca744cad MDL-30467 skip deleted users during pix upgrade 2011-11-26 09:17:02 +01:00
Petr Skoda 980a952c34 MDL-22584 deal with oversized dir and file names during upgrade 2011-07-23 11:34:30 +02:00
Ruslan Kabalin d004c4b20a MDL-27171 messages: fix bug in upgrade_populate_default_messaging_prefs
isset check assumed that $defaultpreferences is the object

Signed-off-by: Ruslan Kabalin <ruslan.kabalin@luns.net.uk>
2011-06-01 12:30:28 +01:00
Ruslan Kabalin e8fc7940a8 MDL-27171 messages: $defaultpreferences is an object, use isset instead.
Signed-off-by: Ruslan Kabalin <ruslan.kabalin@luns.net.uk>
2011-05-31 09:46:22 +01:00
Ruslan Kabalin 7a04c476a2 MDL-27171 messages: implement new syntax in messages.php and update processing
The new messaging default settings can be set in messages.php and deployed
during installation. This also ensures the removing of settings on plugin
uninstallation and contains the update script to populate current default
settings on the existing system when the new feature is introduced.

For security reason we have to avoid using library functions in upgrade
function, so we set defaults the blind way. At this point we do not expect
plugins to have individual messaging defaults presets anyway. The site
defaults are the same as were set for each user using
message_set_default_message_preferences function.

Signed-off-by: Ruslan Kabalin <ruslan.kabalin@luns.net.uk>
2011-05-27 14:06:56 +01:00
Eloy Lafuente (stronk7) 9700d6835d Merge branch 'w05_MDL-26172_20_groupupgrade' of git://github.com/skodak/moodle 2011-01-31 15:17:33 +01:00
Petr Skoda 73af286bc8 MDL-26172 skip invalid group records during upgrade 2011-01-29 19:20:34 +01:00
Eloy Lafuente (stronk7) 5a4a7b425b MDL-25708 recordsets - fix upgradelib and dml stuff 2011-01-25 19:59:00 +01:00
Petr Skoda a290625efb fixed incorrect progress bar name 2010-12-09 09:09:21 +00:00
Sam Hemelryk bac233d326 backup MDL-22184 Scheduled backups are now possible again through cron.
AMOS BEGIN
 MOV [move scheduledsetup,core_backup],[automatedsetup,core_backup]
 MOV [scheduledsettings,core_backup],[automatedsettings,core_backup]
 MOV [scheduledstorage,core_backup],[automatedstorage,core_backup]
 MOV [scheduledstoragehelp,core_backup],[automatedstoragehelp,core_backup]
 MOV [scheduledbackupsinactive,core],[automatedbackupsinactive,core_backup]
 MOV [scheduledbackupstatus,core],[automatedbackupstatus,core_backup]
 CPY [schedule,core],[automatedbackupschedule,core_backup]
 MOV [backupschedulehelp,core],[automatedbackupschedulehelp,core_backup]
AMOS END
2010-11-10 06:07:43 +00:00
Petr Skoda 0ed7146b02 MDL-22584 fixed non standard space char breaking file upgrades 2010-11-01 16:00:47 +00:00
Petr Skoda d217b95068 MDL-22584 detect file paths that are too long to fit into 255 char db field 2010-10-26 19:14:22 +00:00