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