Fix mglaman mapping
[civicrm-core.git] / release-notes / 4.7.16.md
1 # CiviCRM 4.7.16
2
3 Released February 8, 2017
4
5 - **[Features](#features)**
6 - **[Bugs resolved](#bugs)**
7 - **[Miscellany](#misc)**
8 - **[Credits](#credits)**
9
10 ## <a name="features"></a>Features
11
12 ### Core CiviCRM
13
14 - **[CRM-19925](https://issues.civicrm.org/jira/browse/CRM-19925) Add metadata
15 to fields array with entity info & date format info
16 ([9727](https://github.com/civicrm/civicrm-core/pull/9727))**
17
18 The data access objects (DAO) now include additional information for each
19 field, including the table name, entity, and business access object (BAO).
20
21 - **[CRM-19829](https://issues.civicrm.org/jira/browse/CRM-19829) Activity feed
22 ([9714](https://github.com/civicrm/civicrm-core/pull/9714),
23 [9649](https://github.com/civicrm/civicrm-core/pull/9649), and
24 [9624](https://github.com/civicrm/civicrm-core/pull/9624))
25 (Preliminary work)**
26
27 The Attachment API now includes the appropriate icon class name from Font
28 Awesome, a `CRM.cache` object in Javascript is available to set and retrieve
29 information from `window.localStorage`, and a new Angular utility
30 `crmThrottle` prevents a function from running concurrently if called several
31 times in rapid succession.
32
33 - **[CRM-19893](https://issues.civicrm.org/jira/browse/CRM-19893) Activity Type
34 Categories ([9696](https://github.com/civicrm/civicrm-core/pull/9696))
35 (Preliminary work)**
36
37 The option value form now displays the option's grouping if available.
38
39 - **[CRM-19831](https://issues.civicrm.org/jira/browse/CRM-19831) Function
40 `CRM_Contact_BAO_Group::getGroupsHierarchy` performes bad with 3000 groups
41 ([9673](https://github.com/civicrm/civicrm-core/pull/9673) and
42 [9633](https://github.com/civicrm/civicrm-core/pull/9633))**
43
44 Group listing performance is improved on sites with many groups.
45
46 - **[CRM-19256](https://issues.civicrm.org/jira/browse/CRM-19256) Add a hook to
47 dynamically escalate permissions
48 ([8916](https://github.com/civicrm/civicrm-core/pull/8916))**
49
50 A new `hook_civicrm_permission_check` is invoked whenever a user's permissions
51 are evaluated. (See [hook
52 documentation](https://wiki.civicrm.org/confluence/display/CRMDOC/hook_civicrm_permission_check)
53 for details and examples.)
54
55 - **[CRM-19853](https://issues.civicrm.org/jira/browse/CRM-19853) Change
56 interval select controls in Scheduled Reminders with number controls
57 ([9664](https://github.com/civicrm/civicrm-core/pull/9664))**
58
59 A few drop-down fields in the Scheduled Reminders interface that were simply
60 picking integers have been replaced with regular text fields.
61
62 - **[CRM-19769](https://issues.civicrm.org/jira/browse/CRM-19769) Colors for
63 tags and [CRM-19779](https://issues.civicrm.org/jira/browse/CRM-19779) Colors
64 for activity statuses
65 ([9660](https://github.com/civicrm/civicrm-core/pull/9660),
66 [9600](https://github.com/civicrm/civicrm-core/pull/9600), and
67 [9554](https://github.com/civicrm/civicrm-core/pull/9554))**
68
69 You can choose colors for tags and activity statuses for better visibility.
70
71 - **[CRM-19770](https://issues.civicrm.org/jira/browse/CRM-19770) Favorite
72 (starred) activities
73 ([9629](https://github.com/civicrm/civicrm-core/pull/9629))**
74
75 You can now mark favorite activities with stars.
76
77 - **[CRM-19723](https://issues.civicrm.org/jira/browse/CRM-19723) Icons for
78 activity types ([9707](https://github.com/civicrm/civicrm-core/pull/9707),
79 [9553](https://github.com/civicrm/civicrm-core/pull/9553),
80 [9528](https://github.com/civicrm/civicrm-core/pull/9528),
81 and [9706](https://github.com/civicrm/civicrm-core/pull/9706)**
82
83 A user can now choose icons for activity types.
84
85 - **[CRM-19816](https://issues.civicrm.org/jira/browse/CRM-19816) Improve
86 activity search filters
87 ([9609](https://github.com/civicrm/civicrm-core/pull/9609)) (Preliminary work)**
88
89 The `Activity.get` API is improved for filtering by related contact, case, and
90 tag.
91
92 - **[CRM-19447](https://issues.civicrm.org/jira/browse/CRM-19447) Improve
93 Activity Subject/Details text search to be similiar to Notes Subject/Body
94 ([9536](https://github.com/civicrm/civicrm-core/pull/9536))**
95
96 Activity search now has a single "Activity Text" field for finding text in the
97 activity subject, details, or both.
98
99 - **[CRM-19883](https://issues.civicrm.org/jira/browse/CRM-19883) Activity
100 Priority Field is Not Included in Advanced Search or Activity Reports
101 ([9687](https://github.com/civicrm/civicrm-core/pull/9687))**
102
103 The priority field is now available in search and activity reports.
104
105 - **[CRM-19810](https://issues.civicrm.org/jira/browse/CRM-19810) Api3 - Add
106 joins on optionValue table
107 ([9593](https://github.com/civicrm/civicrm-core/pull/9593))**
108
109 Foreign keys to option values can now be used for joins in the API despite the
110 fact that they aren't true foreign keys.
111
112 - **[CRM-19839](https://issues.civicrm.org/jira/browse/CRM-19839) Declare class
113 used on developer tab of CiviCRM reports
114 ([9646](https://github.com/civicrm/civicrm-core/pull/9646))**
115
116 When viewing the Developer tab on a report, you can now see the report class
117 in use.
118
119 - **[CRM-19812](https://issues.civicrm.org/jira/browse/CRM-19812) Display
120 related contact names in activity.get api
121 ([9599](https://github.com/civicrm/civicrm-core/pull/9599))**
122
123 Activity assignees and targets are now available as return options in the
124 `Activity.get` API.
125
126 ### CiviCase
127
128 - **[CRM-19806](https://issues.civicrm.org/jira/browse/CRM-19806) CiviCase using
129 two formlinks when it only needs one
130 ([9586](https://github.com/civicrm/civicrm-core/pull/9586))**
131
132 CiviCase now behaves like the rest of CiviCRM when creating action links in a
133 listing of cases.
134
135 - **[CRM-19778](https://issues.civicrm.org/jira/browse/CRM-19778) Allowed
136 statuses per case-type
137 ([9705](https://github.com/civicrm/civicrm-core/pull/9705))**
138
139 Case types can be configured to restrict the available case statuses.
140
141 ### CiviContribute
142
143 - **[CRM-8526](https://issues.civicrm.org/jira/browse/CRM-8526) Support
144 [contribution.custom_nn] tokens in templates
145 ([9661](https://github.com/civicrm/civicrm-core/pull/9661))**
146
147 You can now insert tokens for contribution custom fields.
148
149 - **[CRM-16189](https://issues.civicrm.org/jira/browse/CRM-16189) Improve
150 support for Accrual Method bookkeeping
151 ([8870](https://github.com/civicrm/civicrm-core/pull/8870)) (Completes previous work)**
152
153 A "Record Payment" button is now available on contributions.
154
155 ### CiviEvent
156
157 - **Add select2 class to loc_event_id
158 ([9603](https://github.com/civicrm/civicrm-core/pull/9603))**
159
160 The field for re-using the location of another event now uses a `select2`
161 widget.
162
163 ### CiviMail
164
165 - **[CRM-19690](https://issues.civicrm.org/jira/browse/CRM-19690) Allow
166 alternative email templating systems
167 ([9689](https://github.com/civicrm/civicrm-core/pull/9689),
168 [9566](https://github.com/civicrm/civicrm-core/pull/9566),
169 [9619](https://github.com/civicrm/civicrm-core/pull/9619),
170 [9565](https://github.com/civicrm/civicrm-core/pull/9565),
171 [9564](https://github.com/civicrm/civicrm-core/pull/9564),
172 [9563](https://github.com/civicrm/civicrm-core/pull/9563), and
173 [9562](https://github.com/civicrm/civicrm-core/pull/9562))**
174
175 Extensions can now specify mailing template types with template options.
176 These types can be associated with different template editors, such as
177 [Mosaico](https://github.com/veda-consulting/uk.co.vedaconsulting.mosaico).
178 The way tokens are presented and evaluated in CiviMail is also streamlined.
179 This also passes mail delivery to the FlexMailer extension when it is enabled.
180
181 ### Drupal Integration Modules
182
183 - **[CRM-17917](https://issues.civicrm.org/jira/browse/CRM-17917) Add support
184 for Drupal 8 ([388](https://github.com/civicrm/civicrm-drupal/pull/388)) (Continues previous work)**
185
186 Several small improvements were made, making it easier to install CiviCRM on Drupal 8 using [Buildkit](https://buildkit.civicrm.org/).
187
188 ## <a name="bugs"></a>Bugs resolved
189
190 ### Core CiviCRM
191
192 - **[CRM-19874](https://issues.civicrm.org/jira/browse/CRM-19874) Allow
193 overriding sort in the getlist API without clobbering pager
194 ([9675](https://github.com/civicrm/civicrm-core/pull/9675))**
195
196 The default pager parameters are no longer ignored when other `options` are set in a `getlist` API.
197
198 - **[CRM-19783](https://issues.civicrm.org/jira/browse/CRM-19783) Accessibility
199 Error - CiviCRM Subscription Page
200 ([9606](https://github.com/civicrm/civicrm-core/pull/9606))**
201
202 - **Remove unused var, comments & clean up & refactor caching function
203 ([9721](https://github.com/civicrm/civicrm-core/pull/9721))**
204
205 - **[CRM-19906](https://issues.civicrm.org/jira/browse/CRM-19906) Allow Drupal
206 user names with "@"
207 ([9708](https://github.com/civicrm/civicrm-core/pull/9708))**
208
209 - **[CRM-19003](https://issues.civicrm.org/jira/browse/CRM-19003) Profile
210 listing doesn't produce expected results when range-searching custom date
211 field ([9699](https://github.com/civicrm/civicrm-core/pull/9699))**
212
213 - **[CRM-19801](https://issues.civicrm.org/jira/browse/CRM-19801) changing the
214 same relationship type of a relationship from A to B or vice versa does not
215 work ([9579](https://github.com/civicrm/civicrm-core/pull/9579))**
216
217 - **[CRM-19842](https://issues.civicrm.org/jira/browse/CRM-19842) Can't delete a
218 dedupe rule ([9698](https://github.com/civicrm/civicrm-core/pull/9698))**
219
220 - **typo fix in New Tag Form.
221 ([9700](https://github.com/civicrm/civicrm-core/pull/9700))**
222
223 - **CRM_Extension_Browser - Allow different cache files for different feeds
224 ([9693](https://github.com/civicrm/civicrm-core/pull/9693))**
225
226 - **[CRM-17663](https://issues.civicrm.org/jira/browse/CRM-17663) Dashlet code
227 improvements ([9672](https://github.com/civicrm/civicrm-core/pull/9672))
228 (Completes previous work)**
229
230 An upgrade step now fixes dashlets named `NULL`.
231
232 - **Fire hook_civicrm_emailProcessor('activity') if Activity,create successful
233 ([9651](https://github.com/civicrm/civicrm-core/pull/9651))**
234
235 - **Civi\API\ExternalBatch - Verify that $_ENV is working
236 ([9595](https://github.com/civicrm/civicrm-core/pull/9595))**
237
238 - **[CRM-19847](https://issues.civicrm.org/jira/browse/CRM-19847) batch merge
239 redirects users to snippet URL
240 ([9653](https://github.com/civicrm/civicrm-core/pull/9653))**
241
242 - **(NFC) Civi/*, CRM_Utils_SQL_Select - Fix various warnings
243 ([9657](https://github.com/civicrm/civicrm-core/pull/9657))**
244
245 - **[CRM-19824](https://issues.civicrm.org/jira/browse/CRM-19824) Event
246 listeners are missing if container cache is disabled
247 ([9617](https://github.com/civicrm/civicrm-core/pull/9617))**
248
249 - **[CRM-19826](https://issues.civicrm.org/jira/browse/CRM-19826) Extensions in
250 "vendor" folder have errant slash
251 ([9618](https://github.com/civicrm/civicrm-core/pull/9618))**
252
253 - **[CRM-19706](https://issues.civicrm.org/jira/browse/CRM-19706) Smart Group
254 criteria (Activity Status) are not being retained when using 'Edit Smart Group
255 criteria' ([9620](https://github.com/civicrm/civicrm-core/pull/9620))**
256
257 - **[CRM-19624](https://issues.civicrm.org/jira/browse/CRM-19624) Exclude /
258 Include by privacy radio buttons gets reset on Smartgroup re-editing
259 ([9597](https://github.com/civicrm/civicrm-core/pull/9597))**
260
261 - **[CRM-19805](https://issues.civicrm.org/jira/browse/CRM-19805) Comparing
262 instead of Assigning
263 ([9591](https://github.com/civicrm/civicrm-core/pull/9591))**
264
265 This fixes three typos in the codebase where `==` was used instead of `=`.
266
267 - **[CRM-19244](https://issues.civicrm.org/jira/browse/CRM-19244) Custom fields
268 with option group not importing
269 ([8906](https://github.com/civicrm/civicrm-core/pull/8906))**
270
271 - **OptionValue Api cleanup - remove unnecessary lookup
272 ([9569](https://github.com/civicrm/civicrm-core/pull/9569))**
273
274 - **[CRM-18472](https://issues.civicrm.org/jira/browse/CRM-18472) Notice fixes
275 ([9558](https://github.com/civicrm/civicrm-core/pull/9558)) (Completes
276 previous work)**
277
278 Avoids a PHP notice on deleting soft credits.
279
280 - **Upgrade cleanup - use addColumn utility instead of sql
281 ([9548](https://github.com/civicrm/civicrm-core/pull/9548))**
282
283 - **API Explorer: Minor usability improvements
284 ([9539](https://github.com/civicrm/civicrm-core/pull/9539))**
285
286 - **[CRM-19832](https://issues.civicrm.org/jira/browse/CRM-19832)
287 hook_civicrm_searchTasks get invoked twice for some entities
288 ([9637](https://github.com/civicrm/civicrm-core/pull/9637))**
289
290 - **[CRM-19875](https://issues.civicrm.org/jira/browse/CRM-19875) Search
291 builder: Fatal error when searching custom field of type "country"
292 ([9695](https://github.com/civicrm/civicrm-core/pull/9695))**
293
294 - **[CRM-19811](https://issues.civicrm.org/jira/browse/CRM-19811) Slow queries
295 due to use of LOWER() in mysql searches, fix contribution search, current
296 employer. Comment elsewhere
297 ([9596](https://github.com/civicrm/civicrm-core/pull/9596))**
298
299 - **[CRM-19884](https://issues.civicrm.org/jira/browse/CRM-19884) DB Error on
300 Activity Details Report
301 ([9681](https://github.com/civicrm/civicrm-core/pull/9681))**
302
303 - **[CRM-19509](https://issues.civicrm.org/jira/browse/CRM-19509) Add character
304 set and collation to create table statements in reports
305 ([9411](https://github.com/civicrm/civicrm-core/pull/9411))**
306
307 - **[CRM-19807](https://issues.civicrm.org/jira/browse/CRM-19807) MySQL error
308 when adding contacts on a report to a group
309 ([9594](https://github.com/civicrm/civicrm-core/pull/9594))**
310
311 - **[CRM-18591](https://issues.civicrm.org/jira/browse/CRM-18591) group_type
312 parameter ignored when using API to create group
313 ([9578](https://github.com/civicrm/civicrm-core/pull/9578)) (Completes
314 previous work)**
315
316 This improves the handling of checkboxes on the group edit form.
317
318 ### Accounting
319
320 - **[CRM-19800](https://issues.civicrm.org/jira/browse/CRM-19800) Incorrect
321 Amount recorded in civicrm_financial_trxn table
322 ([9577](https://github.com/civicrm/civicrm-core/pull/9577))**
323
324 This fixes problems when money amounts were entered with a thousands
325 delimiter.
326
327 - **[CRM-19585](https://issues.civicrm.org/jira/browse/CRM-19585) Sales tax
328 issue ([9598](https://github.com/civicrm/civicrm-core/pull/9598),
329 [9576](https://github.com/civicrm/civicrm-core/pull/9576),
330 [9590](https://github.com/civicrm/civicrm-core/pull/9590), and
331 [9574](https://github.com/civicrm/civicrm-core/pull/9574)) (Preliminary
332 work)**
333
334 A variety of problems have been partially fixed.
335
336 - **[CRM-19804](https://issues.civicrm.org/jira/browse/CRM-19804) Pre() and
337 Post() hook for Financial Account
338 ([9584](https://github.com/civicrm/civicrm-core/pull/9584))**
339
340 ### CiviCase
341
342 - **[CRM-19890](https://issues.civicrm.org/jira/browse/CRM-19890) Case Manager
343 listed in cases tab is not up to date
344 ([9691](https://github.com/civicrm/civicrm-core/pull/9691))**
345
346 - **[CRM-19754](https://issues.civicrm.org/jira/browse/CRM-19754) CiviCase role
347 relationships reversed
348 ([9560](https://github.com/civicrm/civicrm-core/pull/9560))**
349
350 - **[CRM-19897](https://issues.civicrm.org/jira/browse/CRM-19897) Cannot edit
351 multiple case activities via profile, because deprecated "access CiviCase"
352 permission is referenced
353 ([9703](https://github.com/civicrm/civicrm-core/pull/9703))**
354
355 - **Docs fix: update for changed URL of Case Management > Setup page.
356 ([9701](https://github.com/civicrm/civicrm-core/pull/9701))**
357
358 ### CiviContribute
359
360 - **[CRM-19172](https://issues.civicrm.org/jira/browse/CRM-19172) on behalf form +
361 user account creation attempts to create user for org
362 ([9669](https://github.com/civicrm/civicrm-core/pull/9669))**
363
364 - **[CRM-19863](https://issues.civicrm.org/jira/browse/CRM-19863) 'item_name'
365 unnecessarily truncated when passed to PayPal
366 ([9677](https://github.com/civicrm/civicrm-core/pull/9677))**
367
368 - **[CRM-19725](https://issues.civicrm.org/jira/browse/CRM-19725) Honoree should
369 never be same as donor
370 ([9503](https://github.com/civicrm/civicrm-core/pull/9503))**
371
372 - **[CRM-19761](https://issues.civicrm.org/jira/browse/CRM-19761) contribution
373 thank you letter generator: unable to export to docx
374 ([9575](https://github.com/civicrm/civicrm-core/pull/9575) and
375 [9568](https://github.com/civicrm/civicrm-core/pull/9568))**
376
377 - **[CRM-19799](https://issues.civicrm.org/jira/browse/CRM-19799) LineItems
378 incorrect at both Contribution Level and Financial Accounts Level
379 ([9580](https://github.com/civicrm/civicrm-core/pull/9580))**
380
381 - **[CRM-19802](https://issues.civicrm.org/jira/browse/CRM-19802) Contribution
382 page : missing translation
383 ([9581](https://github.com/civicrm/civicrm-core/pull/9581))**
384
385 - **[CRM-19777](https://issues.civicrm.org/jira/browse/CRM-19777) Edit
386 contribution : wrong decimal separator on total_amount
387 ([9556](https://github.com/civicrm/civicrm-core/pull/9556))**
388
389 - **[CRM-19795](https://issues.civicrm.org/jira/browse/CRM-19795) Contribution
390 page confirmation screen undefined index pay_later_receipt
391 ([9632](https://github.com/civicrm/civicrm-core/pull/9632))**
392
393 - **[CRM-19794](https://issues.civicrm.org/jira/browse/CRM-19794) Wrong fields
394 displayed when setting a price set for a contribution page
395 ([9697](https://github.com/civicrm/civicrm-core/pull/9697))**
396
397 ### CiviEvent
398
399 - **[CRM-19860](https://issues.civicrm.org/jira/browse/CRM-19860) Event
400 participant batch update: respect "options per line" setting for radio buttons
401 ([9667](https://github.com/civicrm/civicrm-core/pull/9667))**
402
403 - **[CRM-19907](https://issues.civicrm.org/jira/browse/CRM-19907) Syntax error
404 generated on CiviEvent Dashboard when show_events is null
405 ([9709](https://github.com/civicrm/civicrm-core/pull/9709))**
406
407 - **[CRM-19789](https://issues.civicrm.org/jira/browse/CRM-19789) Cannot create
408 smart group from 'Find participants'
409 ([9567](https://github.com/civicrm/civicrm-core/pull/9567))**
410
411 - **[CRM-19782](https://issues.civicrm.org/jira/browse/CRM-19782) "View" link on
412 printed Participant Listing Report renders display name unreadable
413 ([9546](https://github.com/civicrm/civicrm-core/pull/9546))**
414
415 - **[CRM-19803](https://issues.civicrm.org/jira/browse/CRM-19803) View Payment
416 popup of a participant does not show refunds
417 ([9634](https://github.com/civicrm/civicrm-core/pull/9634) and
418 [9592](https://github.com/civicrm/civicrm-core/pull/9592))**
419
420 - **[CRM-19288](https://issues.civicrm.org/jira/browse/CRM-19288) VAT not
421 included for additional participant fee when registering for events
422 ([9545](https://github.com/civicrm/civicrm-core/pull/9545))**
423
424 ### CiviMail
425
426 - **[CRM-19413](https://issues.civicrm.org/jira/browse/CRM-19413) CiviMail: Test
427 mail notice errors: undefined index
428 ([9550](https://github.com/civicrm/civicrm-core/pull/9550))**
429
430 ### CiviMember
431
432 - **[CRM-19895](https://issues.civicrm.org/jira/browse/CRM-19895) membership
433 renewal page style collapsed if email disabled
434 ([9713](https://github.com/civicrm/civicrm-core/pull/9713))**
435
436 - **[CRM-19936](https://issues.civicrm.org/jira/browse/CRM-19936) Membership
437 line items are duplicated when a membership is created or renewed with
438 priceset containing multiple memberships
439 ([9748](https://github.com/civicrm/civicrm-core/pull/9748))
440 (Preliminary work)**
441
442 - **[CRM-19817](https://issues.civicrm.org/jira/browse/CRM-19817) Notice error
443 fails membership export
444 ([9610](https://github.com/civicrm/civicrm-core/pull/9610))**
445
446 Membership export with data from related contacts was causing PHP notices or
447 complete failure, depending upon the CMS.
448
449 - **Fix startdate for testMembershipJoinDateFixed
450 ([9608](https://github.com/civicrm/civicrm-core/pull/9608))**
451
452 ### Drupal Integration
453
454 - **[CRM-19740](https://issues.civicrm.org/jira/browse/CRM-19740) Regression in
455 phone number Drupal views integration
456 ([415](https://github.com/civicrm/civicrm-drupal/pull/415))**
457
458 A problem has been fixed where the same phone number would show up for each of
459 a contact's location/phone types in Views.
460
461 - **CiviCRM Menu -- Add PathProcessor to allow parameters to routes to include
462 slashes ([420](https://github.com/civicrm/civicrm-drupal/pull/420))**
463
464 - **[CRM-19086](https://issues.civicrm.org/jira/browse/CRM-19086) CiviCRM Core
465 Installation fails on Drupal 8.1.x and
466 [CRM-18297](https://issues.civicrm.org/jira/browse/CRM-18297) Drupal 8 Crash
467 on Admin Config page
468 ([419](https://github.com/civicrm/civicrm-drupal/pull/419))**
469
470 ### Joomla Integration
471
472 - **[CRM-19877](https://issues.civicrm.org/jira/browse/CRM-19877) on Joomla
473 api.Setting.create fails with "option,task not valid settings"
474 ([9678](https://github.com/civicrm/civicrm-core/pull/9678))**
475
476 ## <a name="misc"></a>Miscellany
477
478 - **Comment fixes plus fix inconsistent unused return bool
479 ([9722](https://github.com/civicrm/civicrm-core/pull/9722))**
480
481 - **[nfc] Updated test generated examples
482 ([9720](https://github.com/civicrm/civicrm-core/pull/9720))**
483
484 - **[nfc] Comment fixes, remove one unused var, declare visibility
485 ([9717](https://github.com/civicrm/civicrm-core/pull/9717))**
486
487 - **[NFC] add comments & extract function in contribution search
488 ([9716](https://github.com/civicrm/civicrm-core/pull/9716))**
489
490 - **Comment Fixes ([9659](https://github.com/civicrm/civicrm-core/pull/9659))**
491
492 - **Comments ([9658](https://github.com/civicrm/civicrm-core/pull/9658))**
493
494 - **Add comment blocks
495 ([9656](https://github.com/civicrm/civicrm-core/pull/9656))**
496
497 - **allow descendant classes to access the cache array
498 ([9605](https://github.com/civicrm/civicrm-core/pull/9605))**
499
500 - **(NFC) CRM_*_Tokens - Reduce redundant docs
501 ([9573](https://github.com/civicrm/civicrm-core/pull/9573))**
502
503 - **tools/scripts/phpunit-ls - Fix PhpStorm lookup of PHPUnit_Framework_TestCase
504 ([9535](https://github.com/civicrm/civicrm-core/pull/9535))**
505
506 - **[CRM-19768](https://issues.civicrm.org/jira/browse/CRM-19768)
507 CRM_Utils_Token::replace*Tokens() usage is inconsistent
508 ([9541](https://github.com/civicrm/civicrm-core/pull/9541)) (Preliminary
509 work)**
510
511 - **Convert drupal to Backdrop and change variable_get/set to state_get/set
512 ([21](https://github.com/civicrm/civicrm-backdrop/pull/21))**
513
514 - **fix header ([9607](https://github.com/civicrm/civicrm-core/pull/9607))**
515
516 - **fix headers ([421](https://github.com/civicrm/civicrm-drupal/pull/421))**
517
518 - **fix headers ([109](https://github.com/civicrm/civicrm-wordpress/pull/109))**
519
520 - **fix headers ([42](https://github.com/civicrm/civicrm-joomla/pull/42))**
521
522 ## <a name="credits"></a>Credits
523
524 This release was developed by the following code authors:
525
526 AGH Strategies - Alice Frumin, Andrew Hunt; ATD Fourth World - Véronique
527 Gratioulet; Agileware - Agileware Team; Aidan Saunders; AppChecker; Australian
528 reens - Seamus Lee; CiviCRM - Coleman Watts, Jitendra Purohit, Tim Otten, Monish
529 Deb, Yashodha Chaku; CiviCoop - Jaap Jansma; CiviDesk - Nicolas Ganivet;
530 Community Builders - Dejan Lukic; CompuCorp - Omar Abu Hussein; Coop SymbioTIC -
531 Mathieu Lutfy; Erich Schulz; Freeform Solutions - Herb van den Dool; Fuzion -
532 Chris Burgess, Eileen McNaughton; Ginkgo Street Labs - Frank Gómez; JMA
533 Consulting - Edsel Lopez, Jon Goldberg, Pradeep Nayak; John Kingsnorth; Joinery -
534 Allen Shaw; Klaas Eikelboom; Klangsoft - David Reedy Jr; Lighthouse Design and
535 Consulting - Brian Shaughnessy; Marc Brazeau; Progressive Technology Project -
536 Jamie McClelland; Skvare - Mark Hanna; Wikimedia Foundation - Eileen McNaughton
537
538 Most authors also reviewed code for this release; in addition, the following
539 reviewers contributed their comments:
540
541 AGH Strategies - Tommy Bobo; Christian Wach; Circle Interactive - Dave Jenkins;
542 CiviCRM - Donald Lobo, Rohan Katkar; Community IT Academy - William Mortada;
543 CompuCorp - Madura Krishnamoorthy, Mike Kondrashin; Denver DataMan - Steve
544 Kessler; Digitalcourage - Detlev Sieber; Fedor Khodkov; Forest CRM Consulting -
545 Tamar Meir; Fuzion - Peter Davis; Ginkgo Street Labs - Frank Gómez; Glick
546 Software - David Glick; iXiam - Vangelis Pantazis; JMA Consulting - Joe Murray;
547 Kacper Warda; Ken West; Korlon - Stuart Gaston; Naomi Rosenberg; Noah Miller;
548 Oxfam Germany - Thomas Schüttler; Richard van Oosterhout; Robert Lang; Semper IT -
549 Karin Gerritsen; Tadpole Collective - Kevin Cristiano; University of Hawaii at
550 Manoa - Center on Disability Studies - William Rems; Vakees K; Valéry Gouleau