[REF] Remove CRM_Exception in favor of CRM_Core_Exception
[civicrm-core.git] / release-notes / 4.7.25.md
1 # CiviCRM 4.7.25
2
3 Released October 4, 2017
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 - **[CRM-20769](https://issues.civicrm.org/jira/browse/CRM-20769) Allow for
29 Button Text on profiles to be overriden in settings
30 ([10940](https://github.com/civicrm/civicrm-core/pull/10940) and
31 [11051](https://github.com/civicrm/civicrm-core/pull/11051))**
32
33 This adds columns to the `civicrm_uf_group` table to support customizing
34 profile buttons.
35
36 - **[CRM-20964](https://issues.civicrm.org/jira/browse/CRM-20964) Include queue
37 id while retrieving rows from Event Queue.
38 ([10757](https://github.com/civicrm/civicrm-core/pull/10757))**
39
40 `CRM_Mailing_Event_BAO_Queue::getRows()` returned rows for each intended
41 recipients, but didn't include any info which differentiates each row.
42
43 This adds a `queue_id` in the key column of the $result array which enables
44 hooks to know which row is getting displayed.
45
46 - **[CRM-21118](https://issues.civicrm.org/jira/browse/CRM-21118) Add action
47 links for message templates overview at top of page
48 ([10917](https://github.com/civicrm/civicrm-core/pull/10917))**
49
50 Previously action links (add message template) were only shown at the bottom
51 of the page. If you have lots of message templates it is not visible until
52 scrolling down. This adds the links at the top of the page as well (like many
53 other pages in CiviCRM).
54
55 - **[CRM-20979](https://issues.civicrm.org/jira/browse/CRM-20979) pre help for
56 price fields not exposed to UI.
57 ([10780](https://github.com/civicrm/civicrm-core/pull/10780))**
58
59 Adds a field to the Add/Edit Price Field Form to enter pre help for price
60 fields.
61
62 - **[CRM-20680](https://issues.civicrm.org/jira/browse/CRM-20680) Make the
63 CiviCRM logo spin while waiting for next page to load
64 ([10903](https://github.com/civicrm/civicrm-core/pull/10903)) (fix to previous
65 work)**
66
67 This fixes a side effect of the new feature that caused all CiviCRM logos on
68 the page to spin.
69
70 - **[CRM-21078](https://issues.civicrm.org/jira/browse/CRM-21078) Allow user to
71 save and continue editing message template
72 ([10871](https://github.com/civicrm/civicrm-core/pull/10871))**
73
74 The message template editing screen now matches similar forms in CiviCRM by
75 offering separate "Save" and "Save and Done" buttons.
76
77 - **[CRM-20941](https://issues.civicrm.org/jira/browse/CRM-20941) Determine &
78 notify date to end support for PHP5.3 and PHP5.4
79 ([10851](https://github.com/civicrm/civicrm-core/pull/10851))**
80
81 A pre-upgrade message and system check now warn administrators of sites using
82 PHP versions prior to 5.6.
83
84 - **[CRM-17157](https://issues.civicrm.org/jira/browse/CRM-17157) CiviCRM money
85 validation should allow more decimal places
86 ([10827](https://github.com/civicrm/civicrm-core/pull/10827))**
87
88 Previously, validation of money fields limited values to two decimal places.
89 This allows for currencies that may have more decimal places.
90
91 - **[CRM-20926](https://issues.civicrm.org/jira/browse/CRM-20926) Allow
92 extensions to flag PHPIDS html/json fields
93 ([10709](https://github.com/civicrm/civicrm-core/pull/10709))**
94
95 Extensions can now denote fields that should be be evaluated as HTML, JSON, or
96 exceptions for the intrusion detection system (IDS).
97
98 - **[CRM-20155](https://issues.civicrm.org/jira/browse/CRM-20155) The dedupe
99 code passes has serious maintainability issues, locked in by hooks
100 ([10890](https://github.com/civicrm/civicrm-core/pull/10890)) (preliminary
101 work)**
102
103 This is initial cleanup work toward separating the dedupe process from the
104 form layer, allowing for extensions to do custom dedupe logic. This initial
105 work merely cleans up the existing processing.
106
107 - **[CRM-17748](https://issues.civicrm.org/jira/browse/CRM-17748) Expose
108 options['result_buffering'] to CRM_Core_DAO
109 ([10585](https://github.com/civicrm/civicrm-core/pull/10585))**
110
111 Queries sent to the DAO can now pass options for `DB_mysql`. Specifically,
112 a `result_buffering` option can reduce PHP memory needs by calling for an
113 unbuffered query.
114
115 - **[CRM-20733](https://issues.civicrm.org/jira/browse/CRM-20733) Relationship
116 report improvements
117 ([10679](https://github.com/civicrm/civicrm-core/pull/10679))**
118
119 The Relationship Report can now filter results by permissions (contact A over
120 contact B and vice-versa) and order results by start date.
121
122 - **[CRM-21108](https://issues.civicrm.org/jira/browse/CRM-21108) Creating
123 contacts is slow, part 1 of 2: Calculating Greetings
124 ([10906](https://github.com/civicrm/civicrm-core/pull/10906))**
125
126 This optimizes the population of greetings for newly-created contacts, the
127 slowest part of generating contacts.
128
129 - **[CRM-18231](https://issues.civicrm.org/jira/browse/CRM-18231) Support safe
130 migration from production to non-production instances
131 ([10972](https://github.com/civicrm/civicrm-core/pull/10972),
132 [10936](https://github.com/civicrm/civicrm-core/pull/10936), and
133 [8724](https://github.com/civicrm/civicrm-core/pull/8724))**
134
135 This introduces a feature of environment labels that can be set in
136 `civicrm.settings.php` and be extended in specially-named settings files. If
137 the label is anything other than `Production`, outbound email and scheduled
138 jobs are disabled. See further explanation in the [Sysadmin
139 Guide](https://docs.civicrm.org/sysadmin/en/master/misc/staging-production/)
140
141 ### CiviCase
142
143 - **[CRM-20958](https://issues.civicrm.org/jira/browse/CRM-20958) Data model:
144 Track creation+modification times for activities+cases
145 ([10754](https://github.com/civicrm/civicrm-core/pull/10754))**
146
147 Adds timestamp columns created_date and modified_date to the tables
148 `civicrm_activity` and `civicrm_case`
149
150 - **[CRM-21052](https://issues.civicrm.org/jira/browse/CRM-21052) Allow opt-out
151 of embedded case-activity tracking
152 ([10842](https://github.com/civicrm/civicrm-core/pull/10842))**
153
154 A new setting, "Enable Embedded Activity Revisions", determines whether each
155 revision to a case records the change as an activity. This has been the
156 behavior in the past and will continue to be the default for CiviCase until
157 the redesign is complete. However, many CiviCase users may prefer to leave
158 change logging to the log tables that are created when overall CiviCRM logging
159 is enabled.
160
161 ### CiviContribute
162
163 - **[CRM-21058](https://issues.civicrm.org/jira/browse/CRM-21058) Add Event
164 filter to PCP contribution report
165 ([10862](https://github.com/civicrm/civicrm-core/pull/10862))**
166
167 The Personal Campaign Page report now allows filtering by the title of a PCP's
168 associated event.
169
170 - **[CRM-20990](https://issues.civicrm.org/jira/browse/CRM-20990) Assign
171 `$contributionStatus` to the Contribution Online message template
172 ([10793](https://github.com/civicrm/civicrm-core/pull/10793))**
173
174 The contribution status is now available as a Smarty variable on the receipt
175 message template for online contributions.
176
177 - **[CRM-21019](https://issues.civicrm.org/jira/browse/CRM-21019) Change column
178 labels ([10813](https://github.com/civicrm/civicrm-core/pull/10813))**
179
180 The column headers on accounting batch screens are now clearer.
181
182 ### CiviEvent
183
184 - **[CRM-20507](https://issues.civicrm.org/jira/browse/CRM-20507) Prevent
185 disclosure of `is_public=0` Custom Groups in email templates
186 ([10661](https://github.com/civicrm/civicrm-core/pull/10661))**
187
188 Custom data groups can be public or backend-only as of 4.7.19. This
189 suppresses non-public fields from email receipts for event registrations.
190
191 ### CiviMail
192
193 - **[CRM-20905](https://issues.civicrm.org/jira/browse/CRM-20905) Simple mail :
194 Make max emails a hidden config instead of hardcoded value set to 50
195 ([10705](https://github.com/civicrm/civicrm-core/pull/10705))**
196
197 The maximum number of emails sent through the quick "send an email" feature is
198 set to 50. This change allows that number to be overridden through the
199 setting API or settings file.
200
201 ### CiviMember
202
203 - **[CRM-21152](https://issues.civicrm.org/jira/browse/CRM-21152) Add spec for
204 MembershipStatus.calc API function
205 ([10944](https://github.com/civicrm/civicrm-core/pull/10944))**
206
207 Adds a function to adjust metadata for `Calc` action. The metadata is used for
208 setting defaults, documentation & validation.
209
210 ### Drupal Integration
211
212 - **[CRM-21016](https://issues.civicrm.org/jira/browse/CRM-21016) Allow Drupal
213 views to be used for Notes related to contributions
214 ([468](https://github.com/civicrm/civicrm-drupal/pull/468))**
215
216 Drupal Views will now join to the `civicrm_note` table for any related entity,
217 not just contacts.
218
219 - **Add Contributions relevant to the Participant record.
220 ([469](https://github.com/civicrm/civicrm-drupal/pull/469))**
221
222 Drupal Views will now join to the `civicrm_participant_payment` table,
223 allowing related contributions to be displayed alongside event registrations.
224
225 ## <a name="bugs"></a>Bugs resolved
226
227 ### Core CiviCRM
228
229 - **[CRM-21068](https://issues.civicrm.org/jira/browse/CRM-21068)
230 &lastModified() fails more gracefully.
231 ([10863](https://github.com/civicrm/civicrm-core/pull/10863))**
232
233 This change avoids displaying an error if something is missing from the log
234 entry for a contact when shown in the summary view.
235
236 - **[CRM-21099](https://issues.civicrm.org/jira/browse/CRM-21099) Contribution
237 search: "Total Cancelled Amount" surprisingly includes "refunded" status
238 ([10893](https://github.com/civicrm/civicrm-core/pull/10893))**
239
240 In the results of a Find Contributions search, summary numbers are displayed
241 at the top. One of these is "Total Cancelled Amount" this total included
242 contributions with a "Refunded" or "Cancelled" status. This total now only
243 includes contributions with a status of "Cancelled".
244
245 - **[CRM-21075](https://issues.civicrm.org/jira/browse/CRM-21075) Notice errors
246 on contact edit
247 ([10878](https://github.com/civicrm/civicrm-core/pull/10878))**
248
249 When a user would edit their record, a series of notices would be generated
250 because of use of a deprecated function. This change removes those errors.
251
252 - **[CRM-21057](https://issues.civicrm.org/jira/browse/CRM-21057) export field
253 mapping limited to 25 records
254 ([10848](https://github.com/civicrm/civicrm-core/pull/10848))**
255
256 This resolves a bug where only 25 saved export mappings were available to
257 select.
258
259 - **[CRM-21124](https://issues.civicrm.org/jira/browse/CRM-21124) Fix DB error
260 on deduping by criteria when criteria string is too long
261 ([10921](https://github.com/civicrm/civicrm-core/pull/10921))**
262
263 - **[CRM-21061](https://issues.civicrm.org/jira/browse/CRM-21061) Fix rare
264 CiviReport error relating to long report names
265 ([10854](https://github.com/civicrm/civicrm-core/pull/10854))**
266
267 The relatively short length of the `report_id` field in the `civicrm_report`
268 table meant that reports with long names would produce obtuse errors. The
269 field is now 512 characters long.
270
271 - **[CRM-21004](https://issues.civicrm.org/jira/browse/CRM-21004) profile:
272 unable to copy profiles used for events/contribs/etc.
273 ([10802](https://github.com/civicrm/civicrm-core/pull/10802))**
274
275 - **[CRM-21230](https://issues.civicrm.org/jira/browse/CRM-21230) Multi-value
276 custom field import fail with error message: Call to undefined method
277 `CRM_Custom_Import_Parser_Api::formatContactParameters`
278 ([11039](https://github.com/civicrm/civicrm-core/pull/11039))**
279
280 - **[CRM-21174](https://issues.civicrm.org/jira/browse/CRM-21174) Circular
281 dependency during upgrade: civicrm_menu.module_data
282 ([10974](https://github.com/civicrm/civicrm-core/pull/10974))**
283
284 A field to be created during the upgrade was accidentally loaded as part of
285 the upgrade.
286
287 - **[CRM-21175](https://issues.civicrm.org/jira/browse/CRM-21175) Fatal error on
288 multiple custom field import
289 ([10975](https://github.com/civicrm/civicrm-core/pull/10975))**
290
291 Import mappings now must have a mapping type. This resolves an error that
292 would appear when a mapping type was missing; now, the mapping type is created
293 on the fly.
294
295 - **[CRM-20533](https://issues.civicrm.org/jira/browse/CRM-20533) 'Update
296 Indices' System Status action can get tied up (index name already exists,
297 localised dbs?)
298 ([10908](https://github.com/civicrm/civicrm-core/pull/10908)) (continues
299 previous work)**
300
301 A system check offers to update old or missing table indices when it detects
302 they are missing. In practice, many sites have equivalent indices to the ones
303 that are supposedly missing, but the index names differ or the index fields
304 are listed in a different order. This script has had persistent problems with
305 attempting to create indices that already exist or incorrectly dropping
306 indices.
307
308 This most recent change deletes false indices automatically when the Update
309 Indices process is started rather than asking the site administrator. Any
310 false-looking index that is actually good will simply be replaced when the
311 missing indices are populated.
312
313 - **[CRM-21110](https://issues.civicrm.org/jira/browse/CRM-21110) Relationships
314 tab on contact summary runs query twice
315 ([10907](https://github.com/civicrm/civicrm-core/pull/10907))**
316
317 This streamlines the processing of the contact relationship listing to reduce
318 the number of queries to run.
319
320 - **[CRM-21142](https://issues.civicrm.org/jira/browse/CRM-21142) Installation
321 fails if PHP XML module isn't installed
322 ([10939](https://github.com/civicrm/civicrm-core/pull/10939))**
323
324 The installer now checks that PHP SimpleXML support is present.
325
326 - **[CRM-21139](https://issues.civicrm.org/jira/browse/CRM-21139) Font-Awesome
327 icons not showing on fatal error screen
328 ([10937](https://github.com/civicrm/civicrm-core/pull/10937))**
329
330 Now `crm-i.css` is specifically loaded on the fatal error template.
331
332 - **[CRM-19933](https://issues.civicrm.org/jira/browse/CRM-19933) Importing
333 contacts clears out preferred communication method
334 ([10731](https://github.com/civicrm/civicrm-core/pull/10731))**
335
336 - **[CRM-21079](https://issues.civicrm.org/jira/browse/CRM-21079) Datetime logs
337 don't supports timezones
338 ([10874](https://github.com/civicrm/civicrm-core/pull/10874)) (continues
339 previous work)**
340
341 A system check appears if certain database fields are `DATETIME` rather than
342 `TIMESTAMP`. Due to the complexity of assigning timezones and the possibility
343 of customizations depending upon those fields, the check merely explains the
344 situation and recommends using [Doctor
345 When](https://github.com/civicrm/org.civicrm.doctorwhen), a time lord
346 extension, to straighten out the situation.
347
348 - **[CRM-20970](https://issues.civicrm.org/jira/browse/CRM-20970) long postal
349 code in db prevents searching by zipcode range
350 ([10781](https://github.com/civicrm/civicrm-core/pull/10781)) (completes
351 previous work)**
352
353 This adds test coverage for the fix which appeared in 4.7.24.
354
355 - **[CRM-20790](https://issues.civicrm.org/jira/browse/CRM-20790) CIVICRM-159 -
356 Import Contacts, Current Employer (Employee of field) is not being imported at
357 all ([10808](https://github.com/civicrm/civicrm-core/pull/10808))**
358
359 Import would fail to record relationships if data for one or both contacts in
360 the relationship matched existing contacts.
361
362 - **[CRM-21049](https://issues.civicrm.org/jira/browse/CRM-21049) Can't create a
363 RelationshipType record via API with "All Contacts" as a value
364 ([10839](https://github.com/civicrm/civicrm-core/pull/10839))**
365
366 This prevented relationship types created in the API where one or both
367 contacts could be any contact type.
368
369 - **[CRM-20993](https://issues.civicrm.org/jira/browse/CRM-20993) API -
370 Extension get - Cannot filter by ID anymore
371 ([10794](https://github.com/civicrm/civicrm-core/pull/10794))**
372
373 - **[CRM-21029](https://issues.civicrm.org/jira/browse/CRM-21029) Activity
374 report SQL syntax error
375 ([10819](https://github.com/civicrm/civicrm-core/pull/10819))**
376
377 A SQL error would appear in the Activity Report, including the Scheduled
378 Activities dashlet, when no ACL `WHERE` clauses are applicable.
379
380 - **[CRM-20858](https://issues.civicrm.org/jira/browse/CRM-20858) Custom fields
381 migrated even when not asked during merge
382 ([10831](https://github.com/civicrm/civicrm-core/pull/10831))**
383
384 - **[CRM-21129](https://issues.civicrm.org/jira/browse/CRM-21129) CLI import
385 doesn't allow single-column CSVs
386 ([10924](https://github.com/civicrm/civicrm-core/pull/10924))**
387
388 - **[CRM-19612](https://issues.civicrm.org/jira/browse/CRM-19612) DB error
389 deduping a group when rule has more than one field
390 ([10405](https://github.com/civicrm/civicrm-core/pull/10405))**
391
392 - **[CRM-19664](https://issues.civicrm.org/jira/browse/CRM-19664) Skip row and
393 keep importing if matching this contact based on the de-dupe rule would cause
394 an external ID conflict
395 ([9410](https://github.com/civicrm/civicrm-core/pull/9410))**
396
397 ### CiviMail
398
399 - **[CRM-21077](https://issues.civicrm.org/jira/browse/CRM-21077) Warn the user
400 when testing outbound mail configuration if CIVICRM_MAIL_LOG is set
401 ([10870](https://github.com/civicrm/civicrm-core/pull/10870))**
402
403 When sending a test email from the Outbound Email form, a user would not be
404 notified if the CiviCRM settings file was set to send all outbound email to a
405 log file.
406
407 - **[CRM-20643](https://issues.civicrm.org/jira/browse/CRM-20643) Fix invalid
408 bounce type filter for bounce report
409 ([10427](https://github.com/civicrm/civicrm-core/pull/10427))**
410
411 A dummy option of `-- please select --` for bounce type was hard-coded as a
412 filter option. This caused the report to default to this value and not load
413 any data.
414
415 - **[CRM-21000](https://issues.civicrm.org/jira/browse/CRM-21000) Display result
416 as Mailing on Advance Search produces DB Error
417 ([10798](https://github.com/civicrm/civicrm-core/pull/10798))**
418
419 This resolves an error in Advanced Search when the form is set to display
420 mailings rather than contacts.
421
422 - **[CRM-20855](https://issues.civicrm.org/jira/browse/CRM-20855) Disabling
423 "Search Primary Details Only" causes partial CiviMail delivery failure
424 ([10915](https://github.com/civicrm/civicrm-core/pull/10915))**
425
426 - **[CRM-20982](https://issues.civicrm.org/jira/browse/CRM-20982) Fix: Mails
427 sent via command line fail due to EHLO/HELO being "localhost"
428 ([10785](https://github.com/civicrm/civicrm-core/pull/10785))**
429
430 SMTP connections from the command line now attempt to identify themselves with
431 `EHLO` and the base URL rather than just `EHLO localhost`.
432
433 ### Backdrop Integration
434
435 - **[CRM-21088](https://issues.civicrm.org/jira/browse/CRM-21088) Backdrop class
436 contains `drupal_` calls that should be changed
437 ([10884](https://github.com/civicrm/civicrm-core/pull/10884))**
438
439 This would cause problems if Backdrop compatibility mode was disabled.
440
441 - **[CRM-21098](https://issues.civicrm.org/jira/browse/CRM-21098) Prevent
442 Backdrop admin drop-down menus from appearing beneath CiviCRM admin menu
443 ([10892](https://github.com/civicrm/civicrm-core/pull/10892))**
444
445 - **[CRM-21095](https://issues.civicrm.org/jira/browse/CRM-21095) CSS conflicts
446 between CiviCRM and Backdrop
447 ([10891](https://github.com/civicrm/civicrm-core/pull/10891),
448 [42](https://github.com/civicrm/civicrm-backdrop/pull/42), and
449 [41](https://github.com/civicrm/civicrm-backdrop/pull/41))**
450
451 ### CiviCampaign
452
453 - **[CRM-21094](https://issues.civicrm.org/jira/browse/CRM-21094) Minor
454 improvement to display of columns in Survey Details report
455 ([10889](https://github.com/civicrm/civicrm-core/pull/10889))**
456
457 This arranges the columns so that contact-related fields are together and
458 preceding activity fields.
459
460 - **[CRM-21089](https://issues.civicrm.org/jira/browse/CRM-21089) Fatal error on
461 "Interview Respondents"
462 ([10885](https://github.com/civicrm/civicrm-core/pull/10885))**
463
464 ### Drupal Integration
465
466 - **[CRM-17652](https://issues.civicrm.org/jira/browse/CRM-17652) Symfony
467 conflict between Civi and Drupal 8
468 ([10694](https://github.com/civicrm/civicrm-core/pull/10694) and
469 [465](https://github.com/civicrm/civicrm-drupal/pull/465)) (in progress)**
470
471 This uses Composer to install dependencies (such as Symfony) in a way that
472 does not conflict with Drupal 8. It resolves a bug where Drupal 8 sites with
473 CiviCRM could not install any more modules.
474
475 - **[CRM-20838](https://issues.civicrm.org/jira/browse/CRM-20838) Provide alert &
476 fix method for tables in the CiviCRM Db with no log table
477 ([10628](https://github.com/civicrm/civicrm-core/pull/10628))**
478
479 If Drupal and CiviCRM are installed with the same database and logging is
480 enabled, the logging triggers get confused by the existence of tables created
481 by the role sync modules. A system check now suggests that corresponding log
482 tables be created when it notices this.
483
484 ### CiviMember
485
486 - **[CRM-21126](https://issues.civicrm.org/jira/browse/CRM-21126)
487 member_is_primary not set by default on passing owner in the url
488 ([10923](https://github.com/civicrm/civicrm-core/pull/10923))**
489
490 The membership search now allows `owner=1` to be specified as a URL parameter
491 that populates the "Primary member?" field.
492
493 - **[CRM-20571](https://issues.civicrm.org/jira/browse/CRM-20571) Offline / Back
494 Office Renewal fatal error when "renewal_date" set to far back.
495 ([10822](https://github.com/civicrm/civicrm-core/pull/10822))**
496
497 A helpful warning appears when attempting to set a membership renewal date
498 prior to the join date.
499
500 - **[CRM-20966](https://issues.civicrm.org/jira/browse/CRM-20966) Contribution
501 deleted when relationship deleted, incorrect line items & membership_payments
502 for second inherited membership created in back end via price set
503 ([10759](https://github.com/civicrm/civicrm-core/pull/10759))**
504
505 This resolves a problem where membership contributions would be applied
506 incorrectly when one contact inherits memberships of separate types from
507 separate related contacts. This could result in data loss if the relationship
508 is deleted.
509
510 - **[CRM-20955](https://issues.civicrm.org/jira/browse/CRM-20955) Contact's
511 second membership fails to inherit when created in back end using price set
512 ([10745](https://github.com/civicrm/civicrm-core/pull/10745))**
513
514 ### CiviContribute
515
516 - **[CRM-21055](https://issues.civicrm.org/jira/browse/CRM-21055) Change label
517 of cancel button
518 ([10845](https://github.com/civicrm/civicrm-core/pull/10845))**
519
520 The button to exit the backend contribution form without saving is now labeled
521 "Close" rather than "Cancel". This now differs from all other forms.
522
523 - **[CRM-17040](https://issues.civicrm.org/jira/browse/CRM-17040) Import
524 Contributions using External Id's causes soft credit to be wrongly associated
525 ([10797](https://github.com/civicrm/civicrm-core/pull/10797))**
526
527 This resolves a problem that occurred when importing contributions that have
528 both soft credit and donor contacts identified by external ID. The
529 contribution would record the soft credit contact as the actual donor.
530
531 - **[CRM-20949](https://issues.civicrm.org/jira/browse/CRM-20949)
532 BillingBlock.tpl contains wrong paymentProcessor object on initial load of
533 backend Contribution page.
534 ([10734](https://github.com/civicrm/civicrm-core/pull/10734))**
535
536 - **[CRM-21087](https://issues.civicrm.org/jira/browse/CRM-21087) Payment popup
537 goes weird if you click 'adjust payment amount'.
538 ([10882](https://github.com/civicrm/civicrm-core/pull/10882))**
539
540 The pledge payment pop-up caused problems with page focus and covering the
541 Save button.
542
543 - **[CRM-20936](https://issues.civicrm.org/jira/browse/CRM-20936) Hide statuses
544 on backoffice contribution form
545 ([10718](https://github.com/civicrm/civicrm-core/pull/10718))**
546
547 Non-applicable contribution statuses are now suppressed when creating
548 contributions, event registrations, and memberships on the backend.
549
550 - **[CRM-21045](https://issues.civicrm.org/jira/browse/CRM-21045) Multiple email
551 field shown on Contribution Page.
552 ([10832](https://github.com/civicrm/civicrm-core/pull/10832))**
553
554 If a contribution page included a profile with a billing email, the email
555 field at the top of the contribution page would fail to disappear, resulting
556 in two HTML fields for the same data. This resolves that bug.
557
558 - **[CRM-21047](https://issues.civicrm.org/jira/browse/CRM-21047) TypeError:
559 financialtypeIds is undefined, on contribution form
560 ([10836](https://github.com/civicrm/civicrm-core/pull/10836))**
561
562 This resolves a Javascript error on the backend contribution form.
563
564 - **[CRM-20615](https://issues.civicrm.org/jira/browse/CRM-20615) Export only
565 those batches having status Exported
566 ([10394](https://github.com/civicrm/civicrm-core/pull/10394))**
567
568 This prevents batches from bein exported if the status isn't yet set to
569 "exported".
570
571 - **[CRM-21026](https://issues.civicrm.org/jira/browse/CRM-21026) Contribution
572 count on contact tabs excludes contributions with disabled financial types
573 ([10824](https://github.com/civicrm/civicrm-core/pull/10824))**
574
575 - **[CRM-19469](https://issues.civicrm.org/jira/browse/CRM-19469) EWay
576 transaction receipt not sent when member signs up using front-end form but
577 works in the CiviCRM back-end
578 ([9973](https://github.com/civicrm/civicrm-core/pull/9973))**
579
580 - **[CRM-21043](https://issues.civicrm.org/jira/browse/CRM-21043) Fix Dupe check
581 of on behalf organisation
582 ([10830](https://github.com/civicrm/civicrm-core/pull/10830))**
583
584 When contributing on behalf of an organization, the organization would not be
585 checked against duplicates and a new contact would be created each time.
586
587 - **[CRM-19739](https://issues.civicrm.org/jira/browse/CRM-19739) "New Account
588 Relationship Option Screen" does not show exception
589 ([10651](https://github.com/civicrm/civicrm-core/pull/10651))**
590
591 Creating an invalid account relationship would result in an endless spinning
592 logo rather than displaying an error.
593
594 - **[CRM-21015](https://issues.civicrm.org/jira/browse/CRM-21015) Contribution
595 page creates recurring contribution even though recurring is not selected
596 ([10835](https://github.com/civicrm/civicrm-core/pull/10835))**
597
598 Recurring contributions would be created if a contribution page had the option
599 for recurring contributions and a membership price set, even if the recurring
600 contribution checkbox was empty.
601
602 - **[CRM-21005](https://issues.civicrm.org/jira/browse/CRM-21005) "Record
603 Payment" dialogue lacks required field and is clunky
604 ([10817](https://github.com/civicrm/civicrm-core/pull/10817))**
605
606 The form for recording a payment did not require a payment method even though
607 that is necessary. Omitting it would result in a system error rather than a
608 validation error. Also, the payment amount now defaults to the amount due.
609
610 - **[CRM-21031](https://issues.civicrm.org/jira/browse/CRM-21031) Financial type
611 ID display instead of label in "View Price Options"
612 ([10823](https://github.com/civicrm/civicrm-core/pull/10823))**
613
614 - **[CRM-19186](https://issues.civicrm.org/jira/browse/CRM-19186) Subsequent
615 Installments of Recurring Credit Card Contributions Indicate a Payment
616 Instrument of Check
617 ([10749](https://github.com/civicrm/civicrm-core/pull/10749))**
618
619 - **[CRM-17281](https://issues.civicrm.org/jira/browse/CRM-17281) Pledges
620 miscalculate when total amount is not an integer and a payment is received
621 that covers three installments
622 ([10861](https://github.com/civicrm/civicrm-core/pull/10861))**
623
624 - **[CRM-21039](https://issues.civicrm.org/jira/browse/CRM-21039) Trying to add
625 Asset account relationship throws validation error
626 ([10828](https://github.com/civicrm/civicrm-core/pull/10828))**
627
628 - **[CRM-20988](https://issues.civicrm.org/jira/browse/CRM-20988) Don't display
629 option of Export, Delete etc to users who lack that permission
630 ([10791](https://github.com/civicrm/civicrm-core/pull/10791))**
631
632 ### CiviCase
633
634 - **[CRM-20930](https://issues.civicrm.org/jira/browse/CRM-20930) Case Detail
635 Report cannot filter by "Last Action Date"
636 ([10712](https://github.com/civicrm/civicrm-core/pull/10712))**
637
638 - **[CRM-18082](https://issues.civicrm.org/jira/browse/CRM-18082) CiviCase API
639 Create ignores custom data
640 ([10728](https://github.com/civicrm/civicrm-core/pull/10728))**
641
642 ### CiviEvent
643
644 - **[CRM-20935](https://issues.civicrm.org/jira/browse/CRM-20935) Deleting an
645 event does not delete links to profiles it used
646 ([10719](https://github.com/civicrm/civicrm-core/pull/10719))**
647
648 Rows in `civicrm_uf_join` were not deleted when events were deleted. This
649 resolves the bug and performs a cleanup of orphaned rows upon upgrade.
650
651 - **[CRM-20237](https://issues.civicrm.org/jira/browse/CRM-20237) Event
652 pricesets copied with long suffix cause DB error
653 ([10929](https://github.com/civicrm/civicrm-core/pull/10929))**
654
655 When copied, a price set has a copy ID tacked onto the end of its title. This
656 change prevents copies of copies from accumulating many copy ID add-ons.
657
658 - **[CRM-21069](https://issues.civicrm.org/jira/browse/CRM-21069) Fail more
659 gracefully on event display with invalid data in the DB
660 ([10865](https://github.com/civicrm/civicrm-core/pull/10865))**
661
662 This avoids a database error by suppressing display of participant records
663 where the event has been deleted in the database.
664
665 - **[CRM-20914](https://issues.civicrm.org/jira/browse/CRM-20914) participant
666 note field breaking export when populated with data over 32 characters
667 ([10700](https://github.com/civicrm/civicrm-core/pull/10700))**
668
669 - **[CRM-20933](https://issues.civicrm.org/jira/browse/CRM-20933) Updating Pay
670 later event registration from backend produces formRule error
671 ([10716](https://github.com/civicrm/civicrm-core/pull/10716))**
672
673 - **[CRM-21121](https://issues.civicrm.org/jira/browse/CRM-21121) Event Income
674 (Summary) report backtrace with 'only_full_group_by'
675 ([10926](https://github.com/civicrm/civicrm-core/pull/10926))**
676
677 - **[CRM-20027](https://issues.civicrm.org/jira/browse/CRM-20027) Need 'access
678 deleted contacts' permission to retrieve loc block addresses using API
679 ([10916](https://github.com/civicrm/civicrm-core/pull/10916))**
680
681 Addresses lacking contact IDs because they're used for event locations were
682 treated like addresses belonging to deleted contacts.
683
684 - **[CRM-13309](https://issues.civicrm.org/jira/browse/CRM-13309) Participant
685 Role on Event's Schedule Reminder form does not populate
686 ([10801](https://github.com/civicrm/civicrm-core/pull/10801))**
687
688 The field to restrict scheduled reminders to specific participant roles would
689 not appear.
690
691 - **[CRM-20942](https://issues.civicrm.org/jira/browse/CRM-20942) Email location
692 type must be 'primary' in profile or user creation won't work for event
693 ([10744](https://github.com/civicrm/civicrm-core/pull/10744))**
694
695 ### WordPress Integration
696
697 - **Fix parameter parsing in wp-cli civicrm api.
698 ([114](https://github.com/civicrm/civicrm-wordpress/pull/114))**
699
700 - **[CRM-21166](https://issues.civicrm.org/jira/browse/CRM-21166) WP-CLI
701 commands fail due to whitespace in regex
702 ([115](https://github.com/civicrm/civicrm-wordpress/pull/115))**
703
704 ### Internationalization
705
706 - **[CRM-19968](https://issues.civicrm.org/jira/browse/CRM-19968) Disable
707 multiple languages fixes
708 ([9783](https://github.com/civicrm/civicrm-core/pull/9783))**
709
710 This patch makes the following tweaks to the SQL queries that run when
711 disabling multiple languages so that it is more likely to succeed.
712
713 1. Column is renamed instead of created and copied, as the copy often leads to
714 a row size constraint (eg. in civicrm_event when you have some text in
715 intro_text_lang).
716 2. Use DROP VIEW IF EXISTS instead of DROP VIEW (supported
717 in mysql 5.1+). There is more support for IF EXISTS on other SQL functions in
718 new versions of mysql but we can't use them if we're maintaining
719 compatibility.
720
721 ## <a name="misc"></a>Miscellany
722
723 - **[CRM-21153](https://issues.civicrm.org/jira/browse/CRM-21153) Fix mispelled
724 variable ([10945](https://github.com/civicrm/civicrm-core/pull/10945))**
725
726 Fixes a misspelled variable
727
728 - **[CRM-21065](https://issues.civicrm.org/jira/browse/CRM-21065) Replace some
729 deprecated slow function calls: some CRM_Core_OptionGroup::values with
730 CRM_Activity_BAO_ActivityContact::buildOptions
731 ([10860](https://github.com/civicrm/civicrm-core/pull/10860))**
732
733 Replace (some not all) CRM_Core_OptionGroup::values with
734 CRM_Activity_BAO_ActivityContact::buildOptions where it is safe to do so (ie.
735 parameters map directly).
736
737 - **[CRM-20927](https://issues.civicrm.org/jira/browse/CRM-20927) Allow
738 `civicrm_menu` to store new data in generic column
739 ([10858](https://github.com/civicrm/civicrm-core/pull/10858)) (completes
740 previous work)**
741
742 The schema change is moved to a PHP-based upgrade task rather than a SQL
743 incremental upgrade query template.
744
745 - **[CRM-21036](https://issues.civicrm.org/jira/browse/CRM-21036) Change
746 deprecated comments to tags so phpstorm marks functions as deprecated
747 ([10825](https://github.com/civicrm/civicrm-core/pull/10825))**
748
749 - **[CRM-21023](https://issues.civicrm.org/jira/browse/CRM-21023) Replace
750 deprecated code and hardcoded IDs with pseudoconstants in Activity BAO
751 ([10816](https://github.com/civicrm/civicrm-core/pull/10816))**
752
753 - **(NFC) SettingsStack - Finish incomplete docblock
754 ([10950](https://github.com/civicrm/civicrm-core/pull/10950))**
755
756 - **Reinstate accidentally deleted test.
757 ([10938](https://github.com/civicrm/civicrm-core/pull/10938))**
758
759 - **NFC remove some unused vars, fix comment
760 ([10886](https://github.com/civicrm/civicrm-core/pull/10886))**
761
762 - **Renamed test class.
763 ([10730](https://github.com/civicrm/civicrm-core/pull/10730))**
764
765 - **Fix PHP Warnings. Replace fatal with statusBounce. Mark breadcrumbs
766 parameter as array instead of string so editors don't give a warning
767 ([10888](https://github.com/civicrm/civicrm-core/pull/10888))**
768
769 - **(NFC) Update contributor-key.yml
770 ([10894](https://github.com/civicrm/civicrm-core/pull/10894))**
771
772 - **(NFC) Improve docs in CONTRIBUTING.md
773 ([10853](https://github.com/civicrm/civicrm-core/pull/10853))**
774
775 - **(NFC) SettingsStack - Add test coverage for new helper class
776 ([10867](https://github.com/civicrm/civicrm-core/pull/10867))**
777
778 - **[NFC] Simplify method of getting logged in contact ID
779 ([10855](https://github.com/civicrm/civicrm-core/pull/10855))**
780
781 - **Update CONTRIBUTORS.txt
782 ([10843](https://github.com/civicrm/civicrm-core/pull/10843))**
783
784 - **Update Jon Goldberg in CONTRIBUTORS.txt
785 ([10840](https://github.com/civicrm/civicrm-core/pull/10840))**
786
787 - **Klaas Eikelboom (Kainuk Empowerment) is member of CiviCooP
788 ([10812](https://github.com/civicrm/civicrm-core/pull/10812))**
789
790 - **(NFC) Lint civicrm.drush.inc
791 ([473](https://github.com/civicrm/civicrm-drupal/pull/473))**
792
793 ## <a name="credits"></a>Credits
794
795 This release was developed by the following code authors:
796
797 Aaron Jones; Abhikalak Consultants - Amal Sharma; AGH Strategies - Alice Frumin,
798 Andrew Hunt; Agileware - Agileware Team, Justin Freeman; Australian Greens -
799 Seamus Lee; CEDC - Laryn Kragt Bakker; Circle Interactive - Dave Jenkins;
800 CiviCRM - Coleman Watts, Tim Otten; CiviDesk - Yashodha Chaku; CiviFirst - John
801 Kirk; CompuCorp - Camilo Rodriguez; Coop SymbioTIC - Mathieu Lutfy; Eaiman
802 Shoshi; Freeform Solutions - Herb van den Dool; Fuzion - Jitendra Purohit; JMA
803 Consulting - Edsel Lopez, Monish Deb, Pradeep Nayak; John Kingsnorth; Joinery -
804 Allen Shaw; Ken West; Left Join Labs - Sean Madsen; Lemniscus - Noah Miller;
805 Lighthouse Design and Consulting - Brian Shaughnessy; Megaphone Technology
806 Consulting - Jon Goldberg; MJW Consulting - Matthew Wire; myDropWizard - David
807 Snopek; Oxfam Germany - Thomas Schüttler; Progressive Technology Project - Jamie
808 McClelland; Randy Tobias; Tadpole Collective - Kevin Cristiano; Wikimedia
809 Foundation - Eileen McNaughton
810
811 Most authors also reviewed code for this release; in addition, the following
812 reviewers contributed their comments:
813
814 Artful Robot - Rich Lott; Barbara Miller; Black Brick Software - David Hayes;
815 Blackfly Solutions - Alan Dixon; Brian Hay; Brian McFee; British Humanist
816 Association - Andrew West, William Gordon; Christian Wach; Circle Interactive -
817 Andrew Walker, Martin Castle; CiviCoop - Jaap Jansma, Klaas Eikelboom; CiviDesk -
818 Nicolas Ganivet; Community Builders - Andrew Perry; CompuCorp - Guanhuan Chen,
819 Omar Abu Hussein; Dave D; Dave Greenberg; Dave Rolsky; David Hepper; Davis Media
820 Access - Darrick Servis; Deepak Srivastava; Donald Hirst; Donald Lobo; Effy
821 Elden; Electronic Frontier Foundation - Mark Burdett; eQuality Technology - Greg
822 Rundlett; Forest CRM Consulting - Tamar Meir; Fuzion - Chris Burgess, Peter
823 Davis; Greenleaf Advancement - Guy Iaccarino; Hemophilia of North Carolina -
824 Charles Register; JMA Consulting - Joe Murray; Joel Stevens; Johan Vervloet;
825 Klangsoft - David Reedy Jr; Korlon - Stuart Gaston; Lullabot - Nate Lampton;
826 Manish Zope; Marc Brazeau; Mathias Consulting - Cheryl Chase; Michal Mach;
827 National Democratic Institute - Evan Summers; Nubay Services - David Tarrant;
828 Openflows - Eric Goldhagen; Palante Technology Cooperative - Joseph Lacey; Phil
829 McKerracher; Rareș Pamfil; Responsive Development Technologies - Thomas
830 Nilefalk; Rex Keal; Richard van Oosterhout; Saurabh Batra; Semper IT - Karin
831 Gerritsen; SEN Magazine - Jeremy Nicholls; Shailesh Lende; Skvare - Mark Hanna;
832 Squiffle Consulting - Aidan Saunders; Steve Binkowski; Team Expansion - Greg
833 Harris; Tobias Lounsbury; Wikimedia Foundation - Elliott Eggleston
834
835 ## <a name="feedback"></a>Feedback
836
837 These release notes are edited by Alice Frumin and Andrew Hunt. If you'd like
838 to provide feedback on them, please login to https://chat.civicrm.org/civicrm
839 and contact `@agh1`.