| 1 | # CiviCRM 5.17.0 |
| 2 | |
| 3 | Released September 4, 2019 |
| 4 | |
| 5 | - **[Synopsis](#synopsis)** |
| 6 | - **[Features](#features)** |
| 7 | - **[Bugs resolved](#bugs)** |
| 8 | - **[Miscellany](#misc)** |
| 9 | - **[Credits](#credits)** |
| 10 | - **[Feedback](#feedback)** |
| 11 | |
| 12 | ## <a name="synopsis"></a>Synopsis |
| 13 | |
| 14 | | *Does this version...?* | | |
| 15 | |:--------------------------------------------------------------- |:-------:| |
| 16 | | Fix security vulnerabilities? | no | |
| 17 | | **Change the database schema?** | **yes** | |
| 18 | | **Alter the API?** | **yes** | |
| 19 | | Require attention to configuration options? | no | |
| 20 | | **Fix problems installing or upgrading to a previous version?** | **yes** | |
| 21 | | **Introduce features?** | **yes** | |
| 22 | | **Fix bugs?** | **yes** | |
| 23 | |
| 24 | ## <a name="features"></a>Features |
| 25 | |
| 26 | ### Core CiviCRM |
| 27 | |
| 28 | - **Add unique names and unique title for recurrings. |
| 29 | ([14820](https://github.com/civicrm/civicrm-core/pull/14820))** |
| 30 | |
| 31 | Adds the key `unique_title` to the entity definition schema for situations where |
| 32 | multiple entities may be involved (e.g advanced search) and disambiguation is |
| 33 | needed |
| 34 | |
| 35 | - **Add query dispatcher to allow query modification |
| 36 | ([CRM-20445](https://issues.civicrm.org/jira/browse/CRM-20445): |
| 37 | [259](https://github.com/civicrm/civicrm-packages/pull/259) and |
| 38 | [180](https://github.com/civicrm/civicrm-packages/pull/180))** |
| 39 | |
| 40 | Allows a query to be modified from an extension, for example by prepending |
| 41 | data like '/* Query run by user 45*/'. |
| 42 | |
| 43 | - **Add support for bulkcreates |
| 44 | ([dev/core#1093](https://lab.civicrm.org/dev/core/issues/1093): |
| 45 | [14829](https://github.com/civicrm/civicrm-core/pull/14829) and |
| 46 | [14694](https://github.com/civicrm/civicrm-core/pull/14694))** |
| 47 | |
| 48 | Adds a bulkCreate function for CustomField so that one can create multiple |
| 49 | custom fields at the same time. This sets the stage for a new protocol |
| 50 | for how bulk create actions could look from a code point of view. |
| 51 | |
| 52 | - **Make admin panels hookable |
| 53 | ([dev/core#1104](https://lab.civicrm.org/dev/core/issues/1104): |
| 54 | [14734](https://github.com/civicrm/civicrm-core/pull/14734))** |
| 55 | |
| 56 | Adds the hook `alterAdminPanel` to allow extension developers to hide and show |
| 57 | elements on the admin screen. |
| 58 | |
| 59 | - **[EXPORT] add getPreview function |
| 60 | ([14782](https://github.com/civicrm/civicrm-core/pull/14782))** |
| 61 | |
| 62 | Adds a function to allow preview of export results. |
| 63 | |
| 64 | - **Export help info does not match code |
| 65 | ([dev/core#1120](https://lab.civicrm.org/dev/core/issues/1120): |
| 66 | [14830](https://github.com/civicrm/civicrm-core/pull/14830))** |
| 67 | |
| 68 | Improves the export UI when one selects "Merge All Contacts with the Same |
| 69 | Address" so that the field "Postal Greeting (merging > 2 contacts)" reads |
| 70 | "Postal Greeting (when merging contacts)" and the field "Addressee (merging > |
| 71 | 2 contacts)" reads "Addressee (when merging contacts)" and the code behind |
| 72 | these fields so that merging greater than 2 contacts or less than 2 contacts |
| 73 | functions the same. |
| 74 | |
| 75 | - **Can't show contact subtype in search views |
| 76 | ([core#1130](https://lab.civicrm.org/dev/core/issues/1130): |
| 77 | [14840](https://github.com/civicrm/civicrm-core/pull/14840))** |
| 78 | |
| 79 | This change ensures that one can use Contact Subtype as a result column in |
| 80 | Search Views. |
| 81 | |
| 82 | - **[REPORT] Allow extensions to join address, email and phone tables without |
| 83 | limiting to primary fields |
| 84 | ([14941](https://github.com/civicrm/civicrm-core/pull/14941))** |
| 85 | |
| 86 | Allows reports to join the address email and phone tables without limiting to |
| 87 | just primary fields and add a test to ensure this functionality stays in |
| 88 | place. |
| 89 | |
| 90 | - **Use metadata for getOptions abbreviation & include currency symbol |
| 91 | ([14969](https://github.com/civicrm/civicrm-core/pull/14969))** |
| 92 | |
| 93 | Refactors the "abbreviation" mode in getOptions to be more consistently |
| 94 | metadata-driven, and adds the currency symbol as an abbreviation to fetch. |
| 95 | |
| 96 | - **Error log improvements: Provide severity level and use Civi::log() |
| 97 | ([14222](https://github.com/civicrm/civicrm-core/pull/14222))** |
| 98 | |
| 99 | Improves the Error Logging functionality ` CRM_Core_Error::debug_var` by |
| 100 | adding an optional severity level parameter and using `Civi::log()`. |
| 101 | |
| 102 | - **Move the code to add employer from relationship backoffice form to BAO |
| 103 | ([14950](https://github.com/civicrm/civicrm-core/pull/14950))** |
| 104 | |
| 105 | Makes it so one can add the employer contact after a current 'Employee of' |
| 106 | relationship is created and adds an optional relationship.create API parameter |
| 107 | `is_current_employer`. |
| 108 | |
| 109 | - **[METADATA] Add titles to Mapping xml & DAOs |
| 110 | ([14867](https://github.com/civicrm/civicrm-core/pull/14867) and |
| 111 | [14975](https://github.com/civicrm/civicrm-core/pull/14975))** |
| 112 | |
| 113 | Adds some missing metadata to the Mapping & MappingField entities. |
| 114 | |
| 115 | - **Fix support for relative dates in urls |
| 116 | ([14893](https://github.com/civicrm/civicrm-core/pull/14893))** |
| 117 | |
| 118 | Improves url support for relative dates for fields that have been converted to |
| 119 | use datepicker. |
| 120 | |
| 121 | - **Add default location for API v3 creates of Address, IM, OpenID and Phone |
| 122 | ([14885](https://github.com/civicrm/civicrm-core/pull/14885))** |
| 123 | |
| 124 | - **EntityPageTrait: Set logged in contact ID as default if one is not |
| 125 | specified, this allows permission checks etc. to work properly. |
| 126 | ([14620](https://github.com/civicrm/civicrm-core/pull/14620))** |
| 127 | |
| 128 | Currently the `entitypagetrait` is only in use by |
| 129 | CRM_Contact_Page_View_Relationship. However the plan is to extend it to other |
| 130 | pages too, this PR updates it to get the logged in contact ID if none is |
| 131 | passed in - so it can be used on non-contact forms (eg. event lists). |
| 132 | |
| 133 | - **Move log and compilation dirs from "Runtime" to "Paths" |
| 134 | ([14718](https://github.com/civicrm/civicrm-core/pull/14718))** |
| 135 | |
| 136 | This is an update to the path-handling convention for data folders that allows |
| 137 | more intuitive management of file-paths. |
| 138 | |
| 139 | - **Use select2 to display field mappings |
| 140 | ([14794](https://github.com/civicrm/civicrm-core/pull/14794))** |
| 141 | |
| 142 | On the "Export Options" Screen for the "Use Saved Field Mapping" select field |
| 143 | adds the Description for the option (if one exists). |
| 144 | |
| 145 | - **expose smarty's compile_check to be overridden in civicrm.settings.php |
| 146 | ([14706](https://github.com/civicrm/civicrm-core/pull/14706))** |
| 147 | |
| 148 | Exposes the Smarty variable `compile_force` so that it can be overridden from |
| 149 | civicrm.settings.php because having `compile_force` set to FALSE in some |
| 150 | environments has a positive impact on page rendering performance. |
| 151 | |
| 152 | - **[dev/core#538](https://lab.civicrm.org/dev/core/issues/538) Activity search |
| 153 | (advanced search) by subject - is exact match only |
| 154 | ([14703](https://github.com/civicrm/civicrm-core/pull/14703))** |
| 155 | |
| 156 | Makes searching on some fields (including but not limited to invoice_number, |
| 157 | activity details, activity subject and activity location) do a "Like" search |
| 158 | as opposed to a strict match search consistently whether using the advanced |
| 159 | search or a component specific search. |
| 160 | |
| 161 | - **Unable to use url search arguments in 'Advanced Search' using force=1 |
| 162 | ([Core/dev#692](https://lab.civicrm.org/dev/core/issues/692): |
| 163 | [14921](https://github.com/civicrm/civicrm-core/pull/14921))** |
| 164 | |
| 165 | Adds support for the url search arguments 'contact_tags' and 'email' for the |
| 166 | 'Advanced Search' form. |
| 167 | |
| 168 | ### CiviContribute |
| 169 | |
| 170 | - **Extend contribute search url parsing to advanced search |
| 171 | ([14939](https://github.com/civicrm/civicrm-core/pull/14939))** |
| 172 | |
| 173 | This change extends the url parameters accepted by the Advanced Search form to |
| 174 | include the search url parameters accepted by the Contribution Search form. |
| 175 | |
| 176 | - **Improve performance on getSoftContribution details - only run one query |
| 177 | instead of one per contribution |
| 178 | ([14747](https://github.com/civicrm/civicrm-core/pull/14747))** |
| 179 | |
| 180 | Improves performance when retrieving bulk contributions. |
| 181 | |
| 182 | - **Switch priceset selector to addField method |
| 183 | ([14843](https://github.com/civicrm/civicrm-core/pull/14843))** |
| 184 | |
| 185 | Switches to adding price set fields using schema metadata instead of hard |
| 186 | coded metadata. |
| 187 | |
| 188 | - **Set title using standard form method and use for success message on |
| 189 | contributionpage |
| 190 | ([14615](https://github.com/civicrm/civicrm-core/pull/14615))** |
| 191 | |
| 192 | Switches to using a standard form method for assigning title on the Manage |
| 193 | Contribution page screen so the title can be accessed during postprocess. |
| 194 | |
| 195 | ### CiviEvent |
| 196 | |
| 197 | - **Improve handling of 'Manage Event' title |
| 198 | ([14614](https://github.com/civicrm/civicrm-core/pull/14614))** |
| 199 | |
| 200 | Switches to using a standard form method for assigning title on the Manage |
| 201 | Event screen so the title can be accessed during postprocess. |
| 202 | |
| 203 | ### CiviMail |
| 204 | |
| 205 | - **Changed the title and description of profile_add_to_group_double_optin |
| 206 | ([14852](https://github.com/civicrm/civicrm-core/pull/14852))** |
| 207 | |
| 208 | Improves help text by updating the profile_add_to_group_double_optin and |
| 209 | profile_double_optin to have different titles and descriptions. |
| 210 | |
| 211 | ### CiviMembership |
| 212 | |
| 213 | - **Add serialization metadata for MembershipType api |
| 214 | ([14954](https://github.com/civicrm/civicrm-core/pull/14954))** |
| 215 | |
| 216 | Adds metadata for serializing the membership_type fields |
| 217 | 'relationship_type_id' and 'relationship_direction'. |
| 218 | |
| 219 | - **Switch create MembershipPayment to use API |
| 220 | ([14886](https://github.com/civicrm/civicrm-core/pull/14886))** |
| 221 | |
| 222 | Simplifies and standardizes the creation of a MembershipPayment when using a |
| 223 | "live" payment method. |
| 224 | |
| 225 | ## <a name="bugs"></a>Bugs resolved |
| 226 | |
| 227 | ### Core CiviCRM |
| 228 | |
| 229 | - **Does CiviCRM make it possible to specify which directories are private and |
| 230 | which are public-accessible? |
| 231 | ([dev/cloud-native#3](https://lab.civicrm.org/dev/cloud-native/issues/3): |
| 232 | [14778](https://github.com/civicrm/civicrm-core/pull/14778))** |
| 233 | |
| 234 | This deprecates a function which was enabling/complicit in problematic |
| 235 | file-construction logic. |
| 236 | |
| 237 | - **Postal Code Suffix returns Postal Code value |
| 238 | ([dev/report#17](https://lab.civicrm.org/dev/report/issues/17): |
| 239 | [14744](https://github.com/civicrm/civicrm-core/pull/14744))** |
| 240 | |
| 241 | Ensures when the postal code suffix column is displayed it returns the suffix, |
| 242 | before this change the postal code value was displayed. |
| 243 | |
| 244 | - **Contact Reference Field Cutoff on Export |
| 245 | ([dev/core#439](https://lab.civicrm.org/dev/core/issues/439): |
| 246 | [14937](https://github.com/civicrm/civicrm-core/pull/14937))** |
| 247 | |
| 248 | Fixes the handling of custom country fields longer than 16 characters when |
| 249 | exporting and improves test coverage. |
| 250 | |
| 251 | - **Issue with alterReportVars hook invoke |
| 252 | ([dev/core#987](https://lab.civicrm.org/dev/core/issues/987): |
| 253 | [14320](https://github.com/civicrm/civicrm-core/pull/14320))** |
| 254 | |
| 255 | Switches to invoking alterReportVars hook before grand total and section total |
| 256 | calculations instead of after so that when alterReportVars hook is used to |
| 257 | alter values in report rows those changes are taken into account when |
| 258 | totaling. |
| 259 | |
| 260 | - **Delete repeating activities not working as intended |
| 261 | ([dev/core#1050](https://lab.civicrm.org/dev/core/issues/1050): |
| 262 | [14784](https://github.com/civicrm/civicrm-core/pull/14784))** |
| 263 | |
| 264 | Ensures that when the user opts to delete multiple repeat activities, the |
| 265 | specified activities are actually deleted. |
| 266 | |
| 267 | - **Bad popup on update recurring screen |
| 268 | ([dev/core#1061](https://lab.civicrm.org/dev/core/issues/1061): |
| 269 | [14964](https://github.com/civicrm/civicrm-core/pull/14964))** |
| 270 | |
| 271 | Ensures that custom data is not loaded on the update subscription form when it |
| 272 | is in self service mode. |
| 273 | |
| 274 | - **Count on Groups tab changes when tab is loaded |
| 275 | ([dev/core#1097](https://lab.civicrm.org/dev/core/issues/1097): |
| 276 | [14721](https://github.com/civicrm/civicrm-core/pull/14721))** |
| 277 | |
| 278 | Fixes a bug where if a contact had been explicitly added to any Smart Groups, |
| 279 | then the number on their Groups tab would not include these Smart Groups until |
| 280 | the tab was loaded. |
| 281 | |
| 282 | - **Contact Reference fields are not updated when merging contacts |
| 283 | ([dev/core#1109](https://lab.civicrm.org/dev/core/issues/1109): |
| 284 | [14983](https://github.com/civicrm/civicrm-core/pull/14983))** |
| 285 | |
| 286 | Ensures when duplicates are merged, custom fields and other records pointing |
| 287 | to the duplicate contact are updated to point to the surviving contact. |
| 288 | |
| 289 | - **Regression: Custom searches no longer work |
| 290 | (dev/[core#1175](https://lab.civicrm.org/dev/core/issues/1175): |
| 291 | [15007](https://github.com/civicrm/civicrm-core/pull/15007))** |
| 292 | |
| 293 | Fixes a regression that broke custom searches in 5.16. |
| 294 | |
| 295 | - **Datatables error when viewing contact multiple record custom field tab |
| 296 | containing a file field |
| 297 | ([dev/core#1186](https://lab.civicrm.org/dev/core/issues/1186): |
| 298 | [15058](https://github.com/civicrm/civicrm-core/pull/15058) and |
| 299 | [15055](https://github.com/civicrm/civicrm-core/pull/15055))** |
| 300 | |
| 301 | Fixes a Datatables error when viewing a contact's multiple record custom field |
| 302 | tab containing a file field because of an uncaught exception and adds a unit |
| 303 | test. |
| 304 | |
| 305 | - **Add pptx to safe file types |
| 306 | ([dev/core#1190](https://lab.civicrm.org/dev/core/issues/1190): |
| 307 | [15047](https://github.com/civicrm/civicrm-core/pull/15047))** |
| 308 | |
| 309 | Ensures the file type 'pptx' is included as an uploadable file type. |
| 310 | |
| 311 | - **[Report] Fix handling of location type in Reports |
| 312 | ([14942](https://github.com/civicrm/civicrm-core/pull/14942))** |
| 313 | |
| 314 | Fixes a bug in the processing of the `location_type_id` field for addresses in |
| 315 | reports. Before this change the array key's name was "is_primary" which led to |
| 316 | showing the location type as either blank or Home which is generally the label |
| 317 | for location type id 1. |
| 318 | |
| 319 | - **[Export] Convert testGender Export to new test format. |
| 320 | ([14914](https://github.com/civicrm/civicrm-core/pull/14914))** |
| 321 | |
| 322 | This change ensures that gender labels longer than 16 characters are supported |
| 323 | when exporting. |
| 324 | |
| 325 | - **[EXPORT] Minor fixes to the export form |
| 326 | ([14785](https://github.com/civicrm/civicrm-core/pull/14785))** |
| 327 | |
| 328 | This improves the export form by only showing enabled contact types and |
| 329 | only showing relevant relationship types for a given contact type. |
| 330 | |
| 331 | - **[IMPORT] [code-quality] Remove instances of CRM_Core_Error::fatal from first |
| 332 | import form ([14870](https://github.com/civicrm/civicrm-core/pull/14870))** |
| 333 | |
| 334 | Code cleanup towards removing `CRM_Core_Error::fatal` and using |
| 335 | `CRM_Core_Exception` instead. |
| 336 | |
| 337 | - **Translation 'ts' usage fixes. |
| 338 | ([14971](https://github.com/civicrm/civicrm-core/pull/14971))** |
| 339 | |
| 340 | Fixes how the gettext 'ts' translation function is called reducing the |
| 341 | number of warnings from the string extraction script. |
| 342 | |
| 343 | - **Fix removeNullContactTokens compatibility with custom tokens |
| 344 | ([14943](https://github.com/civicrm/civicrm-core/pull/14943))** |
| 345 | |
| 346 | Fixes notices and warnings with custom tokens when updating a contact record. |
| 347 | |
| 348 | - **Do not launch raw js alert jqueryValidation fails |
| 349 | ([14854](https://github.com/civicrm/civicrm-core/pull/14854))** |
| 350 | |
| 351 | For sites with Jquery validation turned on disables js alerts. |
| 352 | |
| 353 | - **Invalidate smart group cache for group following deletion of group_contact |
| 354 | row ([14672](https://github.com/civicrm/civicrm-core/pull/14672))** |
| 355 | |
| 356 | Ensures that when a contact is removed from a smart group they are removed |
| 357 | from the cache instantly. |
| 358 | |
| 359 | - **Ensure that if present the HTTP_X_FORWARDED_FOR IP address is used instead |
| 360 | of the SERVER_ADDR when logging items from the IDS |
| 361 | ([14833](https://github.com/civicrm/civicrm-core/pull/14833))** |
| 362 | |
| 363 | Ensures the `SERVER_ADDR` is only used if `HTTP_X_FORWARDED_FOR` cannot be. |
| 364 | |
| 365 | - **Set profile greeting fields based on actual contact type |
| 366 | ([14845](https://github.com/civicrm/civicrm-core/pull/14845))** |
| 367 | |
| 368 | Sets greeting options in a profile based on the actual contact type being |
| 369 | edited instead of based off the profile type. |
| 370 | |
| 371 | - **Menubar - Improve flexibility & remove hardcoded values |
| 372 | ([14839](https://github.com/civicrm/civicrm-core/pull/14839))** |
| 373 | |
| 374 | Minor tweak to crm.menubar.js to make it less reliant on the presence of a |
| 375 | `<div id="crm-container">` which may not be present on non-civicrm pages. Also |
| 376 | tweaks the js to remove hardcoded pixel values to work better with theme |
| 377 | overrides. |
| 378 | |
| 379 | - **Use singleton to get session instead of relying on ->_session being set |
| 380 | elsewhere ([14832](https://github.com/civicrm/civicrm-core/pull/14832))** |
| 381 | |
| 382 | Calls CRM_Core_Session::singleton() on the `CRM_Profile_Form` instead of |
| 383 | relying on $this->_session being set. |
| 384 | |
| 385 | - **Remove the only two defined fonts from selectors |
| 386 | ([14815](https://github.com/civicrm/civicrm-core/pull/14815))** |
| 387 | |
| 388 | Before this change CiviCRM was setting h3 tags on front end forms to have the |
| 389 | font arial. After this change h3 tags on front end forms inherit their fonts |
| 390 | from the theme (like the rest of the h tags). |
| 391 | |
| 392 | - **GenCode, Cache::cleanKey() - Fix deploop during clean initialization |
| 393 | ([14777](https://github.com/civicrm/civicrm-core/pull/14777))** |
| 394 | |
| 395 | Fixes a bug when running `xml/GenCode.php` with a clean codebase with no DAO |
| 396 | files. |
| 397 | |
| 398 | - **e-notice fix & unit test |
| 399 | ([14729](https://github.com/civicrm/civicrm-core/pull/14729))** |
| 400 | |
| 401 | Fixes an e-notice when a table has been excluded from triggers by a hook. |
| 402 | |
| 403 | - **Fatal db error in Activity Summary report when Sorting uses Section Header |
| 404 | (without ONLY_FULL_GROUP_BY) |
| 405 | ([dev/core/issues/577](https://lab.civicrm.org/dev/core/issues/577): |
| 406 | [13540](https://github.com/civicrm/civicrm-core/pull/13540) and |
| 407 | [dev/core#578](https://lab.civicrm.org/dev/core/issues/578): |
| 408 | [14745](https://github.com/civicrm/civicrm-core/pull/14745))** |
| 409 | |
| 410 | - **With logging turned on editing an activity displays as a deletion |
| 411 | ([dev/core#1149](https://lab.civicrm.org/dev/core/issues/1149): |
| 412 | [14889](https://github.com/civicrm/civicrm-core/pull/14889))** |
| 413 | |
| 414 | - **Regression: Can't use CiviCRM menu on 5.16.0 |
| 415 | ([dev/core#1182](https://lab.civicrm.org/dev/core/issues/1182): |
| 416 | [15021](https://github.com/civicrm/civicrm-core/pull/15021))** |
| 417 | |
| 418 | - **Add missing is_public flags to public paths |
| 419 | ([14945](https://github.com/civicrm/civicrm-core/pull/14945))** |
| 420 | |
| 421 | - **Fix php7.x warning on count |
| 422 | ([14896](https://github.com/civicrm/civicrm-core/pull/14896))** |
| 423 | |
| 424 | - **Don't let optiongroup check crash |
| 425 | ([14895](https://github.com/civicrm/civicrm-core/pull/14895))** |
| 426 | |
| 427 | - **Fix enotice on formatting credit card details |
| 428 | ([14750](https://github.com/civicrm/civicrm-core/pull/14750))** |
| 429 | |
| 430 | - **Fix obscure bug on updating custom fields (not necessarily hittable via UI) |
| 431 | ([14754](https://github.com/civicrm/civicrm-core/pull/14754))** |
| 432 | |
| 433 | - **MagicMerge - Fix ephemeral overrides for aliased properties |
| 434 | ([14818](https://github.com/civicrm/civicrm-core/pull/14818))** |
| 435 | |
| 436 | - **Current employer disappears when disabling expired relationships |
| 437 | ([dev/core#470](https://lab.civicrm.org/dev/core/issues/470): |
| 438 | [14951](https://github.com/civicrm/civicrm-core/pull/14951))** |
| 439 | |
| 440 | ### CiviCase |
| 441 | |
| 442 | - **Case summary report filters incorrectly for case type |
| 443 | ([dev/core#1118](https://lab.civicrm.org/dev/core/issues/1118): |
| 444 | [14827](https://github.com/civicrm/civicrm-core/pull/14827))** |
| 445 | |
| 446 | Fixes a bug where applying the case type filter in the case summary report |
| 447 | resulted in two case types being reported where only one is selected in the |
| 448 | case type filter. |
| 449 | |
| 450 | - **CiviCase singleton activity warning has wrong url |
| 451 | ([dev/core#1115](https://lab.civicrm.org/dev/core/issues/1115): |
| 452 | [14824](https://github.com/civicrm/civicrm-core/pull/14824))** |
| 453 | |
| 454 | Fixes a bug where if a case type has an activity type (other than open case) |
| 455 | with max_instances set to 1 and a user attempted to create a second activity |
| 456 | of that type for that case type the warning presented to the user would |
| 457 | contain a broken link to edit the existing activity of that type so that the |
| 458 | link works as expected. |
| 459 | |
| 460 | ### CiviContribute |
| 461 | |
| 462 | - **[dev/core#1133](https://lab.civicrm.org/dev/core/issues/1133) Payment method |
| 463 | name is displayed instead of label in payment block for Manual payment |
| 464 | ([14841](https://github.com/civicrm/civicrm-core/pull/14841))** |
| 465 | |
| 466 | Ensures the Payment method name is displayed instead of label in payment block |
| 467 | for Manual payment. |
| 468 | |
| 469 | - **Bug, cannot import Contributions because the import requires the payment |
| 470 | method, payment instrument ID, not the payment instrument label |
| 471 | ([dev/financial#36](https://lab.civicrm.org/dev/financial/issues/36): |
| 472 | [14881](https://github.com/civicrm/civicrm-core/pull/14881))** |
| 473 | |
| 474 | - **Editing a financial account pops up a blank new form |
| 475 | ([dev/financial#65](https://lab.civicrm.org/dev/financial/issues/65): |
| 476 | [15037](https://github.com/civicrm/civicrm-core/pull/15037))** |
| 477 | |
| 478 | - **Contribution page including 2 email fields does not respect dedupe rule. |
| 479 | ([dev/core#961](https://lab.civicrm.org/dev/core/issues/961): |
| 480 | [14252](https://github.com/civicrm/civicrm-core/pull/14252))** |
| 481 | |
| 482 | - **Catch Payment Processor Exception if thrown when registering via back office |
| 483 | participant registration |
| 484 | ([14930](https://github.com/civicrm/civicrm-core/pull/14930))** |
| 485 | |
| 486 | - **Fix creation of additional zero value line item when changing fee selection |
| 487 | in edge case ([14589](https://github.com/civicrm/civicrm-core/pull/14589))** |
| 488 | |
| 489 | ### CiviEvent |
| 490 | |
| 491 | - **Fixed event type id fetch |
| 492 | ([14534](https://github.com/civicrm/civicrm-core/pull/14534))** |
| 493 | |
| 494 | Fixes a bug where when using the query search the event type id was being |
| 495 | returned as the option_value.id instead option_value.value. |
| 496 | |
| 497 | - **Participants having multiple roles affects maximum event registration count |
| 498 | ([dev/core#1135](https://lab.civicrm.org/dev/core/issues/1135): |
| 499 | [14844](https://github.com/civicrm/civicrm-core/pull/14844))** |
| 500 | |
| 501 | Ensures that Participants having multiple roles does not affect the maximum |
| 502 | event registration count. |
| 503 | |
| 504 | - **Allow duplicate backend registration when event has "allow same participant |
| 505 | emails" ([dev/event#6](https://lab.civicrm.org/dev/event/issues/6): |
| 506 | [14884](https://github.com/civicrm/civicrm-core/pull/14884))** |
| 507 | |
| 508 | - **Event Cart: does not save participant custom fields on checkout |
| 509 | ([dev/event#8](https://lab.civicrm.org/dev/event/issues/8): |
| 510 | [14816](https://github.com/civicrm/civicrm-core/pull/14816))** |
| 511 | |
| 512 | - **Event Templates: do not auto-populate the Start Date / End Date |
| 513 | ([dev/event#9](https://lab.civicrm.org/dev/event/issues/9): |
| 514 | [14862](https://github.com/civicrm/civicrm-core/pull/14862))** |
| 515 | |
| 516 | ### CiviMail |
| 517 | |
| 518 | - **Unsubscribe broken if mailing sent to previous mailing recipients with an |
| 519 | excluded group (Work towards |
| 520 | [dev/core#1108](https://lab.civicrm.org/dev/core/issues/1108): |
| 521 | [14760](https://github.com/civicrm/civicrm-core/pull/14760) and |
| 522 | [14761](https://github.com/civicrm/civicrm-core/pull/14761))** |
| 523 | |
| 524 | These changes clean up code to set the stage to fix a bug where the |
| 525 | unsubscribe link does not work if a mailing is sent to a list of previous |
| 526 | mailing recipients and excludes a group. |
| 527 | |
| 528 | - **Contribution tokens with option values display values, not label |
| 529 | ([dev/mail#46](https://lab.civicrm.org/dev/mail/issues/46): |
| 530 | [14658](https://github.com/civicrm/civicrm-core/pull/14658))** |
| 531 | |
| 532 | ### CiviMembership |
| 533 | |
| 534 | - **Scheduled Reminders for Membership not being sent |
| 535 | ([dev/core#285](https://lab.civicrm.org/dev/core/issues/285): |
| 536 | [13487](https://github.com/civicrm/civicrm-core/pull/13487) and |
| 537 | [14810](https://github.com/civicrm/civicrm-core/pull/14810))** |
| 538 | |
| 539 | Fixes a bug where If you setup a scheduled reminder for memberships based on |
| 540 | the end date, the first reminder would send as expected but if the user |
| 541 | renewed their membership it wouldn't send out another reminder when the |
| 542 | condition became true for the new end date. |
| 543 | |
| 544 | - **Fix mishandling of renamed membership status labels on membership import |
| 545 | ([14940](https://github.com/civicrm/civicrm-core/pull/14940))** |
| 546 | |
| 547 | Fixes a bug that especially affects multilingual sites where the 'Membership |
| 548 | Status' is compared against the 'name' field but not the 'label'. |
| 549 | |
| 550 | - **Fix membership end date on confirming a pending contribution |
| 551 | ([14902](https://github.com/civicrm/civicrm-core/pull/14902))** |
| 552 | |
| 553 | Fixes a bug where if a user created a Membership with a contribution status of |
| 554 | pending for 2 or more terms, recording a payment for that Contribution would |
| 555 | lead to the membership end_date being set incorrectly. |
| 556 | |
| 557 | ### Backdrop Integration |
| 558 | |
| 559 | - **Fix getLoginURL() for Backdrop |
| 560 | ([dev/core#1170](https://lab.civicrm.org/dev/core/issues/1170): |
| 561 | [14985](https://github.com/civicrm/civicrm-core/pull/14985))** |
| 562 | |
| 563 | Fixes the redirect when an anonymous user goes to `/user` to point to |
| 564 | `/user/login` instead of `/user?destination...`. |
| 565 | |
| 566 | ### Drupal Integration |
| 567 | |
| 568 | - **confirmation screen shows internal profile name not public title (reg screen |
| 569 | shows public title) |
| 570 | ([dev/drupal#72](https://lab.civicrm.org/dev/drupal/issues/72): |
| 571 | [14960](https://github.com/civicrm/civicrm-core/pull/14960))** |
| 572 | |
| 573 | Fixes a bug whereby the front end profile title was not being used in event |
| 574 | confirm & thank you screens & confirmation emails. |
| 575 | |
| 576 | - **[regression] `cv` fails on CiviCRM 5.15.0 |
| 577 | ([dev/drupal#75](https://lab.civicrm.org/dev/drupal/issues/75): |
| 578 | [14772](https://github.com/civicrm/civicrm-core/pull/14772))** |
| 579 | |
| 580 | Fixes a call to `languageNegotiationURL` that was causing cv to fail on Drupal |
| 581 | 8 sites. |
| 582 | |
| 583 | - **Fail more gracefully when attempting to install on PHP 5.x |
| 584 | ([dev/drupal#79](https://lab.civicrm.org/dev/drupal/issues/79): |
| 585 | [15082](https://github.com/civicrm/civicrm-core/pull/15082) and |
| 586 | [15089](https://github.com/civicrm/civicrm-core/pull/15089))** |
| 587 | |
| 588 | Raises the `MINIMUM_PHP_VERSION` from 5.6 to 7.0 in the metadata because when |
| 589 | upgrading via drush or Drupal web UI to Civi 5.16+ on PHP 5.6, the Civi |
| 590 | class-loader fails to initialize. The installer is also updated to check the |
| 591 | PHP version before proceeding with the class loader. |
| 592 | |
| 593 | - **Migrate CivicrmHelper::parseUrl() to CRM_Utils_System_Drupal8::parseUrl(). |
| 594 | ([14696](https://github.com/civicrm/civicrm-core/pull/14696))** |
| 595 | |
| 596 | Fixes a bug when installing Drupal8 thru the command line. |
| 597 | |
| 598 | - **Fix path for civicrm.settings.php when installed in profiles/ |
| 599 | ([552](https://github.com/civicrm/civicrm-drupal/pull/552))** |
| 600 | |
| 601 | Ensures that when CiviCRM is installed in a Drupal distribution profile under |
| 602 | `profiles/<profile_name>/modules/[contrib]`, the function `civicrm_conf_init()` |
| 603 | returns the proper path for file civicrm.settings.php before this change |
| 604 | calling an API using REST would result in a "Could not load the settings |
| 605 | file..." error. |
| 606 | |
| 607 | ## <a name="misc"></a>Miscellany |
| 608 | |
| 609 | - **Changing a civicase activity's label breaks the max_instances check (Begins |
| 610 | work towards [dev/core#1116](https://lab.civicrm.org/dev/core/issues/1116): |
| 611 | [14952](https://github.com/civicrm/civicrm-core/pull/14952) and |
| 612 | [14970](https://github.com/civicrm/civicrm-core/pull/14970))** |
| 613 | |
| 614 | - **Update civicrmtheme module to use new isFrontEndPage function on user System |
| 615 | ([581](https://github.com/civicrm/civicrm-drupal/pull/581))** |
| 616 | |
| 617 | - **Removed hardcoded activity status and used Activity create |
| 618 | ([14720](https://github.com/civicrm/civicrm-core/pull/14720))** |
| 619 | |
| 620 | - **Extract field wrangling to determineReturnProperties |
| 621 | ([14756](https://github.com/civicrm/civicrm-core/pull/14756))** |
| 622 | |
| 623 | - **Finish removing references to Config.IDS.ini |
| 624 | ([14770](https://github.com/civicrm/civicrm-core/pull/14770))** |
| 625 | |
| 626 | - **Convert Navigation cache group to current cache definition system |
| 627 | ([14581](https://github.com/civicrm/civicrm-core/pull/14581))** |
| 628 | |
| 629 | - **Convert the contact fields cache group to standard cache backend |
| 630 | ([14583](https://github.com/civicrm/civicrm-core/pull/14583) and |
| 631 | [14582](https://github.com/civicrm/civicrm-core/pull/14582))** |
| 632 | |
| 633 | - **Remove additional custom fields deletegroup functions |
| 634 | ([14823](https://github.com/civicrm/civicrm-core/pull/14823))** |
| 635 | |
| 636 | - **Add in Deprecation warnings on Cache functons |
| 637 | ([14828](https://github.com/civicrm/civicrm-core/pull/14828))** |
| 638 | |
| 639 | - **Autoformat /tests directory with php short array syntax |
| 640 | ([14857](https://github.com/civicrm/civicrm-core/pull/14857))** |
| 641 | |
| 642 | - **Remove use of deprecated path in function |
| 643 | `CRM_Event_BAO_Event::checkPermission()` |
| 644 | ([14735](https://github.com/civicrm/civicrm-core/pull/14735))** |
| 645 | |
| 646 | - **Add in Atomfeeds deprecation now that the extension has a new release with |
| 647 | converted cache mechanism |
| 648 | ([14856](https://github.com/civicrm/civicrm-core/pull/14856))** |
| 649 | |
| 650 | - **Further deprecate use of $ids array in membership functions |
| 651 | ([14887](https://github.com/civicrm/civicrm-core/pull/14887))** |
| 652 | |
| 653 | - **[IMPORT] reduce php4 support, don't pass by ref when not required |
| 654 | ([14872](https://github.com/civicrm/civicrm-core/pull/14872))** |
| 655 | |
| 656 | - **[IMPORT] [code-quality] Remove usage of nullArray |
| 657 | ([14869](https://github.com/civicrm/civicrm-core/pull/14869))** |
| 658 | |
| 659 | - **[IMPORT] [code quality] [REF] Improve readability of variable assignment |
| 660 | ([14871](https://github.com/civicrm/civicrm-core/pull/14871))** |
| 661 | |
| 662 | - **Remove "Copy Case custom data" code (circa 2013) |
| 663 | ([15051](https://github.com/civicrm/civicrm-core/pull/15051))** |
| 664 | |
| 665 | - **People tagged with “No Bulk Email (User Opt Out)” seem to be receiving bulk |
| 666 | email (Adds test for |
| 667 | [dev/core#1162](https://lab.civicrm.org/dev/core/issues/1162): |
| 668 | [14947](https://github.com/civicrm/civicrm-core/pull/14947))** |
| 669 | |
| 670 | - **Remove deprecated SQL_CALC_FOUND_ROWS |
| 671 | ([dev/core#1141](https://lab.civicrm.org/dev/core/issues/1141): |
| 672 | [14877](https://github.com/civicrm/civicrm-core/pull/14877))** |
| 673 | |
| 674 | - **Remove unused xml/schema/Event/EventPage.xml |
| 675 | ([dev/core#1056](https://lab.civicrm.org/dev/core/issues/1056): |
| 676 | [14834](https://github.com/civicrm/civicrm-core/pull/14834))** |
| 677 | |
| 678 | - **Errors exporting contributions on 5.13.2 (unit test for |
| 679 | [dev/core#1015](https://lab.civicrm.org/dev/core/issues/1015): |
| 680 | [14514](https://github.com/civicrm/civicrm-core/pull/14514))** |
| 681 | |
| 682 | - **Minor cleanup around invoicing on event code |
| 683 | ([14959](https://github.com/civicrm/civicrm-core/pull/14959))** |
| 684 | |
| 685 | - **Multilingual test fix and cleanup |
| 686 | ([14639](https://github.com/civicrm/civicrm-core/pull/14639))** |
| 687 | |
| 688 | - **Updated Circle-Interactive developers info |
| 689 | ([14736](https://github.com/civicrm/civicrm-core/pull/14736))** |
| 690 | |
| 691 | - **Remove unused standalone-mode code |
| 692 | ([14910](https://github.com/civicrm/civicrm-core/pull/14910))** |
| 693 | |
| 694 | - **[TEST] [REF] [Export] Convert a couple more tests |
| 695 | ([14953](https://github.com/civicrm/civicrm-core/pull/14953))** |
| 696 | |
| 697 | - **[REF] [Test] [Export] Convert some more tests to use the newer function |
| 698 | ([14933](https://github.com/civicrm/civicrm-core/pull/14933))** |
| 699 | |
| 700 | - **[REF] [Export] [Test] Update 2 more tests to use new helper |
| 701 | ([14915](https://github.com/civicrm/civicrm-core/pull/14915))** |
| 702 | |
| 703 | - **[REF][TEST][EXPORT] minor test cleanup & minor cleanup of code it tests |
| 704 | ([14848](https://github.com/civicrm/civicrm-core/pull/14848))** |
| 705 | |
| 706 | - **[REF] [TEST] [Export] Update export tests to reflect new format |
| 707 | ([14813](https://github.com/civicrm/civicrm-core/pull/14813))** |
| 708 | |
| 709 | - **[REF] [EXPORT] [TLA] Update handling of input fields so that the mapping |
| 710 | format is accepted. |
| 711 | ([14792](https://github.com/civicrm/civicrm-core/pull/14792))** |
| 712 | |
| 713 | - **[NFC] [REF] [TEST] [EXPORT] Update various export tests to test csv output |
| 714 | with new functions |
| 715 | ([14780](https://github.com/civicrm/civicrm-core/pull/14780))** |
| 716 | |
| 717 | - **[REf] [Export] Remove deprecated componentPaymentFields function |
| 718 | ([14874](https://github.com/civicrm/civicrm-core/pull/14874))** |
| 719 | |
| 720 | - **[Ref] [Export] Remove exportComponent function - it's not adding much here |
| 721 | ([14875](https://github.com/civicrm/civicrm-core/pull/14875))** |
| 722 | |
| 723 | - **[REF] [Export] Move writeToTable fn to exportProcessor |
| 724 | ([14932](https://github.com/civicrm/civicrm-core/pull/14932))** |
| 725 | |
| 726 | - **[REF] [Export] Stop passing header rows around |
| 727 | ([14913](https://github.com/civicrm/civicrm-core/pull/14913))** |
| 728 | |
| 729 | - **[REF] [Export] Remove now redundant param |
| 730 | ([14912](https://github.com/civicrm/civicrm-core/pull/14912))** |
| 731 | |
| 732 | - **[REF] [EXPORT] Use columns from processor instead of passing them |
| 733 | ([14860](https://github.com/civicrm/civicrm-core/pull/14860))** |
| 734 | |
| 735 | - **[REF] [Export] Move temp table creation function to the processor |
| 736 | ([14851](https://github.com/civicrm/civicrm-core/pull/14851))** |
| 737 | |
| 738 | - **[REF] [Export] Stop passing exportParams & sqlColumns around |
| 739 | ([14838](https://github.com/civicrm/civicrm-core/pull/14838))** |
| 740 | |
| 741 | - **[REF] [Export] remove another confusing parameter |
| 742 | ([14822](https://github.com/civicrm/civicrm-core/pull/14822))** |
| 743 | |
| 744 | - **[REF] [Export] Stop passing export params to the merge function |
| 745 | ([14819](https://github.com/civicrm/civicrm-core/pull/14819))** |
| 746 | |
| 747 | - **[REF] [Export] Simplify setting of address strings |
| 748 | ([14835](https://github.com/civicrm/civicrm-core/pull/14835))** |
| 749 | |
| 750 | - **[REF] [Export] clean up incorporation of order by & group by into |
| 751 | ExportProcessor |
| 752 | ([14811](https://github.com/civicrm/civicrm-core/pull/14811))** |
| 753 | |
| 754 | - **[REF] [Export] More export Structure arrays to processor |
| 755 | ([14812](https://github.com/civicrm/civicrm-core/pull/14812))** |
| 756 | |
| 757 | - **[REF] [Export] Further cleanup - construct sql more concisely |
| 758 | ([14808](https://github.com/civicrm/civicrm-core/pull/14808))** |
| 759 | |
| 760 | - **[REF] [Export] move mergeSameAddress to processor class |
| 761 | ([14809](https://github.com/civicrm/civicrm-core/pull/14809))** |
| 762 | |
| 763 | - **[REF] [Export] further code cleanup |
| 764 | ([14806](https://github.com/civicrm/civicrm-core/pull/14806))** |
| 765 | |
| 766 | - **[REF] [EXPORT] Alter CRM_Export_BAO_Export::exportComponents |
| 767 | ([14800](https://github.com/civicrm/civicrm-core/pull/14800))** |
| 768 | |
| 769 | - **[REF] [Export] move build master copy array to ExportProcessor |
| 770 | ([14803](https://github.com/civicrm/civicrm-core/pull/14803))** |
| 771 | |
| 772 | - **[REF] [Export] Remove code that seems unused |
| 773 | ([14804](https://github.com/civicrm/civicrm-core/pull/14804))** |
| 774 | |
| 775 | - **[REF] [Export] Move setting of household properties to processor |
| 776 | ([14802](https://github.com/civicrm/civicrm-core/pull/14802))** |
| 777 | |
| 778 | - **[REF] [Export] Minor code relocation |
| 779 | ([14801](https://github.com/civicrm/civicrm-core/pull/14801))** |
| 780 | |
| 781 | - **[REF] [Export] Move replace merge tokens to processor class |
| 782 | ([14799](https://github.com/civicrm/civicrm-core/pull/14799))** |
| 783 | |
| 784 | - **[REF] [EXPORT] Stop passing return Properties |
| 785 | ([14795](https://github.com/civicrm/civicrm-core/pull/14795))** |
| 786 | |
| 787 | - **[REF] [Export] Move function that parses tokens to address processor |
| 788 | ([14797](https://github.com/civicrm/civicrm-core/pull/14797))** |
| 789 | |
| 790 | - **[REF] [EXPORT] Minor consolidation of weird mergeSameAddreess nightmare code |
| 791 | ([14796](https://github.com/civicrm/civicrm-core/pull/14796))** |
| 792 | |
| 793 | - **[REF] [EXPORT] cleanup setting of additional postal fields |
| 794 | ([14790](https://github.com/civicrm/civicrm-core/pull/14790))** |
| 795 | |
| 796 | - **[REF][Export] Minor cleanup on household merge properties |
| 797 | ([14787](https://github.com/civicrm/civicrm-core/pull/14787))** |
| 798 | |
| 799 | - **[REF] [EXPORT] partial cleanup on adding fields to returnProperties based on |
| 800 | usage ([14788](https://github.com/civicrm/civicrm-core/pull/14788))** |
| 801 | |
| 802 | - **[REF] [export] remove chunk of non-functional code |
| 803 | ([14773](https://github.com/civicrm/civicrm-core/pull/14773))** |
| 804 | |
| 805 | - **[REF] [export] Cleaner handling of additional return properties |
| 806 | ([14774](https://github.com/civicrm/civicrm-core/pull/14774))** |
| 807 | |
| 808 | - **[ref] [export] [test] Improve csv test to test final output rather than the |
| 809 | csv ([14779](https://github.com/civicrm/civicrm-core/pull/14779))** |
| 810 | |
| 811 | - **[REF] [export] . Move greeting params retrieval to the place in the code |
| 812 | where it is used |
| 813 | ([14768](https://github.com/civicrm/civicrm-core/pull/14768))** |
| 814 | |
| 815 | - **[REF] [Export] Move fetch Relationship details to processor |
| 816 | ([14898](https://github.com/civicrm/civicrm-core/pull/14898))** |
| 817 | |
| 818 | - **[REF] [Import] extract function that sets field metadata |
| 819 | ([14979](https://github.com/civicrm/civicrm-core/pull/14979))** |
| 820 | |
| 821 | - **[REF][Import] very minor cleanup - 3 lines of code to one |
| 822 | ([14976](https://github.com/civicrm/civicrm-core/pull/14976))** |
| 823 | |
| 824 | - **[REF][Event] Extract calculation of 'zero-ness' in form rule |
| 825 | ([14917](https://github.com/civicrm/civicrm-core/pull/14917))** |
| 826 | |
| 827 | - **[REF] extract loadSavedMapping |
| 828 | ([14873](https://github.com/civicrm/civicrm-core/pull/14873))** |
| 829 | |
| 830 | - **[REF] Add in cleanup function to prevnext service and utilise in clea… |
| 831 | ([14911](https://github.com/civicrm/civicrm-core/pull/14911))** |
| 832 | |
| 833 | - **[REF] Update selfService in updateBilling to use shared function |
| 834 | ([14965](https://github.com/civicrm/civicrm-core/pull/14965))** |
| 835 | |
| 836 | - **[REF] remove never-set, mispelt parameter |
| 837 | ([14907](https://github.com/civicrm/civicrm-core/pull/14907))** |
| 838 | |
| 839 | - **[REF] minor code cleanup on import mapping |
| 840 | ([14962](https://github.com/civicrm/civicrm-core/pull/14962))** |
| 841 | |
| 842 | - **[REF] Move Self service handlng to shared function to allow for use i… |
| 843 | ([14963](https://github.com/civicrm/civicrm-core/pull/14963))** |
| 844 | |
| 845 | - **[REF] simple extraction of function to check required fields are present |
| 846 | ([14961](https://github.com/civicrm/civicrm-core/pull/14961))** |
| 847 | |
| 848 | - **[REF] Down with php4 compatibility |
| 849 | ([14847](https://github.com/civicrm/civicrm-core/pull/14847))** |
| 850 | |
| 851 | - **[REF] Convert contribution_recur dates to datepicker from jcalendar |
| 852 | ([14737](https://github.com/civicrm/civicrm-core/pull/14737))** |
| 853 | |
| 854 | - **[REF] initial extraction of loading saved mapping to qf format |
| 855 | ([14767](https://github.com/civicrm/civicrm-core/pull/14767))** |
| 856 | |
| 857 | - **[REF] simplify & add tests on getMappingParams |
| 858 | ([14769](https://github.com/civicrm/civicrm-core/pull/14769))** |
| 859 | |
| 860 | - **[REF] Update export test to new function |
| 861 | ([14765](https://github.com/civicrm/civicrm-core/pull/14765))** |
| 862 | |
| 863 | - **[REF] Extract mapping converter function, kinda brutally |
| 864 | ([14762](https://github.com/civicrm/civicrm-core/pull/14762))** |
| 865 | |
| 866 | - **[REF] export code simplification |
| 867 | ([14758](https://github.com/civicrm/civicrm-core/pull/14758))** |
| 868 | |
| 869 | - **[REF] Extract saveMapping Field |
| 870 | ([14757](https://github.com/civicrm/civicrm-core/pull/14757))** |
| 871 | |
| 872 | - **[REF] Remove call to getMappingFields in favour of api call. |
| 873 | ([14755](https://github.com/civicrm/civicrm-core/pull/14755))** |
| 874 | |
| 875 | - **[REF] un-extract createProportionalFinancialEntities |
| 876 | ([14742](https://github.com/civicrm/civicrm-core/pull/14742))** |
| 877 | |
| 878 | - **[REF] Move function onto the processor class |
| 879 | ([14752](https://github.com/civicrm/civicrm-core/pull/14752))** |
| 880 | |
| 881 | - **[REF] Further cleanup & extraction in getMappingFieds |
| 882 | ([14743](https://github.com/civicrm/civicrm-core/pull/14743))** |
| 883 | |
| 884 | - **[REF] Simple function extraction for buildMappingForm |
| 885 | ([14741](https://github.com/civicrm/civicrm-core/pull/14741))** |
| 886 | |
| 887 | - **[REF] simple extraction of getFieldAlterSQL |
| 888 | ([14727](https://github.com/civicrm/civicrm-core/pull/14727))** |
| 889 | |
| 890 | - **[REF] extract portion that creates the custom field record |
| 891 | ([14725](https://github.com/civicrm/civicrm-core/pull/14725))** |
| 892 | |
| 893 | - **[REF] simple extraction of prepareCreateParams |
| 894 | ([14726](https://github.com/civicrm/civicrm-core/pull/14726))** |
| 895 | |
| 896 | - **[REF] Cleanup fixSchemaDifferencesFor() |
| 897 | ([14697](https://github.com/civicrm/civicrm-core/pull/14697))** |
| 898 | |
| 899 | - **[REF] clarify variable (very minor change with good test cover) |
| 900 | ([14724](https://github.com/civicrm/civicrm-core/pull/14724))** |
| 901 | |
| 902 | - **[REF] Extract CRM_Core_BAO_Mapping::addComponentFields |
| 903 | ([14751](https://github.com/civicrm/civicrm-core/pull/14751))** |
| 904 | |
| 905 | - **REF Simple cleanup of tabset code for contributionpages |
| 906 | ([14616](https://github.com/civicrm/civicrm-core/pull/14616))** |
| 907 | |
| 908 | - **[REF] final cleanup - call bulkCreate from migrate_utils |
| 909 | ([14728](https://github.com/civicrm/civicrm-core/pull/14728))** |
| 910 | |
| 911 | - **[REF] Cleanup up handling of dates for Recurring & Contribution date fields |
| 912 | in query class ([14825](https://github.com/civicrm/civicrm-core/pull/14825))** |
| 913 | |
| 914 | - **[REF] Cleanup usage of CRM_Core_BAO_PrevNextCache::setItem and deprec… |
| 915 | ([14675](https://github.com/civicrm/civicrm-core/pull/14675))** |
| 916 | |
| 917 | - **[REF] [Test] Add test to cover handling of 'gender_id' on import, remove |
| 918 | unused code. ([14879](https://github.com/civicrm/civicrm-core/pull/14879))** |
| 919 | |
| 920 | - **[REF] [TEST] cleanup on export activity test |
| 921 | ([14850](https://github.com/civicrm/civicrm-core/pull/14850))** |
| 922 | |
| 923 | - **[test] Catch A.net exception & ignore |
| 924 | ([14861](https://github.com/civicrm/civicrm-core/pull/14861))** |
| 925 | |
| 926 | - **[Test] [Import] Add test to demonstrate bug that turns out not to exist |
| 927 | ([14880](https://github.com/civicrm/civicrm-core/pull/14880))** |
| 928 | |
| 929 | - **Add test for failed payment |
| 930 | ([14946](https://github.com/civicrm/civicrm-core/pull/14946))** |
| 931 | |
| 932 | - **Add unit test demonstrating attaching a listener to queries |
| 933 | ([14716](https://github.com/civicrm/civicrm-core/pull/14716))** |
| 934 | |
| 935 | - **[Test] Add test cover for Member_BAO_Query auto_renew field |
| 936 | ([14956](https://github.com/civicrm/civicrm-core/pull/14956))** |
| 937 | |
| 938 | - **Add unit test for net_amount when fee_amount is set |
| 939 | ([14909](https://github.com/civicrm/civicrm-core/pull/14909))** |
| 940 | |
| 941 | - **Fix some test leakage |
| 942 | ([14731](https://github.com/civicrm/civicrm-core/pull/14731))** |
| 943 | |
| 944 | - **[TEST] export - add unit test covering merge to same address addressee |
| 945 | handling ([14817](https://github.com/civicrm/civicrm-core/pull/14817))** |
| 946 | |
| 947 | - **[TEST][EXPORT] Improve unit test on export. |
| 948 | ([14793](https://github.com/civicrm/civicrm-core/pull/14793))** |
| 949 | |
| 950 | - **[NFC] [TEST] Reformat arrays in test classes |
| 951 | ([14831](https://github.com/civicrm/civicrm-core/pull/14831))** |
| 952 | |
| 953 | - **[NFC] [TEST] code formatting in test class |
| 954 | ([14849](https://github.com/civicrm/civicrm-core/pull/14849))** |
| 955 | |
| 956 | - **[NFC] reformat class |
| 957 | ([14899](https://github.com/civicrm/civicrm-core/pull/14899))** |
| 958 | |
| 959 | - **[NFC] Formatting in BAO_Relationship class |
| 960 | ([14949](https://github.com/civicrm/civicrm-core/pull/14949))** |
| 961 | |
| 962 | - **[NFC] code formatting only |
| 963 | ([14977](https://github.com/civicrm/civicrm-core/pull/14977))** |
| 964 | |
| 965 | - **[NFC] minor cleanup |
| 966 | ([14957](https://github.com/civicrm/civicrm-core/pull/14957))** |
| 967 | |
| 968 | - **NFC Update node module versions based on npm audit fix |
| 969 | ([14859](https://github.com/civicrm/civicrm-core/pull/14859))** |
| 970 | |
| 971 | - **(NFC) Fixing documentation links in readme. |
| 972 | ([14855](https://github.com/civicrm/civicrm-core/pull/14855))** |
| 973 | |
| 974 | - **[NFC] code reformatting |
| 975 | ([14853](https://github.com/civicrm/civicrm-core/pull/14853))** |
| 976 | |
| 977 | - **(NFC) VERSIONS.php - Add discussion about how to migrate to composer |
| 978 | ([261](https://github.com/civicrm/civicrm-packages/pull/261))** |
| 979 | |
| 980 | - **[NFC] comment fixes, function mis-casing fix |
| 981 | ([14906](https://github.com/civicrm/civicrm-core/pull/14906))** |
| 982 | |
| 983 | - **[NFC] comment |
| 984 | fixes([15197](https://github.com/civicrm/civicrm-core/pull/15197))** |
| 985 | |
| 986 | ## <a name="credits"></a>Credits |
| 987 | |
| 988 | This release was developed by the following code authors: |
| 989 | |
| 990 | AGH Strategies - Andie Hunt, Eli Lisseck; Agileware - Alok Patel, Justin |
| 991 | Freeman; Australian Greens - Seamus Lee; Circle Interactive - Dave Jenkins, Kirk |
| 992 | Jackson, Pradeep Nayak; CiviCRM - Coleman Watts, Tim Otten; CiviDesk - Yashodha |
| 993 | Chaku; Coop SymbioTIC - Mathieu Lutfy; Dave D; Deepak Srivastava; Electronic |
| 994 | Frontier Foundation - Mark Burdett; Freeform Solutions - Herb van den Dool; |
| 995 | Fuzion - Jitendra Purohit; Giant Rabbit - Peter Haight; Greenpeace CEE - Patrick |
| 996 | Figel; iXiam - Luciano Spiegel; JMA Consulting - Monish Deb; John Kingsnorth; |
| 997 | Lighthouse Design and Consulting - Brian Shaughnessy; Megaphone Technology |
| 998 | Consulting - Jon Goldberg; MillerTech - Chamil Wijesooriya; MJCO - Mikey |
| 999 | O'Toole; MJW Consulting - Matthew Wire; Nicol Wistreich; OSSeed Technologies |
| 1000 | LLP - Sushant Paste; Squiffle Consulting - Aidan Saunders; Wikimedia Foundation - |
| 1001 | Eileen McNaughton |
| 1002 | |
| 1003 | Most authors also reviewed code for this release; in addition, the following |
| 1004 | reviewers contributed their comments: |
| 1005 | |
| 1006 | AGH Strategies - Alice Frumin; Agileware - Justin Freeman; CiviCoop - Jaap |
| 1007 | Jansma; CiviDesk - Nicolas Ganivet; CompuCorp - Alessandro Verdura; Fuzion - |
| 1008 | Luke Stewart; Joseph Lacey; Richard van Oosterhout; Ryan L. Robinson; Skvare - |
| 1009 | Mark Hanna; Tadpole Collective - Kevin Cristiano; |
| 1010 | |
| 1011 | ## <a name="feedback"></a>Feedback |
| 1012 | |
| 1013 | These release notes are edited by Alice Frumin and Andie Hunt. If you'd like |
| 1014 | to provide feedback on them, please log in to https://chat.civicrm.org/civicrm |
| 1015 | and contact `@agh1`. |