diff --git a/CRM/Report/Form/Contribute/Detail.php b/CRM/Report/Form/Contribute/Detail.php index 46411ad87067..466e47f20116 100644 --- a/CRM/Report/Form/Contribute/Detail.php +++ b/CRM/Report/Form/Contribute/Detail.php @@ -253,6 +253,7 @@ public function __construct() { 'contribution_id' => array( 'name' => 'id', 'required' => TRUE, + 'default' => TRUE, 'title' => ts('Contribution'), ), ), @@ -262,6 +263,7 @@ public function __construct() { 'dao' => 'CRM_Contribute_DAO_ContributionSoft', 'fields' => array( 'soft_credit_type_id' => array('title' => ts('Soft Credit Type')), + 'soft_credit_amount' => ['title' => ts('Soft Credit amount'), 'name' => 'amount', 'type' => CRM_Utils_Type::T_MONEY], ), 'filters' => array( 'soft_credit_type_id' => array( @@ -272,6 +274,12 @@ public function __construct() { 'type' => CRM_Utils_Type::T_STRING, ), ), + 'group_bys' => array( + 'soft_credit_id' => array( + 'name' => 'id', + 'title' => ts('Soft Credit'), + ), + ), ), 'civicrm_financial_trxn' => array( 'dao' => 'CRM_Financial_DAO_FinancialTrxn', @@ -376,18 +384,7 @@ public function from() { ON {$this->_aliases['civicrm_contact']}.id = {$this->_aliases['civicrm_contribution']}.contact_id AND {$this->_aliases['civicrm_contribution']}.is_test = 0"; - if (CRM_Utils_Array::value('contribution_or_soft_value', $this->_params) == - 'both' - ) { - $this->_from .= "\n LEFT JOIN civicrm_contribution_soft contribution_soft_civireport - ON contribution_soft_civireport.contribution_id = {$this->_aliases['civicrm_contribution']}.id"; - } - elseif (CRM_Utils_Array::value('contribution_or_soft_value', $this->_params) == - 'soft_credits_only' - ) { - $this->_from .= "\n INNER JOIN civicrm_contribution_soft contribution_soft_civireport - ON contribution_soft_civireport.contribution_id = {$this->_aliases['civicrm_contribution']}.id"; - } + $this->joinContributionToSoftCredit(); $this->appendAdditionalFromJoins(); } @@ -533,9 +530,7 @@ public function beginPostProcessCommon() { } // 1. use main contribution query to build temp table 1 $sql = $this->buildQuery(); - $tempQuery = "CREATE TEMPORARY TABLE civireport_contribution_detail_temp1 {$this->_databaseAttributes} AS {$sql}"; - $this->temporaryTables['civireport_contribution_detail_temp1'] = ['name' => 'civireport_contribution_detail_temp1', 'temporary' => TRUE]; - $this->executeReportQuery($tempQuery); + $this->createTemporaryTable('civireport_contribution_detail_temp1', $sql); $this->setPager(); // 2. customize main contribution query for soft credit, and build temp table 2 with soft credit contributions only @@ -551,13 +546,10 @@ public function beginPostProcessCommon() { $select = str_ireplace('contribution_civireport.total_amount', 'contribution_soft_civireport.amount', $this->_select); $select = str_ireplace("'Contribution' as", "'Soft Credit' as", $select); - // We really don't want to join soft credit in if not required. - if (!empty($this->_groupBy) && !$this->noDisplayContributionOrSoftColumn) { - $this->_groupBy .= ', contribution_soft_civireport.amount'; - } + // we inner join with temp1 to restrict soft contributions to those in temp1 table. // no group by here as we want to display as many soft credit rows as actually exist. - $sql = "{$select} {$this->_from} {$this->_where}"; + $sql = "{$select} {$this->_from} {$this->_where} $this->_groupBy"; $tempQuery = "CREATE TEMPORARY TABLE civireport_contribution_detail_temp2 {$this->_databaseAttributes} AS {$sql}"; $this->executeReportQuery($tempQuery); $this->temporaryTables['civireport_contribution_detail_temp2'] = ['name' => 'civireport_contribution_detail_temp2', 'temporary' => TRUE]; @@ -583,7 +575,7 @@ public function beginPostProcessCommon() { if ($this->isContributionBaseMode ) { $this->executeReportQuery( - "CREATE TEMPORARY TABLE civireport_contribution_detail_temp3 {$this->_databaseAttributes} AS (SELECT * FROM civireport_contribution_detail_temp1)" + "CREATE TEMPORARY TABLE civireport_contribution_detail_temp3 {$this->_databaseAttributes} AS (SELECT * FROM {$this->temporaryTables['civireport_contribution_detail_temp1']['name']})" ); } elseif (CRM_Utils_Array::value('contribution_or_soft_value', $this->_params) == @@ -595,7 +587,7 @@ public function beginPostProcessCommon() { } else { $this->executeReportQuery("CREATE TEMPORARY TABLE civireport_contribution_detail_temp3 {$this->_databaseAttributes} -(SELECT * FROM civireport_contribution_detail_temp1) +(SELECT * FROM {$this->temporaryTables['civireport_contribution_detail_temp1']['name']}) UNION ALL (SELECT * FROM civireport_contribution_detail_temp2)"); } @@ -606,12 +598,11 @@ public function beginPostProcessCommon() { /** * Store group bys into array - so we can check elsewhere what is grouped. * - * If we are generating a table of soft credits we do not want to be using - * group by. + * If we are generating a table of soft credits we need to group by them. */ protected function storeGroupByArray() { if ($this->queryMode === 'SoftCredit') { - $this->_groupByArray = []; + $this->_groupByArray = [$this->_aliases['civicrm_contribution_soft'] . '.id']; } else { parent::storeGroupByArray(); @@ -744,7 +735,7 @@ public function alterDisplay(&$rows) { array_key_exists('civicrm_contribution_contribution_id', $row) ) { $query = " -SELECT civicrm_contact_id, civicrm_contact_sort_name, civicrm_contribution_total_amount, civicrm_contribution_currency +SELECT civicrm_contact_id, civicrm_contact_sort_name, civicrm_contribution_total_amount_sum, civicrm_contribution_currency FROM civireport_contribution_detail_temp2 WHERE civicrm_contribution_contribution_id={$row['civicrm_contribution_contribution_id']}"; $dao = CRM_Core_DAO::executeQuery($query); @@ -755,7 +746,7 @@ public function alterDisplay(&$rows) { $dao->civicrm_contact_id); $string = $string . ($string ? $separator : '') . "{$dao->civicrm_contact_sort_name} " . - CRM_Utils_Money::format($dao->civicrm_contribution_total_amount, $dao->civicrm_contribution_currency); + CRM_Utils_Money::format($dao->civicrm_contribution_total_amount_sum, $dao->civicrm_contribution_currency); } $rows[$rowNum]['civicrm_contribution_soft_credits'] = $string; } @@ -767,7 +758,7 @@ public function alterDisplay(&$rows) { ) { $query = " SELECT civicrm_contact_id, civicrm_contact_sort_name -FROM civireport_contribution_detail_temp1 +FROM {$this->temporaryTables['civireport_contribution_detail_temp1']['name']} WHERE civicrm_contribution_contribution_id={$row['civicrm_contribution_contribution_id']}"; $dao = CRM_Core_DAO::executeQuery($query); $string = ''; @@ -920,7 +911,7 @@ public function sectionTotals() { public function softCreditFrom() { $this->_from = " - FROM civireport_contribution_detail_temp1 temp1_civireport + FROM {$this->temporaryTables['civireport_contribution_detail_temp1']['name']} temp1_civireport INNER JOIN civicrm_contribution {$this->_aliases['civicrm_contribution']} ON temp1_civireport.civicrm_contribution_contribution_id = {$this->_aliases['civicrm_contribution']}.id INNER JOIN civicrm_contribution_soft contribution_soft_civireport @@ -975,4 +966,21 @@ public function appendAdditionalFromJoins() { $this->addFinancialTrxnFromClause(); } + /** + * Add join to the soft credit table. + */ + protected function joinContributionToSoftCredit() { + if (!CRM_Utils_Array::value('contribution_or_soft_value', $this->_params) && !$this->isTableSelected('civicrm_contribution_soft')) { + return; + } + $joinType = ' LEFT '; + if (CRM_Utils_Array::value('contribution_or_soft_value', $this->_params) == 'soft_credits_only') { + $joinType = ' INNER '; + } + $this->_from .= " + $joinType JOIN civicrm_contribution_soft {$this->_aliases['civicrm_contribution_soft']} + ON {$this->_aliases['civicrm_contribution_soft']}.contribution_id = {$this->_aliases['civicrm_contribution']}.id + "; + } + } diff --git a/release-notes.md b/release-notes.md index e09dfee0fade..e7ad1de86ccb 100644 --- a/release-notes.md +++ b/release-notes.md @@ -14,6 +14,17 @@ Other resources for identifying changes are: * https://github.com/civicrm/civicrm-joomla * https://github.com/civicrm/civicrm-wordpress +# CiviCRM 5.6.0 + +Released October 3, 2018 + +- **[Synopsis](release-notes/5.6.0.md#synopsis)** +- **[Features](release-notes/5.6.0.md#features)** +- **[Bugs resolved](release-notes/5.6.0.md#bugs)** +- **[Miscellany](release-notes/5.6.0.md#misc)** +- **[Credits](release-notes/5.6.0.md#credits)** +- **[Feedback](release-notes/5.6.0.md#feedback)** + ## CiviCRM 5.5.0 Released September 5, 2018 diff --git a/release-notes/5.6.0.md b/release-notes/5.6.0.md new file mode 100644 index 000000000000..b90d2861b4bc --- /dev/null +++ b/release-notes/5.6.0.md @@ -0,0 +1,591 @@ +# CiviCRM 5.6.0 + +Released October 3, 2018 + +- **[Synopsis](#synopsis)** +- **[Features](#features)** +- **[Bugs resolved](#bugs)** +- **[Miscellany](#misc)** +- **[Credits](#credits)** +- **[Feedback](#feedback)** + +## Synopsis + +| *Does this version...?* | | +|:--------------------------------------------------------------- |:-------:| +| Fix security vulnerabilities? | no | +| Change the database schema? | no | +| Alter the API? | **yes** | +| Require attention to configuration options? | no | +| Fix problems installing or upgrading to a previous version? | no | +| Introduce features? | **yes** | +| Fix bugs? | **yes** | + +## Features + +### Core CiviCRM + +- **Activity display, switch to more performance getActivities function (from + deprecatedGetActivities) + ([12559](https://github.com/civicrm/civicrm-core/pull/12559))** + + This change improves performance and alignment on the activity tab. + +- **Upgrade symfony in lockfile to be 2.8 which is supported version of 2… + ([12633](https://github.com/civicrm/civicrm-core/pull/12633))** + + This change upgrades symfony from 2.6 to 2.8.44. + +- **Improve styling of address block on summary screen + ([12723](https://github.com/civicrm/civicrm-core/pull/12723))** + + This changes the display of the address block to be more consistent with the + way that email and website are displayed on a contact. + +- **Foreign key for civicrm_custom_field.option_group_id + ([12706](https://github.com/civicrm/civicrm-core/pull/12706))** + + This change adds a foreign key for option group id to the custom field table. + +- **Added Pseudoconstant for phone and website type + ([12727](https://github.com/civicrm/civicrm-core/pull/12727))** + + This Adds a Pseudoconstant for phone and website type. + +- **Contact summary - adjust block width when editing + ([12708](https://github.com/civicrm/civicrm-core/pull/12708))** + + This makes it so that on the inline Contact edit form, when a user clicks to + edit a section that section grows to allow the edit fields to be full sized. + +- **Added Pseudoconstant tag for visibility + ([12705](https://github.com/civicrm/civicrm-core/pull/12705))** + + This change improves the API Explorer by adding a Pseudoconstant tag for + visibility. This makes it so that civicrm_option_value.visibility_id is now a + dropdown field with the visibility option group options. + +- **Use static cache for UFMatch lookups to improve performance + ([12628](https://github.com/civicrm/civicrm-core/pull/12628))** + + This is a performance improvement, specifically it cuts down on load time for + the contact summary page. + +- **Replicate fix on PR #12643 for pledge report + ([12685](https://github.com/civicrm/civicrm-core/pull/12685))** + + This change makes it so on the "Pledged not Paid" report one can filter by + smart groups. + +- **[dev/core#217](https://lab.civicrm.org/dev/core/issues/217) Allow + replacement of PrevNextCache implementation (for search screens) + ([12664](https://github.com/civicrm/civicrm-core/pull/12664) and + [12663](https://github.com/civicrm/civicrm-core/pull/12663)) (Preliminary Work)** + + This change makes it so for the purposes of search-caching CiviCRM no longer + fills or reads the columns 'entity_table' and 'entity_id2' in the + civicrm_prevnext_cache table and makes the cacheKey column simpler and more + consistent. + +- **[dev/core#302](https://lab.civicrm.org/dev/core/issues/302) End of life + plans for 5.x php versions & planning for 7.0 EOL + ([12625](https://github.com/civicrm/civicrm-core/pull/12625)) (preliminary + work)** + + This change Bumps the recommended php version to 7.1 and min recommended to + 7.0 + +- **Add SQL modes to developer tab + ([12656](https://github.com/civicrm/civicrm-core/pull/12656))** + + This change adds SQL Mode info to the developer tab on reports. + +- **don't add query to developer tab if we are downloading the data + ([12666](https://github.com/civicrm/civicrm-core/pull/12666))** + + This is a performance improvement for downloading reports for users who have + permission to view the developer tab on reports. + +- **filter current employer report by all groups + ([12643](https://github.com/civicrm/civicrm-core/pull/12643))** + + This change makes it so one can filter the Current Employer report by all + groups. Prior to this change one could onlt filter this report by static + groups. + +### CiviCase + +- **Make contact name into a link on Manage Case for single client + ([12619](https://github.com/civicrm/civicrm-core/pull/12619))** + + On the Manage Case page for a single client, this change makes the contact + name linked to that contact's summary page. + +### CiviContribute + +- **Remove net_amount from the Back office contribution form. + ([12662](https://github.com/civicrm/civicrm-core/pull/12662))** + + This change removes the net amount field from the back office contribution + form. The net amount is calculated in the BAO. + +- **API : Set current domain as a sensible default for payment processor + ([12595](https://github.com/civicrm/civicrm-core/pull/12595))** + + This change improves the PaymentProcessor.create api action by making + domain_id optional and setting it to use the current domain as the default if + a domain_id is not sent. + +### CiviMember + +- **Enable custom data display on MembershipType form + ([12738](https://github.com/civicrm/civicrm-core/pull/12738))** + + This makes it so if Membership Type custom fields are configured they are + displayed on the Membership Type form. + +### Drupal Integration + +- **[dev/core#237](https://lab.civicrm.org/dev/core/issues/237) Hide Drupal8 + Administer Menu bar on CiviCRM pages + ([12463](https://github.com/civicrm/civicrm-core/pull/12463))** + + This change hides the Drupal8 menu bar when a user is on a civi backend page. + +- **Drupal Views CiviCRM: Allow Participant record to be used from Event. + ([539](https://github.com/civicrm/civicrm-drupal/pull/539))** + + This change makes it so in Drupal Views one can configure a relationship + between CiviCRM Events and CiviCRM Participants. + +## Bugs resolved + +### Core CiviCRM + +- **Handle smart groups created in previous Civis which include + relation_permission + ([12804](https://github.com/civicrm/civicrm-core/pull/12804))** + + This change fixes a bug where smart groups created in CiviCRM 5.4 based on a + search using a relationship break in CiviCRM 5.5 so that they work as + expected. + +- **[dev/core#346](https://lab.civicrm.org/dev/core/issues/346) Online Pay Now + error when used from dashboard checksum link + ([12745](https://github.com/civicrm/civicrm-core/pull/12745))** + + This change fixes a bug where when a user accessed the CiviCRM user dashboard + using a checksum and then clicked the paynow link, the paynow link would + break, so that the pay now link takes you to pay now as expected. + +- **Show ext version status even when directory not writeable + ([12757](https://github.com/civicrm/civicrm-core/pull/12757))** + + This change fixes a bug where extension updates were not showing if the + extension directory was not writable so that information about extension + updates are shown on the extensions tab regardless of whether the extension + directory is writabale. + +- **Remove mcrypt warning except for affected sites. + ([12733](https://github.com/civicrm/civicrm-core/pull/12733))** + + This change makes it so that the System Check that warns people that mcrypt is + not available only shows on sites that store smtp passwords in their database + (the only users for whom this warning is applicable). + +- **[dev/core#367](https://lab.civicrm.org/dev/core/issues/367) Fatal error / + SQL timeout in A-Z pager for advanced search by relationship with target group + for reciprocal relationship types + ([12740](https://github.com/civicrm/civicrm-core/pull/12740))** + + This change fixes a bug where advanced searches on reciprocal relationships + (ex: "spouse") and using the criteria "target contact is in group" on sites + with large numbers of relationships of that type would take a long time, + occasionally timing out entirely. + +- **[dev/core#343](https://lab.civicrm.org/dev/core/issues/343) Long lines in + contact name or address overflow mailing labels + ([12691](https://github.com/civicrm/civicrm-core/pull/12691))** + + This change fixes a bug where PDF Mailing Labels generated by civi were not + wrapping appropriately so that they wrap and do run off the label. + +- **[dev/core#351](https://lab.civicrm.org/dev/core/issues/351) ERROR: LoadForm + Pop-up w/out Params in URL + ([12735](https://github.com/civicrm/civicrm-core/pull/12735))** + + This change fixes a bug where the load form function used to open a form in a + pop up window was throwing an error if no parameters were included in the URL + so no error is thrown if no parameters are sent (and no parameters are + necessary). + +- **[dev/core#349](https://lab.civicrm.org/dev/core/issues/349) Scheduled + reminders list default sort does not work + ([12701](https://github.com/civicrm/civicrm-core/pull/12701))** + + This change fixes the default sort of the Scheduled reminders list so that it + sorts by title. + +- **[dev/translation#14](https://lab.civicrm.org/dev/translation/issues/14) + InnoDB Advanced Logging cannot be enabled on multi-lingual + ([12667](https://github.com/civicrm/civicrm-core/pull/12667))** + + This change makes it so that InnoDB Advanced Logging can be enabled on + multi-lingual sites using: + https://github.com/eileenmcnaughton/nz.co.fuzion.innodbtriggers + +- **Fix recent item deduping & call hooks + ([12704](https://github.com/civicrm/civicrm-core/pull/12704))** + + This change fixes a bug where sometimes the same item would be added twice to + the "recent items" list. + +- **Wrap long labels onto multiple lines to prevent text being cut off + ([12716](https://github.com/civicrm/civicrm-core/pull/12716))** + + This change makes it so that on front facing forms, long labels wrap on to + multiple lines. + +- **Navigation - Don't reprocess fully-formed urls + ([12702](https://github.com/civicrm/civicrm-core/pull/12702))** + + This change fixes an edge case where fully-formed urls in the menubar were + getting garbled so that relative urls, absolute urls and local urls are all + processed correctly. + +- **Fix CRM_ACL_API::whereClause to respect $contactId param + ([12576](https://github.com/civicrm/civicrm-core/pull/12576))** + + This adds support to the CMS based permission checking and ensures that + CRM_ACL_API::whereClause checks the permissions for the contact Id it is sent + (before this change it checked the permissions of the logged in user). + +- **[dev/accessibility#10](https://lab.civicrm.org/dev/accessibility/issues/10) + Make datepicker + accessible ([12631](https://github.com/civicrm/civicrm-core/pull/12631)) (Preliminary Work)** + + This change moves CiviCRM towards making the date picker accessible (one could + select a date from the calendar using control keys without using a mouse) by + moving the datepicker functionality to its own file. + +- **[dev/core#295](https://lab.civicrm.org/dev/core/issues/295) Default 'from' + mail address is not the default one showing in 'send email' + ([12603](https://github.com/civicrm/civicrm-core/pull/12603))** + + This change makes it so that when sending an email using the "send email" + action if "Allow Mail to be sent from logged in contact's email address" is + disabled in settings the default from address is loaded into the from address + field. + +- **Further removal of instance of using LOWER() rather than relying on mysql + non-case-sensitivity. + ([12612](https://github.com/civicrm/civicrm-core/pull/12612))** + + This change improves performance when searching on email_greeting, + postal_greeting, address. + +- **Fix ReportInstance BAO to call post hook after save (instead of calling pre + twice). ([12722](https://github.com/civicrm/civicrm-core/pull/12722))** + + This change improves the hook functionality in the ReportInstance BAO so that + one can call post hook after save and so that the pre hook is only called + once. + +### CiviCase + +- **[dev/core#297](https://lab.civicrm.org/dev/core/issues/297) permission + "access my cases and activities" is broken by CRM-21461 + ([12613](https://github.com/civicrm/civicrm-core/pull/12613))** + + This change fixes the permission "access my cases and activites". + +- **[dev/core#361](https://lab.civicrm.org/dev/core/issues/361) Mistake in Case + api spec description + ([12726](https://github.com/civicrm/civicrm-core/pull/12726))** + + This changes the text in the API Explorer for the entity Case for the + parameter Tags to read "Find cases with specified tags." before this change it + read "Find activities with specified tags.". + +- **[dev/core#245](https://lab.civicrm.org/dev/core/issues/245) Duplicate + activities shown on case tab + ([12444](https://github.com/civicrm/civicrm-core/pull/12444))** + + This change fixes a bug where If there were multiple assignee/target contacts on + an activity, the activities were being duplicated on the case activities tab. + Additionally this change fixes a bug where if the activity is only allowed a + single instance and the user tried to add another, the link had an invalid + activity Id. + +- **Don't duplicate activity when filing on case + ([12620](https://github.com/civicrm/civicrm-core/pull/12620))** + + This change fixes a bug where filing an activity on a case using the "File On + Case" link on the actvitytab/activity detail view would result in two + activities one related to the case and one not. + +### CiviContribute + +- **[dev/core#299](https://lab.civicrm.org/dev/core/issues/299) Decimal point + error. ([12684](https://github.com/civicrm/civicrm-core/pull/12684)) + (Continuation of work)** + + This change localizes the display of the amount on the update payment details + form. + +- **[dev/core#334](https://lab.civicrm.org/dev/core/issues/334) Public + contribution form and Checksums: billing information not loaded if using + multiple processors + ([12679](https://github.com/civicrm/civicrm-core/pull/12679))** + + This fixes a bug where when a user goes to a contribution page that is + configured to use multiple payment processors via a checksum link the billing + address section was not pre-populating so that the billing section does + pre-populate. + +- **[dev/core#119](https://lab.civicrm.org/dev/core/issues/119) Notice error + ([12626](https://github.com/civicrm/civicrm-core/pull/12626))** + + When recording a payment on a site that is configured not to use decimal + thousand separators, that configuration was not being respected for the + default amount. This change fixes the default amount to be localized + appropriately. + +- **[dev/core#322](https://lab.civicrm.org/dev/core/issues/322) Contribution + page, completing this form on behalf of someone else: JavaScript error for + checkbox field ([12652](https://github.com/civicrm/civicrm-core/pull/12652))** + + This fixes a bug on contribution pages configured to accept donations onbehalf + of someone else and to include a profile with a checkbox where checking the + checkbox in the profile would result in a javascript error, additionally it + ensures that the form is populated with the onbehalf of contact's data. + +- **Use cached version of payment processor. + ([12627](https://github.com/civicrm/civicrm-core/pull/12627))** + + This change fixes a bug where some payment processors when combined with Redis + were failing to complete transactions because Redis was caching the call to + completetransaction. + +- **[dev/core#325](https://lab.civicrm.org/dev/core/issues/325) Fatal error 'DB Error: no + such field' on Contribution detail report + ([12660](https://github.com/civicrm/civicrm-core/pull/12660))** + + This change fixes a bug where on the Contribution Detail report, selecting the + "Age" column would result in a fatal error so that the report includes Age as + expected. + +- **[dev/core#386](https://lab.civicrm.org/dev/core/issues/386) + Contribution Detail Report shows no amount if set to Soft Credit Only + ([12860](https://github.com/civicrm/civicrm-core/pull/12860))** + +- **[dev/core#341](https://lab.civicrm.org/dev/core/issues/341) "Contributions + made in Year X and not Year Y" custom search ignores date field + ([12686](https://github.com/civicrm/civicrm-core/pull/12686))** + + This fixes a bug where custom searches using the "Contributions made in Year X + and not Year Y" were not respecting the date parameters, so that date + parameters are respected. + +- **[dev/core#327](https://lab.civicrm.org/dev/core/issues/327) PHP Fatal error: + Call to undefined method - Contribution Details report + ([12661](https://github.com/civicrm/civicrm-core/pull/12661))** + + This fixes a bug where checking the Gender column field on the Contribution + Details report resulted in a fatal error so that one can include a gender + column in this report. + +### CiviEvent + +- **Fix Undefined index: params in CRM_Event_BAO_Event::buildCustomProfile() + ([12678](https://github.com/civicrm/civicrm-core/pull/12678))** + + This change suppresses an undefined index notice that was showing when one + comes to an Event from an online payment provider. + +- **[dev/core#344](https://lab.civicrm.org/dev/core/issues/344) Tell a Friend + mail does not include event title + ([12699](https://github.com/civicrm/civicrm-core/pull/12699))** + + This fixes a bug where when using the Tell-A-Friend option to send an email + the title of the event was appearing in the subject of the email, so that the + title of the event does appear in the subject of the email. + +- **Ensure users with the perm "CiviEvent: access CiviEvent " can edit events + they have created. + ([12424](https://github.com/civicrm/civicrm-core/pull/12424))** + + This change fixes a bug where users with the permission "CiviEvent: access + CiviEvent" could create but not edit their events so that they can create and + edit their events. + +- **GL-44 Admin price field options on event info page + ([11923](https://github.com/civicrm/civicrm-core/pull/11923))** + + This change ensures that on event info pages price set field options with the + visibility "admin" are only shown to admins. + +### CiviMail + +- **[dev/mail#20](https://lab.civicrm.org/dev/mail/issues/20) Preview screen + don't open until recipients list is built on mail compose screen + ([12509](https://github.com/civicrm/civicrm-core/pull/12509))** + + This change fixes a bug where when drafting a mailing one could not open the + preview mailing screen until the recipient count query had completed. + +- **[dev/core#352](https://lab.civicrm.org/dev/core/issues/352) Ensure that when + adding recipients of previous mailings that contacts who are being excluded + are removed ([12712](https://github.com/civicrm/civicrm-core/pull/12712))** + + This change makes sure when using recipients from a previous mailing as the + recipients of a mailing That any exclusions are respected. + +- **[dev/mail#21](https://lab.civicrm.org/dev/mail/issues/21) "Send test email" + may create duplicate contacts + ([12599](https://github.com/civicrm/civicrm-core/pull/12599))** + + This change fixes a bug where sending a test email to two contacts seperated + by a space and a comma would sometimes result in a duplicate contact being + created. + +- **pass mailingJobId to hook_tokenValues + ([12026](https://github.com/civicrm/civicrm-core/pull/12026))** + + This change ensures the mailingJobId is sent to hook_tokenValues. + +### CiviMember + +- **BASW-240: 'Network Error' when creating membership type from contact + membership tab ([12700](https://github.com/civicrm/civicrm-core/pull/12700))** + + This Change fixes a Network Error that was appearing when creating a membership + type from a contacts membership tab. + +### Drupal Integration + +- **[dev/core#311](https://lab.civicrm.org/dev/core/issues/311) Upgrading + multilingual site causes DB Error + ([12636](https://github.com/civicrm/civicrm-core/pull/12636))** + + This change fixes a bug where upgrading a multilingual drupal site from + CiviCRM 4.4.7 to 5.4.0 causes a DB error so that one can upgrade a + multilingual drupal site without a DB error. + +### Joomla Integration + +- **[dev/joomla#2](https://lab.civicrm.org/dev/joomla/issues/2) Joomla + cron.php/cli.php fail on Windows server + ([12692](https://github.com/civicrm/civicrm-core/pull/12692))** + + This fixes a bug where on Joomla sites on Windows cron was failing so that + cron works for Joomla stes on Windows. + +- **Make sure Joomla timezone is set for cron jobs + ([12609](https://github.com/civicrm/civicrm-core/pull/12609))** + + This change ensures that the CRON job is executed using the same timezone as + Joomla (and the same timezone that is configured for Joomla/CiviCRM/database + when running via web). Prior to this change the CRON job was being executed + with timezone set to UTC. + +## Miscellany + +- **Stop passing imProviders & phoneTypes - use CRM_Core_PseudoConstant:getLabel + ([12608](https://github.com/civicrm/civicrm-core/pull/12608))** + +- **Remove unused variables from process_participants job + ([12621](https://github.com/civicrm/civicrm-core/pull/12621))** + +- **Follow up on #12611 - adding in three data-integrity assertions. + ([12629](https://github.com/civicrm/civicrm-core/pull/12629))** + +- **Minor refactor, use sales tax trait to simplify sales tax functions + ([12594](https://github.com/civicrm/civicrm-core/pull/12594))** + +- **Drop custom CSS for Joomla CiviCRM menu so it works with shoreditch theme + ([12632](https://github.com/civicrm/civicrm-core/pull/12632))** + +- **Export minor refactor Move household relationship types to the processor + ([12579](https://github.com/civicrm/civicrm-core/pull/12579))** + +- **Code cleanup on Membership form when freezing fields in a recurring exists + situation ([12642](https://github.com/civicrm/civicrm-core/pull/12642))** + +- **Add test for new rounded money format functions + ([12689](https://github.com/civicrm/civicrm-core/pull/12689))** + +- **Minor comment and typo cleanup + ([12715](https://github.com/civicrm/civicrm-core/pull/12715))** + +- **Towards rationalising settings form & preferences form (partial of 12731) + ([12732](https://github.com/civicrm/civicrm-core/pull/12732))** + +- **Fix compatibility problem with CRM_Extendedreport_Form_Report_ExtendedReport + ([12749](https://github.com/civicrm/civicrm-core/pull/12749))** + +- **Fix teeny typo + ([12618](https://github.com/civicrm/civicrm-core/pull/12618))** + +- **[PHPUnit test only] Adding in assertions re: Line Item and Contribution + data-integrity. + ([12611](https://github.com/civicrm/civicrm-core/pull/12611))** + +- **[NFC] comment fixes relating to doc blocks, spelling + ([12630](https://github.com/civicrm/civicrm-core/pull/12630))** + +- **[phpunit test only] - Add one additional data integrity check to ensure that + after Edit Fin… + ([12645](https://github.com/civicrm/civicrm-core/pull/12645))** + +- **NFC Add/update two comments + ([12680](https://github.com/civicrm/civicrm-core/pull/12680))** + +- **[NFC] Minor function extraction in report class. + ([12658](https://github.com/civicrm/civicrm-core/pull/12658))** + +- **(NFC) Fix incorrect reference of doTransferCheckout() in comments + ([12720](https://github.com/civicrm/civicrm-core/pull/12720))** + +- **NFC cleanup to Membership/Renewal form classes. + ([12696](https://github.com/civicrm/civicrm-core/pull/12696))** + +- **[CRM-21677](https://issues.civicrm.org/jira/browse/CRM-21677) Report + improvements ([12703](https://github.com/civicrm/civicrm-core/pull/12703) and + [12698](https://github.com/civicrm/civicrm-core/pull/12698))** + +- **Deduplicate setting of mailSent message + ([12694](https://github.com/civicrm/civicrm-core/pull/12694))** + +- **Setting form - function extraction + ([12744](https://github.com/civicrm/civicrm-core/pull/12744))** + +## Credits + +This release was developed by the following code authors: + +AGH Strategies - Alice Frumin, Andrew Hunt; Andrew Thompson; Australian Greens - +Seamus Lee; Calbasi - Joan Cervan Andreu; Calibrate - Wouter Hechtermans; Chris +Burgess; Circle Interactive - Dave Jenkins; CiviCoop - Klaas Eikelboom; CiviCRM - +Coleman Watts, Tim Otten; CiviDesk - Yashodha Chaku; CiviFirst - John Kirk; +CompuCorp - Vinu Varshith Sekar; Coop SymbioTIC - Mathieu Lutfy; Fuzion - +Jitendra Purohit; JMA Consulting - Monish Deb; John Kingsnorth; Joinery - Allen +Shaw; Lemniscus - Noah Miller; Lighthouse Design and Consulting - Brian +Shaughnessy; Megaphone Technology Consulting - Jon Goldberg; MillerTech - Chamil +Wijesooriya; MJW Consulting - Matthew Wire; PHD Computer Consultants - Chris +Cant; Pradeep Nayak; Progressive Technology Project - Jamie McClelland; Richard +van Oosterhout; Selwyn Tang; Semper IT - Karin Gerritsen; Third Sector Design - +Michael McAndrew; Wikimedia Foundation - Eileen McNaughton + +Most authors also reviewed code for this release; in addition, the following +reviewers contributed their comments: + +Agileware - Justin Freeman; Fuzion - Peter Davis; JMA Consulting - Joe Murray; +MillerTech - Chamil Wijesooriya; Oxfam Germany - Thomas Schüttler; sleewok; +Squiffle Consulting - Aidan Saunders + +## Feedback + +These release notes are edited by Alice Frumin and Andrew Hunt. If you'd like +to provide feedback on them, please log in to https://chat.civicrm.org/civicrm +and contact `@agh1`. diff --git a/tests/phpunit/api/v3/ReportTemplateTest.php b/tests/phpunit/api/v3/ReportTemplateTest.php index 87ba2a7e0cee..630645dfb0a4 100644 --- a/tests/phpunit/api/v3/ReportTemplateTest.php +++ b/tests/phpunit/api/v3/ReportTemplateTest.php @@ -526,6 +526,31 @@ public function testContributionDetailSoftCredits() { ); } + /** + * Test the amount column is populated on soft credit details. + */ + public function testContributionDetailSoftCreditsOnly() { + $contactID = $this->individualCreate(); + $contactID2 = $this->individualCreate(); + $this->contributionCreate(['contact_id' => $contactID, 'api.ContributionSoft.create' => ['amount' => 5, 'contact_id' => $contactID2]]); + $template = 'contribute/detail'; + $rows = $this->callAPISuccess('report_template', 'getrows', array( + 'report_id' => $template, + 'contribution_or_soft_value' => 'soft_credits_only', + 'fields' => [ + 'sort_name' => '1', + 'email' => '1', + 'financial_type_id' => '1', + 'receive_date' => '1', + 'total_amount' => '1', + ], + 'options' => array('metadata' => ['sql', 'labels']), + )); + foreach (array_keys($rows['metadata']['labels']) as $header) { + $this->assertTrue(!empty($rows['values'][0][$header])); + } + } + /** * Test the group filter works on the various reports. *