Commit | Line | Data |
---|---|---|
5971010f AH |
1 | # CiviCRM 5.16.0 |
2 | ||
88648a66 AH |
3 | Released August 7, 2019 |
4 | ||
5 | - **[Synopsis](#synopsis)** | |
5971010f AH |
6 | - **[Features](#features)** |
7 | - **[Bugs resolved](#bugs)** | |
8 | - **[Miscellany](#misc)** | |
9 | - **[Credits](#credits)** | |
88648a66 AH |
10 | - **[Feedback](#feedback)** |
11 | ||
12 | ## <a name="synopsis"></a>Synopsis | |
13 | ||
14 | | *Does this version...?* | | | |
15 | |:--------------------------------------------------------------- |:-------:| | |
8206ecb0 AF |
16 | | Fix security vulnerabilities? | no | |
17 | | Change the database schema? | no | | |
18 | | Alter the API? | **yes** | | |
19 | | Require attention to configuration options? | **yes** | | |
20 | | Fix problems installing or upgrading to a previous version? | **yes** | | |
21 | | Introduce features? | **yes** | | |
22 | | Fix bugs? | **yes** | | |
5971010f AH |
23 | |
24 | ## <a name="features"></a>Features | |
25 | ||
26 | ### Core CiviCRM | |
27 | ||
8206ecb0 AF |
28 | - **Allow extensions to define CSS themes / Add a configuration setting for when |
29 | to load custom CSS | |
30 | ([CRM-18792](https://issues.civicrm.org/jira/browse/CRM-18792) / | |
31 | [dev/core#378](https://lab.civicrm.org/dev/core/issues/378): | |
32 | [14551](https://github.com/civicrm/civicrm-core/pull/14551) and | |
33 | [12929](https://github.com/civicrm/civicrm-core/pull/12929))** | |
5971010f | 34 | |
8206ecb0 AF |
35 | Adds an option to the "Display Preferences" settings form to allow users to |
36 | more finely tune when CiviCRM's css is loaded. On WordPress and Joomla two | |
37 | options are available the "Backend Theme" and "Frontend Theme", on Drupal and | |
38 | Backdrop, the administration screen "Display Preferences" presents a singular | |
39 | "Theme" option. | |
5971010f | 40 | |
8206ecb0 AF |
41 | - **Clean up use of DAO::nullArray |
42 | ([dev/core#1047](https://lab.civicrm.org/dev/core/issues/1047): | |
43 | [14556](https://github.com/civicrm/civicrm-core/pull/14556), | |
44 | [14555](https://github.com/civicrm/civicrm-core/pull/14555) and | |
45 | [14550](https://github.com/civicrm/civicrm-core/pull/14550))** | |
46 | ||
47 | Improves code stability by removing the unnecessary function | |
48 | `CRM_Core_DAO::_nullArray`. | |
49 | ||
50 | - **Consolidate handling of conflicts between the batch job and get_conflicts | |
51 | api ([14685](https://github.com/civicrm/civicrm-core/pull/14685))** | |
5971010f | 52 | |
8206ecb0 AF |
53 | Improves code consistency by ensuring that merge conflicts are stored during |
54 | batch_merge to the prev_next cache with the same format as when the api calls | |
55 | get_conflicts, the code doing this wrangling is moved from the api to the BAO | |
56 | layer. | |
5971010f | 57 | |
7aa74833 AH |
58 | - **Better support for hookable menubar colors |
59 | ([14944](https://github.com/civicrm/civicrm-core/pull/14944))** | |
60 | ||
61 | More colors in the menu, including the base color, highlight color, and text | |
62 | color, can be modified with hooks. | |
63 | ||
8206ecb0 AF |
64 | - **Add csv reader package |
65 | ([14524](https://github.com/civicrm/civicrm-core/pull/14524))** | |
5971010f | 66 | |
8206ecb0 AF |
67 | Adds the CSV processing utility, league/csv ^9.2 which will help with future |
68 | PRs which introduce more test-coverage for CSV outputs and help cleanup some | |
69 | of the csv code down the way. | |
5971010f | 70 | |
8206ecb0 AF |
71 | - **Improve protected field metadata |
72 | ([14679](https://github.com/civicrm/civicrm-core/pull/14679))** | |
5971010f | 73 | |
8206ecb0 AF |
74 | Adds more robust metadata to fields protected by permissions in a format that |
75 | can be directly passed into `CRM_Core_Permissions::check()`. | |
5971010f | 76 | |
8206ecb0 AF |
77 | - **Move api_key read/write permission checks from api to BAO |
78 | ([14660](https://github.com/civicrm/civicrm-core/pull/14660))** | |
5971010f | 79 | |
8206ecb0 AF |
80 | Moves the logic for checking the api_key field permissions from the api layer |
81 | to the BAO layer so it can be reused by api4 and other things. | |
5971010f | 82 | |
7aa74833 AH |
83 | - **Add a configuration setting for when to load custom CSS (initial work for |
84 | [dev/core#378](https://lab.civicrm.org/dev/core/issues/378): | |
85 | [14876](https://github.com/civicrm/civicrm-core/pull/14876))** | |
86 | ||
87 | A new function, `CRM_Utils_System::isFrontEndPage()`, indicates whether a page | |
88 | is considered "front-end". | |
89 | ||
90 | - **Permit sort_name as a url parameter on advanced search | |
91 | ([14475](https://github.com/civicrm/civicrm-core/pull/14475) and | |
92 | [14920](https://github.com/civicrm/civicrm-core/pull/14920))** | |
93 | ||
94 | You can now set `sort_name=x` in the URL on the advanced search form. In | |
95 | doing this, the sort name field is now defined through metadata rather than | |
96 | *ad hoc*. | |
97 | ||
98 | - **Menubar - Improve flexibility & remove hardcoded values | |
99 | ([14924](https://github.com/civicrm/civicrm-core/pull/14924))** | |
100 | ||
101 | The menu no longer relies on hardcoded pixel dimensions to determine mobile | |
102 | appearance, and it replaces references to the ID selector `crm-container` with | |
103 | the class selector of the same name (which is used more broadly). | |
104 | ||
105 | This also resolves | |
106 | [dev/core#1127](https://lab.civicrm.org/dev/core/issues/1127). | |
107 | ||
8206ecb0 AF |
108 | - **Handle relative start & end dates passed to datepicker widget |
109 | ([14632](https://github.com/civicrm/civicrm-core/pull/14632))** | |
5971010f | 110 | |
8206ecb0 AF |
111 | Adds some client-side logic to the datepicker widget that was previously done |
112 | server-side. Paves the way for afform. | |
5971010f | 113 | |
8206ecb0 AF |
114 | - **Improve utilities & tests for working with js notation |
115 | ([14588](https://github.com/civicrm/civicrm-core/pull/14588), | |
116 | [14537](https://github.com/civicrm/civicrm-core/pull/14537) and | |
117 | [14586](https://github.com/civicrm/civicrm-core/pull/14586))** | |
5971010f | 118 | |
8206ecb0 AF |
119 | Removes dependence on an external library & improves robustness & accuracy of |
120 | reading/writing js notation. Adds a utility function for getting properties of | |
121 | a Javascript option without parsing them. Adds a utility function and a | |
122 | test for dealing with data in js notation. | |
5971010f | 123 | |
8206ecb0 AF |
124 | - **i18n - Improve multilingual popup for text and wysiwyg fields |
125 | ([14578](https://github.com/civicrm/civicrm-core/pull/14578))** | |
5971010f | 126 | |
8206ecb0 AF |
127 | Fixes copying of values between multilingual popup and main form for wysiwyg |
128 | fields and makes text fields larger in multilingual pop-up. | |
5971010f | 129 | |
8206ecb0 AF |
130 | - **Buttons inconsistencies |
131 | ([dev/core#347](https://lab.civicrm.org/dev/core/issues/347): | |
132 | [14136](https://github.com/civicrm/civicrm-core/pull/14136) and | |
133 | [14509](https://github.com/civicrm/civicrm-core/pull/14509))** | |
5971010f | 134 | |
8206ecb0 AF |
135 | Adds support for "button" elements in CiviCRM ajax popup forms in addition to |
136 | the input type=button/submit and the "a class=button". This is a first step | |
137 | towards cleaning up button handling from a theming perspective. Adds | |
138 | buttons to 'Cleanup caches and update paths' in standard way | |
5971010f | 139 | |
8206ecb0 AF |
140 | - **Display description next to 'paperclip' file icon - usually the filename |
141 | ([14501](https://github.com/civicrm/civicrm-core/pull/14501))** | |
5971010f | 142 | |
8206ecb0 AF |
143 | When viewing custom files displays the description (usually the filename) next |
144 | to the paperclip. | |
5971010f | 145 | |
8206ecb0 AF |
146 | - **Address BAO - Handle standard 'custom' param as well as individual fields |
147 | ([14535](https://github.com/civicrm/civicrm-core/pull/14535))** | |
5971010f | 148 | |
8206ecb0 AF |
149 | Ensures that the Address BAO can handle both raw unformatted custom field |
150 | input and processed custom field inputs. | |
5971010f | 151 | |
8206ecb0 AF |
152 | - **Update PSR16 handling for multisite extension legacy caching group |
153 | ([14505](https://github.com/civicrm/civicrm-core/pull/14505))** | |
5971010f | 154 | |
8206ecb0 AF |
155 | Only use a Legacy group if using a version of org.civicrm.multisite 2.6 or |
156 | below. | |
5971010f | 157 | |
8206ecb0 AF |
158 | - **Improve I18n schema by including comments and default and NOT NULL or NULL |
159 | statements to be more consistent with non lingual schema | |
160 | ([14484](https://github.com/civicrm/civicrm-core/pull/14484))** | |
5971010f | 161 | |
8206ecb0 AF |
162 | Adds more information to the I18n schema structure so that when the |
163 | translated schema is created it is more similar to the non multilingual schema. | |
5971010f | 164 | |
8206ecb0 AF |
165 | - **Add a couple customField pseudoconstants |
166 | ([14494](https://github.com/civicrm/civicrm-core/pull/14494))** | |
5971010f | 167 | |
8206ecb0 AF |
168 | Adds a couple missing option lists to the schema so that they show up in the |
169 | api explorer for the CustomField entity. | |
5971010f | 170 | |
8206ecb0 AF |
171 | - **Deprecate ARCHIVE format for CiviCRM Database Logging (continues work for |
172 | [dev/core#663](https://lab.civicrm.org/dev/core/issues/663): | |
173 | [14256](https://github.com/civicrm/civicrm-core/pull/14256))** | |
5971010f | 174 | |
8206ecb0 AF |
175 | Switches to using InnoDB for extended log tables instead of the ARCHIVE |
176 | format. | |
5971010f | 177 | |
8206ecb0 AF |
178 | - **ActivityForm - Redirect to contact page or activity view in standalone mode |
179 | ([14522](https://github.com/civicrm/civicrm-core/pull/14522))** | |
5971010f | 180 | |
8206ecb0 AF |
181 | When using the "standalone" New Activity form, moves from always redirecting |
182 | to the dashboard after saving to redirecting to the contact page (if 1 | |
183 | contact) and the activity view screen (if multiple). | |
5971010f | 184 | |
8206ecb0 | 185 | ### CiviEvent |
5971010f | 186 | |
8206ecb0 AF |
187 | - **URL support for some params in event search |
188 | ([14477](https://github.com/civicrm/civicrm-core/pull/14477))** | |
5971010f | 189 | |
8206ecb0 AF |
190 | Adds Event Search URL support for the params: sort_name, participant_status_id, |
191 | participant_register_date_low, participant_register_date_high, and | |
192 | participant_register_date_relative. Date format is a string of numbers YmdHIS | |
193 | (ex: 20180101). | |
5971010f | 194 | |
8206ecb0 AF |
195 | - **Add checklist-model angular module |
196 | ([14634](https://github.com/civicrm/civicrm-core/pull/14634))** | |
5971010f | 197 | |
8206ecb0 | 198 | Adds the angular `checklist-model` library required by form builder. |
5971010f | 199 | |
8206ecb0 | 200 | ### CiviContribute |
5971010f | 201 | |
8206ecb0 AF |
202 | - **Reduce deadlocks on inserting custom data by only using 'ON DUPLICATE' when |
203 | it is not a new row | |
204 | ([14605](https://github.com/civicrm/civicrm-core/pull/14605))** | |
5971010f | 205 | |
8206ecb0 AF |
206 | Reduce deadlocks when processing contributions with custom data. This |
207 | specifically makes the custom data insert SQL more efficient. | |
5971010f | 208 | |
8206ecb0 AF |
209 | - **Fix url support for receive_date_high & receive_date_low |
210 | ([14594](https://github.com/civicrm/civicrm-core/pull/14594) and | |
211 | [14611](https://github.com/civicrm/civicrm-core/pull/14611))** | |
5971010f | 212 | |
8206ecb0 AF |
213 | As a part of a general standardization movement, adds Url support on the |
214 | contribution search form for the following fields: receive_date_high, | |
215 | receive_date_low, contribution_cancel_date_high, contribution_cancel_date_low | |
216 | and invoice_number=9. Deprecates and continues to support the start date being | |
217 | passed to contribution search as "start=2018-01-01". | |
5971010f | 218 | |
8206ecb0 AF |
219 | - **Deprecate contribution_date as a parameter |
220 | ([14533](https://github.com/civicrm/civicrm-core/pull/14533))** | |
5971010f | 221 | |
8206ecb0 AF |
222 | Add deprecation notice for accessing old field name for receive_date in query |
223 | object. | |
5971010f | 224 | |
8206ecb0 AF |
225 | - **Create payment activity when creating a payment via the api, test |
226 | ([14452](https://github.com/civicrm/civicrm-core/pull/14452))** | |
5971010f | 227 | |
8206ecb0 | 228 | Ensures when creating a payment via the api a payment activity is created. |
5971010f | 229 | |
8206ecb0 | 230 | ### CiviMembership |
5971010f | 231 | |
8206ecb0 AF |
232 | - **Expose Primary member only/Non primary member only filter in membership |
233 | reports. ([14530](https://github.com/civicrm/civicrm-core/pull/14530) and | |
234 | [14507](https://github.com/civicrm/civicrm-core/pull/14507))** | |
5971010f | 235 | |
8206ecb0 | 236 | On Membership Reports filters tabs, cleans up Membership Owner ID options. |
5971010f | 237 | |
8206ecb0 AF |
238 | - **Update Owner Membership ID label in reports to be Primary Membership to be |
239 | more consistent with rest of system | |
240 | ([14585](https://github.com/civicrm/civicrm-core/pull/14585))** | |
5971010f | 241 | |
8206ecb0 AF |
242 | Changes the label of the Owner Membership ID in reports from "Membership Owner |
243 | ID" to "Primary Membership". | |
5971010f | 244 | |
8206ecb0 | 245 | ## <a name="bugs"></a>Bugs resolved |
5971010f | 246 | |
8206ecb0 | 247 | ### Core CiviCRM |
5971010f | 248 | |
8206ecb0 AF |
249 | - **submitOnce revisited |
250 | ([dev/core#914](https://lab.civicrm.org/dev/core/issues/914): | |
251 | [14519](https://github.com/civicrm/civicrm-core/pull/14519))** | |
5971010f | 252 | |
8206ecb0 | 253 | Ensures "SubmitOnce" functionality works with forms with multiple buttons. |
5971010f | 254 | |
7aa74833 AH |
255 | - **[regression] `cv` fails on CiviCRM 5.15.0 |
256 | ([dev/drupal#75](https://lab.civicrm.org/dev/drupal/issues/75): | |
257 | [14775](https://github.com/civicrm/civicrm-core/pull/14775))** | |
258 | ||
259 | This fixes the return value of `CRM_Utils_System_Drupal8::languageNegotiationURL()` | |
260 | ||
8206ecb0 AF |
261 | - **Errors exporting contributions on 5.13.2 (continues work for |
262 | [dev/core#1015](https://lab.civicrm.org/dev/core/issues/1015): | |
263 | [14513](https://github.com/civicrm/civicrm-core/pull/14513))** | |
5971010f | 264 | |
8206ecb0 | 265 | Applies a more robust fix to a bug exporting soft credits in 5.13.2. |
5971010f | 266 | |
8206ecb0 AF |
267 | - **Email created without location when syncing from CMS account |
268 | ([dev/core#1026](https://lab.civicrm.org/dev/core/issues/1026): | |
269 | [14489](https://github.com/civicrm/civicrm-core/pull/14489))** | |
5971010f | 270 | |
8206ecb0 AF |
271 | Adds a default for `location_type_id` in the API Email.create in order to |
272 | address a bug where Emails were being created without a location type when | |
273 | syncing from a CMS account. | |
5971010f | 274 | |
8206ecb0 AF |
275 | - **$this->_selectedTables is not populated incase of boleen filters |
276 | ([14503](https://github.com/civicrm/civicrm-core/pull/14503))** | |
5971010f | 277 | |
8206ecb0 AF |
278 | Fixes a bug where when a report was filtered on a boolean field with option No |
279 | then `$this->_selectedTables` was not being populated so that it is populated. | |
5971010f | 280 | |
8206ecb0 AF |
281 | - **Block classes in unserialize field for IDE cheer |
282 | ([14683](https://github.com/civicrm/civicrm-core/pull/14683))** | |
5971010f | 283 | |
8206ecb0 | 284 | Ensures unserialize does not permit class unserialization. |
5971010f | 285 | |
8206ecb0 AF |
286 | - **Support api3 & 4 language syntax & improve test |
287 | ([14590](https://github.com/civicrm/civicrm-core/pull/14590))** | |
5971010f | 288 | |
8206ecb0 AF |
289 | Fixes support for api3 "language" option and extends test coverage to the new |
290 | syntax as well as api v4. | |
5971010f | 291 | |
8206ecb0 AF |
292 | - **Reset language at end of localized api call |
293 | ([14597](https://github.com/civicrm/civicrm-core/pull/14597))** | |
5971010f | 294 | |
8206ecb0 AF |
295 | Restore the original language after changing it for an api call using |
296 | `options['language']`. | |
5971010f | 297 | |
8206ecb0 AF |
298 | - **Activity formRule status check cleanup |
299 | ([14630](https://github.com/civicrm/civicrm-core/pull/14630))** | |
5971010f | 300 | |
8206ecb0 AF |
301 | Fixes a bug where under some circumstances, the activity_type_id from fields |
302 | and from the getKey call can both return NULL, causing the formRule to raise | |
303 | an error that one cannot record a scheduled SMS activity. | |
5971010f | 304 | |
8206ecb0 AF |
305 | - **Add query object support for receive_date_high & receive_date_low and |
306 | generically date fields | |
307 | ([14623](https://github.com/civicrm/civicrm-core/pull/14623))** | |
5971010f | 308 | |
8206ecb0 | 309 | Ensures choosing from receive date in advanced search filters appropriately. |
5971010f | 310 | |
8206ecb0 AF |
311 | - **Fix setup.sh crash when using the -a flag |
312 | ([14595](https://github.com/civicrm/civicrm-core/pull/14595))** | |
5971010f | 313 | |
8206ecb0 AF |
314 | Fixes an error where the command setup.sh -a dies with an error because it |
315 | doesn't know what database to load. | |
5971010f | 316 | |
8206ecb0 AF |
317 | - **Fix duplicate households on 'Merge same household' exports |
318 | ([14443](https://github.com/civicrm/civicrm-core/pull/14443))** | |
5971010f | 319 | |
8206ecb0 AF |
320 | Ensures "Merge same household" does not create duplicate rows for each |
321 | household, one for the "merged individuals" and one being the explicit | |
322 | household directly exported. | |
5971010f | 323 | |
8206ecb0 AF |
324 | - **Fix placeholder font in Quicksearch |
325 | ([14154](https://github.com/civicrm/civicrm-core/pull/14154))** | |
5971010f | 326 | |
8206ecb0 AF |
327 | Make the Quicksearch font be the CiviCRM font instead of the "FontAwesome" |
328 | font. | |
5971010f | 329 | |
8206ecb0 AF |
330 | - **CRM_Utils_SQL_ - Properly interpolate NULL values |
331 | ([14250](https://github.com/civicrm/civicrm-core/pull/14250))** | |
5971010f | 332 | |
8206ecb0 AF |
333 | Ensures the classes `CRM_Utils_SQL_Select`, `CRM_Utils_SQL_Delete`, and |
334 | `CRM_Utils_SQL_Insert` properly handle NULL values. | |
5971010f | 335 | |
8206ecb0 AF |
336 | - **Fix deletion of contact sub_type in api4 |
337 | ([14492](https://github.com/civicrm/civicrm-core/pull/14492))** | |
5971010f | 338 | |
8206ecb0 AF |
339 | Cleans up the contact BAO to not arbitrarily delete a contact's sub-type when |
340 | saving a contact using Api4. | |
5971010f | 341 | |
8206ecb0 AF |
342 | - **Add in uniqueness to cache keys to mitigate clashes on multisite installs |
343 | ([14485](https://github.com/civicrm/civicrm-core/pull/14485))** | |
5971010f | 344 | |
8206ecb0 | 345 | Ensures cache keys are unique to the specific domain. |
5971010f | 346 | |
8206ecb0 AF |
347 | - **Object id is always NULL in ore hook in update activity mode |
348 | ([14491](https://github.com/civicrm/civicrm-core/pull/14491))** | |
5971010f | 349 | |
8206ecb0 AF |
350 | Ensures when using the pre hook with the Activity entity, the Activity id (i.e |
351 | the object id) is NOT NULL. | |
5971010f | 352 | |
8206ecb0 AF |
353 | - **Scheduled jobs: replace outdated wiki link |
354 | ([14641](https://github.com/civicrm/civicrm-core/pull/14641))** | |
5971010f | 355 | |
8206ecb0 AF |
356 | - **Make the contact summary details popup on merge screen non bold a la contact |
357 | summary screen ([dev/core#1039](https://lab.civicrm.org/dev/core/issues/1039): | |
358 | [14506](https://github.com/civicrm/civicrm-core/pull/14506))** | |
5971010f | 359 | |
8206ecb0 AF |
360 | - **When using custom fields for smart group criteria with relative dates the |
361 | group does not respect the relative date over time | |
362 | ([dev/core#389](https://lab.civicrm.org/dev/core/issues/389): | |
363 | [14625](https://github.com/civicrm/civicrm-core/pull/14625))** | |
5971010f | 364 | |
8206ecb0 AF |
365 | - **Improper character encoding breaks xml processor |
366 | ([dev-core#1079](https://lab.civicrm.org/dev/core/issues/1079): | |
367 | [14654](https://github.com/civicrm/civicrm-core/pull/14654))** | |
5971010f | 368 | |
8206ecb0 AF |
369 | - **Php 7.2 notices fix on import |
370 | ([14531](https://github.com/civicrm/civicrm-core/pull/14531))** | |
5971010f | 371 | |
8206ecb0 AF |
372 | - **Fix use of cached schema information in SchemaHandler |
373 | ([14568](https://github.com/civicrm/civicrm-core/pull/14568))** | |
5971010f | 374 | |
8206ecb0 AF |
375 | - **Ensure that contact groups caches are cleared if memory backed |
376 | ([14607](https://github.com/civicrm/civicrm-core/pull/14607))** | |
5971010f | 377 | |
7aa74833 AH |
378 | - **Ensure recently converted groups cache matches previous behaviour by setting |
379 | `withArray` as fast for it | |
380 | ([14789](https://github.com/civicrm/civicrm-core/pull/14789))** | |
381 | ||
382 | - **Does CiviCRM make it possible to specify which directories are private and | |
383 | which are public-accessible? (continues work for | |
384 | [dev/cloud-native#3](https://lab.civicrm.org/dev/cloud-native/issues/3): | |
385 | [14717](https://github.com/civicrm/civicrm-core/pull/14717))** | |
386 | ||
387 | Removes an unused cache-driver for storing cache records in the file system | |
388 | (under CIVICRM_TEMPLATE_COMPILEDIR, using PHP serialize() format). | |
389 | ||
8206ecb0 | 390 | ### CiviCampaign |
5971010f | 391 | |
8206ecb0 AF |
392 | - **CiviCRM Campaign, the Revenue Goal field stores 0 if $5,000 or any other |
393 | non-numeric value is entered | |
394 | ([dev/core#1067](https://lab.civicrm.org/dev/core/issues/1067): | |
395 | [14601](https://github.com/civicrm/civicrm-core/pull/14601))** | |
5971010f | 396 | |
8206ecb0 | 397 | ### CiviCase |
5971010f | 398 | |
8206ecb0 AF |
399 | - **Make a_b relationships available as case roles |
400 | ([dev/core#530](https://lab.civicrm.org/dev/core/issues/530): | |
401 | [13916](https://github.com/civicrm/civicrm-core/pull/13916))** | |
5971010f | 402 | |
8206ecb0 AF |
403 | This change makes it so users can select b_a relationships AND a_b |
404 | relationships when creating case roles, before this change only b_a | |
405 | relationships were available when creating case roles. | |
5971010f | 406 | |
8206ecb0 AF |
407 | - **Too many divs in caseTypeDetails.html |
408 | ([dev/core#1086](https://lab.civicrm.org/dev/core/issues/1086): | |
409 | [14682](https://github.com/civicrm/civicrm-core/pull/14682))** | |
5971010f | 410 | |
8206ecb0 AF |
411 | - **Send copy of case activity is using the contribution receipt template - |
412 | actually all message templates seem to be mixed up (Test for | |
413 | [dev/core#1082](https://lab.civicrm.org/dev/core/issues/1082): | |
414 | [14666](https://github.com/civicrm/civicrm-core/pull/14666))** | |
5971010f | 415 | |
8206ecb0 | 416 | ### CiviContribute |
5971010f | 417 | |
8206ecb0 AF |
418 | - **Add default receive_date for contributions at BAO level |
419 | ([14460](https://github.com/civicrm/civicrm-core/pull/14460))** | |
5971010f | 420 | |
8206ecb0 AF |
421 | This change ensures one cannot create contributions with no receive date using |
422 | the API. | |
5971010f | 423 | |
8206ecb0 AF |
424 | - **Fix A.net to resolve time when using default |
425 | ([14540](https://github.com/civicrm/civicrm-core/pull/14540))** | |
5971010f | 426 | |
8206ecb0 AF |
427 | Fixes failure to resolve date in authorize.net - this is likely a test-only |
428 | bug. | |
5971010f | 429 | |
8206ecb0 AF |
430 | - **Fixed visibility logic on Price field options. |
431 | ([13966](https://github.com/civicrm/civicrm-core/pull/13966))** | |
5971010f | 432 | |
8206ecb0 AF |
433 | Ensure that when adding price options to a price field with some public |
434 | options and some private options the new options are considered when | |
435 | validating that there is an admin option. | |
5971010f | 436 | |
8206ecb0 AF |
437 | - **Support storing IPNs in `civicrm_system_log` for processors that send JSON |
438 | data ([dev/financial#55](https://lab.civicrm.org/dev/financial/issues/55): | |
439 | [14290](https://github.com/civicrm/civicrm-core/pull/14290))** | |
5971010f | 440 | |
8206ecb0 | 441 | Ensures Stripe can log to the `civicrm_system_log`. |
5971010f | 442 | |
8206ecb0 AF |
443 | - **Grab contribution status id from database |
444 | ([14713](https://github.com/civicrm/civicrm-core/pull/14713) and | |
445 | [14704](https://github.com/civicrm/civicrm-core/pull/14704))** | |
5971010f | 446 | |
8206ecb0 | 447 | Replaces hard coded Contribution Status Id with a pseudoconstant. |
5971010f | 448 | |
8206ecb0 AF |
449 | - **Error in civicrm/payment/edit "Expected one FinancialTrxn but found 25 |
450 | ([dev/core#965](https://lab.civicrm.org/dev/core/issues/965): | |
451 | [14518](https://github.com/civicrm/civicrm-core/pull/14518))** | |
5971010f | 452 | |
8206ecb0 AF |
453 | Fixes a bug where when ajax popup forms are disabled submitting the payment |
454 | edit form results in a fatal error "Expected one FinancialTrxn but found 25". | |
5971010f | 455 | |
8206ecb0 AF |
456 | - **New contribution may overwrite other contribution if it's opened in other |
457 | tab ([dev/financial#50](https://lab.civicrm.org/dev/financial/issues/50): | |
458 | [14244](https://github.com/civicrm/civicrm-core/pull/14244))** | |
5971010f | 459 | |
8206ecb0 AF |
460 | - **Refund throws a fatal error if the main contribution amount is |
461 | 0. ([dev/core#889](https://lab.civicrm.org/dev/core/issues/889): | |
462 | [14488](https://github.com/civicrm/civicrm-core/pull/14488) and | |
463 | [14103](https://github.com/civicrm/civicrm-core/pull/14103))** | |
5971010f | 464 | |
8206ecb0 AF |
465 | - **Event Confirmation and ThankYou forms show tax rate with ALL the decimal |
466 | places. ([dev/core#1049](https://lab.civicrm.org/dev/core/issues/1049): | |
467 | [14562](https://github.com/civicrm/civicrm-core/pull/14562))** | |
5971010f | 468 | |
8206ecb0 AF |
469 | - **Deprecation notice on Find Contributions when get there from Manage |
470 | Contribution Pages | |
471 | ([dev/core#1059](https://lab.civicrm.org/dev/core/issues/1059): | |
472 | [14624](https://github.com/civicrm/civicrm-core/pull/14624) and | |
473 | [14613](https://github.com/civicrm/civicrm-core/pull/14613))** | |
5971010f | 474 | |
8206ecb0 AF |
475 | - **Fix refund payment not recording from additional payment form |
476 | ([14733](https://github.com/civicrm/civicrm-core/pull/14733))** | |
5971010f | 477 | |
8206ecb0 AF |
478 | - **contribution detail report: error when sorting by custom contrib field (DB |
479 | Error: no such field) | |
480 | ([dev/core#1081](https://lab.civicrm.org/dev/core/issues/1081): | |
481 | [14746](https://github.com/civicrm/civicrm-core/pull/14746))** | |
5971010f | 482 | |
8206ecb0 AF |
483 | - **Fix notice on editing contribution |
484 | ([14626](https://github.com/civicrm/civicrm-core/pull/14626))** | |
5971010f | 485 | |
8206ecb0 AF |
486 | - **Ensure that completed status is selected by default on search contribution |
487 | form ([14612](https://github.com/civicrm/civicrm-core/pull/14612))** | |
5971010f | 488 | |
7aa74833 AH |
489 | - **Fix unreleased regression - fatal on financial account screen |
490 | ([14900](https://github.com/civicrm/civicrm-core/pull/14900))** | |
491 | ||
8206ecb0 | 492 | ### CiviEvent |
5971010f | 493 | |
8206ecb0 AF |
494 | - **When creating a new event using a template the new event screen is taking |
495 | the default values directly from the custom fields, and not from what's saved | |
496 | in the event template. | |
497 | ([dev/core#553](https://lab.civicrm.org/dev/core/issues/553) / | |
498 | [CRM-18570](https://issues.civicrm.org/jira/browse/CRM-18570): | |
499 | [14480](https://github.com/civicrm/civicrm-core/pull/14480))** | |
5971010f | 500 | |
8206ecb0 AF |
501 | - **Display bug for Checkboxes Custom field on Event Confirm / Thank you pages |
502 | ([dev/core#1058](https://lab.civicrm.org/dev/core/issues/1058): | |
503 | [14587](https://github.com/civicrm/civicrm-core/pull/14587))** | |
5971010f | 504 | |
8206ecb0 AF |
505 | - **Fix incorrect display of Line Items created via API when printing invoice |
506 | (for Participants) | |
507 | ([13477](https://github.com/civicrm/civicrm-core/pull/13477))** | |
5971010f | 508 | |
8206ecb0 AF |
509 | - **Add a helper function to ensure we always set the correct tab for manage |
510 | events ([14602](https://github.com/civicrm/civicrm-core/pull/14602))** | |
5971010f | 511 | |
8206ecb0 AF |
512 | - **Removed hardcoded value for registered participant status |
513 | ([14569](https://github.com/civicrm/civicrm-core/pull/14569))** | |
5971010f | 514 | |
7aa74833 | 515 | ### CiviMail |
5971010f | 516 | |
7aa74833 AH |
517 | - **Hashed mailing URLs do not work with view mailing links |
518 | ([dev/core#1037](https://lab.civicrm.org/dev/core/issues/1037): | |
519 | [14508](https://github.com/civicrm/civicrm-core/pull/14508) and | |
520 | [14722](https://github.com/civicrm/civicrm-core/pull/14722))** | |
5971010f | 521 | |
8206ecb0 | 522 | ### Drupal Integration |
5971010f | 523 | |
8206ecb0 AF |
524 | - **Drupal8: CiviCRM menu does not use the correct locale (continues work for |
525 | [dev/drupal#21](https://lab.civicrm.org/dev/drupal/issues/21): | |
526 | [14474](https://github.com/civicrm/civicrm-core/pull/14474))** | |
5971010f | 527 | |
8206ecb0 AF |
528 | Ensures CiviCRM menu is translated appropriately on Drupal 8 sites using the |
529 | locale module and CiviCRM in multilingual mode. | |
5971010f | 530 | |
8206ecb0 AF |
531 | - **Drupal8: drupal_set_message is deprecated (or: Event Cart messages display |
532 | HTML) ([dev/drupal#63](https://lab.civicrm.org/dev/drupal/issues/63): | |
533 | [13959](https://github.com/civicrm/civicrm-core/pull/13959))** | |
5971010f | 534 | |
8206ecb0 AF |
535 | Fixes a bug where when using CiviCRM Event Cart in Drupal8, some status |
536 | messages were being displayed as HTML to the user. | |
5971010f | 537 | |
8206ecb0 | 538 | ### Joomla Integration |
5971010f | 539 | |
8206ecb0 AF |
540 | - **Upgrade to 5.14 fails on updating case views |
541 | ([dev/joomla#13](https://lab.civicrm.org/dev/joomla/issues/13): | |
542 | [14707](https://github.com/civicrm/civicrm-core/pull/14707), | |
543 | [14708](https://github.com/civicrm/civicrm-core/pull/14708), | |
544 | [14709](https://github.com/civicrm/civicrm-core/pull/14709), | |
545 | [14710](https://github.com/civicrm/civicrm-core/pull/14710) and | |
546 | [14702](https://github.com/civicrm/civicrm-core/pull/14702))** | |
5971010f | 547 | |
8206ecb0 AF |
548 | - **CiviDist fails on BSD flavor of 'cp' with '-r -p' switch to '-R -p' |
549 | ([14523](https://github.com/civicrm/civicrm-core/pull/14523))** | |
5971010f | 550 | |
8206ecb0 | 551 | Ensures cividist does not fail for joomla-alt on MacOSX. |
5971010f | 552 | |
8206ecb0 | 553 | ### Wordpress Integration |
5971010f | 554 | |
8206ecb0 AF |
555 | - **Recreate rewrite rules when basepage setting is updated |
556 | ([157](https://github.com/civicrm/civicrm-wordpress/pull/157))** | |
5971010f | 557 | |
8206ecb0 AF |
558 | Ensures rewrite rules are flushed when saving the WordPress Base Page setting |
559 | in CiviCRM. | |
5971010f | 560 | |
8206ecb0 AF |
561 | - **Implement "document_title_parts" filter to apply CiviCRM title on basepage |
562 | ([158](https://github.com/civicrm/civicrm-wordpress/pull/158))** | |
5971010f | 563 | |
8206ecb0 AF |
564 | Ensures when Clean URLs are not implemented, the `<title>` element is |
565 | correctly set on the civicrm base page. | |
5971010f | 566 | |
8206ecb0 | 567 | ## <a name="misc"></a>Miscellany |
5971010f | 568 | |
7aa74833 AH |
569 | - **Revert "[REF] use generic loadStandardSearchOptionsFromUrl". Fix search |
570 | selections. ([14918](https://github.com/civicrm/civicrm-core/pull/14918))** | |
571 | ||
8206ecb0 AF |
572 | - **Remove duplicated code in contribution recur search build function |
573 | ([14504](https://github.com/civicrm/civicrm-core/pull/14504))** | |
5971010f | 574 | |
8206ecb0 AF |
575 | - **Civi\Angular\ChangeSet - Relax debug-mode consistency check |
576 | ([14510](https://github.com/civicrm/civicrm-core/pull/14510))** | |
5971010f | 577 | |
8206ecb0 AF |
578 | - **Alter PSR16 code to take into account of new entitysetting release with |
579 | upgraded caching | |
580 | ([14559](https://github.com/civicrm/civicrm-core/pull/14559))** | |
5971010f | 581 | |
8206ecb0 AF |
582 | - **Remove handling for legacy PrevNextCache group as it has now been converted |
583 | ([14584](https://github.com/civicrm/civicrm-core/pull/14584), | |
584 | [14631](https://github.com/civicrm/civicrm-core/pull/14631) and | |
585 | [14580](https://github.com/civicrm/civicrm-core/pull/14580))** | |
5971010f | 586 | |
8206ecb0 AF |
587 | - **[Form cleanup] remove form classes & tpls for Event Component settings & |
588 | Multisite ([14425](https://github.com/civicrm/civicrm-core/pull/14425))** | |
5971010f | 589 | |
8206ecb0 AF |
590 | - **Add WP-oriented E2E test suite, with HookTest as an example |
591 | ([159](https://github.com/civicrm/civicrm-wordpress/pull/159))** | |
5971010f | 592 | |
8206ecb0 AF |
593 | - **Decommission recordPartialPayment function |
594 | ([14599](https://github.com/civicrm/civicrm-core/pull/14599))** | |
5971010f | 595 | |
8206ecb0 AF |
596 | - **Fix erroneous variable passed to callAPISuccessGetValue |
597 | ([14688](https://github.com/civicrm/civicrm-core/pull/14688))** | |
5971010f | 598 | |
8206ecb0 AF |
599 | - **Deprecate some deprecated address functions: defaultCurrencySymbol |
600 | ([14687](https://github.com/civicrm/civicrm-core/pull/14687))** | |
5971010f | 601 | |
8206ecb0 AF |
602 | - **Extract code converting a date object to local timezone object to own |
603 | function ([14723](https://github.com/civicrm/civicrm-core/pull/14723))** | |
5971010f | 604 | |
8206ecb0 AF |
605 | - **Replace jcalendar instances with datepicker (continues work for |
606 | [dev/core#561](https://lab.civicrm.org/dev/core/issues/561): | |
607 | [14593](https://github.com/civicrm/civicrm-core/pull/14593), | |
608 | [14431](https://github.com/civicrm/civicrm-core/pull/14431) and | |
609 | [14627](https://github.com/civicrm/civicrm-core/pull/14627))** | |
5971010f | 610 | |
8206ecb0 AF |
611 | - **[REF] Remove more instances of _nullArray |
612 | ([14558](https://github.com/civicrm/civicrm-core/pull/14558))** | |
5971010f | 613 | |
8206ecb0 AF |
614 | - **[REF] transform the setting of defaults in CustomField::create to be like |
615 | (some) other entities | |
616 | ([14671](https://github.com/civicrm/civicrm-core/pull/14671))** | |
5971010f | 617 | |
8206ecb0 AF |
618 | - **[NFC] Fix Test function delcaration to match change in CiviUnitTestCa… |
619 | ([14548](https://github.com/civicrm/civicrm-core/pull/14548))** | |
5971010f | 620 | |
8206ecb0 AF |
621 | - **[NFC] Fix indenting in Misc Setting Template |
622 | ([14526](https://github.com/civicrm/civicrm-core/pull/14526))** | |
5971010f | 623 | |
8206ecb0 AF |
624 | - **[NFC] code formatting |
625 | ([14606](https://github.com/civicrm/civicrm-core/pull/14606))** | |
5971010f | 626 | |
8206ecb0 AF |
627 | - **[NFC][test] reformat jobTest class |
628 | ([14681](https://github.com/civicrm/civicrm-core/pull/14681))** | |
5971010f | 629 | |
8206ecb0 AF |
630 | - **[NFC] test cleanup. Uses CRM_Core_Exceptions, properly outputs unfiltered |
631 | results ([14471](https://github.com/civicrm/civicrm-core/pull/14471))** | |
5971010f | 632 | |
8206ecb0 AF |
633 | - **[NFC][test] reformat activity search test |
634 | ([14699](https://github.com/civicrm/civicrm-core/pull/14699))** | |
5971010f | 635 | |
8206ecb0 AF |
636 | - **[NFC][test] code formatting only |
637 | ([14700](https://github.com/civicrm/civicrm-core/pull/14700))** | |
5971010f | 638 | |
8206ecb0 AF |
639 | - **[NFC] formatting on test class cleanup |
640 | ([14649](https://github.com/civicrm/civicrm-core/pull/14649))** | |
5971010f | 641 | |
8206ecb0 AF |
642 | - **NFC These pseudoconstant functions return array or string |
643 | ([14619](https://github.com/civicrm/civicrm-core/pull/14619))** | |
5971010f | 644 | |
8206ecb0 AF |
645 | - **NFC Comments and formatting only |
646 | ([14497](https://github.com/civicrm/civicrm-core/pull/14497))** | |
5971010f | 647 | |
8206ecb0 AF |
648 | - **NFC Cleanup comments on BAO event |
649 | ([14603](https://github.com/civicrm/civicrm-core/pull/14603))** | |
5971010f | 650 | |
8206ecb0 AF |
651 | - **[TEST] add assert to ensure nullArray & nullObject are not contaminated |
652 | ([14543](https://github.com/civicrm/civicrm-core/pull/14543))** | |
5971010f | 653 | |
8206ecb0 AF |
654 | - **[TEST] Update Email Common Test to incorporate testing for the fix fo… |
655 | ([14629](https://github.com/civicrm/civicrm-core/pull/14629))** | |
5971010f | 656 | |
8206ecb0 AF |
657 | - **[TEST] Fix intermittent test fail on NULL array getting contaminated |
658 | ([14542](https://github.com/civicrm/civicrm-core/pull/14542))** | |
5971010f | 659 | |
8206ecb0 AF |
660 | - **[Test] Add in unit test attempting to demonstrate issue caused by dev… |
661 | ([14637](https://github.com/civicrm/civicrm-core/pull/14637))** | |
5971010f | 662 | |
8206ecb0 AF |
663 | - **[test] Call parent tearDown more consistently |
664 | ([14552](https://github.com/civicrm/civicrm-core/pull/14552))** | |
5971010f | 665 | |
8206ecb0 AF |
666 | - **[test] convert export test to handle exception rather than early return |
667 | ([14608](https://github.com/civicrm/civicrm-core/pull/14608))** | |
5971010f | 668 | |
8206ecb0 AF |
669 | - **[test] truncate pledge block when cleaning up financial entities |
670 | ([14538](https://github.com/civicrm/civicrm-core/pull/14538))** | |
5971010f | 671 | |
8206ecb0 AF |
672 | - **Fix failing test by changing expected date format |
673 | ([14686](https://github.com/civicrm/civicrm-core/pull/14686))** | |
5971010f | 674 | |
8206ecb0 AF |
675 | - **Fix proportional test to test Payment.create & for the test to make more |
676 | sense ([14436](https://github.com/civicrm/civicrm-core/pull/14436))** | |
5971010f | 677 | |
8206ecb0 AF |
678 | - **Fix test which fails when run in isolation. |
679 | ([14517](https://github.com/civicrm/civicrm-core/pull/14517))** | |
5971010f | 680 | |
8206ecb0 AF |
681 | - **[REF] do not receive by reference in CustomField::create |
682 | ([14670](https://github.com/civicrm/civicrm-core/pull/14670))** | |
5971010f | 683 | |
8206ecb0 AF |
684 | - **[REF] extract createOptionValue function in CustomField::create |
685 | ([14652](https://github.com/civicrm/civicrm-core/pull/14652))** | |
5971010f | 686 | |
8206ecb0 AF |
687 | - **[REF] remove instances of pass-by-reference where no change takes place |
688 | ([14693](https://github.com/civicrm/civicrm-core/pull/14693))** | |
5971010f | 689 | |
8206ecb0 AF |
690 | - **[REF] extract prepareCreate from CustomField.create |
691 | ([14689](https://github.com/civicrm/civicrm-core/pull/14689))** | |
5971010f | 692 | |
8206ecb0 AF |
693 | - **[REF] Minor code cleanup on string concatenation |
694 | ([14444](https://github.com/civicrm/civicrm-core/pull/14444))** | |
5971010f | 695 | |
8206ecb0 AF |
696 | - **[REF] Move sort_name definition to searchFieldMetadata |
697 | ([14478](https://github.com/civicrm/civicrm-core/pull/14478))** | |
698 | ||
699 | - **[REF] Copy assignProportional Line items back into Payment.create function | |
700 | ([14622](https://github.com/civicrm/civicrm-core/pull/14622))** | |
701 | ||
702 | - **[REF] minor code cleanup - move indexExist calculation to the only place in | |
703 | the code that needs it | |
704 | ([14650](https://github.com/civicrm/civicrm-core/pull/14650))** | |
705 | ||
706 | - **[REF] Remove columnName field | |
707 | ([14651](https://github.com/civicrm/civicrm-core/pull/14651))** | |
708 | ||
709 | - **[REF + test] extract buildFieldChangeSql and add unit test | |
710 | ([14653](https://github.com/civicrm/civicrm-core/pull/14653))** | |
711 | ||
712 | - **[REF] CRM_Case_BAO_Case::addcaseActivityLinks to CRM_Case_Selector_Search | |
713 | ([14512](https://github.com/civicrm/civicrm-core/pull/14512))** | |
714 | ||
715 | - **[REF] dev/core#561 Convert Contribution Date field to use date picker… | |
716 | ([14486](https://github.com/civicrm/civicrm-core/pull/14486))** | |
717 | ||
718 | - **[REF] do not pass by reference to store & create functions | |
719 | ([14598](https://github.com/civicrm/civicrm-core/pull/14598))** | |
720 | ||
721 | - **[REF] Add in utility function for resetting ACL and System Level Caches | |
722 | ([14600](https://github.com/civicrm/civicrm-core/pull/14600))** | |
723 | ||
724 | - **REF Extract getDefaultRoleID for add participant | |
725 | ([14499](https://github.com/civicrm/civicrm-core/pull/14499))** | |
726 | ||
727 | - **REF Deduplicate recaptcha handling code | |
728 | ([14500](https://github.com/civicrm/civicrm-core/pull/14500))** | |
729 | ||
730 | - **REF Extract override default currency function | |
731 | ([14496](https://github.com/civicrm/civicrm-core/pull/14496))** | |
732 | ||
733 | - **REF: Extract preProcess paypalexpress | |
734 | ([14498](https://github.com/civicrm/civicrm-core/pull/14498))** | |
735 | ||
736 | - **Remove more uses of CRM_Core_DAO::$_nullArray that are unncessary | |
737 | ([14564](https://github.com/civicrm/civicrm-core/pull/14564))** | |
738 | ||
739 | - **Remove unncessary $_nullArray usage when calling createProfileContact | |
740 | function ([14560](https://github.com/civicrm/civicrm-core/pull/14560))** | |
741 | ||
742 | - **Remove unneeded use of CRM_Core_DAO::$_nullArray in executeQuery or s… | |
743 | ([14561](https://github.com/civicrm/civicrm-core/pull/14561))** | |
744 | ||
745 | - **Remove more free calls | |
746 | ([14493](https://github.com/civicrm/civicrm-core/pull/14493))** | |
747 | ||
748 | - **Remove a few places where pass by reference is used but does not need to be | |
749 | ([14643](https://github.com/civicrm/civicrm-core/pull/14643))** | |
750 | ||
751 | - **Remove failing assertion | |
752 | ([14695](https://github.com/civicrm/civicrm-core/pull/14695))** | |
753 | ||
754 | - **Removing unused spec function | |
755 | ([14646](https://github.com/civicrm/civicrm-core/pull/14646))** | |
756 | ||
757 | - **Remove superfluous pass-by-ref in api3 | |
758 | ([14645](https://github.com/civicrm/civicrm-core/pull/14645))** | |
759 | ||
760 | - **Add in Andrei Mondoc(mecachisenros) to contributor key | |
761 | ([14665](https://github.com/civicrm/civicrm-core/pull/14665))** | |
762 | ||
763 | - **Adding myself to the contributors file | |
764 | ([14532](https://github.com/civicrm/civicrm-core/pull/14532))** | |
5971010f AH |
765 | |
766 | ## <a name="credits"></a>Credits | |
767 | ||
768 | This release was developed by the following code authors: | |
769 | ||
88bd6b02 | 770 | AGH Strategies - Alice Frumin, Andie Hunt, Eli Lisseck; Agileware - Alok Patel, |
7aa74833 AH |
771 | Francis Whittle; Andrei Mondoc; Australian Greens - Seamus Lee; Christian Wach; |
772 | CiviCRM - Coleman Watts, Tim Otten; CiviDesk - Yashodha Chaku; Coop SymbioTIC - | |
773 | Mathieu Lutfy, Samuel Vanhove; Dave D; Electronic Frontier Foundation - Mark | |
774 | Burdett; Fuzion - Jitendra Purohit; Greenpeace CEE - Patrick Figel; iXiam - | |
775 | César Ramos; JMA Consulting - Monish Deb; John Kingsnorth; Megaphone Technology | |
776 | Consulting - Jon Goldberg; MJW Consulting - Matthew Wire; Nicol Wistreich; | |
777 | Pradeep Nayak; Squiffle Consulting - Aidan Saunders; Tadpole Collective - Kevin | |
778 | Cristiano; Wikimedia Foundation - Eileen McNaughton | |
5971010f AH |
779 | |
780 | Most authors also reviewed code for this release; in addition, the following | |
781 | reviewers contributed their comments: | |
782 | ||
8206ecb0 AF |
783 | Agileware - Justin Freeman; CiviCoop - Jaap Jansma; CiviDesk - Sunil Pawar; |
784 | Fuzion - Luke Stewart; JMA Consulting - Joe Murray; Korlon - Stuart Gaston; | |
7aa74833 AH |
785 | Lighthouse Design and Consulting - Brian Shaughnessy; National Urban League - |
786 | Lisa Taliano; Palante Technology Cooperative - Morgan Robinson; Semper IT - | |
787 | Karin Gerritsen; Tech To The People - Xavier Dutoit | |
88648a66 AH |
788 | |
789 | ## <a name="feedback"></a>Feedback | |
790 | ||
88bd6b02 | 791 | These release notes are edited by Alice Frumin and Andie Hunt. If you'd like |
88648a66 AH |
792 | to provide feedback on them, please log in to https://chat.civicrm.org/civicrm |
793 | and contact `@agh1`. |