CiviCRM Core issueshttps://lab.civicrm.org/dev/core/-/issues2020-10-14T01:27:41Zhttps://lab.civicrm.org/dev/core/-/issues/1987Fix theme configuration section on Display preference and improve `isFrontend...2020-10-14T01:27:41Zswastik-compucorpFix theme configuration section on Display preference and improve `isFrontendPage` function for Drupal CMSProblem Motivation
----------------------------------------
While working on the Drupal web-forms, when we are using CiviCRM fields (like payment processors) on the Drupal webform pages, the CiviCRM current theme JS and CSS files were le...Problem Motivation
----------------------------------------
While working on the Drupal web-forms, when we are using CiviCRM fields (like payment processors) on the Drupal webform pages, the CiviCRM current theme JS and CSS files were leaking (rendering) on the Drupal webform page. This was making the page styling more difficult as one has to first reset the leaking CSS and then style on top of them. Also, there were some bootstrap JS libraries (when Shoreditch is the CiviCRM) file which was loading on the page. So, if a developer wants to develop a bootstrap based Drupal 7 themes and try to style the CiviCRM components, the Shoreditch bootstrap JS files conflicts with Drupal 7 bootstrap theme JS files.
To fix this we had to find a way to stop CiviCRM to apply its theme assets. The best way of it is to find a way in CiviCRM which will contextually select/deselect a CiviCRM theme on Drupal CMS pages. And apparently, the CiviCRM core provides such a feature under the display preference page to select different Front-end and Back-end theme. Unfortunately, this feature was not for Drupal CMS and hence the issue.
Problem Overview
----------------------------------------
For the Drupal CMS, the CiviCRM doesn't provide separate configurations for setting the frontend theme (FE) and the backend theme (BE). This is however present for other CMS integrations
For Drupal, on the Display Preference page, we only have one option for setting the global theme and it sets the BE only and the user can only set the BE.
![3ffa703e-9774-4224-abb0-c967b809dbef](/uploads/821e12db022a5accb4c5d8f7d8063ae3/3ffa703e-9774-4224-abb0-c967b809dbef.png)
The problem with this is that the Drupal User couldn't set the front end theme and the backend theme separately. So, to fix this we remove [the extra if logic](https://github.com/civicrm/civicrm-core/blob/master/templates/CRM/Admin/Form/Preferences/Display.tpl#L210-L225) just for Drupal CMS which hides the configuration for the FE-theme and BE-theme and loads the configuration for drupal as well. This will print both the configuration fields.
![3403e6d0-6a80-4e20-ac50-bd24190cc858](/uploads/d9efbd1d109e2bb15b0938debda8e32e/3403e6d0-6a80-4e20-ac50-bd24190cc858.png)
Also, the CiviCRM theme CSS was leaking on drupal pages too which uses the CiviCRM fields (and in turn called `civicrm_initialise()` function). This is because `$config->userSystem->isFrontEndPage()` function is buggy for Drupal CMS as it return `false` if the user opens a drupal public page. This is because [`isFrontEndPage()` function ](https://github.com/civicrm/civicrm-core/blob/master/CRM/Utils/System/DrupalBase.php#L658-L664))doesn't take care of the corner case of page URLs which are not CiviCRM's one. As it only checks if the URLs is a CiviCRM public URL
```
$item = CRM_Core_Menu::get($path);
// What if `$item` is empty?
return !empty($item['is_public']);
```
If `$item` is empty (that means it's a non-CiviCRM page) even then it returns `false` because the logic is incomplete. It doesn't check if the `$item` is empty.
This [fix](https://github.com/civicrm/civicrm-core/pull/18322) addresses both these issues.
Example use-case
----------------------------------------
1. Click on **Administration -> Customise data and screens -> Display preference**.
2. Go to `Theme` section
Current behaviour
----------------------------------------
![3ffa703e-9774-4224-abb0-c967b809dbef](/uploads/821e12db022a5accb4c5d8f7d8063ae3/3ffa703e-9774-4224-abb0-c967b809dbef.png)
Proposed behaviour
----------------------------------------
![3403e6d0-6a80-4e20-ac50-bd24190cc858](/uploads/d9efbd1d109e2bb15b0938debda8e32e/3403e6d0-6a80-4e20-ac50-bd24190cc858.png)5.31.0https://lab.civicrm.org/dev/core/-/issues/1986Propose altering the default of send notification to contributor checkbox on...2020-09-21T10:54:22ZeileenPropose altering the default of send notification to contributor checkbox on cancel or edit recurring to offWhen cancelling or updating a recurring contribution there is a checkbox to notify the contributor - this is checked by default.
I use this form a bit as a 'user' and often forget to uncheck it - which results in a pretty mindless commu...When cancelling or updating a recurring contribution there is a checkbox to notify the contributor - this is checked by default.
I use this form a bit as a 'user' and often forget to uncheck it - which results in a pretty mindless communication going out for what is usually either being done as part of a chain of communication with the donor (it's redundant) or an administrative change (the next scheduled date needs updating due to some oddity).
Because it's a rare-ish flow and 9 times out of 10 I mean to uncheck it I have never bothered to edit / maintain the message template.
I realise that I could add an extension to change the default - but my gut is that given I've seen it be problematic on 2 out of 2 sites it would probably be better that people actively choose to check the button rather than have to remember to uncheck it. If you forget to check it it's easy to send a quick email but impossible to recall if it you forget to uncheck it.5.31.0https://lab.civicrm.org/dev/core/-/issues/1983Total Tax Amount on the Contribution (generated in backoffice/offline) no lon...2020-09-01T22:57:35ZKarinGTotal Tax Amount on the Contribution (generated in backoffice/offline) no longer adds up to sum of the Tax Amount for the individual line itemsThis is 5.28.x
![image](/uploads/95bbbea641887b9709aa6d28f16c472e/image.png)
I will look into this.
Issue: tax_amount on contribution = $0 -> but it should be: $35.09 in the screenshot above.This is 5.28.x
![image](/uploads/95bbbea641887b9709aa6d28f16c472e/image.png)
I will look into this.
Issue: tax_amount on contribution = $0 -> but it should be: $35.09 in the screenshot above.5.28.4https://lab.civicrm.org/dev/core/-/issues/1982Case open: doesn't respect case roles "creator" param if unset2020-09-01T22:57:35ZlcdwebCase open: doesn't respect case roles "creator" param if unsetto replicate:
1. create a new case type
2. in the list of case roles, uncheck the "assign to creator" checkbox for the default case coordinator role
3. create a new case on a contact record
**expected result:** no case roles created
*...to replicate:
1. create a new case type
2. in the list of case roles, uncheck the "assign to creator" checkbox for the default case coordinator role
3. create a new case on a contact record
**expected result:** no case roles created
**actual result:** case coordinator role is created and assigned to the logged in user5.29.0lcdweblcdwebhttps://lab.civicrm.org/dev/core/-/issues/1980Add Line Item v4 API2020-09-10T19:29:08ZeileenAdd Line Item v4 APIIn order to do this there is some preliminary work to do as the v3 api has handling that needs to be unpacked first. In general there are 2 parts
1) Get & Delete - the goal here is to use a more conventional hook to do this in financial...In order to do this there is some preliminary work to do as the v3 api has handling that needs to be unpacked first. In general there are 2 parts
1) Get & Delete - the goal here is to use a more conventional hook to do this in financialacls core extension
2) Create - not too sure what this stuff is doing yet....5.31.0https://lab.civicrm.org/dev/core/-/issues/1979Incorrect comparison of status_id when changing status of linked cases2020-09-07T14:31:35ZDaveDIncorrect comparison of status_id when changing status of linked casesIt ends up working anyway because it will just change the status of the other case to the same thing it already was so you don't see any problem, but it's comparing wrong and you get an E_NOTICE: `Undefined index: status_id in CRM_Case_F...It ends up working anyway because it will just change the status of the other case to the same thing it already was so you don't see any problem, but it's comparing wrong and you get an E_NOTICE: `Undefined index: status_id in CRM_Case_Form_Activity_ChangeCaseStatus::beginPostProcess() (line 137 of .../CRM/Case/Form/Activity/ChangeCaseStatus.php).`
1. Create a case.
1. Create another case.
1. Create a link cases activity and link them.
1. Create a change case status activity and check the box to update related cases.
1. Click save.
It looks like it's been this way since it was implemented: https://github.com/civicrm/civicrm-core/commit/74b15fae91a220e2b1ab6f29f6e86001743eac0d#diff-784c2a130a993b23166dadf7f1ddc489R156. The available field at that point is a label not the id (the word id here would really mean option_value.value, but that's not the issue).
So two options:
1. Just remove the `if`, since that's effectively what it's been doing this whole time.
1. Include status_id in the results returned from getRelatedCases().5.31.0https://lab.civicrm.org/dev/core/-/issues/1974Changing field from Multi-Select to Select seems to still be allowed -- but i...2021-03-16T06:59:45ZnoahChanging field from Multi-Select to Select seems to still be allowed -- but is brokenOverview
----------------------------------------
When editing a Multi-Select custom field in the GUI, there are two places where the interface is misleading/broken.
### *Edit Custom Field* form
As of 5.27, "Multi-Select" is not its ...Overview
----------------------------------------
When editing a Multi-Select custom field in the GUI, there are two places where the interface is misleading/broken.
### *Edit Custom Field* form
As of 5.27, "Multi-Select" is not its own HTML type; it is the "Select" type with the "serialize" marker set to true. On the "Edit Custom Field" form ([CRM/Custom/Form/Field.php](https://github.com/civicrm/civicrm-core/blame/5.28/CRM/Custom/Form/Field.php#L328)), "serialize" is represented by a checkbox labeled "Multi-Select". This checkbox can be unchecked, but the "serialize" marker is not changed after the form is submitted.
### *Change Field Type* form
On the "Edit Custom Field" form, if the user clicks "Change Input Field Type", the "Change Field Type" form appears.
- This form still lists "Multi-Select" as an option; it is not aware of the new "serialize" scheme. So the user can change the type to "Multi-Select".
- If a field's HTML type is "Multi-Select" or "Checkbox", the user can choose to convert the field to "Select" (although this is marked "not safe"). As it has always done, Civi [updates the custom field data so that there is only one option value per record, in unserialized form](https://github.com/civicrm/civicrm-core/blob/5.28/CRM/Custom/Form/ChangeFieldType.php#L163), but new code forces the "serialize" marker to stay true, which leads to problems editing field values.
Reproduction steps
----------------------------------------
1. Create an "Alphanumeric" "Checkbox" custom field with more than one option.
1. Edit a record that has the custom field; check off at least two options and save.
1. Go back to the settings screen for the custom field; edit the field settings.
1. Click "Change Input Field Type".
1. Choose "Multi-Select" and save.
1. **Observe that "Data and Input Field" is now just "Alphanumeric"** -- the HTML type is not shown. In the database, the field has "Multi-Select" as its html_type, but this form no longer recognizes that value.
1. Click "Change Input Field Type" again.
1. Choose "Select ( Not Safe )" and save.
1. Observe the helpful warning, and click OK.
1. **Observe that "Multi-Select" is checked,** despite the fact that we supposedly just changed the field type away from Multi-Select. This is because the custom field has "serialize" set to 1, left over from the "CheckBox" type.
1. Uncheck "Multi-Select" and Save.
1. Edit the field settings again.
1. **Observe that "Multi-Select" is now checked again**, despite unchecking it and saving it.
1. Go to the record where you entered data in the custom field before.
1. **Observe that just one of the options you checked before is listed.** This is because you changed the field from Multi-Select to Select. It is expected behavior.
1. Edit the record.
1. **Observe that no value is selected** because the field data is now unserialized, but "serialize" was prevented from changing to 0, so Civi is confused. This is a regression.
Current behaviour
----------------------------------------
The UI claims to allow conversion from multi-value (serialized) types to single-value (unserialized) types, and it does convert the custom data, but doesn't flip the "serialized" switch on the custom field itself, leaving both the data and the user confused.
Expected behaviour
----------------------------------------
You should be able to convert a multi-value field to a single-value field, as you have been able to do in Civi for years. Plenty of warning is provided that this is only something you should do if you take precautions.
After converting a field in this way, the remaining (single) custom field value should appear correctly on a record's edit form.
This feature being broken is a regression.5.28.4https://lab.civicrm.org/dev/core/-/issues/1973Email & Phone storage issues in event location2020-09-18T01:07:09ZjitendraEmail & Phone storage issues in event location**Email** - Second field value cannot be saved on form submit.
To replicate -
- Navigate to Event -> Location tab - https://dmaster.demo.civicrm.org/civicrm/event/manage/location?reset=1&action=update&id=3
- Enter a value for the secon...**Email** - Second field value cannot be saved on form submit.
To replicate -
- Navigate to Event -> Location tab - https://dmaster.demo.civicrm.org/civicrm/event/manage/location?reset=1&action=update&id=3
- Enter a value for the second email field and save. The second field is empty after the form is submitted. And Email2 value is displayed on the first email field
**Phone**: Every time the Location form is submitted, a new row is inserted in phone table even if it already exist.
To replicate -
- Navigate to Event -> Location tab - https://dmaster.demo.civicrm.org/civicrm/event/manage/location?reset=1&action=update&id=3
- Fill both the phone numbers and save.
- Re-save the form without changing any value. 2 new duplicate rows have been inserted in `civicrm_phone` table.
- This happens on every submission of the Location form.
Reverting https://github.com/civicrm/civicrm-core/pull/13534/files fixes both the above issues.5.31.0https://lab.civicrm.org/dev/core/-/issues/1971Option value cache key missing domain ID can result in wrong value retrieved ...2020-08-26T19:27:09ZJKingsnorthOption value cache key missing domain ID can result in wrong value retrieved for domainI cannot provide steps to recreate the issue on dmaster because it's related to a multi-domain setup.
Our step to recreate was to:
- Log in on domain ID 1, send a test email, the 'from' address was 'test@domain1.com'
- Log in on domain ...I cannot provide steps to recreate the issue on dmaster because it's related to a multi-domain setup.
Our step to recreate was to:
- Log in on domain ID 1, send a test email, the 'from' address was 'test@domain1.com'
- Log in on domain ID 2, send a test email, the 'from' address was **still** 'test@domain1.com' (expecting @domain2.com)
In a multi-domain setup, the wrong option value for domain-sensitive option values can be returned. eg: `\CRM_Core_BAO_Domain::getNameAndEmail` returns the name and email of a different domain to the current one.
The problem stems from:
`\CRM_Core_OptionGroup::values`
The value names 'from_email_address' and 'grant_type' can be different depending on the domain ID they are looked up from.
However, the cacheKey does not include the domain ID, so the value for one domain could be cached, and returned when the query is for another domain:
`$cacheKey = self::createCacheKey($name, $flip, $grouping, $localize, $condition, $labelColumnName, $onlyActive, $keyColumnName, $orderBy);`
The domain ID is calculated lower down in the function, and is not passed in as a param.
I think this can be resolved by adding the domainID to the cache key - but only for domain-sensitive values (so as not to reduce performance for values that are shared across multiple domains).
---
I also noticed a mis-match between the current cacheKey (see above), and the one that is generated from flushValues: `$cacheKey = self::createCacheKey($name, $flip, $grouping, $localize, $condition, $labelColumnName, $onlyActive, $keyColumnName);` - the one in flushValues is missing the 'orderBy'. Is this a different problem?5.30.0https://lab.civicrm.org/dev/core/-/issues/1966Views filter on multi-select field stopped working2020-12-07T19:29:15ZPradeep Nayakpradpnayak@gmail.comViews filter on multi-select field stopped workingIn latest version of Civi multi-select field is flagged as serialize=1. Since this change was added to CiviCRM module, views failed to filter on multi-select field like multi-select, multi-select country and state.
PR: https://github.co...In latest version of Civi multi-select field is flagged as serialize=1. Since this change was added to CiviCRM module, views failed to filter on multi-select field like multi-select, multi-select country and state.
PR: https://github.com/civicrm/civicrm-drupal/pull/6155.28.3https://lab.civicrm.org/dev/core/-/issues/1964Merging contacts with the same dedupe exceptions causes DB error2020-08-23T20:54:22ZandrewcormickdockeryMerging contacts with the same dedupe exceptions causes DB errorOverview
----------------------------------------
In certain circumstances, merging two contacts which both have the same dedupe exception pointing to the same third contact will cause a DB error (duplicate entry). This is a typical exa...Overview
----------------------------------------
In certain circumstances, merging two contacts which both have the same dedupe exception pointing to the same third contact will cause a DB error (duplicate entry). This is a typical example:
`UPDATE civicrm_dedupe_exception SET contact_id2 = <cid1> WHERE contact_id2 = <cid2> [nativecode=1062 ** Duplicate entry '<cid3>-<cid1>' for key 'UI_contact_id1_contact_id2']`
Reproduction steps
----------------------------------------
To create the circumstances required to generate this issue, the following really needs to happen:
1. A new person is added to the database
2. Their partner is added to the database
3. A dedupe exception is created between the above contacts to prevent merging partners
4. The partner created at step 2 changes their email or something, thus causing a new duplicate contact to be created
5. A dedupe exception is created between the contact at step 4 and the contact at step 1.
6. The duplicate contacts created at steps 2 and 4 are discovered and a merge is attempted.
7. This fails with the above error.
Note that the order that the above occurs is important. The above order will definitely reproduce the problem, but a different order may not. The real trick is to produce two contact1-contact2 pairs in the civicrm_dedupe_exception table.
Current behaviour
----------------------------------------
Merge fails with unhelpful error message to the user. In our case, it says "DB Error: Already exists".
Expected behaviour
----------------------------------------
The duplicated dedupe exception should simply be ignored. Making the above SQL query "UPDATE IGNORE" instead of simply "UPDATE" would do the trick, although that may not necessarily be the solution, perhaps some test should be made.
Environment information
----------------------------------------
Reproduced on CiviCRM 5.28.1 Demo.5.28.3https://lab.civicrm.org/dev/core/-/issues/1963Subgroup expandy triangle turns into unknown icon when clicked2020-08-22T08:16:30ZDaveDSubgroup expandy triangle turns into unknown icon when clickedOn the Contacts - Manage Groups page, if you have subgroups and you click the triangle to expand to see the subgroups, the icon becomes an unknown icon.
![1](/uploads/b258e202209abbbb9695b32ffba3a974/1.png)
**AFTER CLICKING:**
![2](/...On the Contacts - Manage Groups page, if you have subgroups and you click the triangle to expand to see the subgroups, the icon becomes an unknown icon.
![1](/uploads/b258e202209abbbb9695b32ffba3a974/1.png)
**AFTER CLICKING:**
![2](/uploads/c5e8f86ac1c7df3f958b04a58be2349c/2.png)
It's coming from [civicrm.css](https://github.com/civicrm/civicrm-core/blob/c3852f1c14a206e0218b9502f4d35110fb47e745/css/civicrm.css#L2278) and was part of https://github.com/civicrm/civicrm-core/pull/17296.
I think it's missing `font-family: "FontAwesome";`5.29.0https://lab.civicrm.org/dev/core/-/issues/1961Regression (master & ? 5.29? ) enable disable buttons broken2020-08-22T08:16:30ZeileenRegression (master & ? 5.29? ) enable disable buttons brokenClicking on a button to enable or disable an entity is not firing the jsClicking on a button to enable or disable an entity is not firing the js5.28.3https://lab.civicrm.org/dev/core/-/issues/1959Brick\Math\Exception\RoundingNecessaryException2020-08-21T07:54:12ZDon WijesooriyaBrick\Math\Exception\RoundingNecessaryExceptionOverview
----------------------------------------
When viewing/editing a contribution, throws [- Brick\Math\Exception\RoundingNecessaryException: "Rounding is necessary to represent the result of the operation at this scale." -]
Happen...Overview
----------------------------------------
When viewing/editing a contribution, throws [- Brick\Math\Exception\RoundingNecessaryException: "Rounding is necessary to represent the result of the operation at this scale." -]
Happens in 5.28.0 as a regression of dev/translation#48
Reproduction steps
----------------------------------------
1. Install Civi with sample data
2. Go to any contact
3. Create a new General membership with default values (Completed status etc) **Amount should be $100.00**
4. Go to contributions tab and view the new contribution
5. Throws the following error
![error](/uploads/2f2754546ac7aed5437f2088897bd149/error.PNG)
Environment information
----------------------------------------
* __CiviCRM:__ _5.28.0_
* __PHP:__ _7.2.10_
* __CMS:__ _Drupal 7.69/WordPress 5.5_
This issue only happens with servers not having gmp php extension installed or not getting picked up due to following code in `vendor/brick/math/src/Internal/Calculator.php` from line 76
```php
/**
* Returns the fastest available Calculator implementation.
*
* @codeCoverageIgnore
*
* @return Calculator
*/
private static function detect() : Calculator
{
if (\extension_loaded('gmp')) {
return new Calculator\GmpCalculator();
}
if (\extension_loaded('bcmath')) {
return new Calculator\BcMathCalculator();
}
return new Calculator\NativeCalculator();
}
```
Comments
----------------------------------------
Issue only applies to BCMath5.28.3https://lab.civicrm.org/dev/core/-/issues/1956Typo in groups dropdown on scheduled reminders admin form2020-09-03T00:38:33ZDaveDTypo in groups dropdown on scheduled reminders admin formThis is similar to https://github.com/civicrm/civicrm-core/pull/18154 but it's not as clear that the original intent was correct.
In [the form](https://github.com/civicrm/civicrm-core/blob/5.28.0/CRM/Admin/Form/ScheduleReminders.php#L25...This is similar to https://github.com/civicrm/civicrm-core/pull/18154 but it's not as clear that the original intent was correct.
In [the form](https://github.com/civicrm/civicrm-core/blob/5.28.0/CRM/Admin/Form/ScheduleReminders.php#L253) you have the option to limit to groups, and it seems like it was intended to limit to mailing groups but is missing the first parameter so it shows all.
But for these you might want to send to internal groups or admins, and given that it has showed all groups for a while I'd argue to just remove the parameter completely to explicitly show all.5.30.0https://lab.civicrm.org/dev/core/-/issues/1953Credit card fields still required when a $0 option is selected on event regis...2020-08-14T23:18:25Zmark-rodgers11markrodgers11@gmail.comCredit card fields still required when a $0 option is selected on event registration/contribution pageOverview
----------------------------------------
When submitting an event registration (or contribution page form) with a $0 price option selected the form fails validation, despite credit card fields being hidden. I noticed this on a C...Overview
----------------------------------------
When submitting an event registration (or contribution page form) with a $0 price option selected the form fails validation, despite credit card fields being hidden. I noticed this on a CiviCRM website I manage, reproduced on the circle interactive demo site, also @KarinG reproduced this on yet another site.
https://chat.civicrm.org/civicrm/pl/aer7pqut5b85t8ab83ax3iko3o
Reproduction steps
----------------------------------------
1. Go to an event registration page (or contribution page)
2. Select $0 price option
3. Submit form
Current behaviour
----------------------------------------
![image](/uploads/198a46411385f82538500f2a1d34e940/image.png)
Expected behaviour
----------------------------------------
Credit card fields should not be required when they're hidden.
Environment information
----------------------------------------
* __Browser:__ Chrome 84.0.4147.89
* __CiviCRM:__ 5.28.0
* __PHP:__ 7.2.31
* __CMS:__ Drupal 7.72
* __Database:__ MySQL 5.7.31
* __Web Server:__ _Apache 2.4.46
Comments
----------------------------------------
Works as intended on CiviCRM 5.26.2 but not 5.28.05.28.1https://lab.civicrm.org/dev/core/-/issues/1952Regression: Activities export results in DB error2020-08-15T02:36:42ZPradeep Nayakpradpnayak@gmail.comRegression: Activities export results in DB errorVersion: 5.28.0
Steps to replicate:
1. Find Activities
2. Select all activities (wont replicate if you select check box or limited activities)
3. Choose export activities action
Expected behaviour:
Should able to see export screen
Act...Version: 5.28.0
Steps to replicate:
1. Find Activities
2. Select all activities (wont replicate if you select check box or limited activities)
3. Choose export activities action
Expected behaviour:
Should able to see export screen
Actual Behaviour:
DB Error: no such field
Sql error detail:
```
Database Error Code: Unknown column 'activity_type.component_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 ( civicrm_activity.id ), contact_a.id as contact_id, contact_a.contact_type as `contact_type`, contact_a.contact_sub_type as `contact_sub_type`, contact_a.sort_name as `sort_name`, contact_a.display_name as `display_name`, civicrm_activity.id as activity_id, civicrm_activity.activity_type_id, civicrm_activity.subject as activity_subject, civicrm_activity.activity_date_time as activity_date_time, 1, civicrm_activity.duration as activity_duration, civicrm_activity.location as activity_location, civicrm_activity.details as activity_details, civicrm_activity.source_record_id as source_record_id, civicrm_activity.is_test as activity_is_test, civicrm_activity.campaign_id as activity_campaign_id, civicrm_activity.engagement_level as activity_engagement_level, source_contact.sort_name as source_contact, activity_priority.label as activity_priority,
civicrm_activity.priority_id as priority_id, civicrm_activity.status_id as `status_id`, civicrm_activity.engagement_level as `engagement_level` 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_priority ON (option_group_activity_priority.name = 'priority') LEFT JOIN civicrm_option_value activity_priority ON (civicrm_activity.priority_id = activity_priority.value
AND option_group_activity_priority.id = activity_priority.option_group_id ) LEFT JOIN civicrm_activity AS parent_id ON civicrm_activity.id = parent_id.parent_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 ( civicrm_activity.status_id IN ("1", "2") AND civicrm_activity.is_test = 0 ) AND (contact_a.is_deleted = 0) AND (civicrm_activity.activity_type_id IN (1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 17, 19, 22, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 54, 55)) AND (activity_type.component_id IS NULL OR activity_type.component_id <> 5) AND (activity_type.component_id IS NULL OR activity_type.component_id <> 6) AND (activity_type.component_id IS NULL OR activity_type.component_id <> 9) GROUP BY civicrm_activity.id ORDER BY `contact_a`.`sort_name` ASC, `contact_a`.`id` [nativecode=1054 ** Unknown column 'activity_type.component_id' in 'where clause']
[type] => DB_Error
[user_info] => SELECT ( civicrm_activity.id ), contact_a.id as contact_id, contact_a.contact_type as `contact_type`, contact_a.contact_sub_type as `contact_sub_type`, contact_a.sort_name as `sort_name`, contact_a.display_name as `display_name`, civicrm_activity.id as activity_id, civicrm_activity.activity_type_id, civicrm_activity.subject as activity_subject, civicrm_activity.activity_date_time as activity_date_time, 1, civicrm_activity.duration as activity_duration, civicrm_activity.location as activity_location, civicrm_activity.details as activity_details, civicrm_activity.source_record_id as source_record_id, civicrm_activity.is_test as activity_is_test, civicrm_activity.campaign_id as activity_campaign_id, civicrm_activity.engagement_level as activity_engagement_level, source_contact.sort_name as source_contact, activity_priority.label as activity_priority,
civicrm_activity.priority_id as priority_id, civicrm_activity.status_id as `status_id`, civicrm_activity.engagement_level as `engagement_level` 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_priority ON (option_group_activity_priority.name = 'priority') LEFT JOIN civicrm_option_value activity_priority ON (civicrm_activity.priority_id = activity_priority.value
AND option_group_activity_priority.id = activity_priority.option_group_id ) LEFT JOIN civicrm_activity AS parent_id ON civicrm_activity.id = parent_id.parent_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 ( civicrm_activity.status_id IN ("1", "2") AND civicrm_activity.is_test = 0 ) AND (contact_a.is_deleted = 0) AND (civicrm_activity.activity_type_id IN (1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 17, 19, 22, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 54, 55)) AND (activity_type.component_id IS NULL OR activity_type.component_id <> 5) AND (activity_type.component_id IS NULL OR activity_type.component_id <> 6) AND (activity_type.component_id IS NULL OR activity_type.component_id <> 9) GROUP BY civicrm_activity.id ORDER BY `contact_a`.`sort_name` ASC, `contact_a`.`id` [nativecode=1054 ** Unknown column 'activity_type.component_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 ( civicrm_activity.id ), contact_a.id as contact_id, contact_a.contact_type as `contact_type`, contact_a.contact_sub_type as `contact_sub_type`, contact_a.sort_name as `sort_name`, contact_a.display_name as `display_name`, civicrm_activity.id as activity_id, civicrm_activity.activity_type_id, civicrm_activity.subject as activity_subject, civicrm_activity.activity_date_time as activity_date_time, 1, civicrm_activity.duration as activity_duration, civicrm_activity.location as activity_location, civicrm_activity.details as activity_details, civicrm_activity.source_record_id as source_record_id, civicrm_activity.is_test as activity_is_test, civicrm_activity.campaign_id as activity_campaign_id, civicrm_activity.engagement_level as activity_engagement_level, source_contact.sort_name as source_contact, activity_priority.label as activity_priority,
civicrm_activity.priority_id as priority_id, civicrm_activity.status_id as `status_id`, civicrm_activity.engagement_level as `engagement_level` 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_priority ON (option_group_activity_priority.name = 'priority') LEFT JOIN civicrm_option_value activity_priority ON (civicrm_activity.priority_id = activity_priority.value
AND option_group_activity_priority.id = activity_priority.option_group_id ) LEFT JOIN civicrm_activity AS parent_id ON civicrm_activity.id = parent_id.parent_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 ( civicrm_activity.status_id IN ("1", "2") AND civicrm_activity.is_test = 0 ) AND (contact_a.is_deleted = 0) AND (civicrm_activity.activity_type_id IN (1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 17, 19, 22, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 54, 55)) AND (activity_type.component_id IS NULL OR activity_type.component_id <> 5) AND (activity_type.component_id IS NULL OR activity_type.component_id <> 6) AND (activity_type.component_id IS NULL OR activity_type.component_id <> 9) GROUP BY civicrm_activity.id ORDER BY `contact_a`.`sort_name` ASC, `contact_a`.`id` [nativecode=1054 ** Unknown column 'activity_type.component_id' in 'where clause']"]
)
```
Other information:
1. Can be replicated on https://dmaster.demo.civicrm.org/
2. Cannot replicate with user 15.28.1https://lab.civicrm.org/dev/core/-/issues/1950Profile settings - Add new contacts to a Group? is misleading2020-08-23T21:47:08ZlarsssandergreenProfile settings - Add new contacts to a Group? is misleadingIn settings for profiles, there is an option to "Add new contacts to a Group?" with a help text "Select a group if you are using this profile for adding new contacts, AND you want the new contacts to be automatically assigned to a group....In settings for profiles, there is an option to "Add new contacts to a Group?" with a help text "Select a group if you are using this profile for adding new contacts, AND you want the new contacts to be automatically assigned to a group."
However, on profile submission, any contact is added to the group, not just new contacts. I think that this is the desired behaviour, but the text is misleading.
I would suggest "Add contacts to a group?" and "Select a group if you want contacts to be automatically added to that group when the profile is submitted." or something along those lines.5.30.0https://lab.civicrm.org/dev/core/-/issues/1949Payment method should reflect the last transaction on the contribution2020-09-09T05:18:38ZyashodhaPayment method should reflect the last transaction on the contributionPayment method should reflect the last transaction on the contribution.
When the payment method is updated on the contribution, the system creates a new payment record with the new payment method attached to the contribution.
When the ...Payment method should reflect the last transaction on the contribution.
When the payment method is updated on the contribution, the system creates a new payment record with the new payment method attached to the contribution.
When the contribution is saved, we must update the payment method field on the contribution with the payment method on the most recent payment record attached to that contribution.
I know we are planning on dropping the payment method on contribution and just have it for individual transaction but till the time it does exist it should have the correct value.
Create a contribution which is pay later by check
![pay_later](/uploads/73fda0162672541c39db8f212f945f59/pay_later.png)
Record payment complete with method Cash
![new_payment](/uploads/5c721d3cf7f0d40daf02373a7ce28916/new_payment.png)
It doesn't reflect
![payment_view](/uploads/72697eeae2a99dee75dcc519ece65b97/payment_view.png)5.31.0https://lab.civicrm.org/dev/core/-/issues/1947create config setting to control if roles are disabled when a case is closed2021-08-18T20:34:38Zlcdwebcreate config setting to control if roles are disabled when a case is closedCurrently, when a case is closed each of the relationships (roles) attached to the case are updated with an end date, thus disabling them. This results in the Case Roles listing being empty when you view/manage the case. I understand the...Currently, when a case is closed each of the relationships (roles) attached to the case are updated with an end date, thus disabling them. This results in the Case Roles listing being empty when you view/manage the case. I understand the thought process behind this, but believe it assumes too much. I've had multiple clients be confused when they were not able to view a closed case and see who had been assigned various roles.
I propose we add a config setting to the CiviCase component to condition this behavior. We can default it to the current behavior to avoid any disruption with existing users.
Looking for concept approval and then I'll file a PR.5.40.0lcdweblcdweb