5.17.0 release notes: first pass at sorting and annotating
[civicrm-core.git] / release-notes / 5.17.0.md
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? | |
17 | Change the database schema? | **yes** |
18 | Alter the API? | **yes** |
19 | Require attention to configuration options? | |
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 - **Error when upgrading to 5.16.0
584 ([dev/drupal#79](https://lab.civicrm.org/dev/drupal/issues/79):
585 [15082](https://github.com/civicrm/civicrm-core/pull/15082))**
586
587 Raises the `MINIMUM_PHP_VERSION` from 5.6 to 7.0 in the metadata because when
588 upgrading via drush or Drupal web UI to Civi 5.16+ on PHP 5.6, the Civi
589 class-loader fails to initialize.
590
591 - **Migrate CivicrmHelper::parseUrl() to CRM_Utils_System_Drupal8::parseUrl().
592 ([14696](https://github.com/civicrm/civicrm-core/pull/14696))**
593
594 Fixes a bug when installing Drupal8 thru the command line.
595
596 - **Fix path for civicrm.settings.php when installed in profiles/
597 ([552](https://github.com/civicrm/civicrm-drupal/pull/552))**
598
599 Ensures that when CiviCRM is installed in a Drupal distribution profile under
600 `profiles/<profile_name>/modules/[contrib]`, the function `civicrm_conf_init()`
601 returns the proper path for file civicrm.settings.php before this change
602 calling an API using REST would result in a "Could not load the settings
603 file..." error.
604
605 ## <a name="misc"></a>Miscellany
606
607 - **Changing a civicase activity's label breaks the max_instances check (Begins
608 work towards [dev/core#1116](https://lab.civicrm.org/dev/core/issues/1116):
609 [14952](https://github.com/civicrm/civicrm-core/pull/14952) and
610 [14970](https://github.com/civicrm/civicrm-core/pull/14970))**
611
612 - **Update civicrmtheme module to use new isFrontEndPage function on user System
613 ([581](https://github.com/civicrm/civicrm-drupal/pull/581))**
614
615 - **Removed hardcoded activity status and used Activity create
616 ([14720](https://github.com/civicrm/civicrm-core/pull/14720))**
617
618 - **Extract field wrangling to determineReturnProperties
619 ([14756](https://github.com/civicrm/civicrm-core/pull/14756))**
620
621 - **Finish removing references to Config.IDS.ini
622 ([14770](https://github.com/civicrm/civicrm-core/pull/14770))**
623
624 - **Convert Navigation cache group to current cache definition system
625 ([14581](https://github.com/civicrm/civicrm-core/pull/14581))**
626
627 - **Convert the contact fields cache group to standard cache backend
628 ([14583](https://github.com/civicrm/civicrm-core/pull/14583) and
629 [14582](https://github.com/civicrm/civicrm-core/pull/14582))**
630
631 - **Remove additional custom fields deletegroup functions
632 ([14823](https://github.com/civicrm/civicrm-core/pull/14823))**
633
634 - **Add in Deprecation warnings on Cache functons
635 ([14828](https://github.com/civicrm/civicrm-core/pull/14828))**
636
637 - **Autoformat /tests directory with php short array syntax
638 ([14857](https://github.com/civicrm/civicrm-core/pull/14857))**
639
640 - **Remove use of deprecated path in function
641 `CRM_Event_BAO_Event::checkPermission()`
642 ([14735](https://github.com/civicrm/civicrm-core/pull/14735))**
643
644 - **Add in Atomfeeds deprecation now that the extension has a new release with
645 converted cache mechanism
646 ([14856](https://github.com/civicrm/civicrm-core/pull/14856))**
647
648 - **Further deprecate use of $ids array in membership functions
649 ([14887](https://github.com/civicrm/civicrm-core/pull/14887))**
650
651 - **[IMPORT] reduce php4 support, don't pass by ref when not required
652 ([14872](https://github.com/civicrm/civicrm-core/pull/14872))**
653
654 - **[IMPORT] [code-quality] Remove usage of nullArray
655 ([14869](https://github.com/civicrm/civicrm-core/pull/14869))**
656
657 - **[IMPORT] [code quality] [REF] Improve readability of variable assignment
658 ([14871](https://github.com/civicrm/civicrm-core/pull/14871))**
659
660 - **Remove "Copy Case custom data" code (circa 2013)
661 ([15051](https://github.com/civicrm/civicrm-core/pull/15051))**
662
663 - **People tagged with “No Bulk Email (User Opt Out)” seem to be receiving bulk
664 email (Adds test for
665 [dev/core#1162](https://lab.civicrm.org/dev/core/issues/1162):
666 [14947](https://github.com/civicrm/civicrm-core/pull/14947))**
667
668 - **Remove deprecated SQL_CALC_FOUND_ROWS
669 ([dev/core#1141](https://lab.civicrm.org/dev/core/issues/1141):
670 [14877](https://github.com/civicrm/civicrm-core/pull/14877))**
671
672 - **Remove unused xml/schema/Event/EventPage.xml
673 ([dev/core#1056](https://lab.civicrm.org/dev/core/issues/1056):
674 [14834](https://github.com/civicrm/civicrm-core/pull/14834))**
675
676 - **Errors exporting contributions on 5.13.2 (unit test for
677 [dev/core#1015](https://lab.civicrm.org/dev/core/issues/1015):
678 [14514](https://github.com/civicrm/civicrm-core/pull/14514))**
679
680 - **Minor cleanup around invoicing on event code
681 ([14959](https://github.com/civicrm/civicrm-core/pull/14959))**
682
683 - **Multilingual test fix and cleanup
684 ([14639](https://github.com/civicrm/civicrm-core/pull/14639))**
685
686 - **Updated Circle-Interactive developers info
687 ([14736](https://github.com/civicrm/civicrm-core/pull/14736))**
688
689 - **Remove unused standalone-mode code
690 ([14910](https://github.com/civicrm/civicrm-core/pull/14910))**
691
692 - **[TEST] [REF] [Export] Convert a couple more tests
693 ([14953](https://github.com/civicrm/civicrm-core/pull/14953))**
694
695 - **[REF] [Test] [Export] Convert some more tests to use the newer function
696 ([14933](https://github.com/civicrm/civicrm-core/pull/14933))**
697
698 - **[REF] [Export] [Test] Update 2 more tests to use new helper
699 ([14915](https://github.com/civicrm/civicrm-core/pull/14915))**
700
701 - **[REF][TEST][EXPORT] minor test cleanup & minor cleanup of code it tests
702 ([14848](https://github.com/civicrm/civicrm-core/pull/14848))**
703
704 - **[REF] [TEST] [Export] Update export tests to reflect new format
705 ([14813](https://github.com/civicrm/civicrm-core/pull/14813))**
706
707 - **[REF] [EXPORT] [TLA] Update handling of input fields so that the mapping
708 format is accepted.
709 ([14792](https://github.com/civicrm/civicrm-core/pull/14792))**
710
711 - **[NFC] [REF] [TEST] [EXPORT] Update various export tests to test csv output
712 with new functions
713 ([14780](https://github.com/civicrm/civicrm-core/pull/14780))**
714
715 - **[REf] [Export] Remove deprecated componentPaymentFields function
716 ([14874](https://github.com/civicrm/civicrm-core/pull/14874))**
717
718 - **[Ref] [Export] Remove exportComponent function - it's not adding much here
719 ([14875](https://github.com/civicrm/civicrm-core/pull/14875))**
720
721 - **[REF] [Export] Move writeToTable fn to exportProcessor
722 ([14932](https://github.com/civicrm/civicrm-core/pull/14932))**
723
724 - **[REF] [Export] Stop passing header rows around
725 ([14913](https://github.com/civicrm/civicrm-core/pull/14913))**
726
727 - **[REF] [Export] Remove now redundant param
728 ([14912](https://github.com/civicrm/civicrm-core/pull/14912))**
729
730 - **[REF] [EXPORT] Use columns from processor instead of passing them
731 ([14860](https://github.com/civicrm/civicrm-core/pull/14860))**
732
733 - **[REF] [Export] Move temp table creation function to the processor
734 ([14851](https://github.com/civicrm/civicrm-core/pull/14851))**
735
736 - **[REF] [Export] Stop passing exportParams & sqlColumns around
737 ([14838](https://github.com/civicrm/civicrm-core/pull/14838))**
738
739 - **[REF] [Export] remove another confusing parameter
740 ([14822](https://github.com/civicrm/civicrm-core/pull/14822))**
741
742 - **[REF] [Export] Stop passing export params to the merge function
743 ([14819](https://github.com/civicrm/civicrm-core/pull/14819))**
744
745 - **[REF] [Export] Simplify setting of address strings
746 ([14835](https://github.com/civicrm/civicrm-core/pull/14835))**
747
748 - **[REF] [Export] clean up incorporation of order by & group by into
749 ExportProcessor
750 ([14811](https://github.com/civicrm/civicrm-core/pull/14811))**
751
752 - **[REF] [Export] More export Structure arrays to processor
753 ([14812](https://github.com/civicrm/civicrm-core/pull/14812))**
754
755 - **[REF] [Export] Further cleanup - construct sql more concisely
756 ([14808](https://github.com/civicrm/civicrm-core/pull/14808))**
757
758 - **[REF] [Export] move mergeSameAddress to processor class
759 ([14809](https://github.com/civicrm/civicrm-core/pull/14809))**
760
761 - **[REF] [Export] further code cleanup
762 ([14806](https://github.com/civicrm/civicrm-core/pull/14806))**
763
764 - **[REF] [EXPORT] Alter CRM_Export_BAO_Export::exportComponents
765 ([14800](https://github.com/civicrm/civicrm-core/pull/14800))**
766
767 - **[REF] [Export] move build master copy array to ExportProcessor
768 ([14803](https://github.com/civicrm/civicrm-core/pull/14803))**
769
770 - **[REF] [Export] Remove code that seems unused
771 ([14804](https://github.com/civicrm/civicrm-core/pull/14804))**
772
773 - **[REF] [Export] Move setting of household properties to processor
774 ([14802](https://github.com/civicrm/civicrm-core/pull/14802))**
775
776 - **[REF] [Export] Minor code relocation
777 ([14801](https://github.com/civicrm/civicrm-core/pull/14801))**
778
779 - **[REF] [Export] Move replace merge tokens to processor class
780 ([14799](https://github.com/civicrm/civicrm-core/pull/14799))**
781
782 - **[REF] [EXPORT] Stop passing return Properties
783 ([14795](https://github.com/civicrm/civicrm-core/pull/14795))**
784
785 - **[REF] [Export] Move function that parses tokens to address processor
786 ([14797](https://github.com/civicrm/civicrm-core/pull/14797))**
787
788 - **[REF] [EXPORT] Minor consolidation of weird mergeSameAddreess nightmare code
789 ([14796](https://github.com/civicrm/civicrm-core/pull/14796))**
790
791 - **[REF] [EXPORT] cleanup setting of additional postal fields
792 ([14790](https://github.com/civicrm/civicrm-core/pull/14790))**
793
794 - **[REF][Export] Minor cleanup on household merge properties
795 ([14787](https://github.com/civicrm/civicrm-core/pull/14787))**
796
797 - **[REF] [EXPORT] partial cleanup on adding fields to returnProperties based on
798 usage ([14788](https://github.com/civicrm/civicrm-core/pull/14788))**
799
800 - **[REF] [export] remove chunk of non-functional code
801 ([14773](https://github.com/civicrm/civicrm-core/pull/14773))**
802
803 - **[REF] [export] Cleaner handling of additional return properties
804 ([14774](https://github.com/civicrm/civicrm-core/pull/14774))**
805
806 - **[ref] [export] [test] Improve csv test to test final output rather than the
807 csv ([14779](https://github.com/civicrm/civicrm-core/pull/14779))**
808
809 - **[REF] [export] . Move greeting params retrieval to the place in the code
810 where it is used
811 ([14768](https://github.com/civicrm/civicrm-core/pull/14768))**
812
813 - **[REF] [Export] Move fetch Relationship details to processor
814 ([14898](https://github.com/civicrm/civicrm-core/pull/14898))**
815
816 - **[REF] [Import] extract function that sets field metadata
817 ([14979](https://github.com/civicrm/civicrm-core/pull/14979))**
818
819 - **[REF][Import] very minor cleanup - 3 lines of code to one
820 ([14976](https://github.com/civicrm/civicrm-core/pull/14976))**
821
822 - **[REF][Event] Extract calculation of 'zero-ness' in form rule
823 ([14917](https://github.com/civicrm/civicrm-core/pull/14917))**
824
825 - **[REF] extract loadSavedMapping
826 ([14873](https://github.com/civicrm/civicrm-core/pull/14873))**
827
828 - **[REF] Add in cleanup function to prevnext service and utilise in clea…
829 ([14911](https://github.com/civicrm/civicrm-core/pull/14911))**
830
831 - **[REF] Update selfService in updateBilling to use shared function
832 ([14965](https://github.com/civicrm/civicrm-core/pull/14965))**
833
834 - **[REF] remove never-set, mispelt parameter
835 ([14907](https://github.com/civicrm/civicrm-core/pull/14907))**
836
837 - **[REF] minor code cleanup on import mapping
838 ([14962](https://github.com/civicrm/civicrm-core/pull/14962))**
839
840 - **[REF] Move Self service handlng to shared function to allow for use i…
841 ([14963](https://github.com/civicrm/civicrm-core/pull/14963))**
842
843 - **[REF] simple extraction of function to check required fields are present
844 ([14961](https://github.com/civicrm/civicrm-core/pull/14961))**
845
846 - **[REF] Down with php4 compatibility
847 ([14847](https://github.com/civicrm/civicrm-core/pull/14847))**
848
849 - **[REF] Convert contribution_recur dates to datepicker from jcalendar
850 ([14737](https://github.com/civicrm/civicrm-core/pull/14737))**
851
852 - **[REF] initial extraction of loading saved mapping to qf format
853 ([14767](https://github.com/civicrm/civicrm-core/pull/14767))**
854
855 - **[REF] simplify & add tests on getMappingParams
856 ([14769](https://github.com/civicrm/civicrm-core/pull/14769))**
857
858 - **[REF] Update export test to new function
859 ([14765](https://github.com/civicrm/civicrm-core/pull/14765))**
860
861 - **[REF] Extract mapping converter function, kinda brutally
862 ([14762](https://github.com/civicrm/civicrm-core/pull/14762))**
863
864 - **[REF] export code simplification
865 ([14758](https://github.com/civicrm/civicrm-core/pull/14758))**
866
867 - **[REF] Extract saveMapping Field
868 ([14757](https://github.com/civicrm/civicrm-core/pull/14757))**
869
870 - **[REF] Remove call to getMappingFields in favour of api call.
871 ([14755](https://github.com/civicrm/civicrm-core/pull/14755))**
872
873 - **[REF] un-extract createProportionalFinancialEntities
874 ([14742](https://github.com/civicrm/civicrm-core/pull/14742))**
875
876 - **[REF] Move function onto the processor class
877 ([14752](https://github.com/civicrm/civicrm-core/pull/14752))**
878
879 - **[REF] Further cleanup & extraction in getMappingFieds
880 ([14743](https://github.com/civicrm/civicrm-core/pull/14743))**
881
882 - **[REF] Simple function extraction for buildMappingForm
883 ([14741](https://github.com/civicrm/civicrm-core/pull/14741))**
884
885 - **[REF] simple extraction of getFieldAlterSQL
886 ([14727](https://github.com/civicrm/civicrm-core/pull/14727))**
887
888 - **[REF] extract portion that creates the custom field record
889 ([14725](https://github.com/civicrm/civicrm-core/pull/14725))**
890
891 - **[REF] simple extraction of prepareCreateParams
892 ([14726](https://github.com/civicrm/civicrm-core/pull/14726))**
893
894 - **[REF] Cleanup fixSchemaDifferencesFor()
895 ([14697](https://github.com/civicrm/civicrm-core/pull/14697))**
896
897 - **[REF] clarify variable (very minor change with good test cover)
898 ([14724](https://github.com/civicrm/civicrm-core/pull/14724))**
899
900 - **[REF] Extract CRM_Core_BAO_Mapping::addComponentFields
901 ([14751](https://github.com/civicrm/civicrm-core/pull/14751))**
902
903 - **REF Simple cleanup of tabset code for contributionpages
904 ([14616](https://github.com/civicrm/civicrm-core/pull/14616))**
905
906 - **[REF] final cleanup - call bulkCreate from migrate_utils
907 ([14728](https://github.com/civicrm/civicrm-core/pull/14728))**
908
909 - **[REF] Cleanup up handling of dates for Recurring & Contribution date fields
910 in query class ([14825](https://github.com/civicrm/civicrm-core/pull/14825))**
911
912 - **[REF] Cleanup usage of CRM_Core_BAO_PrevNextCache::setItem and deprec…
913 ([14675](https://github.com/civicrm/civicrm-core/pull/14675))**
914
915 - **[REF] [Test] Add test to cover handling of 'gender_id' on import, remove
916 unused code. ([14879](https://github.com/civicrm/civicrm-core/pull/14879))**
917
918 - **[REF] [TEST] cleanup on export activity test
919 ([14850](https://github.com/civicrm/civicrm-core/pull/14850))**
920
921 - **[test] Catch A.net exception & ignore
922 ([14861](https://github.com/civicrm/civicrm-core/pull/14861))**
923
924 - **[Test] [Import] Add test to demonstrate bug that turns out not to exist
925 ([14880](https://github.com/civicrm/civicrm-core/pull/14880))**
926
927 - **Add test for failed payment
928 ([14946](https://github.com/civicrm/civicrm-core/pull/14946))**
929
930 - **Add unit test demonstrating attaching a listener to queries
931 ([14716](https://github.com/civicrm/civicrm-core/pull/14716))**
932
933 - **[Test] Add test cover for Member_BAO_Query auto_renew field
934 ([14956](https://github.com/civicrm/civicrm-core/pull/14956))**
935
936 - **Add unit test for net_amount when fee_amount is set
937 ([14909](https://github.com/civicrm/civicrm-core/pull/14909))**
938
939 - **Fix some test leakage
940 ([14731](https://github.com/civicrm/civicrm-core/pull/14731))**
941
942 - **[TEST] export - add unit test covering merge to same address addressee
943 handling ([14817](https://github.com/civicrm/civicrm-core/pull/14817))**
944
945 - **[TEST][EXPORT] Improve unit test on export.
946 ([14793](https://github.com/civicrm/civicrm-core/pull/14793))**
947
948 - **[NFC] [TEST] Reformat arrays in test classes
949 ([14831](https://github.com/civicrm/civicrm-core/pull/14831))**
950
951 - **[NFC] [TEST] code formatting in test class
952 ([14849](https://github.com/civicrm/civicrm-core/pull/14849))**
953
954 - **[NFC] reformat class
955 ([14899](https://github.com/civicrm/civicrm-core/pull/14899))**
956
957 - **[NFC] Formatting in BAO_Relationship class
958 ([14949](https://github.com/civicrm/civicrm-core/pull/14949))**
959
960 - **[NFC] code formatting only
961 ([14977](https://github.com/civicrm/civicrm-core/pull/14977))**
962
963 - **[NFC] minor cleanup
964 ([14957](https://github.com/civicrm/civicrm-core/pull/14957))**
965
966 - **NFC Update node module versions based on npm audit fix
967 ([14859](https://github.com/civicrm/civicrm-core/pull/14859))**
968
969 - **(NFC) Fixing documentation links in readme.
970 ([14855](https://github.com/civicrm/civicrm-core/pull/14855))**
971
972 - **[NFC] code reformatting
973 ([14853](https://github.com/civicrm/civicrm-core/pull/14853))**
974
975 - **(NFC) VERSIONS.php - Add discussion about how to migrate to composer
976 ([261](https://github.com/civicrm/civicrm-packages/pull/261))**
977
978 - **[NFC] comment fixes, function mis-casing fix
979 ([14906](https://github.com/civicrm/civicrm-core/pull/14906))**
980
981 ## <a name="credits"></a>Credits
982
983 This release was developed by the following code authors:
984
985 AGH Strategies - Andrew Hunt, Eli Lisseck; Agileware - Alok Patel, Justin
986 Freeman; Australian Greens - Seamus Lee; Circle Interactive - Dave Jenkins, Kirk
987 Jackson, Pradeep Nayak; CiviCRM - Coleman Watts, Tim Otten; CiviDesk - Yashodha
988 Chaku; Coop SymbioTIC - Mathieu Lutfy; Dave D; Deepak Srivastava; Electronic
989 Frontier Foundation - Mark Burdett; Freeform Solutions - Herb van den Dool;
990 Fuzion - Jitendra Purohit; Giant Rabbit - Peter Haight; Greenpeace CEE - Patrick
991 Figel; iXiam - Luciano Spiegel; JMA Consulting - Monish Deb; John Kingsnorth;
992 Lighthouse Design and Consulting - Brian Shaughnessy; Megaphone Technology
993 Consulting - Jon Goldberg; MillerTech - Chamil Wijesooriya; MJCO - Mikey
994 O'Toole; MJW Consulting - Matthew Wire; Nicol Wistreich; OSSeed Technologies
995 LLP - Sushant Paste; Squiffle Consulting - Aidan Saunders; Wikimedia Foundation -
996 Eileen McNaughton
997
998 Most authors also reviewed code for this release; in addition, the following
999 reviewers contributed their comments:
1000
1001 AGH Strategies - Alice Frumin; Agileware - Justin Freeman; CiviCoop - Jaap
1002 Jansma; CiviDesk - Nicolas Ganivet; CompuCorp - Alessandro Verdura; Fuzion -
1003 Luke Stewart; Joseph Lacey; Richard van Oosterhout; Ryan L. Robinson; Skvare -
1004 Mark Hanna; Tadpole Collective - Kevin Cristiano;
1005
1006 ## <a name="feedback"></a>Feedback
1007
1008 These release notes are edited by Alice Frumin and Andrew Hunt. If you'd like
1009 to provide feedback on them, please log in to https://chat.civicrm.org/civicrm
1010 and contact `@agh1`.