Merge pull request #17484 from civicrm/5.26
[civicrm-core.git] / release-notes / 5.26.0.md
1 # CiviCRM 5.26.0
2
3 Released June 3, 2020
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? | **yes** |
20 | Fix problems installing or upgrading to a previous version? | **yes** |
21 | Introduce features? | **yes** |
22 | Fix bugs? | **yes** |
23
24 ## NOTICE: WordPress Service URLs
25
26 The upcoming release of WordPress 5.5 ([ETA August 2020](https://make.wordpress.org/core/5-5/)) requires changes to several CiviCRM URLs. CiviCRM 5.26+ adopts a new URL convention. For old URLs, there is transitional support that will work for most web-based visitors. However, this may not be sufficient for *external service integrations* (e.g. certain payment processors or email relays which send notifications to CiviCRM).
27
28 Administrators should promptly assess and update any external services which submit notifications to their CiviCRM-WordPress sites. For more information, see the blog post [CiviCRM 5.26 and WordPress: Important notice](https://civicrm.org/blog/kcristiano/civicrm-526-and-wordpress-important-notice).
29
30 ## <a name="features"></a>Features
31
32 ### Core CiviCRM
33
34 - **Create nl_BE translation
35 ([dev/translation#4](https://lab.civicrm.org/dev/translation/issues/4):
36 [17048](https://github.com/civicrm/civicrm-core/pull/17048),
37 [17027](https://github.com/civicrm/civicrm-core/pull/17027) and
38 [16966](https://github.com/civicrm/civicrm-core/pull/16966))**
39
40 Adds a "Dutch (Belgium)" (shorthand: nl_BE) translation of CiviCRM which
41 heavily borrows from the existing "Dutch (Netherlands)" (nl_NL) translation
42 with a few changes.
43
44 - **APIv4 - Allow field options to be returned in multiple formats
45 ([17167](https://github.com/civicrm/civicrm-core/pull/17167))**
46
47 Gives more flexibility about how options are returned from APIv4 and adds
48 visibility in the API explorer.
49
50 - **APIv4 - how do I interact with option values???
51 ([dev/core#1705](https://lab.civicrm.org/dev/core/issues/1705):
52 [17158](https://github.com/civicrm/civicrm-core/pull/17158),
53 [17138](https://github.com/civicrm/civicrm-core/pull/17138) and
54 [17219](https://github.com/civicrm/civicrm-core/pull/17219))**
55
56 Adds support for pseudoconstants to APIv4.
57
58 - **Add MessageTemplate api to v4
59 ([17073](https://github.com/civicrm/civicrm-core/pull/17073))**
60
61 Adds new "MessageTemplate" entity to APIv4.
62
63 - **APIv4 - Add support for HAVING clause
64 ([17015](https://github.com/civicrm/civicrm-core/pull/17015))**
65
66 Adds support for using `HAVING` clauses in APIv4.
67
68 - **APIv4 Query Improvements (Work Towards
69 [dev/report#31](https://lab.civicrm.org/dev/report/issues/31):
70 [17113](https://github.com/civicrm/civicrm-core/pull/17113) and
71 [17047](https://github.com/civicrm/civicrm-core/pull/17047))**
72
73 This adds UI support for new APIv4 features. Specifically, SQL functions and
74 aliases are now available in the API explorer, as is the `HAVING` clause and
75 `GROUP BY` clause.
76
77 - **End of life planning for MySQL server 5.0 - 5.6 (Work Towards
78 [dev/core#1681](https://lab.civicrm.org/dev/core/issues/1681):
79 [17261](https://github.com/civicrm/civicrm-core/pull/17261))**
80
81 Adds a deprecation notice for Systems using MySQL versions before 5.7 and
82 requires 5.5 to install.
83
84 - **allow inline help text title to be overriden
85 ([dev/core#1693](https://lab.civicrm.org/dev/core/issues/1693):
86 [16998](https://github.com/civicrm/civicrm-core/pull/16998))**
87
88 This change makes it possible to override inline help text titles in a
89 `.hlp.extra` file.
90
91 - **Update attachment message on mailing form.
92 ([dev/core#1696](https://lab.civicrm.org/dev/core/issues/1696):
93 [17024](https://github.com/civicrm/civicrm-core/pull/17024))**
94
95 This updates the help text on CiviMail attachments to specify the maximum size
96 of each attachment.
97
98 - **Convert CC and BCC fields to use an entity reference.
99 ([17064](https://github.com/civicrm/civicrm-core/pull/17064) and [17129](https://github.com/civicrm/civicrm-core/pull/17129))**
100
101 The CC and BCC fields on all email forms are now entity references to the
102 email ID. This simplifies the code and extends filtering on the field.
103
104 - **Introduce "civi.dao.preUpdate" and "civi.dao.preInsert" events
105 ([dev/core#1638](https://lab.civicrm.org/dev/core/issues/1638):
106 [16714](https://github.com/civicrm/civicrm-core/pull/16714))**
107
108 Makes it possible to use a hook to inspect the data of an Option Value prior
109 to it being created or updated.
110
111 - **Add ID to custom group/field admin forms
112 ([17055](https://github.com/civicrm/civicrm-core/pull/17055))**
113
114 The ID numbers are displayed in the tables of custom fields and groups.
115
116 - **Improve AngularJS performance with one-time binding for static strings
117 ([17050](https://github.com/civicrm/civicrm-core/pull/17050))**
118
119 This improves performance of AngularJS pages and forms by having the
120 translation function only execute once when the translated string is static.
121
122 - **Allow setting metadata to use the `table` option. Update example setting
123 `default_invoice_page`.
124 ([16903](https://github.com/civicrm/civicrm-core/pull/16903))**
125
126 Setting metadata that refers to an entity can now be defined with reference to
127 a database table, specifying the key and label columns, rather than requiring
128 a pseudoconstant function to populate the options.
129
130 - **Add / make fit for purpose email.getlist api call
131 ([16993](https://github.com/civicrm/civicrm-core/pull/16993))**
132
133 Improves the `Email.getlist` API so that it is usable for entity reference
134 fields.
135
136 ### CiviCase
137
138 - **Add email link in case summary
139 ([16959](https://github.com/civicrm/civicrm-core/pull/16959))**
140
141 Adds an "Email" icon to the Case Summary page that when clicked opens a pop up
142 window to email the client.
143
144 ### CiviContribute
145
146 - **Add contribution source to recurring contribution report
147 ([17187](https://github.com/civicrm/civicrm-core/pull/17187))**
148
149 Adds "Contribution Source" as a column on the Recurring Contribution Report.
150
151 - **Show email receipt status on view recurring contribution
152 ([17177](https://github.com/civicrm/civicrm-core/pull/17177))**
153
154 When viewing a contribution this change exposes the value of
155 `is_email_receipt`.
156
157 - **Add contributor email address to cancelSubscription form so it is clear who
158 will be notified
159 ([16716](https://github.com/civicrm/civicrm-core/pull/16716))**
160
161 Adds the contributor email to the Cancel Recurring Contribution form so it is
162 clear who will be notified.
163
164 - **add filter and sorting for receipt date in contribution report
165 ([17044](https://github.com/civicrm/civicrm-core/pull/17044) and
166 [16994](https://github.com/civicrm/civicrm-core/pull/16994))**
167
168 Adds a filter and sorting for "receipt date" to Contribution Reports.
169
170 - **Capitalise PAN truncation
171 ([16973](https://github.com/civicrm/civicrm-core/pull/16973) and
172 [16964](https://github.com/civicrm/civicrm-core/pull/16964))**
173
174 Capitilizes the "PAN" in "Pan Truncation" to improve user experience. PAN is
175 an acronym for Primary Account Number (credit card number).
176
177 ### CiviMail
178
179 - **Mailing Report: hide the HTML preview
180 ([16899](https://github.com/civicrm/civicrm-core/pull/16899))**
181
182 Improves the Mailing report by hiding the HTML preview because it was too
183 short to be helpful to begin with.
184
185 ## <a name="bugs"></a>Bugs resolved
186
187 ### Core CiviCRM
188
189 - **How best to handle Event Dispatchers during upgrade (Work Towards
190 [dev/core#1460](https://lab.civicrm.org/dev/core/issues/1460):
191 [17127](https://github.com/civicrm/civicrm-core/pull/17127) and
192 [17216](https://github.com/civicrm/civicrm-core/pull/17216))**
193
194 This updates the `CiviEventDispatcher` with a method `setDispatchPolicy()`
195 that can be used to dynamically toggle support for specific events/hooks and
196 updates a related test.
197
198 - **After core upgrade, extension routes unavailable
199 ([dev/core#1460](https://lab.civicrm.org/dev/core/issues/1460) and
200 [dev/core#1713](https://lab.civicrm.org/dev/core/issues/1713)
201 [17126](https://github.com/civicrm/civicrm-core/pull/17126))**
202
203 - **Report Dev tab display SQL multiple times
204 ([dev/core#1673](https://lab.civicrm.org/dev/core/issues/1673):
205 [17001](https://github.com/civicrm/civicrm-core/pull/17001))**
206
207 - **Namespaced classes cannot contain an underscore
208 ([dev/core#1684](https://lab.civicrm.org/dev/core/issues/1684):
209 [17105](https://github.com/civicrm/civicrm-core/pull/17105))**
210
211 Allows underscores in class names.
212
213 - **Search builder returns DB error on Group => Empty filter
214 ([dev/core#1685](https://lab.civicrm.org/dev/core/issues/1685):
215 [16953](https://github.com/civicrm/civicrm-core/pull/16953))**
216
217 - **Allow override of inherited CMS language when in CiviCRM
218 ([17006](https://github.com/civicrm/civicrm-core/pull/17006))**
219
220 This ensures that the language switcher can be used in CiviCRM even when the
221 default language is set to inherit from the user's CMS session.
222
223 - **Longitude not checked out of box
224 ([dev/core#1739](https://lab.civicrm.org/dev/core/issues/1739):
225 [17238](https://github.com/civicrm/civicrm-core/pull/17238))**
226
227 Enables the Longitude field on Address Editing by default for new installs.
228
229 - **Export selected fields doesn't export related contacts if related info is
230 present in mapping
231 ([dev/core#1780](https://lab.civicrm.org/dev/core/issues/1780):
232 [17462](https://github.com/civicrm/civicrm-core/pull/17462))**
233
234 This fixes a bug where exporting a child and their parent was only resulting
235 in one row being exported when the related contact id was selected.
236
237 - **Regression: Fails to create smartgroup or refresh count of group
238 ([dev/core#1747](https://lab.civicrm.org/dev/core/issues/1747):
239 [17438](https://github.com/civicrm/civicrm-core/pull/17438))**
240
241 The temporary table created for smart groups involving the Date Added custom
242 search was removed too aggressively, resulting in database errors when
243 searching or refreshing the smart group count.
244
245 - **Contact restore from trash not working
246 ([dev/core#1784](https://lab.civicrm.org/dev/core/issues/1784):
247 [17418](https://github.com/civicrm/civicrm-core/pull/17418))**
248
249 - **[regression] Fix error on no MIME type
250 ([17265](https://github.com/civicrm/civicrm-core/pull/17265))**
251
252 Fixes `TypeError: Argument 1 passed to
253 MimeTyper\Repository\AbstractRepository::setFromMap() must be of the type
254 array, null given` error.
255
256 - **SyntaxConformanceTest::testSqlOperators - Fix failure on MySQL 8
257 ([17262](https://github.com/civicrm/civicrm-core/pull/17262))**
258
259 - **API explorer fatal joining to contribution from contact
260 ([dev/core#1563](https://lab.civicrm.org/dev/core/issues/1563):
261 [17239](https://github.com/civicrm/civicrm-core/pull/17239))**
262
263 - **APIv4 - Prevent field alias conflicts.
264 ([17109](https://github.com/civicrm/civicrm-core/pull/17109))**
265
266 - **APIv4 - Fix setting offset with no limit
267 ([17063](https://github.com/civicrm/civicrm-core/pull/17063))**
268
269 - **Fix admin page url for "conference slots" option values
270 ([17223](https://github.com/civicrm/civicrm-core/pull/17223))**
271
272 - **Fix Dedupe entity_tag mangling bug
273 ([17125](https://github.com/civicrm/civicrm-core/pull/17125))**
274
275 Fixes a bug whereby the merge script alters non-contact entity tags, changing
276 the entity they are related to.
277
278 - **show title on status message instead of machine name
279 ([17174](https://github.com/civicrm/civicrm-core/pull/17174))**
280
281 - **Do not create smarty cached templates for processed greetings
282 ([16733](https://github.com/civicrm/civicrm-core/pull/16733))**
283
284 - **Add contribution id as activity source record when downloading or emailing
285 invoice ([17165](https://github.com/civicrm/civicrm-core/pull/17165))**
286
287 Ensures that the Activity Source ID field is populated correctly for
288 Activities of the type "Emailed Invoice" and "Downloaded Invoice".
289
290 - **Correct option_group pseudoconstant and regenerate dao
291 ([17166](https://github.com/civicrm/civicrm-core/pull/17166))**
292
293 Fixes metadata for option_group pseudoconstant list so that labels are visible
294 in the list.
295
296 - **Update Colmbra state/province to Coimbra
297 ([17106](https://github.com/civicrm/civicrm-core/pull/17106) and
298 [17136](https://github.com/civicrm/civicrm-core/pull/17136))**
299
300 Fixes up some Portugal Province labels.
301
302 - **Archive text ([17074](https://github.com/civicrm/civicrm-core/pull/17074))**
303
304 Updates the intro text to archive contrib.txt in favor of recognizing
305 contributors via the release notes.
306
307 - **Fix 'selectedChild' parameter for pages with tabs
308 ([17066](https://github.com/civicrm/civicrm-core/pull/17066))**
309
310 Ensures that the tab set using the `selectedChild` URL parameter is respected.
311
312 - **Export: use X icon `fa-times` for closing things
313 ([17076](https://github.com/civicrm/civicrm-core/pull/17076))**
314
315 Ensures that the X icon is always used for closing things.
316
317 - **Dupe improve custom data handling
318 ([17060](https://github.com/civicrm/civicrm-core/pull/17060) and
319 [17077](https://github.com/civicrm/civicrm-core/pull/17077))**
320
321 Reduces code complexity & locking queries when merging contacts.
322
323 - **fixed mapping when using custom field for contact sub type
324 ([16957](https://github.com/civicrm/civicrm-core/pull/16957))**
325
326 Ensures import mappings populate contact sub-type custom fields.
327
328 - **set is_deceased to not null in schema and upgrade script
329 ([dev/core#1697](https://lab.civicrm.org/dev/core/issues/1697):
330 [17025](https://github.com/civicrm/civicrm-core/pull/17025))**
331
332 This removes the possibility of having undead contacts.
333
334 - **Allow adding variables to CRM.vars in any region
335 ([16888](https://github.com/civicrm/civicrm-core/pull/16888))**
336
337 - **Fix setting custom field TextArea attributes
338 ([16997](https://github.com/civicrm/civicrm-core/pull/16997))**
339
340 Ensures attributes for existing text area custom fields are not overwritten
341 during update operations.
342
343 - **Fix bug on handling 'is_required'
344 ([16901](https://github.com/civicrm/civicrm-core/pull/16901))**
345
346 Ensures that there is a "none" option for select fields that are not
347 required and are created extensions using the generic form.
348
349 - **Fix values passed to tokenValues hook
350 ([16623](https://github.com/civicrm/civicrm-core/pull/16623))**
351
352 Ensures that the `hook_civicrm_tokenValues` is passed the proper values.
353
354 - **Fix slowness in opening the select fields for export screen after an advanced search
355 ([dev/core#1725](ttps://lab.civicrm.org/dev/core/-/issues/1725):
356 [17444](https://github.com/civicrm/civicrm-core/pull/17444))**
357 Fixes a recent regression following the updating of the select fields export UI which on certain
358 sites slowed down the loading of the select fields screen significantly
359
360 ### CiviCase
361
362 - **Invalid and patchy XML encoding causes Case crash if status is not valid XML
363 ([dev/core#1719](https://lab.civicrm.org/dev/core/issues/1719):
364 [17100](https://github.com/civicrm/civicrm-core/pull/17100))**
365
366 Fixes a bug where CiviCase would fail to fully create a CaseType if a Case
367 Status' name was invalid in an XML context.
368
369 - **Case.get API returning Case Clients As Part of Related Contacts
370 ([dev/core#1659](https://lab.civicrm.org/dev/core/issues/1659):
371 [16837](https://github.com/civicrm/civicrm-core/pull/16837))**
372
373 - **Convert fatals to statusBounces in case forms
374 ([17212](https://github.com/civicrm/civicrm-core/pull/17212))**
375
376 - **Add missing translations to case activity revisions
377 ([16987](https://github.com/civicrm/civicrm-core/pull/16987))**
378
379 - **Case Details field is empty
380 ([16995](https://github.com/civicrm/civicrm-core/pull/16995))**
381
382 Ensures that the details field value is saved when creating a new case from
383 the core form.
384
385 ### CiviContribute
386
387 - **Contribution Detail Report gives incorrect results when `force=1`
388 ([dev/report#20](https://lab.civicrm.org/dev/report/issues/20):
389 [17234](https://github.com/civicrm/civicrm-core/pull/17234))**
390
391 - **Financial ACL Report check always fails
392 ([dev/core#1700](https://lab.civicrm.org/dev/core/issues/1700):
393 [17046](https://github.com/civicrm/civicrm-core/pull/17046))**
394
395 Ensures that if Finacial Type ACL's are enabled and the extension
396 `biz.jmaconsulting.financialaclreport` is installed the warning that you need
397 to install the extension is not displayed.
398
399 - **On Behalf Of fails to populate in Email Receipt
400 ([dev/core#57](https://lab.civicrm.org/dev/core/issues/57):
401 [17026](https://github.com/civicrm/civicrm-core/pull/17026))**
402
403 Fixes a bug where the On Behalf Of section was not being included in email
404 receipts.
405
406 - **Fixes a regression when cancelling a recurring with no processor_id
407 ([17292](https://github.com/civicrm/civicrm-core/pull/17292))**
408
409 - **Fix multiselect/checkbox custom field defaults on contribution online form
410 ([16991](https://github.com/civicrm/civicrm-core/pull/16991))**
411
412 ### CiviEvent
413
414 - **Fix multiselect/checkbox custom field defaults on registration profile
415 ([16981](https://github.com/civicrm/civicrm-core/pull/16981))**
416
417 ### CiviMail
418
419 - **Mailing Error when civicrm_mailing_group has duplicate entries of recipient
420 groups([dev/mail#62](https://lab.civicrm.org/dev/mail/issues/62):
421 [17130](https://github.com/civicrm/civicrm-core/pull/17130))**
422
423 ### CiviMember
424
425 - **membership batch entry: fix join date population
426 ([dev/core#1718](https://lab.civicrm.org/dev/core/issues/1718):
427 [17099](https://github.com/civicrm/civicrm-core/pull/17099))**
428
429 Ensures that when using the membership batch entry tool the "join date" is
430 populated with existing data.
431
432 - **Fix bug where tax_amount is miscalculated on membership renewals
433 ([16772](https://github.com/civicrm/civicrm-core/pull/16772))**
434
435 ### Drupal Integration
436
437 - **UF Settings page doesn't show CiviCRM database details for Drupal 8 Views
438 ([dev/core#1742](https://lab.civicrm.org/dev/core/issues/1742):
439 [17232](https://github.com/civicrm/civicrm-core/pull/17232))**
440
441 ### WordPress Integration
442
443 - **Support Clean URLs when using Polylang
444 ([191](https://github.com/civicrm/civicrm-wordpress/pull/191),
445 [189](https://github.com/civicrm/civicrm-wordpress/pull/189) and
446 [176](https://github.com/civicrm/civicrm-wordpress/pull/176))**
447
448 Ensures clean URLs work in WordPress with Polylang.
449
450 - **Fix WordPress support for Get UF Locale
451 ([dev/core#1635](https://lab.civicrm.org/dev/core/issues/1635):
452 [16700](https://github.com/civicrm/civicrm-core/pull/16700))**
453
454 Ensures WordPress front end pages follow the CMS language set in CiviCRM
455 instead of using the default CiviCRM language.
456
457 - **Styling issues after upgrade to WordPress 5.3
458 ([dev/wordpress#46](https://lab.civicrm.org/dev/wordpress/issues/46):
459 [16882](https://github.com/civicrm/civicrm-core/pull/16882))**
460
461 Ensures Select fields look like Select2 fields for WordPress users.
462
463 - **CiviCRM front end pages broken on WP Latest (master)
464 ([dev/wordpress#49](https://lab.civicrm.org/dev/wordpress/issues/49):
465 [17352](https://github.com/civicrm/civicrm-core/pull/17352),
466 [17424](https://github.com/civicrm/civicrm-core/pull/17424),
467 [199](https://github.com/civicrm/civicrm-wordpress/pull/199), and
468 [194](https://github.com/civicrm/civicrm-wordpress/pull/194))**
469
470 `canonical_redirect()` will strip "page=CiviCRM" from front end pages. These
471 changes ensures that CiviCRM plays nicely with this WordPress change.
472
473 - **Public mailing URL links are broken after merge of REST API wrapper code
474 ([dev/wordpress#52](https://lab.civicrm.org/dev/wordpress/issues/52):
475 [195](https://github.com/civicrm/civicrm-wordpress/pull/195))**
476
477 - **CiviMail doesn't send to full recipient list with merge of REST API wrapper
478 code ([dev/wordpress#53](https://lab.civicrm.org/dev/wordpress/issues/53):
479 [196](https://github.com/civicrm/civicrm-wordpress/pull/196))**
480
481 ## <a name="misc"></a>Miscellany
482
483 - **Use isSerialized function rather guessing from html_type
484 ([16979](https://github.com/civicrm/civicrm-core/pull/16979))**
485
486 - **Mitigate flaky test failure about
487 "CRM_Utils_Check_Component_Env->checkVersion()"
488 ([17038](https://github.com/civicrm/civicrm-core/pull/17038))**
489
490 - **Simplify groupContactCache - remove redundant query
491 ([17011](https://github.com/civicrm/civicrm-core/pull/17011))**
492
493 - **Duplicate EmailCommon::buildQuickForm onto the trait
494 ([17052](https://github.com/civicrm/civicrm-core/pull/17052))**
495
496 - **Make transaction param optional in completeOrder
497 ([17053](https://github.com/civicrm/civicrm-core/pull/17053))**
498
499 - **Don't pass empty ids parameter, fix fatal
500 ([17086](https://github.com/civicrm/civicrm-core/pull/17086))**
501
502 - **Less svn ([17159](https://github.com/civicrm/civicrm-core/pull/17159))**
503
504 - **OptionValue - Use DB defaults instead of setting them in BAO::add
505 ([17170](https://github.com/civicrm/civicrm-core/pull/17170))**
506
507 - **Move batch-form support code back to the form
508 ([17176](https://github.com/civicrm/civicrm-core/pull/17176))**
509
510 - **Start using apiv4 in test setup
511 ([17020](https://github.com/civicrm/civicrm-core/pull/17020))**
512
513 - **Further removal of long-deprecated skipCleanMoney
514 ([17175](https://github.com/civicrm/civicrm-core/pull/17175))**
515
516 - **Add workflow_name column to civicrm_msg_template, deprecate workflow_id
517 ([17227](https://github.com/civicrm/civicrm-core/pull/17227))**
518
519 - **Misplaced text in the Additional Details section on New Contribution
520 ([dev/user-interface#19](https://lab.civicrm.org/dev/user-interface/issues/19):
521 [17135](https://github.com/civicrm/civicrm-core/pull/17135))**
522
523 - **Cleanup and throw exceptions in OpenCase form
524 ([17184](https://github.com/civicrm/civicrm-core/pull/17184))**
525
526 - **Cleanup core pseudoconstant buildOptions
527 ([17122](https://github.com/civicrm/civicrm-core/pull/17122))**
528
529 - **Gitlab issue template - Ask for link to stackexchange or chat conversations
530 ([17186](https://github.com/civicrm/civicrm-core/pull/17186))**
531
532 - **Remove deprecated calls to optionValueQuery and no-longer-need param
533 ([17182](https://github.com/civicrm/civicrm-core/pull/17182))**
534
535 - **Refactor api3 Payment.Get API to support options + most fields in
536 civicrm_financial_trxn
537 ([17071](https://github.com/civicrm/civicrm-core/pull/17071))**
538
539 - **Remove unused parameter, immediately overwritten parameter
540 ([17131](https://github.com/civicrm/civicrm-core/pull/17131))**
541
542 - **Remove unused parameter from function
543 ([17098](https://github.com/civicrm/civicrm-core/pull/17098))**
544
545 - **Remove outputHeader as a param for writeCSVFile as it is always true
546 ([17051](https://github.com/civicrm/civicrm-core/pull/17051))**
547
548 - **Remove var that is defined on parent
549 ([17102](https://github.com/civicrm/civicrm-core/pull/17102))**
550
551 - **Convert test to use APIV4 in setup for cleaner code
552 ([17153](https://github.com/civicrm/civicrm-core/pull/17153))**
553
554 - **[Test] Extend custom field test trait & some related tests
555 ([17037](https://github.com/civicrm/civicrm-core/pull/17037))**
556
557 - **E2E_Core_HookTest - Fix test failure due to leak
558 ([17251](https://github.com/civicrm/civicrm-core/pull/17251))**
559
560 - **[NFC][Test] cleanup on customDataTrait for tests
561 ([17022](https://github.com/civicrm/civicrm-core/pull/17022))**
562
563 - **[NFC][Test] Minor cleanup in test class
564 ([17002](https://github.com/civicrm/civicrm-core/pull/17002))**
565
566 - **[NFC][Test] Preliminary cleanup
567 ([17213](https://github.com/civicrm/civicrm-core/pull/17213))**
568
569 - **[NFC] [Test] minor code cleanup
570 ([17152](https://github.com/civicrm/civicrm-core/pull/17152))**
571
572 - **[NFC] Minor code cleanups
573 ([17019](https://github.com/civicrm/civicrm-core/pull/17019))**
574
575 - **[NFC] Superficial code clean up
576 ([17155](https://github.com/civicrm/civicrm-core/pull/17155))**
577
578 - **(NFC) Remove $Id$ artifacts from old SCM
579 ([17211](https://github.com/civicrm/civicrm-core/pull/17211))**
580
581 - **[NFC] A bit less svn in our code
582 ([17157](https://github.com/civicrm/civicrm-core/pull/17157))**
583
584 - **[NFC] Fix use of pattern-hated-by-Coleman
585 ([17049](https://github.com/civicrm/civicrm-core/pull/17049))**
586
587 - **[NFC] Cleanup CRM_Report_Form
588 ([17141](https://github.com/civicrm/civicrm-core/pull/17141))**
589
590 - **(NFC) Comment clarification in test class
591 ([17133](https://github.com/civicrm/civicrm-core/pull/17133))**
592
593 - **[NFC] Improve cleanup on membershipStatus to cope with undeleted memberships
594 ([16756](https://github.com/civicrm/civicrm-core/pull/16756))**
595
596 - **[NFC] Remove calculation of unused parameter
597 ([17093](https://github.com/civicrm/civicrm-core/pull/17093))**
598
599 - **(NFC) Gitlab Template - Request more detail about upgrade problems
600 ([17101](https://github.com/civicrm/civicrm-core/pull/17101))**
601
602 - **[NFC] Remove a handful of legacy svn notations
603 ([17070](https://github.com/civicrm/civicrm-core/pull/17070))**
604
605 - **[NFC/Test] - Fix typo in `if` statement that seems intended as a workaround
606 ([17258](https://github.com/civicrm/civicrm-core/pull/17258))**
607
608 - **[NFC] Add Comment to avoid someone removing field only used in CiviCase
609 extension ([17000](https://github.com/civicrm/civicrm-core/pull/17000))**
610
611 - **[NFC] Test cleanup
612 ([17224](https://github.com/civicrm/civicrm-core/pull/17224))**
613
614 - **[NFC] Code cleanup around comments, strict comparison, formatting
615 ([17058](https://github.com/civicrm/civicrm-core/pull/17058))**
616
617 - **[NFC] Remove all the places where tests unnecessarily pass to
618 Membership::create
619 ([17088](https://github.com/civicrm/civicrm-core/pull/17088))**
620
621 - **[REF] SavedSearch - additional cleanup & bugfixes
622 ([17090](https://github.com/civicrm/civicrm-core/pull/17090))**
623
624 - **(REF) dev/core#1744 - Cleanup event naming
625 ([17240](https://github.com/civicrm/civicrm-core/pull/17240))**
626
627 - **[REF] [Test] IDE cleanup on ReportTemplateTest
628 ([17197](https://github.com/civicrm/civicrm-core/pull/17197))**
629
630 - **[REF] Simplify non-creditcard participant.create
631 ([16584](https://github.com/civicrm/civicrm-core/pull/16584))**
632
633 - **[REF] Fix install on Drupal 8 using new setup code
634 ([17334](https://github.com/civicrm/civicrm-core/pull/17334))**
635
636 - **[REF] Minor var simplification
637 ([17121](https://github.com/civicrm/civicrm-core/pull/17121))**
638
639 - **[REF] Consistently lookup dispatcher via `Civi::dispatcher()`
640 ([17154](https://github.com/civicrm/civicrm-core/pull/17154))**
641
642 - **(REF,NFC) TokenProcessor - Minor DX improvements
643 ([17231](https://github.com/civicrm/civicrm-core/pull/17231))**
644
645 - **[REF] Permit domain tokens being used within Thank You letters
646 ([17230](https://github.com/civicrm/civicrm-core/pull/17230))**
647
648 - **(REF) CRM_Utils_Hook - Remove deprecated formulations of `invoke(int,…)`
649 ([17124](https://github.com/civicrm/civicrm-core/pull/17124))**
650
651 - **[REF] Switch CRM_Utils_Array::value to empty in conditionals
652 ([17091](https://github.com/civicrm/civicrm-core/pull/17091))**
653
654 - **[REF] Minor code cleanup
655 ([17225](https://github.com/civicrm/civicrm-core/pull/17225))**
656
657 - **[REF] Minor code cleanup.
658 ([17222](https://github.com/civicrm/civicrm-core/pull/17222))**
659
660 - **[REF] Reduce boilerplate code in BAO add/create functions
661 ([17172](https://github.com/civicrm/civicrm-core/pull/17172))**
662
663 - **[REF] Minor cleanup around action schedule code.
664 ([17151](https://github.com/civicrm/civicrm-core/pull/17151))**
665
666 - **[REF] get rid of variable variable structure
667 ([17089](https://github.com/civicrm/civicrm-core/pull/17089))**
668
669 - **[REF] Remove duplicate checks for an array key existing
670 ([17069](https://github.com/civicrm/civicrm-core/pull/17069))**
671
672 - **[REF] Import - extract duplicate code to function
673 ([17080](https://github.com/civicrm/civicrm-core/pull/17080))**
674
675 - **[REF] Cleanup a few instances where we use old call to get loggedInUserID
676 ([17196](https://github.com/civicrm/civicrm-core/pull/17196))**
677
678 - **[REF] Simplify determination of enabled components
679 ([17195](https://github.com/civicrm/civicrm-core/pull/17195))**
680
681 - **[REF] stop overriding postProcess function in activity report detail
682 ([17194](https://github.com/civicrm/civicrm-core/pull/17194))**
683
684 - **[REF] Reconcile CRM_Utils_System::getUrlPath and
685 CRM_Utils_System::currentPath
686 ([17068](https://github.com/civicrm/civicrm-core/pull/17068))**
687
688 - **[REF] Stop passing ids to membership::create from createRelatedMemberships
689 ([17087](https://github.com/civicrm/civicrm-core/pull/17087))**
690
691 - **[REF] move all functions associated with the submit function onto the Trait
692 ([17057](https://github.com/civicrm/civicrm-core/pull/17057))**
693
694 - **[REF] APIv4 Explorer - improve performance
695 ([17062](https://github.com/civicrm/civicrm-core/pull/17062))**
696
697 - **[REF] Clarify variable & tighten use.
698 ([17016](https://github.com/civicrm/civicrm-core/pull/17016))**
699
700 - **[REF] Use bool instead of boolean
701 ([17013](https://github.com/civicrm/civicrm-core/pull/17013))**
702
703 - **[REF] Formatting and use bool instead of boolean
704 ([17012](https://github.com/civicrm/civicrm-core/pull/17012))**
705
706 - **[REF] Move generic preProcess function to the trait
707 ([16954](https://github.com/civicrm/civicrm-core/pull/16954))**
708
709 - **[REF] Extract transferParticipantRegistration function
710 ([16976](https://github.com/civicrm/civicrm-core/pull/16976))**
711
712 - **REF Remove redundant param from completeOrder
713 ([17034](https://github.com/civicrm/civicrm-core/pull/17034))**
714
715 - **[REF] Update Contact email form to use the trait for EmailCommon functions
716 ([17031](https://github.com/civicrm/civicrm-core/pull/17031))**
717
718 - **[REF] Move generic instances of listTokens to trait
719 ([17029](https://github.com/civicrm/civicrm-core/pull/17029))**
720
721 - **[REF] CustomField code cleanup to use isSerialized method
722 ([17009](https://github.com/civicrm/civicrm-core/pull/17009))**
723
724 - **[REF] CustomField code cleanup
725 ([16968](https://github.com/civicrm/civicrm-core/pull/16968))**
726
727 - **[REF] Cleanup customField prepareCreate function
728 ([16996](https://github.com/civicrm/civicrm-core/pull/16996))**
729
730 - **[REF] Update custom data handing in contact import
731 ([16986](https://github.com/civicrm/civicrm-core/pull/16986))**
732
733 - **[REF] CustomGroup - cleanup handling of serialized fields in old function
734 ([16970](https://github.com/civicrm/civicrm-core/pull/16970))**
735
736 - **[REF] APIv4 - Enforce contact field permissions via metadata
737 ([17168](https://github.com/civicrm/civicrm-core/pull/17168))**
738
739 - **[REF] Code readability changes on activity tokens.
740 ([17161](https://github.com/civicrm/civicrm-core/pull/17161))**
741
742 - **[REF] Minor extraction
743 ([17160](https://github.com/civicrm/civicrm-core/pull/17160))**
744
745 - **[REF] CustomField - Remove pointless caching and move form variable to form
746 class ([16975](https://github.com/civicrm/civicrm-core/pull/16975))**
747
748 - **[REF] Call makeCSVTable function directly from writeRows
749 ([16980](https://github.com/civicrm/civicrm-core/pull/16980))**
750
751 - **[REF] CRM_Utils_Array::value -> empty
752 ([288](https://github.com/civicrm/civicrm-packages/pull/288))**
753
754 - **[REF] Update XML file to match updated title in DAO File
755 ([16969](https://github.com/civicrm/civicrm-core/pull/16969))**
756
757 - **[REF] Cleanup custom field handling... twice
758 ([16989](https://github.com/civicrm/civicrm-core/pull/16989))**
759
760 - **[REF] Cleanup CustomField BAO to use its own isSerialized function
761 ([16990](https://github.com/civicrm/civicrm-core/pull/16990))**
762
763 - **Cleanup custom field handling in ufGroup BAO
764 ([16984](https://github.com/civicrm/civicrm-core/pull/16984))**
765
766 - **Code cleanup - replace overcomplicated test for null with isset
767 ([16965](https://github.com/civicrm/civicrm-core/pull/16965))**
768
769 - **Update 5.24.2.md - Fix version number in title.
770 ([17043](https://github.com/civicrm/civicrm-core/pull/17043))**
771
772 ## <a name="credits"></a>Credits
773
774 This release was developed by the following code authors:
775
776 a-n The Artists Information Company - William Mortada; AGH Strategies - Alice
777 Frumin, Andrew Hunt; Andrei Mondoc; Christian Wach; Circle Interactive - Dave
778 Jenkins, Pradeep Nayak; CiviCRM - Coleman Watts, Josh Gowans, Tim Otten;
779 CiviDesk - Yashodha Chaku; Coop SymbioTIC - Mathieu Lutfy; Dave D; Fuzion -
780 Jitendra Purohit; Greenpeace Central and Eastern Europe - Patrick Figel; All In
781 Appli.com - Guillaume Sorel; CompuCorp - Ivan; JMA Consulting - Seamus Lee;
782 Lighthouse Design and Consulting - Brian Shaughnessy; Megaphone Technology
783 Consulting - Jon Goldberg; MJW Consulting - Matthew Wire; Ray Wright; Third
784 Sector Design - Michael McAndrew; Timbsoft Technologies - Tunbola Ogunwande;
785 Wikimedia Foundation - Eileen McNaughton
786
787 Most authors also reviewed code for this release; in addition, the following
788 reviewers contributed their comments:
789
790 Andrew Cormick-Dockery; Andy Burns; Artful Robot - Rich Lott; Blackfly
791 Solutions - Alan Dixon; CiviCoop - Jaap Jansma; Fuzion - Peter Davis; GMCVO
792 Databases - Jade Gaunt; JMA Consulting - Monish Deb; MJCO - Mikey O'Toole;
793 Richard van Oosterhout; Squiffle Consulting - Aidan Saunders;
794 Tadpole Collective - Kevin Cristiano; Team Expansion - Greg Harris
795
796 ## <a name="feedback"></a>Feedback
797
798 These release notes are edited by Alice Frumin and Andrew Hunt. If you'd like
799 to provide feedback on them, please log in to https://chat.civicrm.org/civicrm
800 and contact `@agh1`.