Merge pull request #23615 from totten/master-mysql-bump
[civicrm-core.git] / release-notes / 5.19.0.md
1 # CiviCRM 5.19.0
2
3 Released November 6, 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? | no |
21 | **Introduce features?** | **yes** |
22 | **Fix bugs?** | **yes** |
23
24 ## <a name="features"></a>Features
25
26 ### Core CiviCRM
27
28 - **Migrate APIv4 into civicrm-core
29 ([15309](https://github.com/civicrm/civicrm-core/pull/15309) and
30 [15331](https://github.com/civicrm/civicrm-core/pull/15331))**
31
32 Migrates API version 4 from a standalone extension (`org.civicrm.api4`)
33 into the core codebase. If the old extension is present, it will be disabled.
34
35 For more information, see [Developer Guide: APIv4 Usage](https://docs.civicrm.org/dev/en/latest/api/v4/usage/)
36 and [Differences between APIv3 / APIv4](https://docs.civicrm.org/dev/en/latest/api/v4/differences-with-v3/).
37
38 - **Improve obsolete extension management
39 ([15352](https://github.com/civicrm/civicrm-core/pull/15352))**
40
41 This change improves the extension UI by marking obsolete extensions as
42 "Obsolete", removing the Install and Enable actions for obsolete extensions
43 and completely uninstalling obsolete extensions during core upgrades.
44
45 - **Check requirements before upgrading extensions via the UI
46 ([15450](https://github.com/civicrm/civicrm-core/pull/15450))**
47
48 Improves user experience by checking for required dependencies when upgrading
49 an extension. If the extension version being upgraded to requires a dependency
50 throws a helpful error.
51
52 - **Upgrader: handle missing obsolete extensions
53 ([15343](https://github.com/civicrm/civicrm-core/pull/15343))**
54
55 Improves the mechanism for auto-disabling obsolete extensions during the
56 upgrade process to disable extensions even if they are missing.
57
58 - **Updated entityRefFilters hook to support alter form create links
59 ([15231](https://github.com/civicrm/civicrm-core/pull/15231))**
60
61 Improves the `hook_civicrm_entityRefFilters()` to support altering create
62 links like "New Household" and "New Individual".
63
64 - **Add getdisplayvalue api with unit test.
65 ([15335](https://github.com/civicrm/civicrm-core/pull/15335))**
66
67 Adds a new action `getdisplayvalue` to the `CustomValue` entity.
68
69 - **Add in an index on geo_code_1 and geo_code_2 to assist with distance and
70 other queries ([15361](https://github.com/civicrm/civicrm-core/pull/15361))**
71
72 Adds an index to `geo_code_1` and `geo_code_2` to help calculation
73 queries based on latitude and longitude.
74
75 - **Allow columns in relationship table to be modified by searchColumns hook
76 ([14184](https://github.com/civicrm/civicrm-core/pull/14184))**
77
78 Allow columns in the relationship table to be modified by
79 `hook_civicrm_searchColumns()`. This allows developers to modify the columns
80 shown to the user on the Contact relationships tab.
81
82 - **Per agreement in NYC sprint, add status check is_active to table
83 ([dev/core#1295](https://lab.civicrm.org/dev/core/issues/1295):
84 [15409](https://github.com/civicrm/civicrm-core/pull/15409) and
85 [15416](https://github.com/civicrm/civicrm-core/pull/15416))**
86
87 Adds an `is_active` field to the `civicrm_status_pref` table which is
88 api-accessible but not UI exposed. This field enables developers and system
89 administrators to turn off a system check.
90
91 - **Declare metadata for component payment fields on export
92 ([15243](https://github.com/civicrm/civicrm-core/pull/15243))**
93
94 Adds metadata for component payment fields.
95
96 - **Add CRM_Utils_JS::encode function
97 ([15285](https://github.com/civicrm/civicrm-core/pull/15285))**
98
99 Adds a utility function for encoding javascript strings which gives an output
100 that looks more like handwritten javascript and less like the overly-quoted
101 `json_encode`.
102
103 - **CRM_Utils_JS - Improve encode handling of strings
104 ([15295](https://github.com/civicrm/civicrm-core/pull/15295))**
105
106 Improves test scenarios and tweaks the encode and decode functions to handle
107 strings better.
108
109 - **Event Info/Contribution Page Smarty templates are inconsistent and ugly
110 ([dev/core#1225](https://lab.civicrm.org/dev/core/issues/1225):
111 [15168](https://github.com/civicrm/civicrm-core/pull/15168))**
112
113 Improves the HTML of the smarty templates that power the "Event Info" and
114 "Contribution Page". The pages appear the same to the end user but the
115 underlying HTML is cleaner.
116
117 ### CiviContribute
118
119 - **Update Online Contributions section of configuration checklist
120 ([dev/core#1259](https://lab.civicrm.org/dev/core/issues/1259):
121 [15317](https://github.com/civicrm/civicrm-core/pull/15317))**
122
123 Improves the user experience of the Configuration Checklist Online
124 Contributions section, specifically: only shows this section if CiviContribute
125 is enabled, removes the system workflow templates list item, improves links to
126 documentation.
127
128 - **Add trxn_id as a parameter on Payment.get
129 ([15417](https://github.com/civicrm/civicrm-core/pull/15417))**
130
131 Adds `trxn_id` as a viable parameter to the API call `Payment.get`.
132
133 ### CiviMail
134
135 - **Mailing API - Expose option list for `header_id` and `footer_id`
136 ([15325](https://github.com/civicrm/civicrm-core/pull/15325))**
137
138 Improves the Mailing API `getoptions` and `getfields` actions to work for the
139 fields `header_id` and `footer_id`.
140
141 - **Add unique name to mailing_job.start_date
142 ([15210](https://github.com/civicrm/civicrm-core/pull/15210))**
143
144 Adds metadata to the `MailingJob.start_date` field to prepare this field to
145 use datepicker.
146
147 ## <a name="bugs"></a>Bugs resolved
148
149 ### Core CiviCRM
150
151 - **Error during "Import Contribution" and not able to import
152 ([dev/core#1269](https://lab.civicrm.org/dev/core/issues/1269):
153 [15447](https://github.com/civicrm/civicrm-core/pull/15447))**
154
155 Fixes an error 'Error: Class name must be a valid object or a string in
156 CRM_Import_Parser->parsePseudoConstantField()'' when attempting to import a
157 contribution spreadsheet with a custom field column.
158
159 - **PHP 7.3 warning on "Import contribution" page.
160 ([dev/core#1272](https://lab.civicrm.org/dev/core/issues/1272):
161 [15346](https://github.com/civicrm/civicrm-core/pull/15346))**
162
163 Fixes a warning: 'Warning: "continue" targeting switch is equivalent to
164 "break".' on the match fields screen of a Contributions import.
165
166 - **Undefined variable isLiveMode when using print/merge document action from
167 search results ([dev/core#1281](https://lab.civicrm.org/dev/core/issues/1281):
168 [15420](https://github.com/civicrm/civicrm-core/pull/15420))**
169
170 Fixes an E-notice "Undefined variable: isLiveMode in
171 CRM_Contact_Form_Task_PDFLetterCommon::postProcess() (line 183 of
172 .../web/sites/all/modules/civicrm/CRM/Contact/Form/Task/PDFLetterCommon.php)"
173 when using print/merge document action from search results.
174
175 - **Add Custom Fields to Logging Tables
176 ([15642](https://github.com/civicrm/civicrm-core/pull/15642),
177 [15726](https://github.com/civicrm/civicrm-core/pull/15726), and
178 [15741](https://github.com/civicrm/civicrm-core/pull/15741); related to
179 [dev/core#1093](https://lab.civicrm.org/dev/core/issues/1093))**
180
181 This resolves a fatal error when a custom field is added via XML file upon
182 installation of an extension, logging is turned on, and part of the
183 installation process inserts information on that new field.
184
185 In addition, it preserves a feature looking up option group IDs according to
186 names provided in the XML.
187
188 - **Find Activities/Pledges not working in 5.19beta1 and master
189 ([dev/core#1348](https://lab.civicrm.org/dev/core/issues/1348):
190 [15655](https://github.com/civicrm/civicrm-core/pull/15655) and
191 [15657](https://github.com/civicrm/civicrm-core/pull/15657))**
192
193 This resolves a bug where the values set on activity and pledge search forms
194 were not respected, instead returning all activities or pledges.
195
196 - **Programatic Installation of Extension after Upgrading CiviCRM causes Error
197 ([dev/core#1360](https://lab.civicrm.org/dev/core/issues/1360):
198 [15724](https://github.com/civicrm/civicrm-core/pull/15724))**
199
200 - **exported data truncated to 255 when alphanumeric field value
201 ([dev/core#1283](https://lab.civicrm.org/dev/core/issues/1283):
202 [15414](https://github.com/civicrm/civicrm-core/pull/15414))**
203
204 Fixes a bug where custom fields longer than 255 chars were not being truncated
205 to 255 characters when exported.
206
207 - **Importing campaigns only works with label
208 ([dev/core#1285](https://lab.civicrm.org/dev/core/issues/1285):
209 [15453](https://github.com/civicrm/civicrm-core/pull/15453))**
210
211 Fixes a regression when importing Contributions where the campaign id stopped
212 working as a valid option so that the contribution import accepts ids or
213 labels for campaigns.
214
215 - **Blank screen with no errors if you choose "Exclude contacts with 'do not
216 mail' privacy" during export where that causes it to have zero contacts
217 ([dev/core#1293](https://lab.civicrm.org/dev/core/issues/1293):
218 [15439](https://github.com/civicrm/civicrm-core/pull/15439) and
219 [15440](https://github.com/civicrm/civicrm-core/pull/15440))**
220
221 Improves the ui when outputting an empty csv file. Before this change
222 attempting to export a csv with no rows would result in a white screen of
223 death with this change an empty csv is exported.
224
225 - **Do not check for the extension we are trying to download itself
226 ([15506](https://github.com/civicrm/civicrm-core/pull/15506))**
227
228 Fixes an error when trying to add and install a new extension thru the ui.
229
230 - **Removing 'Array' from user dashboard contributions
231 ([15365](https://github.com/civicrm/civicrm-core/pull/15365))**
232
233 Ensures that the word "Array" never appears in the "Your Contribution's"
234 section on the user dashboard.
235
236 - **Stop passing exportMode, componentTable and ids by reference in export hook
237 ([15302](https://github.com/civicrm/civicrm-core/pull/15302))**
238
239 Makes it easier to alter an exports `exportMode`, `componentTable` and ids
240 variables.
241
242 - **Ensure Dashboard domain ID is set even when passed as a param
243 ([15282](https://github.com/civicrm/civicrm-core/pull/15282))**
244
245 Ensures the `domain_id` parameter is respected when creating a dashlet via the
246 `Dashboard.create` API.
247
248 - **CRM-21777 - Set readonly for the smtp fields initialised in
249 civicrm_settings.php
250 ([15305](https://github.com/civicrm/civicrm-core/pull/15305))**
251
252 Ensures that SMTP fields initialized in `civicrm.settings.php` are loaded as
253 read only. Before this change SMTP fields initialized in `civicrm.settings.php`
254 were loaded as editable but editing them would do nothing.
255
256 - **Fix php 7.2+ deprecation error
257 ([15178](https://github.com/civicrm/civicrm-core/pull/15178))**
258
259 - **Update spelling of htmlpurifier to be correct spelling
260 ([15342](https://github.com/civicrm/civicrm-core/pull/15342))**
261
262 - **Fix directory name spelling for htmlpurifier
263 ([265](https://github.com/civicrm/civicrm-packages/pull/265))**
264
265 - **Fatal error in export when using "Merge All Contacts with the Same Address"
266 and Selected Fields instead of Primary Fields
267 ([dev/core#1302](https://lab.civicrm.org/dev/core/issues/1302):
268 [15443](https://github.com/civicrm/civicrm-core/pull/15443))**
269
270 - **Fatal error when sorting on a custom field in a profile listing
271 ([dev/core#1305](https://lab.civicrm.org/dev/core/issues/1305):
272 [15454](https://github.com/civicrm/civicrm-core/pull/15454))**
273
274 - **Fix status check not rendering before 5.19 migrations
275 ([15428](https://github.com/civicrm/civicrm-core/pull/15428))**
276
277 - **Fix height of select2 box (appears squished)
278 ([15403](https://github.com/civicrm/civicrm-core/pull/15403))**
279
280 - **Regression: on translated site with Pending status being translated,
281 membership are renewed twice
282 ([dev/core#1291](https://lab.civicrm.org/dev/core/issues/1291):
283 [15376](https://github.com/civicrm/civicrm-core/pull/15376))**
284
285 ### CiviCase
286
287 - **Case statuses in case type configuration page are not ordered by their
288 weight. ([dev/core#1262](https://lab.civicrm.org/dev/core/issues/1262):
289 [15319](https://github.com/civicrm/civicrm-core/pull/15319))**
290
291 ### CiviContribute
292
293 - **Fix a regression whereby payment details are not saved from the
294 AdditionalPayment form
295 ([15537](https://github.com/civicrm/civicrm-core/pull/15537))**
296
297 - **Contribution Summary report only shows first 50 entries
298 ([dev/core#1252](https://lab.civicrm.org/dev/core/issues/1252):
299 [15558](https://github.com/civicrm/civicrm-core/pull/15558))**
300
301 - **Notice error on contribution page
302 ([dev/core#1264](https://lab.civicrm.org/dev/core/issues/1264):
303 [15320](https://github.com/civicrm/civicrm-core/pull/15320))**
304
305 Fixes an e-notice "undefined index receipt_from_name" on the
306 contribution page.
307
308 - **Fix checking of isSubscriptionCancelled when label is changed
309 ([15406](https://github.com/civicrm/civicrm-core/pull/15406))**
310
311 Moves to comparing names instead of labels to prevent issues for multilingual
312 users.
313
314 - **Check number doesn't show up if payment method name - Check changed to
315 Cheque ([dev/financial#67](https://lab.civicrm.org/dev/financial/issues/67):
316 [15263](https://github.com/civicrm/civicrm-core/pull/15263))**
317
318 - **Check number doesn't get stored in associated financial_trxn record, if the
319 contribution is made using 'Contribution/Membership batch data Entry' form
320 ([dev/financial#68](https://lab.civicrm.org/dev/financial/issues/68):
321 [15272](https://github.com/civicrm/civicrm-core/pull/15272))**
322
323 - **Recording one payment against a "Pending (Incomplete Transaction)" results
324 in two payments
325 ([dev/financial#69](https://lab.civicrm.org/dev/financial/issues/69):
326 [15502](https://github.com/civicrm/civicrm-core/pull/15502))**
327
328 - **Can't email a partially paid invoice
329 ([dev/financial#71](https://lab.civicrm.org/dev/financial/issues/71):
330 [15388](https://github.com/civicrm/civicrm-core/pull/15388))**
331
332 ### CiviEvent
333
334 - **Enotice fix (unreleased enotice)
335 ([15569](https://github.com/civicrm/civicrm-core/pull/15569))**
336
337 This resolves a PHP notice reading "Notice: Undefined variable: eventID" when
338 recording a payment linked to an event registration.
339
340 ### CiviMail
341
342 - **Mail job stuck after contact marked deceased
343 ([dev/core#861](https://lab.civicrm.org/dev/core/issues/861):
344 [15404](https://github.com/civicrm/civicrm-core/pull/15404))**
345
346 Ensures no bulk emails are sent to contacts changed to deceased or put on hold
347 between when the mailing is scheduled and when it is sent.
348
349 - **jasmine test crmMailingRadioDateSpec.js always has a failure if west of GMT
350 ([dev/core#1279](https://lab.civicrm.org/dev/core/issues/1279):
351 [15366](https://github.com/civicrm/civicrm-core/pull/15366))**
352
353 ### CiviMember
354
355 - **Fix 5.18 regression on membership handling
356 ([15494](https://github.com/civicrm/civicrm-core/pull/15494))**
357
358 Fixes a 5.18 regression where sites with labels for contribution status
359 'Pending' that are NOT 'Pending' would result in the membership end date being
360 inappropriately extended when the back end renewal form is submitted with a
361 pending payment.
362
363 - **Prevent error on price set membership update
364 ([15142](https://github.com/civicrm/civicrm-core/pull/15142))**
365
366 Fixes a fatal error when the `repeattransaction` action is called for a
367 transaction that includes two memberships of the same type.
368
369 - **Contributions not recording if selected membership is "none" when using a
370 membership priceset
371 ([dev/core#792](https://lab.civicrm.org/dev/core/issues/792):
372 [15094](https://github.com/civicrm/civicrm-core/pull/15094))**
373
374 - **Regression fix on Paypal Std with memberships not being finalised correctly.
375 ([15538](https://github.com/civicrm/civicrm-core/pull/15538))**
376
377 ### Joomla Integration
378
379 - **[Joomla 4.0] CiviCRM pages don't work in Joomla frontend - Class 'JRequest'
380 not found ([dev/joomla#22](https://lab.civicrm.org/dev/joomla/issues/22):
381 [15132](https://github.com/civicrm/civicrm-core/pull/15132))**
382
383 Fixes a bug where no CiviCRM Frontend page could be viewed on Joomla 4.0.
384
385 ## <a name="misc"></a>Miscellany
386
387 - **Rename balanceTrxnParams to paymentTrxnParams [REF]
388 ([15539](https://github.com/civicrm/civicrm-core/pull/15539))**
389
390 - **Remove legacy Yahoo references from the Mapping/Geocoding settings/code.
391 ([15405](https://github.com/civicrm/civicrm-core/pull/15405))**
392
393 - **(DX) api/v3/examples - Rename `*.php` to `*.ex.php`
394 ([15310](https://github.com/civicrm/civicrm-core/pull/15310))**
395
396 - **Update CiviCRM contributors.txt
397 ([15303](https://github.com/civicrm/civicrm-core/pull/15303))**
398
399 - **Remove static caching of static on Contribution page tab
400 ([15329](https://github.com/civicrm/civicrm-core/pull/15329))**
401
402 - **Extract the code to get the field name.
403 ([15389](https://github.com/civicrm/civicrm-core/pull/15389))**
404
405 - **Don't use random parameters to detect if we should create MembershipPayment
406 ([14897](https://github.com/civicrm/civicrm-core/pull/14897))**
407
408 - **Remove call to updateRecurMembership which is handled by Membership::create
409 BAO ([15384](https://github.com/civicrm/civicrm-core/pull/15384))**
410
411 - **[REF] Pull out anonymous javascript function to make it testable
412 ([15378](https://github.com/civicrm/civicrm-core/pull/15378))**
413
414 - **[REF] Consolidate getFormValues on contribution search
415 ([15379](https://github.com/civicrm/civicrm-core/pull/15379))**
416
417 - **[REF] Fix path to htmlpurifier in IDS file
418 ([15360](https://github.com/civicrm/civicrm-core/pull/15360))**
419
420 - **[REF] Remove call to depreacated getValue call in Mailing Preferences…
421 ([15368](https://github.com/civicrm/civicrm-core/pull/15368))**
422
423 - **(REF) Remove unused functions, setTemplateMenuValues() and getNavigation()
424 ([15274](https://github.com/civicrm/civicrm-core/pull/15274))**
425
426 - **REF Make the formatParamsForPaymentProcessor function more generic so it can
427 be used more ([15280](https://github.com/civicrm/civicrm-core/pull/15280))**
428
429 - **REF Explicitly specify params so we can find problems with comparing
430 translated labels
431 ([15397](https://github.com/civicrm/civicrm-core/pull/15397))**
432
433 - **REF Remove some duplication in CRM_Utils_Type::escape/validate
434 ([14577](https://github.com/civicrm/civicrm-core/pull/14577))**
435
436 - **[REF] don't handle non-array, pass by reference
437 ([15413](https://github.com/civicrm/civicrm-core/pull/15413))**
438
439 - **(NFC) api4 - Apply standard headers
440 ([15353](https://github.com/civicrm/civicrm-core/pull/15353))**
441
442 - **[NFC] code formatting & exceptions in doc blocks
443 ([15402](https://github.com/civicrm/civicrm-core/pull/15402))**
444
445 - **[NFC] Rename local variable
446 ([15377](https://github.com/civicrm/civicrm-core/pull/15377))**
447
448 - **[NFC] Reword event docs to clarify priority vs weight
449 ([15308](https://github.com/civicrm/civicrm-core/pull/15308))**
450
451 - **[NFC] array formatting:
452 ([15250](https://github.com/civicrm/civicrm-core/pull/15250))**
453
454 - **[NFC] Add in code comments about the column default issue with is_ema…
455 ([15301](https://github.com/civicrm/civicrm-core/pull/15301))**
456
457 - **CRM-21677 Missing Summary
458 ([15230](https://github.com/civicrm/civicrm-core/pull/15230))**
459
460 - **Add test for uF group one bug
461 ([15381](https://github.com/civicrm/civicrm-core/pull/15381))**
462
463 - **Unit test for #15094 fix
464 ([15228](https://github.com/civicrm/civicrm-core/pull/15228))**
465
466 - **[TEST] dev/core#1046 - tests for case type edit screen
467 ([15385](https://github.com/civicrm/civicrm-core/pull/15385))**
468
469 - **Extend Export test to cover altering sqlColumns and headerRows via
470 hook_civicrm_export
471 ([15312](https://github.com/civicrm/civicrm-core/pull/15312))**
472
473 - **[NFC] Fix AuthorizeNet Test failure due to credit card being expired
474 ([15690](https://github.com/civicrm/civicrm-core/pull/15690))**
475
476 ## <a name="credits"></a>Credits
477
478 This release was developed by the following code authors:
479
480 AGH Strategies - Andie Hunt, Eli Lisseck; Agileware - Justin Freeman; Andrew
481 Thompson; Australian Greens - Seamus Lee; Christian Wach; Circle Interactive -
482 Pradeep Nayak; CiviCRM - Coleman Watts, Tim Otten; CiviDesk - Yashodha Chaku;
483 CompuCorp - Vinu Varshith Sekar; Coop SymbioTIC - Mathieu Lutfy, Samuel Vanhove;
484 Dave D; Fuzion - Jitendra Purohit; Greenpeace CEE - Patrick Figel; JMA
485 Consulting - Monish Deb; John Kingsnorth; Megaphone Technology Consulting - Jon
486 Goldberg; MJCO - Mikey O'Toole; MJW Consulting - Matthew Wire; Kilakwa
487 Associates - smaen123; Wikimedia Foundation - Eileen McNaughton
488
489 Most authors also reviewed code for this release; in addition, the following
490 reviewers contributed their comments:
491
492 AGH Strategies - Alice Frumin; Artful Robot - Rich Lott; Circle Interactive -
493 Dave Jenkins; Community IT Academy - William Mortada; JMA Consulting - Joe
494 Murray; Korlon - Stuart Gaston; Nicol Wistreich; Tadpole Collective - Kevin
495 Cristiano
496
497 ## <a name="feedback"></a>Feedback
498
499 These release notes are edited by Alice Frumin and Andie Hunt. If you'd like
500 to provide feedback on them, please log in to https://chat.civicrm.org/civicrm
501 and contact `@agh1`.