CiviCRM Core issues
https://lab.civicrm.org/dev/core/-/issues
2021-07-08T23:35:38Z
https://lab.civicrm.org/dev/core/-/issues/685
PHP 7.3 compatibility
2021-07-08T23:35:38Z
JoeMurray
PHP 7.3 compatibility
PHP 7.3 was released Dec 6, 2018.
Confirm PHP 7.3 compatibity, create tasks in this issue or other related ones if they are found, then update https://docs.civicrm.org/sysadmin/en/latest/requirements/ to indicate PHP 7.3 is supported.
...
PHP 7.3 was released Dec 6, 2018.
Confirm PHP 7.3 compatibity, create tasks in this issue or other related ones if they are found, then update https://docs.civicrm.org/sysadmin/en/latest/requirements/ to indicate PHP 7.3 is supported.
There are a number of Backward Incompatible Changes in 7.3 that may affect us: http://php.net/manual/en/migration73.incompatible.php
In particular:
1. continue statements targeting switch control flow structures will now generate a warning
There don't seem to be that many places where this might be an issue:
``grep -R -n -i -A5 -B5 "continue" ./* | grep -E 'continue|switch' | more
1. Strict Interpretation of Integer String Keys on ArrayAccess
Whack-a-mole efforts may be needed.
I think if enough reports of successful use of 7.3 are found then we should go ahead and update the documentation. I will encourage dev chat channel to weigh in here.
https://lab.civicrm.org/dev/core/-/issues/683
Incorrectly encoded state and country names
2019-02-15T16:47:10Z
mfb
Incorrectly encoded state and country names
Civi 4.3.alpha1 added some new states:
```
(@country_id, '072', 'Pļaviņu novads'),
(@country_id, '046', 'Kokneses novads'),
(@country_id, '065', 'Neretas novads'),
(@country_id, '092', 'Skrīveru novads'),
(@country_id, '007', 'Alūks...
Civi 4.3.alpha1 added some new states:
```
(@country_id, '072', 'Pļaviņu novads'),
(@country_id, '046', 'Kokneses novads'),
(@country_id, '065', 'Neretas novads'),
(@country_id, '092', 'Skrīveru novads'),
(@country_id, '007', 'Alūksnes novads'),
(@country_id, '009', 'Apes novads'),
(@country_id, '015', 'Balvu novads'),
(@country_id, '108', 'Viļakas novads'),
(@country_id, '014', 'Baltinavas novads'),
(@country_id, '082', 'Rug�ju novads'),
etc.
```
but according to the install schema these should be:
```
(NULL, 1119, "072", "Pļaviņu novads"),
(NULL, 1119, "046", "Kokneses novads"),
(NULL, 1119, "065", "Neretas novads"),
(NULL, 1119, "092", "Skrīveru novads"),
(NULL, 1119, "007", "Alūksnes novads"),
(NULL, 1119, "009", "Apes novads"),
(NULL, 1119, "015", "Balvu novads"),
(NULL, 1119, "108", "Viļakas novads"),
(NULL, 1119, "014", "Baltinavas novads"),
(NULL, 1119, "082", "Rugāju novads"),
...
```
I also found one wrongly-encoded country name in my instance. I didn't look into why but maybe no character encoding was specified in the sql commands and it fell back to (wrong) default?
```
mysql> SET NAMES utf8;
Query OK, 0 rows affected (0.00 sec)
mysql> SELECT name FROM civicrm_country WHERE name LIKE '%Saint Barth%';
+---------------------+
| name |
+---------------------+
| Saint Barthélemy |
+---------------------+
1 row in set (0.00 sec)
mysql> SELECT CONVERT(BINARY CONVERT(name USING latin1) USING utf8) FROM civicrm_country WHERE name LIKE '%Saint Barth%';
+-------------------------------------------------------+
| CONVERT(BINARY CONVERT(name USING latin1) USING utf8) |
+-------------------------------------------------------+
| Saint Barthélemy |
+-------------------------------------------------------+
1 row in set (0.00 sec)
```
https://lab.civicrm.org/dev/core/-/issues/682
Add basic contact filters to Summary Contributions Report
2022-09-27T09:41:13Z
francescbassas
Add basic contact filters to Summary Contributions Report
Contributions of deleted contacts are shown on Summary Contributions Report. Adding basic contact filters to the Summary Contributions Report will prevent these "deleted" contributions from being included. In addition it will enable new ...
Contributions of deleted contacts are shown on Summary Contributions Report. Adding basic contact filters to the Summary Contributions Report will prevent these "deleted" contributions from being included. In addition it will enable new possibilities when applying contact filters to the report.
It can be considered a continuation of the work begun in https://issues.civicrm.org/jira/browse/CRM-20545
https://lab.civicrm.org/dev/core/-/issues/677
Current Employer 'refine search' dropdown includes criteria irrelevant to org...
2019-03-26T12:05:19Z
Charlie Dunlavey
Current Employer 'refine search' dropdown includes criteria irrelevant to organisations
To replicate:
* Click 'Contacts' -> 'New Individual'
* Open drop-down list 'Current Employer'
* Select 'Refine search'
* Result: The following criteria in the 'Refine Search' dropdown menu aren't relevant to organisations: 'Gender',...
To replicate:
* Click 'Contacts' -> 'New Individual'
* Open drop-down list 'Current Employer'
* Select 'Refine search'
* Result: The following criteria in the 'Refine Search' dropdown menu aren't relevant to organisations: 'Gender', 'Deceased' (see screenshot)
![current-employer](/uploads/0b555d5e2c53c549d851d78311472eec/current-employer.png)
https://lab.civicrm.org/dev/core/-/issues/676
CRM_Utils_GeocodeTest throwing test-negatives everywhere
2022-09-25T05:03:22Z
totten
CRM_Utils_GeocodeTest throwing test-negatives everywhere
## Details
The relevant code is in https://github.com/civicrm/civicrm-core/blob/5.10/tests/phpunit/CRM/Utils/GeocodeTest.php
Here's an example of the test output:
---
![Screen_Shot_2019-01-21_at_5.09.42_PM](/uploads/f02af91e5d1769ae66...
## Details
The relevant code is in https://github.com/civicrm/civicrm-core/blob/5.10/tests/phpunit/CRM/Utils/GeocodeTest.php
Here's an example of the test output:
---
![Screen_Shot_2019-01-21_at_5.09.42_PM](/uploads/f02af91e5d1769ae661c27dd258f1fc0/Screen_Shot_2019-01-21_at_5.09.42_PM.png)
---
## Discussion
Generally, it looks like the tests take the approach of (a) setup example DB, (b) call Google geocoder API, (c) assert that data is updated with accurate-ish info. Some ideas to mitigate:
1. Turn off testing of `CRM_Utils_GeocodeTest` completely. Communicate more loudly about the functionality moving to an extension. Perhaps bundle the extension.
2. Keep the test, but reduce its scope/utility: in the test output, it shows geo coords like `0.00,0.00`. Make these acceptable. Generally, start by nulling-out the data; then call the geocoder; then assert that the data is numerical. But don't assert that the data is specifically accurate. This utility of this depends on how we wind up with `0.00` values.
3. Keep the test, but reduce its scope/utility: setup a dummy geocoder which uses mock data.
4. Exclude the test from execution - but keep it in the codebase.
5. Setup an API key for testing.
* From security perspective, we can have the CI server pass the key as an environment variable, and the content will be automatically censored in logs. It's not exactly hacker-proof, but it provides some protection.
* From a cost perspective, I guess it depends how much we use the api. The content of `CRM_Utils_GeocodeTest` doesn't look like it'll send a lot of requests. (Maybe ballpark of <10?)
* Suppose we flag the test so that it only runs in `CiviCRM-Core-Matrix`. With 10 requests-per-test-run * 4 test-runs-per-day * 30.4 days-per-mo * 2 server-envs * 4 versions, then we'd be around 10k requests per month.
* Suppose we run the test in all core PRs. If there are 200 PRs/mo and each gets 3 revisions/retests, then that's 200*3*10 or ~6k requests per month.
* Google currently says that they charge $5 per 1k requests; with 10k+6k requests, that's $80/mo. *But* they also say you get a $200/mo credit. That puts us under the budget.
* If the capacity/requirements stay the same, then that's great. But... if somebody does a build-out on the tests to significantly improve coverage, then it's easy to imagine 5x increase in #requests, at which point the costs flip (5*$80=$400/mo), so we'd be on the hook for a balance of $200/mo. It's really not hard to imagine developers quietly increasing IO usage by 5x...
6. Setup an API key... and also a way for these particular tests to run less often (but still feed smoothly into QA process).
Anyway, I'm holding off on judging for a moment. Just want to track this so others can feedack.
https://lab.civicrm.org/dev/core/-/issues/673
Add filter for deleted contacts on Repeat Contributions Report
2019-01-23T08:30:46Z
francescbassas
Add filter for deleted contacts on Repeat Contributions Report
By default Repeat Contributions Report shows contributions for contacts in trash. It is a behavior that can lead to problems and, in our view, should be just the opposite.
By default Repeat Contributions Report shows contributions for contacts in trash. It is a behavior that can lead to problems and, in our view, should be just the opposite.
https://lab.civicrm.org/dev/core/-/issues/670
Cases: Edit Activity does not save tags
2019-01-21T14:27:13Z
debarshi_compucorp
Cases: Edit Activity does not save tags
## Overview
When editing an Activity for cases, the selected `tags` are not saved.
## Steps to reproduce
1. Create new case
2. Open a specific activity
`/civicrm/case/activity?action=update&id=<ACTIVITY_ID>&cid=76&caseid=<CASE_ID>&r...
## Overview
When editing an Activity for cases, the selected `tags` are not saved.
## Steps to reproduce
1. Create new case
2. Open a specific activity
`/civicrm/case/activity?action=update&id=<ACTIVITY_ID>&cid=76&caseid=<CASE_ID>&reset=1
3. Add a new tag, and SAVE
4. See that the tags are not saved.
## Screenshot
![before](/uploads/ce31b7ae73bbe1eec40c5842529e4b80/before.gif)
## Technical Solution
In https://github.com/civicrm/civicrm-core/blob/3bf2661bd263d718e867ad5170965d1bcb110df6/CRM/Case/Form/Activity.php#L546 it is assumed that `$params['tag']` is an array, but actually is a comma separated string.
But in the parent class `CRM_Activity_Form_Activity`, this feature works because of the code https://github.com/civicrm/civicrm-core/blob/43076c76f4724d0f42ceb03b46acfbce2c751233/CRM/Activity/Form/Activity.php#L1066, which converts the string to an Array.
So similar code needs to be implemented in `CRM_Case_Form_Activity`.
```php
if (!empty($params['tag'])) {
if (!is_array($params['tag'])) {
$params['tag'] = explode(',', $params['tag']);
}
foreach ($params['tag'] as $tag) {
$tagParams[$tag] = 1;
}
}
```
https://lab.civicrm.org/dev/core/-/issues/667
Deleting entities leaves obsolete EntityTag records
2023-02-27T05:03:36Z
jensschuppe
Deleting entities leaves obsolete EntityTag records
## Steps to reproduce
* Create a contact
* Assign a tag to the contact
* (Permantently) Delete the contact
## Expected result
The record in `civicrm_entity_tag` for the contact-tag relationship should have been removed.
## Actual res...
## Steps to reproduce
* Create a contact
* Assign a tag to the contact
* (Permantently) Delete the contact
## Expected result
The record in `civicrm_entity_tag` for the contact-tag relationship should have been removed.
## Actual result
The record in `civicrm_entitiy_tag` for the contact-tag relationship retains and will never-ever be deleted.
## Technical background
Since a FK constraint `ON DELETE CASCADE` on the `civicrm_entity_tag` table for all possible entity ID tables is not possible, also due to the aggregated identification (`entity_table` and `entity_id`), this should be done in code when deleting any entity that may be assigned a tag.
https://lab.civicrm.org/dev/core/-/issues/666
Prevent trailing ampersand in some URLs in WordPress
2019-03-13T12:12:33Z
haystack
Prevent trailing ampersand in some URLs in WordPress
There's a minor flaw in `CRM_Utils_System_WordPress::url()` which produces URLs with a trailing `&` when an empty array is passed to `CRM_Utils_System::url()` as the `$query` parameter. See, for example, the call to `CRM_Utils_System::ur...
There's a minor flaw in `CRM_Utils_System_WordPress::url()` which produces URLs with a trailing `&` when an empty array is passed to `CRM_Utils_System::url()` as the `$query` parameter. See, for example, the call to `CRM_Utils_System::url()` in `CRM_Core_Payment::getNotifyUrl()`.
[The flaw](https://lab.civicrm.org/dev/core/blob/master/CRM/Utils/System/WordPress.php#L286-288) is that `$query` is set and is an empty string, which is appended to `$queryParts` and then results in a trailing `&` when the `$queryParts` array [is imploded](https://lab.civicrm.org/dev/core/blob/master/CRM/Utils/System/WordPress.php#L305).
My concern is that the URLs generated when an empty array is passed as the `$query` param are likely to be caught by `redirect_canonical()` with the possible loss of session data as a result of a WordPress-triggered redirect. (Or rather - since the example IPN URL is called externally - others like it in the CiviCRM ecosystem)
PR to follow.
https://lab.civicrm.org/dev/core/-/issues/664
Add new indexes when updating log table schema regardless of engine change
2019-03-18T00:07:09Z
Patrick Figel
pfigel@greenpeace.org
Add new indexes when updating log table schema regardless of engine change
While working on [at.greenpeace.advancedlogtables](https://github.com/greenpeace-cee/at.greenpeace.advancedlogtables), I noticed that the `System.updatelogtables` API call only adds new indexes set by the `alterLogTables` hook when it's ...
While working on [at.greenpeace.advancedlogtables](https://github.com/greenpeace-cee/at.greenpeace.advancedlogtables), I noticed that the `System.updatelogtables` API call only adds new indexes set by the `alterLogTables` hook when it's accompanied by an engine change.
That's generally fine when the indexes don't change, but once new ones are added you'd have to temporarily change the engine or apply the new ones manually.
Is there a particular reason why we'd want to keep that behaviour, or can we change it so that new indexes are added regardless of the engine?
I have [a patch](https://github.com/civicrm/civicrm-core/commit/eababeabc1d0e97a809c7c534ce7e5a73a065c65#diff-e0d65cfb03f2d6f003eb4d598ef7e50b) ready for this, but wanted to check if there's agreement on this first.
5.13.0
https://lab.civicrm.org/dev/core/-/issues/663
Deprecate ARCHIVE format for CiviCRM Database Logging
2021-05-11T16:45:30Z
xurizaemon
Deprecate ARCHIVE format for CiviCRM Database Logging
The ARCHIVE format seemed like a good idea at the time (it takes less space), but my sense is that very few organisations actively involved with CiviCRM choose to use ARCHIVE. I believe the experience of most has been that ARCHIVE storag...
The ARCHIVE format seemed like a good idea at the time (it takes less space), but my sense is that very few organisations actively involved with CiviCRM choose to use ARCHIVE. I believe the experience of most has been that ARCHIVE storage format is unreliable and the cause of various issues affecting site performance, backup reliability and other issues.
I propose that we switch the default storage format for sites activating Database Logging to the current default for that site's database.
Alternative approach might be to ship [nz.co.fuzion.innodbtriggers](https://github.com/eileenmcnaughton/nz.co.fuzion.innodbtriggers) activated by default on new installs (but this feels like it could add more complexity than just removing the ARCHIVE statements on new logging activation).
> "The INNODB format is arguablly a better format for CiviCRM logging. Although INNODB tables take more space, they can be queried much more effectively, which is useful when you want to consult the logs. Consulting the change log for ARCHIVE tables is phohibitivley slow once your logging has been running a while." - [Fuzion InnoDB Triggers extension README](https://github.com/eileenmcnaughton/nz.co.fuzion.innodbtriggers).
IMO this could be a "missing stair" situation - a known issue to those familiar with CiviCRM, but a gotcha for those unfamiliar, and therefore something which can go unfixed for a long time and has impact primarily on those new to the community/userbase.
Of particular consideration is the risk to sites who would be impacted by InnoDB using more diskspace - we don't want to ship a change which triggers disk outages as ARCHIVE tables are unzipped. I propose that we not do that.
I'm interested to hear from CiviCRM community members who do prefer the ARCHIVE format?
Related:
* https://github.com/civicrm/civicrm-sysadmin-guide/pull/142
* https://github.com/eileenmcnaughton/nz.co.fuzion.innodbtriggers
* https://civicrm.stackexchange.com/questions/2137/what-causes-periodic-database-errors-while-using-logging-and-what-should-i-do-a
* https://civicrm.stackexchange.com/questions/17733/db-error-unknown-error-when-adding-custom-field/17743#17743
* https://civicrm.stackexchange.com/questions/17770/archive-not-enabled-by-default-on-mariadb-10-1
* https://civicrm.stackexchange.com/questions/23075/any-other-way-to-disable-db-logging-civicrm-4-6x
* https://civicrm.stackexchange.com/questions/25318/large-civicrm-logs
https://lab.civicrm.org/dev/core/-/issues/662
Mail accounts don't work if the password contains "
2022-10-08T05:03:32Z
johnff
Mail accounts don't work if the password contains "
Mail accounts cannot be read by the activities processor if the password contains "
The fix for this is simple - put addslashes before the password is read, and this fix is working in our production instance.
Mail accounts cannot be read by the activities processor if the password contains "
The fix for this is simple - put addslashes before the password is read, and this fix is working in our production instance.
https://lab.civicrm.org/dev/core/-/issues/660
Fatal DB Error: already exists on event registration/contribution pages when ...
2019-01-17T11:24:07Z
davej
Fatal DB Error: already exists on event registration/contribution pages when profile has user creation
**Steps to replicate**
1. In Drupal account settings, set *Who can register accounts? = Visitors* and un-tick *Require e-mail verification when a visitor creates an account.*
2. In standard *Your Registration Info* profile settings, set ...
**Steps to replicate**
1. In Drupal account settings, set *Who can register accounts? = Visitors* and un-tick *Require e-mail verification when a visitor creates an account.*
2. In standard *Your Registration Info* profile settings, set *Drupal user account registration option? = Account creation required*.
3. Create a basic event with no fees, allowing online registration, using above profile.
4. As an anonymous user, register for the event, using email address and username that do not exist in the Civi or Drupal databases.
**Expected behaviour**
Contact created and registered for event, user created.
**Actual behaviour**
Fatal DB Error: already exists
```
[debug_info] => INSERT INTO civicrm_uf_match (domain_id , uf_id , uf_name , contact_id ) VALUES
( 1 , 5 , 'blah@blah.blah' , 207 ) [nativecode=1062 ** Duplicate entry 'blah@blah.blah' for key 'UI_uf_name_domain_id']
```
2 contacts created with same email address:
- first (by id) with display name = provided name, has participant record, no UF match record.
- second (by id) with display name = email, no participant record, has UF match record.
User created.
Similar past issues:
- [CRM-16234 User Creation via profile fails with DB Error](https://issues.civicrm.org/jira/browse/CRM-16234)
- [CRM-19195 Duplicate entry in civicrm_uf_match when forcing account creation](https://issues.civicrm.org/jira/browse/CRM-19195)
Replicated on 5.9.0/Drupal 7 and current local dmaster.
On local civibuild drupal-demo 5.8.2: the contact, participant, user & UF match records were created successfully.
https://lab.civicrm.org/dev/core/-/issues/656
unreleased regression - attendee report generates undefined property notice
2019-01-14T02:07:11Z
JonGold
unreleased regression - attendee report generates undefined property notice
You can replicate this on dmaster demo by clicking "Refresh Results" on the "Attendee List" report. You'll get this notice once per contact:
```
Notice: Undefined property: CRM_Report_Form_Event_ParticipantListing::$campaigns in CRM_Re...
You can replicate this on dmaster demo by clicking "Refresh Results" on the "Attendee List" report. You'll get this notice once per contact:
```
Notice: Undefined property: CRM_Report_Form_Event_ParticipantListing::$campaigns in CRM_Report_Form_Event_ParticipantListing->alterDisplay() (line 748 of /srv/buildkit/build/dmaster/sites/all/modules/civicrm/CRM/Report/Form/Event/ParticipantListing.php).
```
Ping @yashodha
Ref: core#491
5.10
https://lab.civicrm.org/dev/core/-/issues/652
Copying activity file custom data doesn't copy mime type
2019-01-21T16:41:56Z
Don Wijesooriya
Copying activity file custom data doesn't copy mime type
## Steps to reproduce:
1. Create custom data set for Activities
2. Create custom field of type File
3. Create any type of new activity such as Phone Call
4. Upload an image in the custom field
5. Create another activity without any custo...
## Steps to reproduce:
1. Create custom data set for Activities
2. Create custom field of type File
3. Create any type of new activity such as Phone Call
4. Upload an image in the custom field
5. Create another activity without any custom data
6. Note the id's of the 2 activities
6. In your custom extension, run the following code to copy custom fields from 1st activity to the 2nd
```php
$params = array(
'activityID' => $first_activity_id,
'mainActivityId' => $second_activity_id,
);
CRM_Activity_BAO_Activity::copyExtendedActivityData($params);
```
7. Inspect civicrm_file table
8. The new entry doesn't have mime_type set
## Issue
* In `copyExtendedActivityData()` method in CRM/Activity/BAO/Activity.php 'path' should be renamed to 'type' in the following coding block
```php
$customParams["custom_{$key}_-1"] = array(
'name' => $fileValues[0],
'path' => $fileValues[1],
);
```
![activity](/uploads/effe3764e1c8e552bbfe60b81f3d5469/activity.png)
* This is because in `formatCustomField()` method in CRM/Core/BAO/CustomField.php, the mimeType variable uses 'type' not path
```php
// If we are already passing the file id as a value then retrieve and set the file data
if (CRM_Utils_Rule::integer($value)) {
$fileDAO = new CRM_Core_DAO_File();
$fileDAO->id = $value;
$fileDAO->find(TRUE);
if ($fileDAO->N) {
$fileID = $value;
$fName = $fileDAO->uri;
$mimeType = $fileDAO->mime_type;
}
} else {
$fName = $value['name'];
$mimeType = $value['type'];
}
```
![customfield](/uploads/c2762f6ac5112acde2bbf3690b52a080/customfield.png)
* Furthermore the `path()` method in CRM/Core/BAO/File.php which is used by `copyExtendedActivityData()` return path and mime type
![file](/uploads/77f738950aa9ab463465dfaa0d7ab2e1/file.png)
https://lab.civicrm.org/dev/core/-/issues/651
error exporting contributions with soft credits
2019-03-07T19:55:31Z
ericg
error exporting contributions with soft credits
when trying to export contributions with soft credits I got the following error
unknown column 'Array' in 'group statement'
[civicrm 5.9; drupal 7.x; mariadb; php 7.1]
I traced it to line 152 of
CRM/Export/BAO/Export.php
changing
$...
when trying to export contributions with soft credits I got the following error
unknown column 'Array' in 'group statement'
[civicrm 5.9; drupal 7.x; mariadb; php 7.1]
I traced it to line 152 of
CRM/Export/BAO/Export.php
changing
$groupBy = array('contribution_search_scredit_combined.id', 'contribution_search_scredit_combined.scredit_id');
to
$groupBy = "contribution_search_scredit_combined.id, contribution_search_scredit_combined.scredit_id";
resolved the issue for me.
(I really need to learn how to do proper pull requests)
5.10
https://lab.civicrm.org/dev/core/-/issues/649
DB error on Find Activities with follow up criteria
2019-01-08T20:27:11Z
yashodha
DB error on Find Activities with follow up criteria
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
```
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.11
yashodha
yashodha
https://lab.civicrm.org/dev/core/-/issues/647
Not all unit tests classes are used by jenkins
2019-03-11T13:34:15Z
tschuettler
Not all unit tests classes are used by jenkins
I discovered in https://github.com/civicrm/civicrm-core/pull/13396#issuecomment-451433721 that the test class was not actually used for unit testing.
When checking for further cases I made a script for the `api` and `CRM` test folder t...
I discovered in https://github.com/civicrm/civicrm-core/pull/13396#issuecomment-451433721 that the test class was not actually used for unit testing.
When checking for further cases I made a script for the `api` and `CRM` test folder that checks if there are other occurences where the filename and classname that does not match:
- [x] Filename: api_v3_UserTest Class: api_v3_UserWebsiteTest
- [x] Filename: CRM_Contact_SelectorTest Class: CRM_Contact_Form_SelectorTest
- [x] Filename: CRM_Contribute_Form_TaskTest Class: CRM_Contribute_Form_Tasktest
- [x] Filename: CRM_Custom_Page_AjaxTest Class: CRM_Custom_Page_AJAXTest
- [x] Filename: CRM_Import_DataSource_CsvTest Class: CRM_Import_Datasource_CsvTest
- [x] Filename: CRM_Event_Form_Registration_RegisterTest Class: CRM_Event_Form_RegistrationTest
It looks to me like none of the tests are used by jenkins when they actually should be?
https://lab.civicrm.org/dev/core/-/issues/646
Event date sorting doesn't work for ical listing
2019-01-10T21:16:28Z
yashodha
Event date sorting doesn't work for ical listing
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 ...
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.11
https://lab.civicrm.org/dev/core/-/issues/644
"From" address on membership renewal notices is wrong
2019-03-13T23:50:20Z
JonGold
"From" address on membership renewal notices is wrong
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, 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.11
JonGold
JonGold