diff --git a/civicrm.php b/civicrm.php index 35596651bf4a533a9b6787655268f20ca5b4db6a..7944447eb66bcf60419a9b3d2ae6b1a4014be9bc 100644 --- a/civicrm.php +++ b/civicrm.php @@ -2,7 +2,7 @@ /** * Plugin Name: CiviCRM * Description: CiviCRM - Growing and Sustaining Relationships - * Version: 5.49.1 + * Version: 5.49.2 * Requires at least: 4.9 * Requires PHP: 7.2 * Author: CiviCRM LLC @@ -36,7 +36,7 @@ if (!defined('ABSPATH')) { } // Set version here: changing it forces Javascript and CSS to reload. -define('CIVICRM_PLUGIN_VERSION', '5.49.1'); +define('CIVICRM_PLUGIN_VERSION', '5.49.2'); // Store reference to this file. if (!defined('CIVICRM_PLUGIN_FILE')) { diff --git a/civicrm/CRM/Core/DAO/ActionSchedule.php b/civicrm/CRM/Core/DAO/ActionSchedule.php index cd58cfb12d447ea6b14c552adbdbbe95ae7b63dd..e20791704ccd9a8060e4f0621ed5a13ada672f08 100644 --- a/civicrm/CRM/Core/DAO/ActionSchedule.php +++ b/civicrm/CRM/Core/DAO/ActionSchedule.php @@ -6,7 +6,7 @@ * * Generated from xml/schema/CRM/Core/ActionSchedule.xml * DO NOT EDIT. Generated by CRM_Core_CodeGen - * (GenCodeChecksum:444acdd7b222ed9f593b0b84aebfb763) + * (GenCodeChecksum:79492485b0099dc4a6a101f3191d64dd) */ /** @@ -67,7 +67,7 @@ class CRM_Core_DAO_ActionSchedule extends CRM_Core_DAO { /** * Is this the recipient criteria limited to OR in addition to? * - * @var bool|string + * @var bool|string|null * (SQL type: tinyint) * Note that values will be retrieved from the database as a string. */ @@ -512,9 +512,7 @@ class CRM_Core_DAO_ActionSchedule extends CRM_Core_DAO { 'type' => CRM_Utils_Type::T_BOOLEAN, 'title' => ts('Limit To'), 'description' => ts('Is this the recipient criteria limited to OR in addition to?'), - 'required' => TRUE, 'where' => 'civicrm_action_schedule.limit_to', - 'default' => '1', 'table_name' => 'civicrm_action_schedule', 'entity' => 'ActionSchedule', 'bao' => 'CRM_Core_BAO_ActionSchedule', diff --git a/civicrm/CRM/Upgrade/Incremental/php/FiveFortyNine.php b/civicrm/CRM/Upgrade/Incremental/php/FiveFortyNine.php index e6d0ec2d342a9052af26da4ae237145d69491351..0bf8a9f952851ff67273272d370b5ecc3f4fe597 100644 --- a/civicrm/CRM/Upgrade/Incremental/php/FiveFortyNine.php +++ b/civicrm/CRM/Upgrade/Incremental/php/FiveFortyNine.php @@ -21,6 +21,38 @@ */ class CRM_Upgrade_Incremental_php_FiveFortyNine extends CRM_Upgrade_Incremental_Base { + /** + * When executing 5.49.2 upgrade-step, it decides whether to fix limit-to. Remember that decision. + * + * Note: You cannot _generally_ use object-properties to communicate between functions in this class + * (because they reset in diff AJAX requests). + * + * However, you can _specifically_ communicate between `upgrade_N_N_N()` and `setPostUpgradeMessage()`. + * This is because they are guaranteed to run in the same call (as part of `doIncrementalUpgradeStep()`). + * + * @var bool|null + */ + private $executedLimitToFix; + + public function setPreUpgradeMessage(&$preUpgradeMessage, $rev, $currentVer = NULL) { + $willExecuteLimitToFix = (bool) version_compare(CRM_Core_BAO_Domain::version(), '5.49.beta1', '>='); + if ($rev == '5.49.2' && $willExecuteLimitToFix) { + $message = $this->createLimitToMessage(); + if ($message) { + $preUpgradeMessage .= "<p>{$message}</p>"; + } + } + } + + public function setPostUpgradeMessage(&$postUpgradeMessage, $rev) { + if ($rev == '5.49.2' && $this->executedLimitToFix === TRUE) { + $message = $this->createLimitToMessage(); + if ($message) { + $postUpgradeMessage .= "<p><strong>" . ts('WARNING') . "</strong>: {$message}</p>"; + } + } + } + public static function findBooleanColumns(): array { $r = []; $files = CRM_Utils_File::findFiles(__DIR__ . '/FiveFortyNine', '*.bool.php'); @@ -60,6 +92,48 @@ class CRM_Upgrade_Incremental_php_FiveFortyNine extends CRM_Upgrade_Incremental_ } } + /** + * Upgrade function. + * + * @param string $currentRev + * DB revision (which we are currently applying) + * @param string $startRev + * DB revision (when the upgrade started) + * @param string $finalRev + * DB revision (that we're aiming to reach, in the end) + */ + public function upgrade_5_49_2($currentRev, $startRev, $finalRev) { + if (empty($startRev)) { + throw new \RuntimeException("Error: Was somebody too clever about modifying the upgrader? We're missing a little-known but very-handy parameter!"); + } + $this->executedLimitToFix = (bool) version_compare($startRev, '5.49.beta1', '>='); + if ($this->executedLimitToFix) { + $this->addTask('Update "civicrm_action_schedule.limit_to" to re-enable "NULL" values', 'changeBooleanColumnLimitTo'); + } + } + + public function createLimitToMessage(): ?string { + $suspectRecords = CRM_Core_DAO::singleValueQuery("SELECT GROUP_CONCAT(id SEPARATOR \", #\") FROM civicrm_action_schedule WHERE limit_to=0 AND (recipient_manual IS NOT NULL OR group_id IS NOT NULL)"); + if (!empty($suspectRecords)) { + return ts('This site previously executed an early version of 5.49, which may have incorrectly modified some scheduled reminders. After upgrading, review these reminders (<code>%1</code>). <a %2>(Learn more...)</a>', [ + 1 => '#' . $suspectRecords, + 2 => 'target="blank" href="https://civicrm.org/redirect/reminders-5.49"', + ]); + } + else { + return NULL; + } + } + + /** + * Revert boolean default civicrm_action_schedule.limit_to to be NULL + */ + public static function changeBooleanColumnLimitTo() { + CRM_Core_DAO::executeQuery("ALTER TABLE `civicrm_action_schedule` CHANGE `limit_to` `limit_to` tinyint NULL COMMENT 'Is this the recipient criteria limited to OR in addition to?'", [], TRUE, NULL, FALSE, FALSE); + CRM_Core_DAO::executeQuery("UPDATE `civicrm_action_schedule` SET `limit_to` = NULL WHERE `limit_to` = 0 AND `group_id` IS NULL AND recipient_manual IS NULL", [], TRUE, NULL, FALSE, FALSE); + return TRUE; + } + /** * Converts a boolean table column to be NOT NULL * @param CRM_Queue_TaskContext $ctx diff --git a/civicrm/CRM/Upgrade/Incremental/php/FiveFortyNine/Core.bool.php b/civicrm/CRM/Upgrade/Incremental/php/FiveFortyNine/Core.bool.php index 504fc370ac3ad6cbe9049951ead0c5627d69ba5b..1e6732cbf746a8d05ae2c32fe22aa4df18e6212e 100644 --- a/civicrm/CRM/Upgrade/Incremental/php/FiveFortyNine/Core.bool.php +++ b/civicrm/CRM/Upgrade/Incremental/php/FiveFortyNine/Core.bool.php @@ -1,7 +1,6 @@ <?php return [ 'civicrm_action_schedule' => [ - 'limit_to' => "DEFAULT 1 COMMENT 'Is this the recipient criteria limited to OR in addition to?'", 'is_repeat' => "DEFAULT 0", 'is_active' => "DEFAULT 1 COMMENT 'Is this option active?'", 'record_activity' => "DEFAULT 0 COMMENT 'Record Activity for this reminder?'", diff --git a/civicrm/civicrm-version.php b/civicrm/civicrm-version.php index c41d2c2d7c5a93b926fa1b760b40f1868d547cbd..750cd37f8d050791f906953db18f86a2d535ec2c 100644 --- a/civicrm/civicrm-version.php +++ b/civicrm/civicrm-version.php @@ -1,7 +1,7 @@ <?php /** @deprecated */ function civicrmVersion( ) { - return array( 'version' => '5.49.1', + return array( 'version' => '5.49.2', 'cms' => 'Wordpress', 'revision' => '' ); } diff --git a/civicrm/ext/afform/admin/info.xml b/civicrm/ext/afform/admin/info.xml index 99d6d58ede3e15a08ee3f6516377f2ce85ce5051..53c48a632b3efea5c0c3def1dfdf8385b7e42f60 100644 --- a/civicrm/ext/afform/admin/info.xml +++ b/civicrm/ext/afform/admin/info.xml @@ -13,7 +13,7 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2020-01-09</releaseDate> - <version>5.49.1</version> + <version>5.49.2</version> <develStage>beta</develStage> <compatibility> <ver>5.23</ver> diff --git a/civicrm/ext/afform/core/info.xml b/civicrm/ext/afform/core/info.xml index 20d90b3eb465e74778ed103121605024a5912399..57345498602eef9c81971767a61c0a32cbd9ee27 100644 --- a/civicrm/ext/afform/core/info.xml +++ b/civicrm/ext/afform/core/info.xml @@ -13,7 +13,7 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2020-01-09</releaseDate> - <version>5.49.1</version> + <version>5.49.2</version> <develStage>beta</develStage> <compatibility> <ver>5.23</ver> diff --git a/civicrm/ext/afform/html/info.xml b/civicrm/ext/afform/html/info.xml index 2fcd8a56906481e73abae8902ec68748e2a03e6d..4683601fba4ad006c9851ce6f79f8be01221da2d 100644 --- a/civicrm/ext/afform/html/info.xml +++ b/civicrm/ext/afform/html/info.xml @@ -13,7 +13,7 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2020-01-09</releaseDate> - <version>5.49.1</version> + <version>5.49.2</version> <develStage>alpha</develStage> <compatibility> <ver>5.23</ver> diff --git a/civicrm/ext/afform/mock/info.xml b/civicrm/ext/afform/mock/info.xml index 622f7cd767357796cbde3b790a209010434511c3..22fc565b7888f90b43fa38b67eb6d93150778108 100644 --- a/civicrm/ext/afform/mock/info.xml +++ b/civicrm/ext/afform/mock/info.xml @@ -12,7 +12,7 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2020-01-09</releaseDate> - <version>5.49.1</version> + <version>5.49.2</version> <tags> <tag>mgmt:hidden</tag> </tags> diff --git a/civicrm/ext/authx/info.xml b/civicrm/ext/authx/info.xml index 004f016b4bab3cca73ab1a1e71994d211c46514f..209be074ef608465f0668a6a0002c15f4af21c94 100644 --- a/civicrm/ext/authx/info.xml +++ b/civicrm/ext/authx/info.xml @@ -15,7 +15,7 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2021-02-11</releaseDate> - <version>5.49.1</version> + <version>5.49.2</version> <develStage>alpha</develStage> <compatibility> <ver>5.0</ver> diff --git a/civicrm/ext/civicrm_admin_ui/info.xml b/civicrm/ext/civicrm_admin_ui/info.xml index 318c651907703c71f86e5a332dcdf9df1d0b49ce..abf94c695444238b4e0584c61fc28c9894adbb29 100644 --- a/civicrm/ext/civicrm_admin_ui/info.xml +++ b/civicrm/ext/civicrm_admin_ui/info.xml @@ -15,7 +15,7 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2022-01-02</releaseDate> - <version>5.49.1</version> + <version>5.49.2</version> <develStage>alpha</develStage> <compatibility> <ver>5.47</ver> diff --git a/civicrm/ext/civigrant/info.xml b/civicrm/ext/civigrant/info.xml index 05bb82a0164d63a1df0b975fd25f71e121f2a87a..1d5fb5ef6cd1dbab1a720529d354be2ba5376f32 100644 --- a/civicrm/ext/civigrant/info.xml +++ b/civicrm/ext/civigrant/info.xml @@ -13,7 +13,7 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2021-11-11</releaseDate> - <version>5.49.1</version> + <version>5.49.2</version> <develStage>stable</develStage> <compatibility> <ver>5.47</ver> diff --git a/civicrm/ext/ckeditor4/info.xml b/civicrm/ext/ckeditor4/info.xml index 8064f83c4149677bb332429c1e59018e31a4a6c9..b46631f433345fdc8aeb32423467bb2e2ece9b91 100644 --- a/civicrm/ext/ckeditor4/info.xml +++ b/civicrm/ext/ckeditor4/info.xml @@ -15,7 +15,7 @@ <url desc="Licensing">https://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2021-05-23</releaseDate> - <version>5.49.1</version> + <version>5.49.2</version> <develStage>stable</develStage> <compatibility> <ver>5.39</ver> diff --git a/civicrm/ext/contributioncancelactions/info.xml b/civicrm/ext/contributioncancelactions/info.xml index 8870aac6ef23f664967fe98cb97de175b8273476..20fab18226aa378db0c5c7d68488e6284dd90a68 100644 --- a/civicrm/ext/contributioncancelactions/info.xml +++ b/civicrm/ext/contributioncancelactions/info.xml @@ -15,7 +15,7 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2020-10-12</releaseDate> - <version>5.49.1</version> + <version>5.49.2</version> <develStage>stable</develStage> <compatibility> <ver>5.32</ver> diff --git a/civicrm/ext/eventcart/info.xml b/civicrm/ext/eventcart/info.xml index 5a14586e69fb015ca390ec7baf37be971bbd621a..e8ba02cbadf38bf0f723c2ee2c8c7ee69b79bc7d 100644 --- a/civicrm/ext/eventcart/info.xml +++ b/civicrm/ext/eventcart/info.xml @@ -13,7 +13,7 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2020-08-03</releaseDate> - <version>5.49.1</version> + <version>5.49.2</version> <tags> <tag>mgmt:hidden</tag> </tags> diff --git a/civicrm/ext/ewaysingle/info.xml b/civicrm/ext/ewaysingle/info.xml index 4e64e2fb37d765d6825a474bef90a857114b7062..fafa37f2b47ca61ef4dee7eeb6020e1fa3f9255b 100644 --- a/civicrm/ext/ewaysingle/info.xml +++ b/civicrm/ext/ewaysingle/info.xml @@ -15,7 +15,7 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2020-10-07</releaseDate> - <version>5.49.1</version> + <version>5.49.2</version> <tags> <tag>mgmt:hidden</tag> </tags> diff --git a/civicrm/ext/financialacls/info.xml b/civicrm/ext/financialacls/info.xml index d92fd8b03b28fc3471b15af781c93c96ec0d22a5..9989f3fbc1be966048c08d3c9dab80e75591ce28 100644 --- a/civicrm/ext/financialacls/info.xml +++ b/civicrm/ext/financialacls/info.xml @@ -15,7 +15,7 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2020-08-27</releaseDate> - <version>5.49.1</version> + <version>5.49.2</version> <develStage>stable</develStage> <compatibility> <ver>5.30</ver> diff --git a/civicrm/ext/flexmailer/info.xml b/civicrm/ext/flexmailer/info.xml index 80e38e182f94a975a71036815e602ff0644e51c9..dd52ee4490a868eae6da2fa5ccba0a5b3f59f89d 100644 --- a/civicrm/ext/flexmailer/info.xml +++ b/civicrm/ext/flexmailer/info.xml @@ -15,7 +15,7 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2020-08-05</releaseDate> - <version>5.49.1</version> + <version>5.49.2</version> <develStage>stable</develStage> <comments> FlexMailer is an email delivery engine which replaces the internal guts diff --git a/civicrm/ext/greenwich/info.xml b/civicrm/ext/greenwich/info.xml index 31f28209daa26bdd4bb8ab5564a0fccaca43847a..d17690ea120d25b744e7b1e8237f0c20368a2399 100644 --- a/civicrm/ext/greenwich/info.xml +++ b/civicrm/ext/greenwich/info.xml @@ -15,7 +15,7 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2020-07-21</releaseDate> - <version>5.49.1</version> + <version>5.49.2</version> <tags> <tag>mgmt:hidden</tag> </tags> diff --git a/civicrm/ext/legacycustomsearches/info.xml b/civicrm/ext/legacycustomsearches/info.xml index d8e1abdabd189efb0b3f0963b9c45f84ad8e35b3..2c6987fca6c52ff3b8f0e2ea15bb4f8ed672bb3b 100644 --- a/civicrm/ext/legacycustomsearches/info.xml +++ b/civicrm/ext/legacycustomsearches/info.xml @@ -15,7 +15,7 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2021-07-25</releaseDate> - <version>5.49.1</version> + <version>5.49.2</version> <develStage>stable</develStage> <tags> <tag>mgmt:hidden</tag> diff --git a/civicrm/ext/message_admin/info.xml b/civicrm/ext/message_admin/info.xml index 73bb357545acb8fe60376412c93e553fca9f21e1..80ef6183082101591bb9a0c03ca83cc6bbe70b22 100644 --- a/civicrm/ext/message_admin/info.xml +++ b/civicrm/ext/message_admin/info.xml @@ -15,7 +15,7 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2021-06-12</releaseDate> - <version>5.49.1</version> + <version>5.49.2</version> <tags> <tag>mgmt:hidden</tag> </tags> diff --git a/civicrm/ext/oauth-client/info.xml b/civicrm/ext/oauth-client/info.xml index 4eed9ef16855eaf4bf9eaa8440df12ab0c4c2a8f..f86a3ec012b749bcf7ff999c581b4a4bd83409bd 100644 --- a/civicrm/ext/oauth-client/info.xml +++ b/civicrm/ext/oauth-client/info.xml @@ -15,7 +15,7 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2020-10-23</releaseDate> - <version>5.49.1</version> + <version>5.49.2</version> <develStage>stable</develStage> <compatibility> <ver>5.38</ver> diff --git a/civicrm/ext/payflowpro/info.xml b/civicrm/ext/payflowpro/info.xml index 9ebf97953fcdb2d4e38e0dd275e9870b91e1eca8..19db0e066e902123545392b111483f26908f7ba9 100644 --- a/civicrm/ext/payflowpro/info.xml +++ b/civicrm/ext/payflowpro/info.xml @@ -15,7 +15,7 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2021-04-13</releaseDate> - <version>5.49.1</version> + <version>5.49.2</version> <develStage>stable</develStage> <compatibility> <ver>5.0</ver> diff --git a/civicrm/ext/recaptcha/info.xml b/civicrm/ext/recaptcha/info.xml index 85b2c474bacbfb1c77d1a445630d39038ed4d23e..b89b5ee271ec2dd9b3ed497779c7173d08d9b6a5 100644 --- a/civicrm/ext/recaptcha/info.xml +++ b/civicrm/ext/recaptcha/info.xml @@ -13,7 +13,7 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2021-04-03</releaseDate> - <version>5.49.1</version> + <version>5.49.2</version> <tags> <tag>mgmt:hidden</tag> </tags> diff --git a/civicrm/ext/search_kit/info.xml b/civicrm/ext/search_kit/info.xml index 2237b43eb3e452911eb5009baad0defdf425ec64..e0d7b946c16bc464200e3327e826e4882426610a 100644 --- a/civicrm/ext/search_kit/info.xml +++ b/civicrm/ext/search_kit/info.xml @@ -15,7 +15,7 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2021-01-06</releaseDate> - <version>5.49.1</version> + <version>5.49.2</version> <develStage>stable</develStage> <compatibility> <ver>5.38</ver> diff --git a/civicrm/ext/sequentialcreditnotes/info.xml b/civicrm/ext/sequentialcreditnotes/info.xml index 8ba7edd27ccf94657dcddbcd7d0bb7d176028eca..19b49b2dbceaff858c42c8f801949e646fae9837 100644 --- a/civicrm/ext/sequentialcreditnotes/info.xml +++ b/civicrm/ext/sequentialcreditnotes/info.xml @@ -15,7 +15,7 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2020-01-28</releaseDate> - <version>5.49.1</version> + <version>5.49.2</version> <tags> <tag>mgmt:hidden</tag> </tags> diff --git a/civicrm/release-notes.md b/civicrm/release-notes.md index d9b590dd13fae58e7216ec8c97417bc39030fcf9..0abb5634a933c6102d11f93db7c41e0e61c6b11c 100644 --- a/civicrm/release-notes.md +++ b/civicrm/release-notes.md @@ -15,6 +15,15 @@ Other resources for identifying changes are: * https://github.com/civicrm/civicrm-joomla * https://github.com/civicrm/civicrm-wordpress +## CiviCRM 5.49.2 + +Released May 19, 2022 + +- **[Synopsis](release-notes/5.49.2.md#synopsis)** +- **[Bugs resolved](release-notes/5.49.2.md#bugs)** +- **[Credits](release-notes/5.49.2.md#credits)** +- **[Feedback](release-notes/5.49.2.md#feedback)** + ## CiviCRM 5.49.1 Released May 6, 2022 diff --git a/civicrm/release-notes/5.49.2.md b/civicrm/release-notes/5.49.2.md new file mode 100644 index 0000000000000000000000000000000000000000..02605af27e058f40ad0ec7e314968a40a261497f --- /dev/null +++ b/civicrm/release-notes/5.49.2.md @@ -0,0 +1,40 @@ +# CiviCRM 5.49.2 + +Released May 19, 2022 + +- **[Synopsis](#synopsis)** +- **[Bugs resolved](#bugs)** +- **[Credits](#credits)** +- **[Feedback](#feedback)** + +## <a name="synopsis"></a>Synopsis + +| *Does this version...?* | | +| --------------------------------------------------------------- | -------- | +| Change the database schema? | no | +| Alter the API? | no | +| **Require attention to configuration options?** | **yes** | +| **Fix problems installing or upgrading to a previous version?** | **yes** | +| Introduce features? | no | +| **Fix bugs?** | **yes** | + +## <a name="bugs"></a>Bugs resolved + +* **_Scheduled Reminders_: Fix storage of "Limit To" option. ([dev/core#3464](https://lab.civicrm.org/dev/core/-/issues/3464), [dev/core#3465](https://lab.civicrm.org/dev/core/-/issues/3465): [#23497](https://github.com/civicrm/civicrm-core/pull/23497))** + + On sites which used 5.49.0 or 5.49.1, scheduled reminders could store incorrect values of the "Limit To" option. This + can lead to excessive notifications. The upgrader should significantly reduce this risk, but it may advise you to + review the configuration. ([Learn more](https://civicrm.org/redirect/reminders-5.49)) + +## <a name="credits"></a>Credits + +This release was developed by the following authors and reviewers: + +Wikimedia Foundation - Eileen McNaughton; Megaphone Technology Consulting - Jon Goldberg; +JMA Consulting - Monish Deb; CiviCRM - Tim Otten; Agileware - Justin Freeman + +## <a name="feedback"></a>Feedback + +These release notes are edited by Tim Otten and Andie Hunt. If you'd like to +provide feedback on them, please login to https://chat.civicrm.org/civicrm and +contact `@agh1`. diff --git a/civicrm/sql/civicrm.mysql b/civicrm/sql/civicrm.mysql index 7909ab855ac5ea592c1d9141cab971049abcabde..09ce030ce1249f082c342d2765f85cc047b76cb5 100644 --- a/civicrm/sql/civicrm.mysql +++ b/civicrm/sql/civicrm.mysql @@ -2877,7 +2877,7 @@ CREATE TABLE `civicrm_action_schedule` ( `name` varchar(64) COMMENT 'Name of the action(reminder)', `title` varchar(64) COMMENT 'Title of the action(reminder)', `recipient` varchar(64) COMMENT 'Recipient', - `limit_to` tinyint NOT NULL DEFAULT 1 COMMENT 'Is this the recipient criteria limited to OR in addition to?', + `limit_to` tinyint COMMENT 'Is this the recipient criteria limited to OR in addition to?', `entity_value` varchar(255) COMMENT 'Entity value', `entity_status` varchar(64) COMMENT 'Entity status', `start_action_offset` int unsigned DEFAULT 0 COMMENT 'Reminder Interval.', diff --git a/civicrm/sql/civicrm_data.mysql b/civicrm/sql/civicrm_data.mysql index 43b05df1bbed32fd42207b552b3d465066fc98e6..124012cff0090c821b294298c265d9e6cded4eb6 100644 --- a/civicrm/sql/civicrm_data.mysql +++ b/civicrm/sql/civicrm_data.mysql @@ -23787,4 +23787,4 @@ INSERT INTO `civicrm_report_instance` ( `domain_id`, `title`, `report_id`, `description`, `permission`, `form_values`) VALUES ( @domainID, 'Survey Details', 'survey/detail', 'Detailed report for canvassing, phone-banking, walk lists or other surveys.', 'access CiviReport', 'a:39:{s:6:"fields";a:2:{s:9:"sort_name";s:1:"1";s:6:"result";s:1:"1";}s:22:"assignee_contact_id_op";s:2:"eq";s:25:"assignee_contact_id_value";s:0:"";s:12:"sort_name_op";s:3:"has";s:15:"sort_name_value";s:0:"";s:17:"street_number_min";s:0:"";s:17:"street_number_max";s:0:"";s:16:"street_number_op";s:3:"lte";s:19:"street_number_value";s:0:"";s:14:"street_name_op";s:3:"has";s:17:"street_name_value";s:0:"";s:15:"postal_code_min";s:0:"";s:15:"postal_code_max";s:0:"";s:14:"postal_code_op";s:3:"lte";s:17:"postal_code_value";s:0:"";s:7:"city_op";s:3:"has";s:10:"city_value";s:0:"";s:20:"state_province_id_op";s:2:"in";s:23:"state_province_id_value";a:0:{}s:13:"country_id_op";s:2:"in";s:16:"country_id_value";a:0:{}s:12:"survey_id_op";s:2:"in";s:15:"survey_id_value";a:0:{}s:12:"status_id_op";s:2:"eq";s:15:"status_id_value";s:1:"1";s:11:"custom_1_op";s:2:"in";s:14:"custom_1_value";a:0:{}s:11:"custom_2_op";s:2:"in";s:14:"custom_2_value";a:0:{}s:17:"custom_3_relative";s:1:"0";s:13:"custom_3_from";s:0:"";s:11:"custom_3_to";s:0:"";s:11:"description";s:75:"Detailed report for canvassing, phone-banking, walk lists or other surveys.";s:13:"email_subject";s:0:"";s:8:"email_to";s:0:"";s:8:"email_cc";s:0:"";s:10:"permission";s:17:"access CiviReport";s:6:"groups";s:0:"";s:9:"domain_id";i:1;}'); -UPDATE civicrm_domain SET version = '5.49.1'; +UPDATE civicrm_domain SET version = '5.49.2'; diff --git a/civicrm/sql/civicrm_generated.mysql b/civicrm/sql/civicrm_generated.mysql index 6c4502f2bacb968a5c1595340398fe722990495a..88b3ebb68392503870e6a5f4a512518fa34ac19b 100644 --- a/civicrm/sql/civicrm_generated.mysql +++ b/civicrm/sql/civicrm_generated.mysql @@ -2933,7 +2933,7 @@ UNLOCK TABLES; LOCK TABLES `civicrm_domain` WRITE; /*!40000 ALTER TABLE `civicrm_domain` DISABLE KEYS */; INSERT INTO `civicrm_domain` (`id`, `name`, `description`, `version`, `contact_id`, `locales`, `locale_custom_strings`) VALUES - (1,'Default Domain Name',NULL,'5.49.1',1,NULL,'a:1:{s:5:\"en_US\";a:0:{}}'); + (1,'Default Domain Name',NULL,'5.49.2',1,NULL,'a:1:{s:5:\"en_US\";a:0:{}}'); /*!40000 ALTER TABLE `civicrm_domain` ENABLE KEYS */; UNLOCK TABLES; diff --git a/civicrm/vendor/autoload.php b/civicrm/vendor/autoload.php index 0bbd8ba33dd2328f60d81d58f35ccef857c36838..685de89478e0ee77af88fd10d8296a61d5a7cf5a 100644 --- a/civicrm/vendor/autoload.php +++ b/civicrm/vendor/autoload.php @@ -4,4 +4,4 @@ require_once __DIR__ . '/composer/autoload_real.php'; -return ComposerAutoloaderInit94e8657ad6f6b0afeddeddcc0533ddb0::getLoader(); +return ComposerAutoloaderInit1cb5fcc0859fdc6e7b70d9662a9f78fa::getLoader(); diff --git a/civicrm/vendor/composer/autoload_real.php b/civicrm/vendor/composer/autoload_real.php index 1b1090fa2d63f1ca22fca8eb0085226a1446f144..2ac2d79cf1a3c88cf002fbadb5fd8e24fd9bad1e 100644 --- a/civicrm/vendor/composer/autoload_real.php +++ b/civicrm/vendor/composer/autoload_real.php @@ -2,7 +2,7 @@ // autoload_real.php @generated by Composer -class ComposerAutoloaderInit94e8657ad6f6b0afeddeddcc0533ddb0 +class ComposerAutoloaderInit1cb5fcc0859fdc6e7b70d9662a9f78fa { private static $loader; @@ -19,9 +19,9 @@ class ComposerAutoloaderInit94e8657ad6f6b0afeddeddcc0533ddb0 return self::$loader; } - spl_autoload_register(array('ComposerAutoloaderInit94e8657ad6f6b0afeddeddcc0533ddb0', 'loadClassLoader'), true, true); + spl_autoload_register(array('ComposerAutoloaderInit1cb5fcc0859fdc6e7b70d9662a9f78fa', 'loadClassLoader'), true, true); self::$loader = $loader = new \Composer\Autoload\ClassLoader(); - spl_autoload_unregister(array('ComposerAutoloaderInit94e8657ad6f6b0afeddeddcc0533ddb0', 'loadClassLoader')); + spl_autoload_unregister(array('ComposerAutoloaderInit1cb5fcc0859fdc6e7b70d9662a9f78fa', 'loadClassLoader')); $includePaths = require __DIR__ . '/include_paths.php'; $includePaths[] = get_include_path(); @@ -31,7 +31,7 @@ class ComposerAutoloaderInit94e8657ad6f6b0afeddeddcc0533ddb0 if ($useStaticLoader) { require_once __DIR__ . '/autoload_static.php'; - call_user_func(\Composer\Autoload\ComposerStaticInit94e8657ad6f6b0afeddeddcc0533ddb0::getInitializer($loader)); + call_user_func(\Composer\Autoload\ComposerStaticInit1cb5fcc0859fdc6e7b70d9662a9f78fa::getInitializer($loader)); } else { $map = require __DIR__ . '/autoload_namespaces.php'; foreach ($map as $namespace => $path) { @@ -52,19 +52,19 @@ class ComposerAutoloaderInit94e8657ad6f6b0afeddeddcc0533ddb0 $loader->register(true); if ($useStaticLoader) { - $includeFiles = Composer\Autoload\ComposerStaticInit94e8657ad6f6b0afeddeddcc0533ddb0::$files; + $includeFiles = Composer\Autoload\ComposerStaticInit1cb5fcc0859fdc6e7b70d9662a9f78fa::$files; } else { $includeFiles = require __DIR__ . '/autoload_files.php'; } foreach ($includeFiles as $fileIdentifier => $file) { - composerRequire94e8657ad6f6b0afeddeddcc0533ddb0($fileIdentifier, $file); + composerRequire1cb5fcc0859fdc6e7b70d9662a9f78fa($fileIdentifier, $file); } return $loader; } } -function composerRequire94e8657ad6f6b0afeddeddcc0533ddb0($fileIdentifier, $file) +function composerRequire1cb5fcc0859fdc6e7b70d9662a9f78fa($fileIdentifier, $file) { if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) { require $file; diff --git a/civicrm/vendor/composer/autoload_static.php b/civicrm/vendor/composer/autoload_static.php index 1d17abc4cd97bb02a7bdea90fae58404832c6753..ea09bf3d20049f73b1b2f71aa8a8458b6cae6f0d 100644 --- a/civicrm/vendor/composer/autoload_static.php +++ b/civicrm/vendor/composer/autoload_static.php @@ -4,7 +4,7 @@ namespace Composer\Autoload; -class ComposerStaticInit94e8657ad6f6b0afeddeddcc0533ddb0 +class ComposerStaticInit1cb5fcc0859fdc6e7b70d9662a9f78fa { public static $files = array ( '320cde22f66dd4f5d3fd621d3e88b98f' => __DIR__ . '/..' . '/symfony/polyfill-ctype/bootstrap.php', @@ -677,11 +677,11 @@ class ComposerStaticInit94e8657ad6f6b0afeddeddcc0533ddb0 public static function getInitializer(ClassLoader $loader) { return \Closure::bind(function () use ($loader) { - $loader->prefixLengthsPsr4 = ComposerStaticInit94e8657ad6f6b0afeddeddcc0533ddb0::$prefixLengthsPsr4; - $loader->prefixDirsPsr4 = ComposerStaticInit94e8657ad6f6b0afeddeddcc0533ddb0::$prefixDirsPsr4; - $loader->prefixesPsr0 = ComposerStaticInit94e8657ad6f6b0afeddeddcc0533ddb0::$prefixesPsr0; - $loader->fallbackDirsPsr0 = ComposerStaticInit94e8657ad6f6b0afeddeddcc0533ddb0::$fallbackDirsPsr0; - $loader->classMap = ComposerStaticInit94e8657ad6f6b0afeddeddcc0533ddb0::$classMap; + $loader->prefixLengthsPsr4 = ComposerStaticInit1cb5fcc0859fdc6e7b70d9662a9f78fa::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInit1cb5fcc0859fdc6e7b70d9662a9f78fa::$prefixDirsPsr4; + $loader->prefixesPsr0 = ComposerStaticInit1cb5fcc0859fdc6e7b70d9662a9f78fa::$prefixesPsr0; + $loader->fallbackDirsPsr0 = ComposerStaticInit1cb5fcc0859fdc6e7b70d9662a9f78fa::$fallbackDirsPsr0; + $loader->classMap = ComposerStaticInit1cb5fcc0859fdc6e7b70d9662a9f78fa::$classMap; }, null, ClassLoader::class); } diff --git a/civicrm/xml/schema/Core/ActionSchedule.xml b/civicrm/xml/schema/Core/ActionSchedule.xml index 8ea04d1b7a9075a9a0b99e3be98ce31624b2c00f..1f89acb9cac05ec8ff8800b00f086a5c7d77cb75 100644 --- a/civicrm/xml/schema/Core/ActionSchedule.xml +++ b/civicrm/xml/schema/Core/ActionSchedule.xml @@ -53,8 +53,6 @@ <html> <label>Limit To</label> </html> - <default>1</default> - <required>true</required> <add>4.4</add> </field> <field> diff --git a/civicrm/xml/version.xml b/civicrm/xml/version.xml index 30e5ccb9fc2c84319fb3f30c47b965859c1dda56..925e051b49ba63a0ee86499ce08f8a8d83bd60cd 100644 --- a/civicrm/xml/version.xml +++ b/civicrm/xml/version.xml @@ -1,4 +1,4 @@ <?xml version="1.0" encoding="iso-8859-1" ?> <version> - <version_no>5.49.1</version_no> + <version_no>5.49.2</version_no> </version>