| 1 | # CiviCRM 4.7.15 |
| 2 | |
| 3 | Released January 4, 2017 |
| 4 | |
| 5 | - **[Features](#features)** |
| 6 | - **[Bugs resolved](#bugs)** |
| 7 | - **[Credits](#credits)** |
| 8 | |
| 9 | ## <a name="features"></a>Features |
| 10 | |
| 11 | ### Core CiviCRM |
| 12 | |
| 13 | - **[CRM-17410](https://issues.civicrm.org/jira/browse/CRM-17410) Using xml on |
| 14 | upgrade (not installation) of extension to create/append new optionvalues |
| 15 | ([9480](https://github.com/civicrm/civicrm-core/pull/9480))** |
| 16 | |
| 17 | Extensions that specify option values in XML for installation can now add |
| 18 | options during an upgrade using XML. |
| 19 | |
| 20 | - **[CRM-19688](https://issues.civicrm.org/jira/browse/CRM-19688) State/province |
| 21 | API ([9454](https://github.com/civicrm/civicrm-core/pull/9454))** |
| 22 | |
| 23 | An API for creating, modifying, and deleting states/provinces is now |
| 24 | available. |
| 25 | |
| 26 | - **[CRM-19755](https://issues.civicrm.org/jira/browse/CRM-19755) reverse order |
| 27 | of html and text on CRM/Mailing/Page/Component.php |
| 28 | ([9531](https://github.com/civicrm/civicrm-core/pull/9531))** |
| 29 | |
| 30 | The mail template interface is now more consistent in placing the HTML version |
| 31 | before the plain-text version. |
| 32 | |
| 33 | - **[CRM-19686](https://issues.civicrm.org/jira/browse/CRM-19686) Dedupe |
| 34 | Exceptions Should Link to Contacts |
| 35 | ([9455](https://github.com/civicrm/civicrm-core/pull/9455))** |
| 36 | |
| 37 | The list of dedupe exceptions now links to the contacts. |
| 38 | |
| 39 | ### CiviContribute |
| 40 | |
| 41 | - **[CRM-19325](https://issues.civicrm.org/jira/browse/CRM-19325) Search |
| 42 | contributions that are not in any batch |
| 43 | ([9492](https://github.com/civicrm/civicrm-core/pull/9492))** |
| 44 | |
| 45 | Contribution search now allows filtering by contributions that are not in any |
| 46 | batch of financial transactions. |
| 47 | |
| 48 | - **[CRM-18460](https://issues.civicrm.org/jira/browse/CRM-18460) Add relative |
| 49 | date filters for Aggregate Contribution custom search |
| 50 | ([9493](https://github.com/civicrm/civicrm-core/pull/9493))** |
| 51 | |
| 52 | The Aggregate Contribution custom search now uses the standard relative date |
| 53 | filters. |
| 54 | |
| 55 | ### CiviEvent |
| 56 | |
| 57 | - **[CRM-19626](https://issues.civicrm.org/jira/browse/CRM-19626) Event |
| 58 | Registration page allows registration even if no number (or the number 0) has |
| 59 | been entered in any ticket quantity boxes |
| 60 | ([9517](https://github.com/civicrm/civicrm-core/pull/9517))** |
| 61 | |
| 62 | Price sets now have a "Minimum Amount" field to accommodate situations where |
| 63 | any one of several fields may be filled but a certain price threshold must be |
| 64 | reached. |
| 65 | |
| 66 | ## <a name="bugs"></a>Bugs resolved |
| 67 | |
| 68 | ### Core CiviCRM |
| 69 | |
| 70 | - **[CRM-19591](https://issues.civicrm.org/jira/browse/CRM-19591) Creating a |
| 71 | pledge with only one installment will cause pledge payment to have a null |
| 72 | status (and cannot record a payment) |
| 73 | ([9557](https://github.com/civicrm/civicrm-core/pull/9557))** |
| 74 | |
| 75 | - **[CRM-19772](https://issues.civicrm.org/jira/browse/CRM-19772) Add |
| 76 | $entity,$action to "possibly mandatory" exception message |
| 77 | ([9543](https://github.com/civicrm/civicrm-core/pull/9543))** |
| 78 | |
| 79 | The API exception message is clearer in some cases with a database constraint |
| 80 | violation. |
| 81 | |
| 82 | - **[CRM-19333](https://issues.civicrm.org/jira/browse/CRM-19333) Advanced |
| 83 | Search issue when searching using Group Type(s) |
| 84 | ([9534](https://github.com/civicrm/civicrm-core/pull/9534))** |
| 85 | |
| 86 | Searching for contacts in groups of a specific group type no longer results in |
| 87 | a database syntax error. |
| 88 | |
| 89 | - **[CRM-19764](https://issues.civicrm.org/jira/browse/CRM-19764) Context |
| 90 | ignored when fetching custom field options |
| 91 | ([9540](https://github.com/civicrm/civicrm-core/pull/9540))** |
| 92 | |
| 93 | The getoptions API method now accurately returns or suppresses disabled |
| 94 | options for custom fields when the `context` parameter is set. |
| 95 | |
| 96 | - **[CRM-19662](https://issues.civicrm.org/jira/browse/CRM-19662) Send test |
| 97 | mailing failing because of "only_full_group_by" setting |
| 98 | ([9428](https://github.com/civicrm/civicrm-core/pull/9428))** |
| 99 | |
| 100 | Various queries having `GROUP BY` set, but with non-aggregated columns besides |
| 101 | those that are grouped, have been resolved to be compatible with MySQL |
| 102 | installations where the `sql_mode` contains `only_full_group_by`. Some have |
| 103 | removed columns from the `SELECT`, while others have added to the `GROUP BY` |
| 104 | clause. |
| 105 | |
| 106 | - **[CRM-19698](https://issues.civicrm.org/jira/browse/CRM-19698) Wrong search |
| 107 | results when combining smart and non-smart groups in a single search |
| 108 | ([9506](https://github.com/civicrm/civicrm-core/pull/9506))** |
| 109 | |
| 110 | Searching for a smart group alongside other groups now accurately displays |
| 111 | contacts who are in any of the groups, rather than just the smart group. |
| 112 | |
| 113 | - **[CRM-19743](https://issues.civicrm.org/jira/browse/CRM-19743) API Utils |
| 114 | _civicrm_api3_get_options_from_params doesn't handle sort as an array properly |
| 115 | ([9525](https://github.com/civicrm/civicrm-core/pull/9525))** |
| 116 | |
| 117 | - **[CRM-19226](https://issues.civicrm.org/jira/browse/CRM-19226) $loginUrl |
| 118 | token not populating in Drupal 7 |
| 119 | ([9479](https://github.com/civicrm/civicrm-core/pull/9479))** |
| 120 | |
| 121 | This fixes a broken or missing login URL link token on Drupal sites. |
| 122 | |
| 123 | - **[CRM-19490](https://issues.civicrm.org/jira/browse/CRM-19490) Profile date |
| 124 | fields don't respect localization on the Contribution Page confirmation screen |
| 125 | ([9529](https://github.com/civicrm/civicrm-core/pull/9529) and |
| 126 | [9530](https://github.com/civicrm/civicrm-core/pull/9530)) [completes previous |
| 127 | work]** |
| 128 | |
| 129 | Short date form fields now have the proper labeling and display for |
| 130 | internationalization. |
| 131 | |
| 132 | - **Correct code docs for CRM_Core_Menu::get() |
| 133 | ([9514](https://github.com/civicrm/civicrm-core/pull/9514))** |
| 134 | |
| 135 | - **[CRM-18248](https://issues.civicrm.org/jira/browse/CRM-18248) Performance - |
| 136 | select2 based contact autocomplete spams the DB server with potentially long |
| 137 | running queries ([9502](https://github.com/civicrm/civicrm-core/pull/9502))** |
| 138 | |
| 139 | Entity reference autocomplete fields now wait 300 milliseconds (up from 100) |
| 140 | before sending queries as users type. |
| 141 | |
| 142 | - **JS Optimizations |
| 143 | ([9505](https://github.com/civicrm/civicrm-core/pull/9505))** |
| 144 | |
| 145 | Improves the loading of WYSIWYG Javascript and only loads table headers for |
| 146 | users with "Access CiviCRM" permission. |
| 147 | |
| 148 | - **[CRM-19656](https://issues.civicrm.org/jira/browse/CRM-19656) Link for users |
| 149 | to update their subscription billing info generates error |
| 150 | ([9401](https://github.com/civicrm/civicrm-core/pull/9401))** |
| 151 | |
| 152 | - **[CRM-19721](https://issues.civicrm.org/jira/browse/CRM-19721) |
| 153 | CiviCRM-cxn-rpc needs to be updated to work with PHP 7 |
| 154 | ([9500](https://github.com/civicrm/civicrm-core/pull/9500))** |
| 155 | |
| 156 | - **[CRM-19720](https://issues.civicrm.org/jira/browse/CRM-19720) Typographic |
| 157 | fixes ([9501](https://github.com/civicrm/civicrm-core/pull/9501))** |
| 158 | |
| 159 | - **[CRM-19711](https://issues.civicrm.org/jira/browse/CRM-19711) Bookkeeping |
| 160 | report displays pay later items twice |
| 161 | ([9490](https://github.com/civicrm/civicrm-core/pull/9490))** |
| 162 | |
| 163 | The bookkeeping report no longer shows duplicate row for pay-later items: once |
| 164 | for the pending payment, and once for the completion. |
| 165 | |
| 166 | - **CRM_Utils_HttpClientTest - Use special purpose hostnames |
| 167 | ([9485](https://github.com/civicrm/civicrm-core/pull/9485))** |
| 168 | |
| 169 | Improves testing of HTTP and HTTPS connections by using hosts that have been |
| 170 | prepared specifically for this purpose. |
| 171 | |
| 172 | - **[CRM-19699](https://issues.civicrm.org/jira/browse/CRM-19699) PHP7: cannot |
| 173 | install using Drush |
| 174 | ([9472](https://github.com/civicrm/civicrm-core/pull/9472))** |
| 175 | |
| 176 | `DB_DSN_MODE` is set on installation for PHP 7 compatibility. |
| 177 | |
| 178 | - **[CRM-19679](https://issues.civicrm.org/jira/browse/CRM-19679) multi custom |
| 179 | data: file field errors on new record save |
| 180 | ([9436](https://github.com/civicrm/civicrm-core/pull/9436))** |
| 181 | |
| 182 | Saving data in a file custom field in a multi-record custom data group no |
| 183 | longer results in a database error. |
| 184 | |
| 185 | - **[CRM-19681](https://issues.civicrm.org/jira/browse/CRM-19681) date fields |
| 186 | not respected when passed through url for report |
| 187 | ([9437](https://github.com/civicrm/civicrm-core/pull/9437))** |
| 188 | |
| 189 | Reports now accurately accept fixed date filter parameters in the URL. |
| 190 | |
| 191 | - **js cleanup ([175](https://github.com/civicrm/civicrm-packages/pull/175))** |
| 192 | |
| 193 | This removes some unnecessary Javascript files and shortens or minifies |
| 194 | others. |
| 195 | |
| 196 | - **[CRM-19048](https://issues.civicrm.org/jira/browse/CRM-19048) FullText - |
| 197 | Search by email, blank |
| 198 | ([9537](https://github.com/civicrm/civicrm-core/pull/9537) and |
| 199 | [9374](https://github.com/civicrm/civicrm-core/pull/9374)) [completes previous |
| 200 | work]** |
| 201 | |
| 202 | Searches with unnecessary wildcard operators no longer result in empty |
| 203 | results. |
| 204 | |
| 205 | - **[CRM-19534](https://issues.civicrm.org/jira/browse/CRM-19534) Saving report |
| 206 | with dashlet enabled for non admin users can cause a backtrace |
| 207 | ([9456](https://github.com/civicrm/civicrm-core/pull/9456))** |
| 208 | |
| 209 | When saving a report with a dashlet, the system now prevents the dashlet from |
| 210 | being added a second time for contacts who already have it enabled. |
| 211 | |
| 212 | - **[CRM-19683](https://issues.civicrm.org/jira/browse/CRM-19683) Changing word |
| 213 | replacement strings does not work if you have more than one set in |
| 214 | civicrm_domain ([9446](https://github.com/civicrm/civicrm-core/pull/9446))** |
| 215 | |
| 216 | Saving word replacements now applies to the currently-used language. |
| 217 | |
| 218 | - **[CRM-19685](https://issues.civicrm.org/jira/browse/CRM-19685) Contacts |
| 219 | preferred_mail_format can't be NULL |
| 220 | ([9463](https://github.com/civicrm/civicrm-core/pull/9463))** |
| 221 | |
| 222 | Upgrading sites will have all contacts with a null value for |
| 223 | `preferred_mail_format` set to `Both`. |
| 224 | |
| 225 | ### CiviContribute |
| 226 | |
| 227 | - **[CRM-19263](https://issues.civicrm.org/jira/browse/CRM-19263) Online Pay Now |
| 228 | functionality ([9532](https://github.com/civicrm/civicrm-core/pull/9532)) |
| 229 | [completes previous work]** |
| 230 | |
| 231 | Payments made retain the original financial type instead of picking up the |
| 232 | contribution page's financial type. |
| 233 | |
| 234 | - **[CRM-19722](https://issues.civicrm.org/jira/browse/CRM-19722) Fatal Error: |
| 235 | Unknown column 'contribution_source' in 'order clause' |
| 236 | ([9516](https://github.com/civicrm/civicrm-core/pull/9516))** |
| 237 | |
| 238 | Tasks from the Actions drop-down on contribution searches no longer cause |
| 239 | database errors if the search results are sorted by certain columns. |
| 240 | |
| 241 | - **[CRM-19549](https://issues.civicrm.org/jira/browse/CRM-19549) New pledge |
| 242 | data entry page shows hard coded $ for installments |
| 243 | ([9475](https://github.com/civicrm/civicrm-core/pull/9475))** |
| 244 | |
| 245 | The currency symbol for pledges now changes dynamically according to the |
| 246 | currency of the contribution amount. |
| 247 | |
| 248 | - **[CRM-19660](https://issues.civicrm.org/jira/browse/CRM-19660) Financial |
| 249 | Transaction stores wrong transaction date if the contribution is cancelled |
| 250 | ([9405](https://github.com/civicrm/civicrm-core/pull/9405))** |
| 251 | |
| 252 | - **[CRM-19294](https://issues.civicrm.org/jira/browse/CRM-19294) Unable to |
| 253 | upload files via a contribution page |
| 254 | ([9518](https://github.com/civicrm/civicrm-core/pull/9518))** |
| 255 | |
| 256 | If a file custom field is required in a profile on a contribution page, a |
| 257 | regression caused the confirmation page to fail validation and prevent |
| 258 | completing the contribution. This has been resolved. |
| 259 | |
| 260 | ### CiviEvent |
| 261 | |
| 262 | - **[CRM-19717](https://issues.civicrm.org/jira/browse/CRM-19717) Event |
| 263 | registration impossible with "Pending from pay later" status being "positive" |
| 264 | ([9523](https://github.com/civicrm/civicrm-core/pull/9523))** |
| 265 | |
| 266 | The Class attribute of reserved participant statuses can no longer be edited. |
| 267 | |
| 268 | - **[CRM-19680](https://issues.civicrm.org/jira/browse/CRM-19680) |
| 269 | Participant.get API generates invalid query when searching for role_id IS |
| 270 | NULL. ([9453](https://github.com/civicrm/civicrm-core/pull/9453))** |
| 271 | |
| 272 | ### CiviMember |
| 273 | |
| 274 | - **[CRM-19736](https://issues.civicrm.org/jira/browse/CRM-19736) Error thrown |
| 275 | when printing labels for members |
| 276 | ([9538](https://github.com/civicrm/civicrm-core/pull/9538))** |
| 277 | |
| 278 | - **[CRM-19298](https://issues.civicrm.org/jira/browse/CRM-19298) Membership fee |
| 279 | amount doubled in receipt when 'separate membership payment' is configured |
| 280 | ([9438](https://github.com/civicrm/civicrm-core/pull/9438)) [completes |
| 281 | previous work]** |
| 282 | |
| 283 | Test coverage was added for this issue. |
| 284 | |
| 285 | - **[CRM-19600](https://issues.civicrm.org/jira/browse/CRM-19600) Membership |
| 286 | Renewal activity not created through online contribution page |
| 287 | ([9357](https://github.com/civicrm/civicrm-core/pull/9357))** |
| 288 | |
| 289 | - **[CRM-19678](https://issues.civicrm.org/jira/browse/CRM-19678) No Membership |
| 290 | Renewal Activity is created when a Pay Later is set to Completed |
| 291 | ([9447](https://github.com/civicrm/civicrm-core/pull/9447))** |
| 292 | |
| 293 | ### CiviMail |
| 294 | |
| 295 | - **[CRM-19649](https://issues.civicrm.org/jira/browse/CRM-19649) ckeditor |
| 296 | includes html/head/body tags |
| 297 | ([9425](https://github.com/civicrm/civicrm-core/pull/9425)) [completes |
| 298 | previous work]** |
| 299 | |
| 300 | CKEditor configuration defaults are improved. |
| 301 | |
| 302 | ### Drupal integration |
| 303 | |
| 304 | - **[CRM-19303](https://issues.civicrm.org/jira/browse/CRM-19303) CKEditor |
| 305 | configuration can't be edited on a Drupal multisite installation |
| 306 | ([9424](https://github.com/civicrm/civicrm-core/pull/9424)) [continues |
| 307 | previous work]** |
| 308 | |
| 309 | The check for the proper Drupal multisite folder is improved. |
| 310 | |
| 311 | ## <a name="credits"></a>Credits |
| 312 | |
| 313 | This release was developed by the following code authors: |
| 314 | |
| 315 | Australian Greens - Seamus Lee; CiviCRM - Jitendra Purohit, Monish Deb, Coleman |
| 316 | Watts, Tim Otten, Yashodha Chaku; Coop SymbioTIC - Mathieu Lutfy; Denver DataMan - |
| 317 | Steve Kessler; Fuzion - Chris Burgess, Eileen McNaughton; JMA Consulting - Joe |
| 318 | Murray, Pradeep Nayak; Johan Vervloet; John Kingsnorth; Jon Goldberg; |
| 319 | Progressive Technology Project - Jamie McClelland; Sharique Ahmed Farooqui |
| 320 | |
| 321 | Most authors also reviewed code for this release; in addition, the following |
| 322 | reviewers contributed their comments: |
| 323 | |
| 324 | Agileware - Agileware Team; Andrew Cormick-Dockery; Australian Greens - Seamus |
| 325 | Lee; Barbara Miller; Blackfly Solutions - Alan Dixon; Bob Silvern; British |
| 326 | Humanist Association - William Gordon, Andrew West; Circle Interactive - Dave |
| 327 | Jenkins; CiviCRM - Monish Deb, Jitendra Purohit, Yashodha Chaku, Tim Otten, |
| 328 | Coleman Watts, Josh Gowans, Dave Greenberg; CiviDesk - Nicolas Ganivet, Sunil |
| 329 | Pawar; Coop SymbioTIC - Mathieu Lutfy; Daniel Martinez; Dennis Gray; Denver |
| 330 | DataMan - Steve Kessler; E-Dynamics - Franky Van Liedekerke; Francesc Bassas i |
| 331 | Bullich; Freeform Solutions - Lola Slade; Fuzion - Eileen McNaughton, Peter |
| 332 | Davis, Chris Burgess; Gareth Small; GMCVO Databases - Jon-man Cheung; iXiam - |
| 333 | Vangelis Pantazis; JMA Consulting - Pradeep Nayak; joemurray; johanv; John |
| 334 | Kingsnorth; Joinery - Allen Shaw; Kacper Warda; Korlon - Stuart Gaston; |
| 335 | Lighthouse Design and Consulting - Brian Shaughnessy; Lutz Frommberger; Milton |
| 336 | Zurita; Nubay Services - David Tarrant; Progressive Technology Project - Jamie |
| 337 | McClelland; Richard van Oosterhout; Sharique Ahmed Farooqui; Thomas Nilefalk; |
| 338 | Vakees K; Veda Consulting - Kajakaran Balakrishnan |