Development issueshttps://lab.civicrm.org/groups/dev/-/issues2023-02-27T16:56:29Zhttps://lab.civicrm.org/dev/backdrop/-/issues/1Convert member and group to roles sync rules from database to config2023-02-27T16:56:29ZherbdoolConvert member and group to roles sync rules from database to configCurrently they're stored in the database but they smell a lot like configuration. Better to store them in the config json files and drop the database tables.Currently they're stored in the database but they smell a lot like configuration. Better to store them in the config json files and drop the database tables.herbdoolherbdoolhttps://lab.civicrm.org/dev/core/-/issues/2875CiviCase Forces Case Status to Resolved (Closed) when all Activities in a Seq...2023-09-30T05:03:30ZpbarmakCiviCase Forces Case Status to Resolved (Closed) when all Activities in a Sequence are CompleteOverview
----------------------------------------
For Cases that use a Sequence, once all activities in the sequence are complete, the Case gets set to a Resolved (aka Closed) status. This is fine. However, after a Case is in the Resolve...Overview
----------------------------------------
For Cases that use a Sequence, once all activities in the sequence are complete, the Case gets set to a Resolved (aka Closed) status. This is fine. However, after a Case is in the Resolved status, if a user then wishes to change the status to something other than Resolved (like to a custom status), even though CiviCase says it made the change and even creates a status change activity that shows the status was changed, the case remains in Resolved status.
It looks like Civi/CCase/SequenceListener.php is firing after any case status changes are written to the DB, but SequenceListener is not accounting for someone purposefully trying to change the case status. It only looks for all activities being completed and forces the case back to Resolved.
This doesn't seem like correct behavior nor a good user experience. The listener should check to see if the action was a status change action and not fire the API call in that case. I'm not sure how that can be done (not sure what input the listener has), but that's my guess on how to resolve the issue.
Reproduction steps
----------------------------------------
1. Create a Case Type that uses a sequence of activities (doesn't matter how many)
1. Create a new Case using that type
1. Complete each activity in the sequence and see that the Case automatically changes to Resolved.
1. Try to then change the Case Status to something other than Resolved (like In Progress or Ongoing or any custom status).
1. See that the Case status remains as Resolved, even though a new case activity says it was changed.
Expected behaviour
----------------------------------------
The Case should allow a change in Status even if all Activities in a Sequence are completed. That way user can change to a custom status that also reflects completion (we have multiple status that denote completion but for a variety of reasons).https://lab.civicrm.org/dev/core/-/issues/2874Search Builder: Fails validation when state_province location type is "primar...2021-11-05T20:55:25ZJonGoldSearch Builder: Fails validation when state_province location type is "primary" and operator is "IN"### Steps to Replicate
* On Search Builder, select **Contacts**, **State**, **Primary**, **In**, and at least one value.
* Press **Search**.
### Expected Result
Search completes.
### Actual result
This field fails validation with the e...### Steps to Replicate
* On Search Builder, select **Contacts**, **State**, **Primary**, **In**, and at least one value.
* Press **Search**.
### Expected Result
Search completes.
### Actual result
This field fails validation with the error *Please Enter a Value*.
This is down to [PR #8890](https://github.com/civicrm/civicrm-core/pull/8890)/[CRM-19081](https://issues.civicrm.org/jira/browse/CRM-19081), which introduced special handling for the `state_province` field in Search Builder to handle legacy smart groups.
That PR added this:
```php
if (!is_numeric($value) && $fldName == 'state_province') {
$value = CRM_Core_PseudoConstant::getKey('CRM_Core_BAO_Address', 'state_province_id', $value);
}
```
The ticket isn't specific, but this code suggests that legacy smart groups passed a state `name` or `abbreviation` rather than an ID.
The issue arises with the `IN` operator because it's not passing a numeric value but an array Passing an array to `getKey` returns `NULL`, causing the bug. Adding an `is_array` check to that `if` solves the problem.
I see that PR #8890 has a test, so I'm going to take a quick crack at writing a Search Builder test before submitting my patch.JonGoldJonGoldhttps://lab.civicrm.org/dev/core/-/issues/2873Exporting related contact's information on a contact that is a subtype fails2024-02-02T05:03:23Zfabian_SYSTOPIAExporting related contact's information on a contact that is a subtype failsOverview
----------------------------------------
There is an old bug described on the old issue tracker that prevents related contact information to be exported via the UI if one of the contacts is a subtype.
https://issues.civicrm.org/...Overview
----------------------------------------
There is an old bug described on the old issue tracker that prevents related contact information to be exported via the UI if one of the contacts is a subtype.
https://issues.civicrm.org/jira/browse/CRM-16693
Reproduction steps
----------------------------------------
1. Search for any contacts, e.g. a subtype
1. Select at least one contact and choose "export contacts"
1. choose select fields for export
1. select display name or anything else of the contact (will be exported correctly)
1. select a field of a related contact (relationship) e.g. display name
Current behaviour
----------------------------------------
If one of the contacts is a contact subtype or the relationship is defined to be only allowed among subtypes the exported columns won't contain any data (data of the "main contact" will be exported correctly).
Expected behaviour
----------------------------------------
Data of related contact should be exported as well.
Environment information
----------------------------------------
* Browser: all
* CiviCRM: Since 4.6.x still occuring in 5.35.x
Comments
----------------------------------------
We may have funding to fix this bug and would appreciate an estimate from the core team.Monish DebMonish Debhttps://lab.civicrm.org/dev/core/-/issues/2872Email to Activity processing: If there's a matching org contact and no matchi...2021-11-09T15:24:53Zlisandro_compucorpEmail to Activity processing: If there's a matching org contact and no matching individual, then file on the org instead of creating a new individualOverview
----------------------------------------
Hello CiviCRM team, on the automatic creation of email activities, we are trying to find a solution for the received emails that are associated with organizations, not individuals.
The e...Overview
----------------------------------------
Hello CiviCRM team, on the automatic creation of email activities, we are trying to find a solution for the received emails that are associated with organizations, not individuals.
The emails sent to an organization mail account are associated with a new contact of type `individual`, instead of the existent contact of type `organization`.
This exact same situation was raised a few years ago here: https://civicrm.stackexchange.com/questions/20200/autofiling-email-activities-via-emailprocessor-to-organization
Proposed behaviour
----------------------------------------
We would like to add the ability to save these organization emails on the expected contact. This would be configurable using a specific new setting.
We would do the change on https://github.com/civicrm/civicrm-core/blob/master/CRM/Utils/Mail/Incoming.php#L450
replacing the line for something like
```php
$cType = CRM_Core_BAO_MailSettings::defaultDAO()->save_organization_emails ? NULL : 'Individual';
$dao = CRM_Contact_BAO_Contact::matchContactOnEmail($email, $cType);
```
And adding the new field on MailSetting:
![new_screen](/uploads/6545b96b1b5e7dd1b3244573f86d762c/new_screen.png)
If you think it is an acceptable idea, we will create a PR.
Thanks!5.45.0https://lab.civicrm.org/dev/core/-/issues/28715.43 will need an upgrade message about the token changes - with a link to th...2023-09-24T22:50:51Zeileen5.43 will need an upgrade message about the token changes - with a link to the docshttps://lab.civicrm.org/dev/core/-/issues/2870Upgrade error - upgrading to 5.432021-09-29T22:27:14ZeileenUpgrade error - upgrading to 5.43I just hit this upgrading my local copy of the wmf db (it's unlikely to have much oddness in it as a local dev version)
From https://github.com/civicrm/civicrm-core/commit/9f3b9e969597d718a23a22f904c703338ce186fa
![image](/uploads/1f3e...I just hit this upgrading my local copy of the wmf db (it's unlikely to have much oddness in it as a local dev version)
From https://github.com/civicrm/civicrm-core/commit/9f3b9e969597d718a23a22f904c703338ce186fa
![image](/uploads/1f3e16ec59af641428453c1e52b03f1e/image.png)
SHOW CREATE TABLE
```
CREATE TABLE `civicrm_mapping_field` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Mapping Field ID',
`mapping_id` int(10) unsigned NOT NULL COMMENT 'Mapping to which this field belongs',
`name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'Mapping field key',
`contact_type` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'Contact Type in mapping',
`column_number` int(10) unsigned NOT NULL COMMENT 'Column number for mapping set',
`location_type_id` int(10) unsigned DEFAULT NULL COMMENT 'Location type of this mapping, if required',
`phone_type_id` int(10) unsigned DEFAULT NULL COMMENT 'Which type of phone does this number belongs.',
`im_provider_id` int(10) unsigned DEFAULT NULL COMMENT 'Which type of IM Provider does this name belong.',
`website_type_id` int(10) unsigned DEFAULT NULL COMMENT 'Which type of website does this site belong',
`relationship_type_id` int(10) unsigned DEFAULT NULL COMMENT 'Relationship type, if required',
`relationship_direction` varchar(6) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`grouping` int(10) unsigned DEFAULT 1 COMMENT 'Used to group mapping_field records into related sets (e.g. for criteria sets in search builder\n mappings).',
`operator` varchar(16) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'SQL WHERE operator for search-builder mapping fields (search criteria).',
`value` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'SQL WHERE value for search-builder mapping fields.',
PRIMARY KEY (`id`),
KEY `FK_civicrm_mapping_field_mapping_id` (`mapping_id`),
KEY `FK_civicrm_mapping_field_location_type_id` (`location_type_id`),
KEY `FK_civicrm_mapping_field_relationship_type_id` (`relationship_type_id`),
CONSTRAINT `FK_civicrm_mapping_field_location_type_id` FOREIGN KEY (`location_type_id`) REFERENCES `civicrm_location_type` (`id`),
CONSTRAINT `FK_civicrm_mapping_field_mapping_id` FOREIGN KEY (`mapping_id`) REFERENCES `civicrm_mapping` (`id`),
CONSTRAINT `FK_civicrm_mapping_field_relationship_type_id` FOREIGN KEY (`relationship_type_id`) REFERENCES `civicrm_relationship_type` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC```5.43.0https://lab.civicrm.org/dev/core/-/issues/2869Api4 explorer - Clicking the Debug checkbox on or off doesn't change the samp...2023-09-30T05:15:09ZDaveDApi4 explorer - Clicking the Debug checkbox on or off doesn't change the sample codeI think it should add setDebug()?
Issue needs debugging. I tried clicking the debug checkbox to ... oh, right.
FYI @colemanwI think it should add setDebug()?
Issue needs debugging. I tried clicking the debug checkbox to ... oh, right.
FYI @colemanwhttps://lab.civicrm.org/dev/core/-/issues/2868TypeError: Argument 1 passed to CRM_Import_DataSource_CSV::trimNonBreakingSpa...2021-09-27T23:50:39Zjustinfreeman (Agileware)TypeError: Argument 1 passed to CRM_Import_DataSource_CSV::trimNonBreakingSpaces() must be of the type string, null given in CRM_Import_DataSource_CSV::trimNonBreakingSpacesWhen performing a Contact Import, if the supplied CSV file has multiple blank lines at the end of the file, then the import will abort and an error shown:
`TypeError: Argument 1 passed to CRM_Import_DataSource_CSV::trimNonBreakingSpaces(...When performing a Contact Import, if the supplied CSV file has multiple blank lines at the end of the file, then the import will abort and an error shown:
`TypeError: Argument 1 passed to CRM_Import_DataSource_CSV::trimNonBreakingSpaces() must be of the type string, null given in CRM_Import_DataSource_CSV::trimNonBreakingSpaces`
This error occurs when importing a CSV which has either:
- Multiple blank lines in the CSV file, [CiviCRM_Contact_Search-Fails-Import-1.csv](/uploads/06f1bfd9ce1dff6cc965c7fa42f7b301/CiviCRM_Contact_Search-Fails-Import-1.csv), or
- Has multiple blank lines at the end of the CSV file, [CiviCRM_Contact_Search-Fails-Import-2.csv](/uploads/a472ffd1ed517b2ab593f297224cad09/CiviCRM_Contact_Search-Fails-Import-2.csv)
Conversely, a CSV file will import when:
- There is only 1 blank line at the end of the CSV, [CiviCRM_Contact_Search-OK-Import-2.csv](/uploads/79609a77e01c4aeae2c1cc4e3e8ab48b/CiviCRM_Contact_Search-OK-Import-2.csv), or
- No blank lines, [CiviCRM_Contact_Search-OK-Import-1.csv](/uploads/fb18b66bb23934d7e5dfea2b3a7bbb51/CiviCRM_Contact_Search-OK-Import-1.csv)
Confirmed in CiviCRM 5.40.4 and CiviCRM 5.41.2
**PR submitted**, https://github.com/civicrm/civicrm-core/pull/21638
Agileware Ref: CIVICRM-1847https://lab.civicrm.org/dev/core/-/issues/2867api4 explorer - entity displays as `\undefined` in the generated code sample2021-09-27T05:01:21ZDaveDapi4 explorer - entity displays as `\undefined` in the generated code samplee.g. pick Contact and Get, then look down at the bottom:
```
OOP Style
$contacts = \undefined::get()
->setLimit(25)
->execute();
foreach ($contacts as $contact) {
// do something
}
```
Same on dmaster.demo
FYI @colemanwe.g. pick Contact and Get, then look down at the bottom:
```
OOP Style
$contacts = \undefined::get()
->setLimit(25)
->execute();
foreach ($contacts as $contact) {
// do something
}
```
Same on dmaster.demo
FYI @colemanw5.43.0https://lab.civicrm.org/dev/core/-/issues/2866Start phasing out 'preferred_mail_format'2024-02-27T05:03:24ZeileenStart phasing out 'preferred_mail_format'Preferred mail format was the idea of sending a message in html or text or both depending what you knew about their preferrences. However, mostly this is an email client setting - you send both and the client deals with it.
We actually ...Preferred mail format was the idea of sending a message in html or text or both depending what you knew about their preferrences. However, mostly this is an email client setting - you send both and the client deals with it.
We actually invest quite a lot of code & unnecessary queries into this feature & when it came up there was general support for removing it. I also included it in the dev digest on 12 Sep 2021 - so I think we are a couple of emojis away from concept approval on this
https://github.com/civicrm/civicrm-core/pull/21426#pullrequestreview-751423307https://lab.civicrm.org/dev/core/-/issues/2865Missing message template updates2023-10-02T05:03:25ZDaveDMissing message template updatesI had noticed a missing handful earlier and added it to https://github.com/civicrm/civicrm-core/blob/0ebeb224903925880f3ad0ddacd4e90470049839/CRM/Upgrade/Incremental/MessageTemplates.php#L252, but I'm noticing a few more seem to be out o...I had noticed a missing handful earlier and added it to https://github.com/civicrm/civicrm-core/blob/0ebeb224903925880f3ad0ddacd4e90470049839/CRM/Upgrade/Incremental/MessageTemplates.php#L252, but I'm noticing a few more seem to be out of date. I'll try to reconcile.
It's technically a regression but at first glance they all seem to just be php8 updates, nothing functional.
A bigger project: Why does the upgrade work the way it does and why does it need this list to be manually updated? Why doesn't it just compare the default version in the database to what's on disk, and update it if different? Why does it even need a default version in the database anyway - maybe just because it makes Revert code easier?https://lab.civicrm.org/dev/core/-/issues/2864Meta - token usage 5.43 standardisation effort2022-09-02T01:38:26ZeileenMeta - token usage 5.43 standardisation effortWe are doing a big token standardisation in 5.43 to solve multiple issues and blockers. By getting all these changes into 1 release we can also encourage people to specifically test that rc and any changes that they may need to make can ...We are doing a big token standardisation in 5.43 to solve multiple issues and blockers. By getting all these changes into 1 release we can also encourage people to specifically test that rc and any changes that they may need to make can be around the one release - documentation is [here](https://lab.civicrm.org/-/ide/project/documentation/docs/sysadmin/tree/case/-/docs/upgrade/version-specific.md/)
The goal is to consolidate such that
1. All token rendering is done through the token processor, token hooks are redundant and deprecated
2. All functions on CRM_Utils_Token are unused in core and deprecated except for those in the legacy BAO mailing classes.
3. We freeze, deprecate and phase out in legacy BAO classes in favour of flexmailer
4. All core classes that render tokens do so using consistent token naming & output conventions (rather than dates being formatted in various ways and fields sometimes outputting labels and other times values or name fields https://lab.civicrm.org/dev/core/-/issues/2650)
5. As much as possible we render via tokens rather than smarty in workflow message templates (that couples them with the entity rather than any form flow)
6. pdf & email & scheduled reminder tasks consistently offer the same entity-specific, contact & domain tokens
7. We can start to define obvious missing tokens such as `{domain.now}` (done), `{contribution.balance}` and formatted addresses
Task list / streams - this gives some idea of where things are progressing or blocked
- [x] standardise contact tokens to support/ advertise label style (e.g `{contact.prefix_id:label}`
- [x] make Contact tokens work with partial contact inputs - currently they only work with no contact array passed in, or an array with all possible values - currently blocked on a caching bug https://github.com/civicrm/civicrm-core/pull/21790
- [x] split contact tokens into own class & extend entity tokens like the other classes(blocked on stdise contact tokens)
- [x] switch contact tokens to use apiv4
- [x] work through standardising location token loading (this could go further - ie I had thought about adding loading for billing
- [x] date formatting standardisation [documentation](https://docs.civicrm.org/user/en/latest/common-workflows/tokens-and-mail-merge/#date) https://lab.civicrm.org/dev/core/-/issues/2746
- [x] locale sensitive standardised money formatting https://lab.civicrm.org/dev/core/-/issues/2638 & [pr](https://github.com/civicrm/civicrm-core/pull/21783)
- [x] switch badge tokens to use token processor
- [x] event tokens cleanup & loading fixes + remove unindexed query, move the `fee_amount` and `balance` tokens to the participant tokens class, fix event class to listen to either 'participantId' or 'eventId'. Participant class should run first & load eventId if required. Events should be cached in a static cache as it would be very rare to message thousands of events in one run.
- [x] Recurring contribution tokens work (currently availble in only the recurring_edit template with a pr to extend to cancelled recurring https://test.civicrm.org/job/CiviCRM-Core-PR/44632/
- [x] pdf letter is sane (https://lab.civicrm.org/dev/core/-/issues/2790) enough to extend to deliver tokens for other entities (participant https://lab.civicrm.org/dev/core/-/issues/780)
- [x] email letter extend to deliver tokens for other entities (membership & participant) (https://lab.civicrm.org/dev/core/-/issues/2862)
- [x] scheduled reminders supports participant tokens https://lab.civicrm.org/dev/core/-/issues/779
- [x] domain tokens are consistently available & render https://lab.civicrm.org/dev/core/-/issues/2838 - done but a gap on case tasks as they prioritise being able to filter tokens by case type
- [x] install flexmailer on new installs https://lab.civicrm.org/dev/core/-/issues/2836
- [ ] fix remaining places that process tokens other than via the payment processor
- [x] eliminate replaceGreeting - currently [blocked on apiv4 caching bug](https://github.com/civicrm/civicrm-core/pull/21790)
- [ ] fix CRM_Contact_BAO_Contact_Utils::updateGreeting to not call `getTokenDetails`
- [ ] confirm civicrm_api3_mailing_preview is replaced by flexmailer
- [x] remove getTokenDetails call from CRM_Contribute_Form_Task_PDFLetter - note this appears to be an expensive way to call the contact api & tokens are unused https://github.com/civicrm/civicrm-core/pull/21805
- [x] remove extra rendering in BAO_Pledge https://github.com/civicrm/civicrm-core/pull/21789
- [x] removed getTokenDetails from updatePledgeStatus https://github.com/civicrm/civicrm-core/pull/21847
- [x] remove getTokenDetails from transitionParticipants
- [ ] remove getTokenDetails from sendCancellation & cancelParticipant in selfsvc flow
- [ ] deliverGroup - replaced by flexmailer?
- [ ] MailingPage::preview - replaced by flexmailer?
- [ ] remove hook:;tokenValues from label task
- [ ] getAnonymousTokenDetails ???
- [ ] confirm BAO_Mailing::compose is only via flexmailer
- [x] communicate rc status via dev list
- [x] communicate changes via blog
- [ ] upgrade message https://lab.civicrm.org/dev/core/-/issues/2871
- [ ] docs update to these instructions / check it can still all be done https://docs.civicrm.org/dev/en/latest/step-by-step/create-custom-case-token/
**Currenly out of scope**
- [ ] Token.getlist api - until we have this we have an issue with audience-filtering and with switching tokens depending on the schema. Also case tasks still have to render tokens weirdly without this because they currently filter by case type with partial success https://lab.civicrm.org/dev/core/-/issues/2788
- [ ] Clarify how extensions should render tokens https://lab.civicrm.org/dev/core/-/issues/2863
- [ ] encourage flexmailer with status checks on existing installs https://lab.civicrm.org/dev/core/-/issues/2836
Analysis of current token rendering it core:
Method | Used in | Status
-- | -- | --
Use the token processor | scheduled reminders, civimail with flexmailer in use, activity pdf task | This is the method we are consolidating all paths to use.
Use the functions in CRM_Utils_Token | PDF tasks other than activity | Migrated (PRs on [membership](https://github.com/civicrm/civicrm-core/pull/21521) and [contribution](https://github.com/civicrm/civicrm-core/pull/21524). Also work on fixing up the [pdf task class](https://lab.civicrm.org/dev/core/-/issues/2790) supporting[add participant tokens](https://lab.civicrm.org/dev/core/-/issues/780) (once we’ve finished [the standardisation of those](https://github.com/civicrm/civicrm-core/pull/21587))
| Email tasks | Migrated to token processor. Added tokens for other entities (participant, membership https://lab.civicrm.org/dev/core/-/issues/1396) [also see](https://lab.civicrm.org/dev/core/-/issues/2862)
| Export tasks (when merging contacts in export) | Migrated to token processor
| Profile link rendering | Migrated to token processor
| Storing contact greetings (eg. email_greeting_display) | In progress. Currently resolving inconsistent token syntax and load issues as this needs to be able to use partial pre-loads
Use random ad hoc code | Event badges | [migrated](https://github.com/civicrm/civicrm-core/pull/21587) - this is the only place outside of scheduled reminders where event or participant tokens were used in core
| Send SMS task (BAO_Activity::sendSMS) | migrated
| Labels task CRM_Contact_Form_Task_Label | argh
| CRM_Event_Form_SelfSvcTransfer | Still pretty argh - but this is a workflow message template so the fix is a bit different
| Transition participants | Also a workflow - possibly redundant as seems to be mostly about contact tokens which are resolved in the send function anyway
| Pledge acknowledgements | Also appear to be redundant
| CiviMail with flexmailer not used (many functions & classes) | Push the switch to flexmailer.
| Various unsubscribe / resubscribe type actions | Probably out of scope for this roundhttps://lab.civicrm.org/dev/core/-/issues/2863Agree / document how tokens should be rendered from outside core2023-09-24T22:52:19ZeileenAgree / document how tokens should be rendered from outside coreIdeally we would have one recommended api way to do this. This would be a way that is usable via api explorer and all the ways we use the api and core code would be converted to do things using that same api method
There is [a documenta...Ideally we would have one recommended api way to do this. This would be a way that is usable via api explorer and all the ways we use the api and core code would be converted to do things using that same api method
There is [a documentation pr here](https://lab.civicrm.org/documentation/docs/dev/-/merge_requests/962) - at the moment I don't think it meets this need.
**Permissions & non-workflow rendering**
There is a question as to whether the api would support non-workflow messaging (in which case the api would likely be more like `Message::render()`. The argument against is that the permissions are more complex. However some notes on that
1) the most common use case is probably when checkPermissions = FALSE in php code.
2) there is an appropriate permission already in core
```
render templates' => [
$prefix . ts('render templates'),
ts('Render open-ended template content. (Additional constraints may apply to autoloaded records and specific notations.)'),
],
```
3) currently the v3 MessageTemplate.send api allows access to the core function - it required a messageTemplateID to be set - but this can probably be faked to allow 'any text'https://lab.civicrm.org/dev/core/-/issues/2862Support additional token entities for email letter task2021-10-12T04:23:43ZeileenSupport additional token entities for email letter taskWe've finished getting the email task to use the token processor for existing tokens (contact, contribution) and with a bit more cleanup it is 'easy' to add other entities.
However, there is a gotcha that I discovered on the contributio...We've finished getting the email task to use the token processor for existing tokens (contact, contribution) and with a bit more cleanup it is 'easy' to add other entities.
However, there is a gotcha that I discovered on the contribution task.
If I have 2 contributions in the search and you select to send me emails for both I will get 1 email - with details from only 1 of the contributions. This seems wrong. OTOH if the letter had NO contribution specific tokens it would make sense.....5.43.0https://lab.civicrm.org/dev/core/-/issues/2861regression: Custom searches are completely broken when used as smart groups2021-09-25T08:04:08ZJonGoldregression: Custom searches are completely broken when used as smart groupsI'm attaching a video that demonstrates the replication steps, but:
* Create a new custom search.
* The results of the search are correct.
* Save the results as a smart group.
* View the smart group.
* The smart group contains all contac...I'm attaching a video that demonstrates the replication steps, but:
* Create a new custom search.
* The results of the search are correct.
* Save the results as a smart group.
* View the smart group.
* The smart group contains all contacts.
![broken_custom_searches](/uploads/7298e847393f8456bb907c80820c6d93/broken_custom_searches.mp4)
This led to someone emailing all contacts in their database on a CiviMail, which they're predictably taking seriously.
I traced the issue and found that at `CRM_Contact_BAO_GroupContactCache::insertGroupContactsIntoTempTable()`, there's an [if statement](https://github.com/civicrm/civicrm-core/blob/master/CRM/Contact/BAO/GroupContactCache.php#L832) that looks like it should evaluate to `TRUE` that evaluates to `FALSE` but forcing it to `TRUE` doesn't solve the problem.5.41.2https://lab.civicrm.org/dev/core/-/issues/2860Contribution Page Premium "No Thank You" is always disabled2023-10-01T05:03:26ZredgarContribution Page Premium "No Thank You" is always disabledOverview
----------------------------------------
Contribution pages that have the option of Premiums enabled always have the "No Thank You" checkbox disabled. This is true even if you select a donation greater than the amount for the mi...Overview
----------------------------------------
Contribution pages that have the option of Premiums enabled always have the "No Thank You" checkbox disabled. This is true even if you select a donation greater than the amount for the minimum premium. The checkbox still works - but the input field has disabled="disabled" and the checkbox is always grayed out.
I'm using civicrm 5.41.1 on Joomla.
Proposed behavior
----------------------------------------
Code could be written to enable the checkbox once a donation amount greater than the minimum is selected - but it would be easier, and maybe even preferable to never disable the checkbox.
[screenshots](/uploads/81546b7525d3093b8483b6ffc37f7e35/screenshots.png)
Comments
----------------------------------------
The code that sets it to disabled in in templates/CRM/Contribute/Form/Contribution/PremiumBlock.tpl
Line numbers 44, 47, 96, and 99 hardcode the checkbox to disabled.https://lab.civicrm.org/dev/core/-/issues/2859Custom File field in custom group used by entity group not saving2023-10-03T05:03:21ZnieloCustom File field in custom group used by entity group not savingI attached a new custom group to entity type group and added a field of type file. When editing the group settings and fill in a file, it is posted without errors and notification bubble confirms success. But there is no file uploaded.
...I attached a new custom group to entity type group and added a field of type file. When editing the group settings and fill in a file, it is posted without errors and notification bubble confirms success. But there is no file uploaded.
No error logs even with debugging enabled, file tmp folder is checked and I successfully tried another custom file field attached to entity contact.
Just tried on https://dmaster.demo.civicrm.org/ - same misbehavior.
Looked at the code and it seems that the posted file info is not getting into the params array. Although the posted name is of correct format custom_123_21313 the packages/HTML/QuickForm/Controller.php->exportValues gets "MAX_FILE_SIZE" as key for the custom field. Could it be that https://lab.civicrm.org/dev/core/-/blob/master/CRM/Group/Controller.php 's overridden custom file field preparation causes this error?
Civi and Drupal are current versions.https://lab.civicrm.org/dev/core/-/issues/2858Importing soft credit payments by email address fails with confusing message ...2022-06-11T23:42:51ZjhungerfordImporting soft credit payments by email address fails with confusing message if dedupe rule requires extra fieldsOverview
----------------------------------------
Importing soft credit payments (matched to existing contacts by email address) fails if the relevant Unsupervised dedupe rule requires any extra fields. The error message in this case is:...Overview
----------------------------------------
Importing soft credit payments (matched to existing contacts by email address) fails if the relevant Unsupervised dedupe rule requires any extra fields. The error message in this case is:
`Invalid email address(doesn't exist) email@example.com. Row was skipped`
The proposed change passes any required fields to the dedupe check if they are available in the import, but does not amend the error message if it fails.
Example use-case
----------------------------------------
- Add to the Unsupervised rule so it requires First and Last names as well as email address
- Import soft credit payments where the Fundraiser ID is set by External Identifier (or Contact ID) and the Donor is matched by email, First Name, and Last Name
Current behaviour
----------------------------------------
Currently each row in such an import will fail with this message:
`Invalid email address(doesn't exist) email@example.com. Row was skipped`
Proposed behaviour
----------------------------------------
If the required fields are available in the import data, they could be passed to the dedupe function. This is what I've done here (on version 5.39.2):
https://github.com/AsylumSeekersCentre/civicrm-core/commit/c924fb95a2e311a442656bf65c23523091d351da
If the required fields are not available, it would be better if the error message pointed the user in the right direction. Currently it says that the email address does not exist, but in the case of our import, all of the email addresses did exist for contacts of the appropriate type. I haven't addressed this part of the issue with the code above.
Comments
----------------------------------------
I think the patch above is not the whole solution. That code pathway is used when there is no External Identifier or Contact ID but there is an email address. It then calls the Unsupervised dedupe rule, which may not refer to the email address at all (though the default does). The change I've proposed accommodates extra fields added to the rule, but doesn't consider the possible removal of the email address from the rule.5.51.0https://lab.civicrm.org/dev/core/-/issues/2857Provide ability to search on contact id on Find Activity screen2023-10-06T05:03:16ZyashodhaProvide ability to search on contact id on Find Activity screenOn _Find Activities_ screen, we have ability to search on _Name or Email (Complete OR Partial Name)_
It could be useful to do the same on contact id as well.On _Find Activities_ screen, we have ability to search on _Name or Email (Complete OR Partial Name)_
It could be useful to do the same on contact id as well.yashodhayashodha