Development issueshttps://lab.civicrm.org/groups/dev/-/issues2019-03-02T07:08:54Zhttps://lab.civicrm.org/dev/core/-/issues/731Smart Group DB Errors post-upgrade, specifically 1292 Truncated incorrect DOU...2019-03-02T07:08:54ZjoeglSmart Group DB Errors post-upgrade, specifically 1292 Truncated incorrect DOUBLE valueCiviCRM 5.9.1 and Drupal 7. Recently upgraded from 4.7.17.
Lots of smart groups are failing now with DB errors (can't use them or edit them). This is a relevant StackExchange I found: https://civicrm.stackexchange.com/questions/28268/ca...CiviCRM 5.9.1 and Drupal 7. Recently upgraded from 4.7.17.
Lots of smart groups are failing now with DB errors (can't use them or edit them). This is a relevant StackExchange I found: https://civicrm.stackexchange.com/questions/28268/cant-update-smart-group-counts
Here are two specific MySQL queries which fail:
`CREATE TEMPORARY TABLE civicrm_temp_group_contact_cache449
(SELECT 9 as group_id, contact_a.id as id
FROM civicrm_contact contact_a
LEFT JOIN civicrm_email
ON (contact_a.id = civicrm_email.contact_id AND civicrm_email.is_primary = 1)
LEFT JOIN civicrm_contribution
ON civicrm_contribution.contact_id = contact_a.id
WHERE (
civicrm_email.on_hold IN ("")
AND (civicrm_contribution.receive_date >= '20110701000000' )
AND (civicrm_contribution.receive_date <= '20120630235959' )
AND civicrm_contribution.financial_type_id IN ("5", "1", "4", "12", "11", "6", "9", "2", "8", "10")
AND civicrm_contribution.financial_type_id = 1
)
AND (contact_a.is_deleted = 0)
AND contact_a.id
NOT IN (SELECT contact_id
FROM civicrm_group_contact
WHERE civicrm_group_contact.status = 'Removed'
AND civicrm_group_contact.group_id = 9 )
); [nativecode=1292 ** Truncated incorrect DOUBLE value: '']`
AND
`CREATE TEMPORARY TABLE civicrm_temp_group_contact_cache1477
(SELECT 208 as group_id, contact_a.id as id
FROM civicrm_contact contact_a
LEFT JOIN civicrm_email
ON (contact_a.id = civicrm_email.contact_id
AND civicrm_email.is_primary = 1)
LEFT JOIN civicrm_contribution
ON civicrm_contribution.contact_id = contact_a.id
LEFT JOIN civicrm_membership
ON civicrm_membership.contact_id = contact_a.id
LEFT JOIN civicrm_contribution_recur ccr
ON ( civicrm_membership.contribution_recur_id = ccr.id )
WHERE
(civicrm_email.on_hold IN ("")
AND contact_a.contact_type IN ("Individual", "Household")
AND civicrm_contribution.is_test = 0
AND civicrm_membership.is_test = 0
AND civicrm_membership.status_id IN ("1"))
AND (contact_a.is_deleted = 0)
AND contact_a.id NOT IN (
SELECT contact_id
FROM civicrm_group_contact
WHERE civicrm_group_contact.status = 'Removed'
AND civicrm_group_contact.group_id = 208 )
); [nativecode=1292 ** Truncated incorrect DOUBLE value: '']`
I am not very familiar with working with temporary tables. However, when I run the SELECT query inside the parentheses without the "CREATE TEMPORARY TABLE" portion, it returns successfully. However, PHPMyAdmin does not like it when I add the "CREATE TEMPORARY TABLE" bit. The MySQL has user proper permissions and it's an InnoDB MySQL database.
EDIT: I've tried to post the queries with indentations and line breaks but they don't stay so I apologize for the formatting.5.11https://lab.civicrm.org/dev/core/-/issues/693On contact summary page, on submitting a 'New Case' form doesn't redirect to ...2019-02-04T22:04:19ZMonish DebOn contact summary page, on submitting a 'New Case' form doesn't redirect to 'Manage Case' screenSteps to replicate:
1. Go to Case tab in Contact summary page.
2. Click on 'Add Case' button which opens the 'New Case' backoffice form in a popup.
3. Fill and submit the form which simply closes the popup and does not redirect to the 'M...Steps to replicate:
1. Go to Case tab in Contact summary page.
2. Click on 'Add Case' button which opens the 'New Case' backoffice form in a popup.
3. Fill and submit the form which simply closes the popup and does not redirect to the 'Manage Case' screen. Although the redirect url is declared in [here](https://github.com/civicrm/civicrm-core/blob/master/CRM/Case/Form/Activity/OpenCase.php#L355)
Solution:
Add 'no-popup' class to 'Add Case' button so that 'New Case' backoffice form always opens in a new window and thus redirects to 'Manage Case' on submit5.11Monish DebMonish Debhttps://lab.civicrm.org/dev/core/-/issues/692Unable to use url search arguments in 'Advanced Search' using force=12023-02-25T05:03:38ZMonish DebUnable to use url search arguments in 'Advanced Search' using force=1Currently, it is not possible to use URL search arguments in 'Advanced Search' using force=1 to load search results. This is no longer working except for mailing params which are manually handled [here](https://github.com/civicrm/civicrm...Currently, it is not possible to use URL search arguments in 'Advanced Search' using force=1 to load search results. This is no longer working except for mailing params which are manually handled [here](https://github.com/civicrm/civicrm-core/blob/5.10/CRM/Contact/Form/Search.php#L636L647).
Following are the steps to support URL search arguments Civi component-wise:
1. All the search forms extends the parent class ```CRM_Core_Form_Search``` that will define a new function ```loadSearchParamsFromUrl()```. Definition as follows
```php
function loadSearchParamsFromUrl() {
// In case no component is defined then lookout for basic contact search fields + all enanbled components search fields
if (!$this->_component) {
if (method_exists('CRM_Contact_Form_Search', 'setSearchParamFromUrl')) {
CRM_Contact_Form_Search::setSearchParamFromUrl($this);
}
foreach ($enabledComponents as $component) {
$searchClass = $component->namespace . '_Form_Search';
if (method_exists($searchClass, 'setSearchParamFromUrl')) {
$searchClass::setSearchParamFromUrl($form);
}
}
}
elseif (array_key_exists($this->_component, $enabledComponents)) { // $_component = 'CiviMail'
$searchClass = $enabledComponents[$this->_component]->namespace . '_Form_Search';
if (method_exists($searchClass, 'setSearchParamFromUrl')) {
// call CRM_Mailing_Form_Search::setSearchParamFromUrl()
$searchClass::setSearchParamFromUrl($form);
}
}
}
```
2. This function will be called by respective search form to find the search arguments from URL and set them accordingly. And will be handled in ```SearchClass::setSearchParamFromUrl($form);``` as:
```php
class CRM_Contact_Form_Search {
...
public static function setSearchParamFromUrl(&$form) {
foreach (CRM_Contact_Form_Search_Criteria::getBasicSearchFields() as $name => $type) {
if ($value = CRM_Utils_Request::retrieve($name, $type)) {
$form->_formValues[$name] = $value;
}
}
$form->_params = CRM_Contact_BAO_Query::convertFormValues($form->_formValues);
$form->set('formValues', $form->_formValues);
$form->set('queryParams', $form->_params);
}
}
```
The intent is to generalize the workflow and let each component's search form decide and hosts its list of search arguments (on basis of enabled component) rather than manually handling them in different places.5.11Monish DebMonish Debhttps://lab.civicrm.org/dev/core/-/issues/649DB error on Find Activities with follow up criteria2019-01-08T20:27:11ZyashodhaDB error on Find Activities with follow up criteriaSteps to replicate:
-------------------
Go to *Find Activities* and set *Has a Followup Activity?* to Yes
Hit Search and you will get DB error
Database Error Code: Unknown column 'parent_id.parent_id' in 'where clause', 1054
```
Datab...Steps to replicate:
-------------------
Go to *Find Activities* and set *Has a Followup Activity?* to Yes
Hit Search and you will get DB error
Database Error Code: Unknown column 'parent_id.parent_id' in 'where clause', 1054
```
Database Error Code: Unknown column 'parent_id.parent_id' in 'where clause', 1054
Additional Details:
Array
(
[callback] => Array
(
[0] => CRM_Core_Error
[1] => handle
)
[code] => -19
[message] => DB Error: no such field
[mode] => 16
[debug_info] => SELECT count( DISTINCT ( civicrm_activity.id ) ) as rowCount FROM civicrm_contact contact_a LEFT JOIN civicrm_activity_contact
ON ( civicrm_activity_contact.contact_id = contact_a.id ) LEFT JOIN civicrm_activity
ON ( civicrm_activity.id = civicrm_activity_contact.activity_id
AND civicrm_activity.is_deleted = 0 AND civicrm_activity.is_current_revision = 1 ) INNER JOIN civicrm_contact
ON ( civicrm_activity_contact.contact_id = civicrm_contact.id and civicrm_contact.is_deleted != 1 ) LEFT JOIN civicrm_option_group option_group_activity_type ON (option_group_activity_type.name = 'activity_type') LEFT JOIN civicrm_option_value activity_type ON (civicrm_activity.activity_type_id = activity_type.value
AND option_group_activity_type.id = activity_type.option_group_id )
LEFT JOIN civicrm_activity_contact source_activity
ON (source_activity.activity_id = civicrm_activity_contact.activity_id
AND source_activity.record_type_id = 2)
LEFT JOIN civicrm_contact source_contact ON (source_activity.contact_id = source_contact.id) WHERE ( parent_id.parent_id IS NOT NULL AND civicrm_activity_contact.record_type_id = 3 AND civicrm_activity.is_test = 0 AND civicrm_activity.status_id IN ("1", "2") ) AND ( 1 ) [nativecode=1054 ** Unknown column 'parent_id.parent_id' in 'where clause']
[type] => DB_Error
[user_info] => SELECT count( DISTINCT ( civicrm_activity.id ) ) as rowCount FROM civicrm_contact contact_a LEFT JOIN civicrm_activity_contact
ON ( civicrm_activity_contact.contact_id = contact_a.id ) LEFT JOIN civicrm_activity
ON ( civicrm_activity.id = civicrm_activity_contact.activity_id
AND civicrm_activity.is_deleted = 0 AND civicrm_activity.is_current_revision = 1 ) INNER JOIN civicrm_contact
ON ( civicrm_activity_contact.contact_id = civicrm_contact.id and civicrm_contact.is_deleted != 1 ) LEFT JOIN civicrm_option_group option_group_activity_type ON (option_group_activity_type.name = 'activity_type') LEFT JOIN civicrm_option_value activity_type ON (civicrm_activity.activity_type_id = activity_type.value
AND option_group_activity_type.id = activity_type.option_group_id )
LEFT JOIN civicrm_activity_contact source_activity
ON (source_activity.activity_id = civicrm_activity_contact.activity_id
AND source_activity.record_type_id = 2)
LEFT JOIN civicrm_contact source_contact ON (source_activity.contact_id = source_contact.id) WHERE ( parent_id.parent_id IS NOT NULL AND civicrm_activity_contact.record_type_id = 3 AND civicrm_activity.is_test = 0 AND civicrm_activity.status_id IN ("1", "2") ) AND ( 1 ) [nativecode=1054 ** Unknown column 'parent_id.parent_id' in 'where clause']
[to_string] => [db_error: message="DB Error: no such field" code=-19 mode=callback callback=CRM_Core_Error::handle prefix="" info="SELECT count( DISTINCT ( civicrm_activity.id ) ) as rowCount FROM civicrm_contact contact_a LEFT JOIN civicrm_activity_contact
ON ( civicrm_activity_contact.contact_id = contact_a.id ) LEFT JOIN civicrm_activity
ON ( civicrm_activity.id = civicrm_activity_contact.activity_id
AND civicrm_activity.is_deleted = 0 AND civicrm_activity.is_current_revision = 1 ) INNER JOIN civicrm_contact
ON ( civicrm_activity_contact.contact_id = civicrm_contact.id and civicrm_contact.is_deleted != 1 ) LEFT JOIN civicrm_option_group option_group_activity_type ON (option_group_activity_type.name = 'activity_type') LEFT JOIN civicrm_option_value activity_type ON (civicrm_activity.activity_type_id = activity_type.value
AND option_group_activity_type.id = activity_type.option_group_id )
LEFT JOIN civicrm_activity_contact source_activity
ON (source_activity.activity_id = civicrm_activity_contact.activity_id
AND source_activity.record_type_id = 2)
LEFT JOIN civicrm_contact source_contact ON (source_activity.contact_id = source_contact.id) WHERE ( parent_id.parent_id IS NOT NULL AND civicrm_activity_contact.record_type_id = 3 AND civicrm_activity.is_test = 0 AND civicrm_activity.status_id IN ("1", "2") ) AND ( 1 ) [nativecode=1054 ** Unknown column 'parent_id.parent_id' in 'where clause']"]
)
```5.11yashodhayashodhahttps://lab.civicrm.org/dev/core/-/issues/648PHP 7.1 incompatibility error fix for -> Error: Using $this when not in objec...2019-01-08T00:28:39ZericgPHP 7.1 incompatibility error fix for -> Error: Using $this when not in object context in civicrm_form_data()in 5.9 I hit the issue that is fixed by this pull request https://github.com/civicrm/civicrm-drupal/pull/541
related to this issue: https://github.com/civicrm/civicrm-drupal/pull/544
the fix worked, what's the process for getting this p...in 5.9 I hit the issue that is fixed by this pull request https://github.com/civicrm/civicrm-drupal/pull/541
related to this issue: https://github.com/civicrm/civicrm-drupal/pull/544
the fix worked, what's the process for getting this pulled in?5.11https://lab.civicrm.org/dev/core/-/issues/646Event date sorting doesn't work for ical listing2019-01-10T21:16:28ZyashodhaEvent date sorting doesn't work for ical listingSteps to replicate:
-------------------
* Go to ical listing
https://dmaster.demo.civicrm.org/civicrm/event/ical?reset=1&list=1&html=1
* Click When column which correponds to the event dates
Expected : The dates should be sorted in ...Steps to replicate:
-------------------
* Go to ical listing
https://dmaster.demo.civicrm.org/civicrm/event/ical?reset=1&list=1&html=1
* Click When column which correponds to the event dates
Expected : The dates should be sorted in ASC/DSC for start date
Actual : The dates get sorted in alphabetic manner
![demo_ical_listing](/uploads/06b639d1a695380d266a5e324121a9b1/demo_ical_listing.png)
Date sorting for *Manage Events* works properly though.
![demo_manage_event](/uploads/3e95da0886f1c1cfaca061c85ab7ab3a/demo_manage_event.png)5.11https://lab.civicrm.org/dev/core/-/issues/644"From" address on membership renewal notices is wrong2019-03-13T23:50:20ZJonGold"From" address on membership renewal notices is wrongFound on [Stack Exchange](https://civicrm.stackexchange.com/q/27905/12). I don't think this is replicable on the demo server because you need to be able to send email to replicate.
### Steps to Replicate
* If using civicrm-buildkit, en...Found on [Stack Exchange](https://civicrm.stackexchange.com/q/27905/12). I don't think this is replicable on the demo server because you need to be able to send email to replicate.
### Steps to Replicate
* If using civicrm-buildkit, enable sending mail by temporarily deleting `<buildkit-root>/app/civicrm.settings.d/100-mail.php`.
* You can still set your outgoing mail to redirect to database - but `CIVICRM_MAIL_LOG` shouldn't be defined.
* Create a new non-lifetime membership on any contact.
* Select **Renew** next to the membership.
* Check the **Send Confirmation and Receipt** checkbox.
* Pres the **Renew** button.
![Selection_752](/uploads/5e877fd67625a9ca8edcd7d3e70788ba/Selection_752.png)
### Expected Result
In the "From" header, the email should have the display name of the contact selected in **Receipt From**.
### Actual Result
In the "From" header, the email has the contact ID of the contact selected in **Receipt From**.5.11JonGoldJonGoldhttps://lab.civicrm.org/dev/core/-/issues/643Nested call to api.delete runs twice2019-01-05T20:47:10ZeileenNested call to api.delete runs twiceA recent change to use an exception has exposed a bug in the api kernal
A unit test is running
```
$contribution = $this->callAPISuccess('contribution', 'getsingle', array(
'id' => $contribution['id'],
'api.contributio...A recent change to use an exception has exposed a bug in the api kernal
A unit test is running
```
$contribution = $this->callAPISuccess('contribution', 'getsingle', array(
'id' => $contribution['id'],
'api.contribution.delete' => 1,
));
```
However the delete action is being called TWICE - the second time it is failing - looking at the kernal it is run from the respond line as well as the invoke line in the kernel
```
public function runRequest($apiRequest) {
$this->boot($apiRequest);
$errorScope = \CRM_Core_TemporaryErrorScope::useException();
list($apiProvider, $apiRequest) = $this->resolve($apiRequest);
$this->authorize($apiProvider, $apiRequest);
$apiRequest = $this->prepare($apiProvider, $apiRequest);
$result = $apiProvider->invoke($apiRequest);
return $this->respond($apiProvider, $apiRequest, $result);
}
```
See ![Screenshot_2019-01-05_10.28.35](/uploads/13bed61a0c4b79909cbf95181626c568/Screenshot_2019-01-05_10.28.35.png)
And ![Screenshot_2019-01-05_10.27.38](/uploads/d56e3c8930acbacffcd44ad761f43bf2/Screenshot_2019-01-05_10.27.38.png) after it returns from invoke
I have been fighting with delete related issues on unit tests in extendedreports - I don't know if they relate5.11https://lab.civicrm.org/dev/core/-/issues/640Create repeating activity requires Event permission2019-01-05T20:23:46ZdavejCreate repeating activity requires Event permissionCreating a repeating activity through the UI gives an Access Denied error unless the user has "access CiviEvent" permission.
**Steps to replicate**
1. Log in as a user without "access CiviEvent" permission.
2. From contact summary, Act...Creating a repeating activity through the UI gives an Access Denied error unless the user has "access CiviEvent" permission.
**Steps to replicate**
1. Log in as a user without "access CiviEvent" permission.
2. From contact summary, Activities tab, click New Activity, choose e.g. Meeting.
3. Expand the "Repeat Activity" section, Click the "After" radio button, Save.
**Expected result**
Confirm dialog lists the instances that will be created.
On clicking Confirm, the instances are created and listed.
**Actual result**
Confirm dialog is blank. Error message appears:
"Access Denied / Ensure you are still logged in and have permission to access this feature.".
On clicking Confirm, the instances are created and listed.
**Analysis**
Problem occurs because the confirm dialog uses a path that requires "access CiviEvent" permission. In CRM/Core/xml/Menu/Misc.xml:
```
<item>
<path>civicrm/recurringentity/preview</path>
<page_callback>CRM_Core_Page_RecurringEntityPreview</page_callback>
<access_arguments>access CiviCRM,access CiviEvent</access_arguments>
<title>Confirm dates</title>
</item>
```
Problem is resolved by removing ",access CiviEvent".5.11https://lab.civicrm.org/dev/core/-/issues/637Schedule Reminder re: event generates fatal mysql error2019-01-08T07:41:15ZUpperholmeSchedule Reminder re: event generates fatal mysql errorI have a schedule reminder set up for an event. The reminder is set up to send on a specific date, and then repeat every 14 days until 2 weeks prior to the event start date.
Here's the log entry when the scheduled job gets triggered:
J...I have a schedule reminder set up for an event. The reminder is set up to send on a specific date, and then repeat every 14 days until 2 weeks prior to the event start date.
Here's the log entry when the scheduled job gets triggered:
Jan 04 14:54:26 [info] $Fatal Error Details = Array
(
[callback] => Array
(
[0] => CRM_Core_Error
[1] => exceptionHandler
)
[code] => -2
[message] => DB Error: syntax error
[mode] => 16
[debug_info] =>
``SELECT e.contact_id as contact_id, e.id as entity_id, "civicrm_participant" as entity_table, 30 as action_schedule_id, MAX(reminder.action_date_time) as latest_log_time
FROM civicrm_participant e
INNER JOIN civicrm_event r ON e.event_id = r.id
INNER JOIN civicrm_contact c ON c.id = e.contact_id AND c.is_deleted = 0 AND c.is_deceased = 0
INNER JOIN civicrm_action_log reminder ON reminder.contact_id = e.contact_id AND
reminder.entity_id = e.id AND
reminder.entity_table = 'civicrm_participant' AND
reminder.action_schedule_id = 30
WHERE (r.id IN ("38")) AND (r.is_active = 1) AND (r.is_template = 0) AND (e.status_id IN (5)) AND ("20190104145426" <= DATE_SUB(, INTERVAL 2 week))
GROUP BY reminder.contact_id, reminder.entity_id, reminder.entity_table
HAVING (TIMESTAMPDIFF(HOUR, latest_log_time, CAST(20190104145426 AS datetime)) >= TIMESTAMPDIFF(HOUR, latest_log_time, DATE_ADD(latest_log_time, INTERVAL 1 MONTH)))``
[nativecode=1064 ** You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' INTERVAL 2 week))
GROUP BY reminder.contact_id, reminder.entity_id, reminder.en' at line 9]
[type] => DB_Error
[user_info] => ``SELECT e.contact_id as contact_id, e.id as entity_id, "civicrm_participant" as entity_table, 30 as action_schedule_id, MAX(reminder.action_date_time) as latest_log_time
FROM civicrm_participant e
INNER JOIN civicrm_event r ON e.event_id = r.id
INNER JOIN civicrm_contact c ON c.id = e.contact_id AND c.is_deleted = 0 AND c.is_deceased = 0
INNER JOIN civicrm_action_log reminder ON reminder.contact_id = e.contact_id AND
reminder.entity_id = e.id AND
reminder.entity_table = 'civicrm_participant' AND
reminder.action_schedule_id = 30
WHERE (r.id IN ("38")) AND (r.is_active = 1) AND (r.is_template = 0) AND (e.status_id IN (5)) AND ("20190104145426" <= DATE_SUB(, INTERVAL 2 week))
GROUP BY reminder.contact_id, reminder.entity_id, reminder.entity_table
HAVING (TIMESTAMPDIFF(HOUR, latest_log_time, CAST(20190104145426 AS datetime)) >= TIMESTAMPDIFF(HOUR, latest_log_time, DATE_ADD(latest_log_time, INTERVAL 1 MONTH)))``
[nativecode=1064 ** You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' INTERVAL 2 week))
GROUP BY reminder.contact_id, reminder.entity_id, reminder.en' at line 9]
[to_string] => [db_error: message="DB Error: syntax error" code=-2 mode=callback callback=CRM_Core_Error::exceptionHandler prefix="" info="``SELECT e.contact_id as contact_id, e.id as entity_id, "civicrm_participant" as entity_table, 30 as action_schedule_id, MAX(reminder.action_date_time) as latest_log_time
FROM civicrm_participant e
INNER JOIN civicrm_event r ON e.event_id = r.id
INNER JOIN civicrm_contact c ON c.id = e.contact_id AND c.is_deleted = 0 AND c.is_deceased = 0
INNER JOIN civicrm_action_log reminder ON reminder.contact_id = e.contact_id AND
reminder.entity_id = e.id AND
reminder.entity_table = 'civicrm_participant' AND
reminder.action_schedule_id = 30
WHERE (r.id IN ("38")) AND (r.is_active = 1) AND (r.is_template = 0) AND (e.status_id IN (5)) AND ("20190104145426" <= DATE_SUB(, INTERVAL 2 week))
GROUP BY reminder.contact_id, reminder.entity_id, reminder.entity_table
HAVING (TIMESTAMPDIFF(HOUR, latest_log_time, CAST(20190104145426 AS datetime)) >= TIMESTAMPDIFF(HOUR, latest_log_time, DATE_ADD(latest_log_time, INTERVAL 1 MONTH)))``
[nativecode=1064 ** You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' INTERVAL 2 week))
GROUP BY reminder.contact_id, reminder.entity_id, reminder.en' at line 9]"]
)5.11https://lab.civicrm.org/dev/core/-/issues/636Custom field for Address: The "No" value is not defaulted2019-01-06T19:32:14ZPradeep Nayakpradpnayak@gmail.comCustom field for Address: The "No" value is not defaultedTo replicate:
* Create custom field Yes/No for custom group "Address Details" extending address
* View contact record
* Click on the Address area
* Open "Address Details"
* Choose "No"
* Click "Save"
* Click on the Address area again
*...To replicate:
* Create custom field Yes/No for custom group "Address Details" extending address
* View contact record
* Click on the Address area
* Open "Address Details"
* Choose "No"
* Click "Save"
* Click on the Address area again
* Open "Address Details"
![Address_Custom_field](/uploads/dc88818dcdf45b50feaa45372f9b7a97/Address_Custom_field.gif)
PR: https://github.com/civicrm/civicrm-core/pull/133975.11https://lab.civicrm.org/dev/core/-/issues/586PCP Report does not show accurate total amount and total donors2019-01-07T23:07:12ZjamiePCP Report does not show accurate total amount and total donorsThe "Personal Campaign Page Report" provides inaccurate numbers for the "Committed Amount" and the "Number of Donors" in the report rows. The numbers in the summary at the bottom are accurate.
Instead of the total "Committed Amount", it...The "Personal Campaign Page Report" provides inaccurate numbers for the "Committed Amount" and the "Number of Donors" in the report rows. The numbers in the summary at the bottom are accurate.
Instead of the total "Committed Amount", it provides one of the committed amounts. Instead of a count of donors, it provides the id of one of the soft credit records.5.11jamiejamiehttps://lab.civicrm.org/dev/core/-/issues/500CiviCase: dashboard summary count includes cases from inactive relationships2019-11-24T19:59:34ZbgmCiviCase: dashboard summary count includes cases from inactive relationshipsHow to reproduce:
* Create a case
* Assign it to someone, view their dashboard, it will show X cases
* Then re-assign it to someone else, view their dashboard, it will still show X cases (instead of X-1).How to reproduce:
* Create a case
* Assign it to someone, view their dashboard, it will show X cases
* Then re-assign it to someone else, view their dashboard, it will still show X cases (instead of X-1).5.11bgmbgmhttps://lab.civicrm.org/dev/core/-/issues/434Scheduled Reminder Error On Using Absolute Date With Repeat2019-01-08T07:47:10ZvarshithScheduled Reminder Error On Using Absolute Date With RepeatOverview
--------
When adding a scheduled reminder with an 'absolute_date' initially and then enabling 'Repeat'and adding conditions results in an SQL error when executed.
Technical Details
-----------------
A function in RecipientBuild...Overview
--------
When adding a scheduled reminder with an 'absolute_date' initially and then enabling 'Repeat'and adding conditions results in an SQL error when executed.
Technical Details
-----------------
A function in RecipientBuilder.php, 'prepareRepetitionEndFilter' expects a date field which would be empty when using an 'absolute_date'. This causes the SQL query to be constructed with an empty string inside thus creating a syntax error.5.11https://lab.civicrm.org/dev/core/-/issues/3268Deprecate `getBasicContactFields` in favor of `getColumns('Contact')`2022-04-22T15:53:15ZJonGoldDeprecate `getBasicContactFields` in favor of `getColumns('Contact')`@eileen has ported some of the cleaner code for defining report specs from Extended Reports to core in the form of `getColumns()` and `getContactColumns()`. Since this appears to be the direction we're headed in, I think it makes sense ...@eileen has ported some of the cleaner code for defining report specs from Extended Reports to core in the form of `getColumns()` and `getContactColumns()`. Since this appears to be the direction we're headed in, I think it makes sense to deprecate `getBasicContactColumns()`, which does a similar job. However, `getBasicContactColumns()` adds a bunch of fields to core reports that `getContactColumns` doesn't.
My PR adds all the missing fields to `getContactColumns` (except for "Organization Name"; this seems unnecessary since it will virtually always match the display name). I also mark `getBasicContactFields()` as deprecated so future cleanup can target reports using it.5.12.0JonGoldJonGoldhttps://lab.civicrm.org/dev/core/-/issues/3264Transaction Date filter in Bookkeeping Transactions report2022-04-22T15:53:09ZMWestergaardTransaction Date filter in Bookkeeping Transactions reportIn the Bookkeeping Transactions report, the filter for Transaction Date does not include time values and leads to missing data. For example, if today is February 10 and I filter Transaction Date on "Yesterday", the WHERE clause looks li...In the Bookkeeping Transactions report, the filter for Transaction Date does not include time values and leads to missing data. For example, if today is February 10 and I filter Transaction Date on "Yesterday", the WHERE clause looks like:
> ( financial_trxn.trxn_date >= '20190209') AND ( financial_trxn.trxn_date <= '20190209' )
Only transactions that occurred exactly at midnight are included. Contrast that with the filter for Date Received:
> ( contribution.receive_date >= '20190209000000') AND ( contribution.receive_date <= '20190209235959' )
I verified on dmaster and wpmaster.5.12.0https://lab.civicrm.org/dev/core/-/issues/3232Soft Credit report fails when Only Full Group By is enabled2022-04-22T15:51:29ZJonGoldSoft Credit report fails when Only Full Group By is enabledThis is replicable by running the report with no changes to defaults on dmaster.
The cause is that the Soft Credit report overrides `CRM_Core_Form::postProcess()` and calls `CRM_Core_DAO::executeQuery()` directly instead of `CRM_Core_Fo...This is replicable by running the report with no changes to defaults on dmaster.
The cause is that the Soft Credit report overrides `CRM_Core_Form::postProcess()` and calls `CRM_Core_DAO::executeQuery()` directly instead of `CRM_Core_Form::buildRows()`, which the FGB safeguards exist. So even though the report is marked as not optimized for FGB, it makes no difference.5.12.0JonGoldJonGoldhttps://lab.civicrm.org/dev/core/-/issues/925Activity report: include case activities filter ignored2020-03-05T20:45:12ZMonish DebActivity report: include case activities filter ignoredYou can see in the where clause case-activity filter field is always set to NULL.You can see in the where clause case-activity filter field is always set to NULL.5.12.0Monish DebMonish Debhttps://lab.civicrm.org/dev/core/-/issues/924Advanced search: activity tags should use select22019-06-05T15:24:08ZMonish DebAdvanced search: activity tags should use select2Steps to replicate:
1. add a tag and flag it as available to activities.
2. load advanced search and expand the activity panel.
Note that the activity field is the old format -- checkbox list. It should use select2. See the case panel ...Steps to replicate:
1. add a tag and flag it as available to activities.
2. load advanced search and expand the activity panel.
Note that the activity field is the old format -- checkbox list. It should use select2. See the case panel for comparison.5.12.0Monish DebMonish Debhttps://lab.civicrm.org/dev/core/-/issues/855Dashboard shows inappropriate warnings about automatic HTTP security diagnostic2019-04-09T01:13:46ZtottenDashboard shows inappropriate warnings about automatic HTTP security diagnosticSteps to reproduce:
* Install dmaster with recent version (e.g. 5.13.alpha1). (Or, if you already have one, then make sure to log out of it.)
* Clear caches (e.g. `cv flush`)
* Login
* Observe the dashboard:
![Screen_Shot_2019-04-06_at...Steps to reproduce:
* Install dmaster with recent version (e.g. 5.13.alpha1). (Or, if you already have one, then make sure to log out of it.)
* Clear caches (e.g. `cv flush`)
* Login
* Observe the dashboard:
![Screen_Shot_2019-04-06_at_10.49.39_AM](/uploads/5e44a4bcdf08750cafdb6dfc3769c743/Screen_Shot_2019-04-06_at_10.49.39_AM.png)
I did a `git bisect` and traced this to 4094935aeace33eb8caf8fdcd7a76d992bdc6682, which changes the technique for detecting HTTP security issues (i.e. `get_headers()` replaced with similar Guzzle calls). Apparently, Guzzle is more noisy, which sounds generally good... except in this case, HTTP errors are expected and desired - and should not be reported.
Environment: [bknix-dfl](https://github.com/totten/bknix/blob/master/profiles/dfl/default.nix)5.12.0