Development issueshttps://lab.civicrm.org/groups/dev/-/issues2023-06-19T23:17:34Zhttps://lab.civicrm.org/dev/core/-/issues/4383One of parameters (value: ) is not of the type CommaSeparatedIntegers for le...2023-06-19T23:17:34ZDaveDOne of parameters (value: ) is not of the type CommaSeparatedIntegers for lesser-permissioned usersI'm not sure all of the variations where you can get this but a simple one is:
`cv ev "civicrm_api3('Relationship', 'create', ['contact_id_a' => 8, 'contact_id_b' => 9, 'relationship_type_id' => 'Sibling of']);"`
where 8 and 9 are suit...I'm not sure all of the variations where you can get this but a simple one is:
`cv ev "civicrm_api3('Relationship', 'create', ['contact_id_a' => 8, 'contact_id_b' => 9, 'relationship_type_id' => 'Sibling of']);"`
where 8 and 9 are suitable individual contacts. It actually happens during the `CRM_Utils_Recent:add()` call that comes after not the relationship creation.
It's from here and it's because it assumes that the earlier query will find at least one row and populate `$ids`: https://github.com/civicrm/civicrm-core/pull/26041/files#diff-7fd1affe37f9de9a37acf9decf9cecb5433999cf097eccda8b1f2af2286c32e3R268
It seems like that wouldn't be limited to just the above scenario.
Came up in weekly webform test runs.5.64.0https://lab.civicrm.org/dev/core/-/issues/4382Admin UI causes search builder (not form builder) to crash2023-07-04T01:29:55ZDaveDAdmin UI causes search builder (not form builder) to crashI think it's from here: https://github.com/civicrm/civicrm-core/commit/db712b3108970b3560488928c85d8f0343016603#diff-191c3573321ff5ab86bbe647462fbdbfbf3779611ec18a4aef86ec1a638d0043R5, which conflicts with the url `civicrm/contact/search...I think it's from here: https://github.com/civicrm/civicrm-core/commit/db712b3108970b3560488928c85d8f0343016603#diff-191c3573321ff5ab86bbe647462fbdbfbf3779611ec18a4aef86ec1a638d0043R5, which conflicts with the url `civicrm/contact/search/builder?reset=1`
While technically a regression, given that it's been stated search builder is not officially supported and was removed from the menu for new sites, I think the todo is to give a heads up somehow that in 5.64 search builder will stop working if you enable admin UI.5.64.0https://lab.civicrm.org/dev/core/-/issues/4377Don't allow scheduled reminders for events to also include groups2023-09-02T05:11:52ZlarsssandergreenDon't allow scheduled reminders for events to also include groupsEdit: See discussion below, this doesn't actually work anyways.
If a user is able to edit events and has access to a particular group, they can add that group to a scheduled reminder for an event with Also include. It doesn't seem like ...Edit: See discussion below, this doesn't actually work anyways.
If a user is able to edit events and has access to a particular group, they can add that group to a scheduled reminder for an event with Also include. It doesn't seem like a good idea to let users scheduled a reminder to potentially a very large number of contacts via an event scheduled reminder, which is intended to email participants for an event.
I can see the case for also including manually selected contacts, but also including groups seems dangerous and an invitation for mistakes. If a user needs to send a scheduled reminder to a group, they would probably be better off using a mailing or a separate scheduled reminder.
Proposal: Disable the Also include > Select Group option in scheduled reminders for events.https://lab.civicrm.org/dev/core/-/issues/4376Search build using Related Contacts (RelationshipCache) doesn't provide optio...2023-06-26T13:44:25ZjitendraSearch build using Related Contacts (RelationshipCache) doesn't provide options under Action dropdown.To replicate:
- Create `New search` from searchkit UI.
- Search for Related Contacts. ![image](/uploads/8619b8b7fce4ab2414ae05c4026c198a/image.png)
- Hit Search.
- Click on `Action` button to check the list of available actions for this...To replicate:
- Create `New search` from searchkit UI.
- Search for Related Contacts. ![image](/uploads/8619b8b7fce4ab2414ae05c4026c198a/image.png)
- Hit Search.
- Click on `Action` button to check the list of available actions for this entity.
- Action dropdown does not lists actions for update, enable/disable, delete relationships ![image](/uploads/99d110a73111bdf5575a935729fe6e4f/image.png)
The problems seems to be in identifying the entity. When the Action button is selected, the search is made to retrieve actions for `RelationshipCache` entity instead of `Relationship`.https://lab.civicrm.org/dev/core/-/issues/4369Trigger-based logging schema reconciliation fails when a column is renamed to...2023-06-16T21:29:35ZDaveDTrigger-based logging schema reconciliation fails when a column is renamed to a different upper/lower caseI'm getting this on upgrade: `ALTER TABLE log_civicrm_uf_group ADD post_url varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'Redirect to URL on submit.' [nativecode=1060 ** Duplicate column name 'post_url']`
and I think it'...I'm getting this on upgrade: `ALTER TABLE log_civicrm_uf_group ADD post_url varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'Redirect to URL on submit.' [nativecode=1060 ** Duplicate column name 'post_url']`
and I think it's from https://github.com/civicrm/civicrm-core/pull/26460 which changed the case. The logging table already contains a column post_URL, so when it tries to reconcile and add a column post_url it says it's a duplicate.
So either the reconcile needs to learn about how to handle this, or the upgrade script itself needs to change the logging table if it exists. The latter is probably simpler.5.64.0https://lab.civicrm.org/dev/core/-/issues/4365AdminUI - don't show or allow deleting reserved custom fields/groups2023-06-26T17:32:11ZDaveDAdminUI - don't show or allow deleting reserved custom fields/groupsPartly a followup to https://lab.civicrm.org/dev/core/-/issues/4338
1. It shows you the reserved groups in the listing - regular core doesn't do this, 'cuz reasons.
2. It lets you delete fields in those groups - not good.
3. It lets you...Partly a followup to https://lab.civicrm.org/dev/core/-/issues/4338
1. It shows you the reserved groups in the listing - regular core doesn't do this, 'cuz reasons.
2. It lets you delete fields in those groups - not good.
3. It lets you delete the group after you've deleted those fields - not good.
Reserved custom groups are always created by extensions, and often depend on them being unchangeable by users.5.64.0https://lab.civicrm.org/dev/wordpress/-/issues/142CiviMail Trackable URL Click Through Broken in WordPress2023-06-15T15:39:04ZMichael LabriolaCiviMail Trackable URL Click Through Broken in WordPressI am using CiviCRM 5.62 with WordPress 6.2.2. After sending a CiviMail with a trackable URL, clicking on the URL in the email produces this WordPress error: There has been a critical error on this website. The PHP error on the server is ...I am using CiviCRM 5.62 with WordPress 6.2.2. After sending a CiviMail with a trackable URL, clicking on the URL in the email produces this WordPress error: There has been a critical error on this website. The PHP error on the server is PHP Fatal error: Uncaught Error: Class "CRM_Mailing_Event_BAO_MailingEventClickThrough" not found in /var/www/fkww/wp-content/plugins/civicrm/wp-rest/Controller/Url.php:58
URL.php is calling CRM_Mailing_Event_BAO_MailingEventClickThrough::track which does not exist anymore. I changed it to CRM_Mailing_Event_BAO_MailingEventTrackableURLOpen::track, which works.
The CiviCRM-Core people said the class name was changed recently, so civicrm-wordpress would need to be updated.5.62.0https://lab.civicrm.org/dev/core/-/issues/4363CiviMail Trackable URL Click Through Broken2023-06-15T15:29:14ZMichael LabriolaCiviMail Trackable URL Click Through BrokenI am using CiviCRM 5.62 with WordPress 6.2.2. After sending a CiviMail with a trackable URL, clicking on the URL in the email produces this WordPress error: There has been a critical error on this website. The PHP error on the server i...I am using CiviCRM 5.62 with WordPress 6.2.2. After sending a CiviMail with a trackable URL, clicking on the URL in the email produces this WordPress error: There has been a critical error on this website. The PHP error on the server is PHP Fatal error: Uncaught Error: Class "CRM_Mailing_Event_BAO_MailingEventClickThrough" not found in /var/www/fkww/wp-content/plugins/civicrm/wp-rest/Controller/Url.php:58
URL.php is calling CRM_Mailing_Event_BAO_MailingEventClickThrough::track which does not exist anymore. I changed it to CRM_Mailing_Event_BAO_MailingEventTrackableURLOpen::track, which works.
I don't know if url.php is supposed to be calling CRM_Mailing_Event_BAO_MailingEventTrackableURLOpen::track (and the WordPress integration is broken) or if there is an alias missing somewhere (and the CiviMail core is broken).
Last time I opened up an issue with the WordPress integration project I was told that they weren't going to fix it and I should consider migrating to a different product, so I'm opening this ticket here.
Thank you.5.62.0https://lab.civicrm.org/dev/core/-/issues/4360AdminUI: Redirect after Search Actions from Contacts in Group broken2023-08-09T14:16:02ZlarsssandergreenAdminUI: Redirect after Search Actions from Contacts in Group brokenIf you have AdminUI, if you do some Search Actions from Contacts in Group (Manage Groups - Contacts for a particular Group), instead of being taken back to Contacts in Group, you are taken to Find Contacts with all Contacts shown. Group ...If you have AdminUI, if you do some Search Actions from Contacts in Group (Manage Groups - Contacts for a particular Group), instead of being taken back to Contacts in Group, you are taken to Find Contacts with all Contacts shown. Group - add contacts is broken in this way, Add activity works as intended.
Related to replacing the [recent PR](https://github.com/civicrm/civicrm-core/pull/26381) replacing Find Contacts in AdminUI.
To reproduce:
1. Contacts - Manage Groups - click contacts beside any group
2. Select some or all contacts
3. Actions - Group - add contacts, then add the contacts to any group
Actual result: Contacts are added to the group, but the user is redirected to the Find Contacts search, showing all contacts.
Expected result: The user returns to Contacts in Group, where they were before.5.64.0https://lab.civicrm.org/dev/core/-/issues/4359Afforms fields are doubled2023-06-15T13:50:57ZlarsssandergreenAfforms fields are doubled![image](/uploads/90aba1ad0e2fe411ce44f9240c6089c4/image.png)
Caused by this [recent PR](https://github.com/civicrm/civicrm-core/pull/26496).![image](/uploads/90aba1ad0e2fe411ce44f9240c6089c4/image.png)
Caused by this [recent PR](https://github.com/civicrm/civicrm-core/pull/26496).5.64.0https://lab.civicrm.org/dev/core/-/issues/4355New Activity with custom radio field gives fatal error2023-07-06T22:45:12ZDaveDNew Activity with custom radio field gives fatal error1. Create a radio field for activities.
2. Go to Contacts - New Activity.
3. Red alert box "network error" and the custom fields don't display. `TypeError: Cannot access offset of type string on string in include() (line 31 of .../templa...1. Create a radio field for activities.
2. Go to Contacts - New Activity.
3. Red alert box "network error" and the custom fields don't display. `TypeError: Cannot access offset of type string on string in include() (line 31 of .../templates_c/en_US/%%1D/1DB/1DB03A28%%CustomField.tpl.php).`
Using php 8. Doesn't happen in php 7.
Works ok in 5.61.5.64.0https://lab.civicrm.org/dev/core/-/issues/4353Review request for legacycode extension2023-06-12T10:55:36ZBjörn EndresReview request for legacycode extensionWe created a helper extension to provide in-line (i.e. same signature) replacements for deprecated CiviCRM Core functions used by other extensions.
Even though this approach might seem odd to you, it will make keeping our 100+ extensio...We created a helper extension to provide in-line (i.e. same signature) replacements for deprecated CiviCRM Core functions used by other extensions.
Even though this approach might seem odd to you, it will make keeping our 100+ extensions up to date much more manageable and safe.
Please review, because automatic availability/distribution in CiviCRM would help to resolve the extensions' new dependency a lot more comfortable and intuitive.
With this in mind, it should be pretty quick and straighforward to review this extension.
You can find the extension [HERE](https://civicrm.org/extensions/legacy-code) and [HERE](https://lab.civicrm.org/extensions/legacycode)https://lab.civicrm.org/dev/core/-/issues/43525.62.0: Automatic CiviDiscount discount for renewal no longer shown in prices...2023-06-19T04:03:31Zcomposerjk5.62.0: Automatic CiviDiscount discount for renewal no longer shown in prices on Membership Signup and Renewal contribution pageOverview
----------------------------------------
On Member Signup and Renewal contribution page with automatic CiviDiscount set, the discount is not being shown for the membership prices.
Issue first appeared in 5.61.0 or 5.61.1 and th...Overview
----------------------------------------
On Member Signup and Renewal contribution page with automatic CiviDiscount set, the discount is not being shown for the membership prices.
Issue first appeared in 5.61.0 or 5.61.1 and then was fixed in 5.61.2, as noted in [this thread](https://chat.civicrm.org/civicrm/pl/6o68trstpigk7dx9p5dd6ncyky). Fix seemed okay through 5.61.4.
Issue re-appeared in 5.62.0. Used the same images posted earlier, but the incorrect output is the same in 5.62.0.
Related issues: #4272 & #4282.
Reproduction steps
----------------------------------------
1. Set up automatically-applied CiviDiscount for fixed amount, renewal (current, grace, expired).
2. Member Signup and Renewal contribution page with basic membership types included; no price sets.
3. Attempt to renew using that contribution page (live or test mode).
Current behaviour
----------------------------------------
What we see in 5.62.0 (and previously in 5.61.1 when it was broken) -- it still mentions the discount in the text above `Membership*` but not in the price buttons:
![image](/uploads/8c1276f1b7f7aa9256b7242bc7b37fd2/image.png)
Expected behaviour
----------------------------------------
What we expect to see (and saw in 5.60 and 5.61.2):
![image](/uploads/c1d816e789f1d761695cef49605c79ea/image.png)
Environment information
----------------------------------------
<!-- Some of the items below may not be relevant for every bug - if in doubt please include more information than you think is neccessary. -->
* __Browser:__ Safari 16.5 (16615.2.9.11.6, 16615)
* __CiviCRM:__ 5.62.0 <!-- If this problem relates to an upgrade, then specify both old and new versions -->
* __PHP:__ 8.0.28
* __CMS:__ WordPress 6.2.2
* __Database:__ MariaDB 10.6
* __Web Server:__ Apache 2.4.57 / Nginx 1.21.3
Comments
----------------------------------------
Let me know if you need more specific steps or detail.
/cc @eileen5.62.0https://lab.civicrm.org/dev/core/-/issues/4350Proposal: Smart Group Profiler to help identify slow smart groups2023-11-02T14:29:14ZlarsssandergreenProposal: Smart Group Profiler to help identify slow smart groupsSlow smart groups are a problem that I'm sure we've all experienced. It's difficult for users to guess which of their potentially many smart groups is exceptionally slow or if they just have too many, each taking a little time. @JonGold ...Slow smart groups are a problem that I'm sure we've all experienced. It's difficult for users to guess which of their potentially many smart groups is exceptionally slow or if they just have too many, each taking a little time. @JonGold has a [profiling script](https://gist.github.com/MegaphoneJon/59089c1e155645a438af41051bca7ce7), but that's not accessible to many. I'm sure many orgs would be happy to cut or re-work their slow smart groups if it meant they could use the listing accordion on individual contacts, etc — but they just don't know which ones they need to cut!
What I propose is a Smart Group Profiler in Admin that lets admin users easily check their smart groups in the UI. Here's a quick sketch:
- The user can select groups to profile or leave the select empty to profile all (active, non-hidden) smart groups
- The user can select to run once or average up to three times, to reduce the potential for random variation
- The profiler queues CRM_Contact_BAO_GroupContactCache::add for each group, in random order
- Once the queue finishes, the user gets a table with average time and links to edit the Smart Group criteria for each
I'd be happy to do this as an extension, but it also seems like something that address a core problem, so I think it makes sense to have in core.5.67.0https://lab.civicrm.org/dev/core/-/issues/4348SearchKit: two displays on dashboard using similar search incorrectly share T...2023-09-12T22:43:47ZcomposerjkSearchKit: two displays on dashboard using similar search incorrectly share Total value -- variable leakage?Overview
----------------------------------------
Following text posted here: https://chat.civicrm.org/civicrm/pl/qp6ssaudj3875qroobpkkciiao
For SearchKit Table Display, it looks like the Totals in the footer is not unique to the indivi...Overview
----------------------------------------
Following text posted here: https://chat.civicrm.org/civicrm/pl/qp6ssaudj3875qroobpkkciiao
For SearchKit Table Display, it looks like the Totals in the footer is not unique to the individual display.
In other words, if you have two membership summary displays and select `Show Totals in Footer` then put both of them on your dashboard, they'll show the same total for whichever table was refreshed last.
Reproduction steps
----------------------------------------
1. Create two membership summary displays in SearchKit that are enabled to be displayed on the dashboard.
1. On the dashboard, drag both of them to display.
1. Notice the total will be the same for both.
2. Refresh the one with the wrong total.
3. Notice that both totals change to that updated total.
#### SearchKit with form and display for Active Memberships
```json
[
[
"SavedSearch",
"save",
{
"records": [
{
"name": "Current_Active_Members",
"label": "Current Active Members Summary",
"form_values": null,
"mapping_id": null,
"search_custom_id": null,
"api_entity": "Membership",
"api_params": {
"version": 4,
"select": [
"membership_type_id:label",
"COUNT(id) AS COUNT_id",
"GROUP_CONCAT(DISTINCT status_id:label) AS GROUP_CONCAT_status_id_label"
],
"orderBy": [],
"where": [
[
"status_id:name",
"IN",
[
"New",
"Grace",
"Current"
]
],
[
"Membership_Contact_contact_id_01.is_deleted",
"=",
false
]
],
"groupBy": [
"membership_type_id"
],
"join": [
[
"Contact AS Membership_Contact_contact_id_01",
"LEFT",
[
"contact_id",
"=",
"Membership_Contact_contact_id_01.id"
],
[
"Membership_Contact_contact_id_01.is_deleted",
"=",
false
]
]
],
"having": []
},
"expires_date": null,
"description": "Display current active members. With new, grace, current."
}
],
"match": [
"name"
]
}
],
[
"SearchDisplay",
"save",
{
"records": [
{
"name": "Current_Active_Members_Table_1",
"label": "Current Active Members Table 1",
"saved_search_id.name": "Current_Active_Members",
"type": "table",
"settings": {
"description": "Display current active members summary. With new, grace, current.",
"sort": [],
"limit": 50,
"pager": [],
"placeholder": 5,
"columns": [
{
"type": "field",
"key": "membership_type_id:label",
"dataType": "Integer",
"label": "Membership Type",
"sortable": true,
"tally": {
"fn": null
}
},
{
"type": "field",
"key": "COUNT_id",
"dataType": "Integer",
"label": "Count",
"sortable": true,
"tally": {
"fn": "SUM"
}
},
{
"type": "field",
"key": "GROUP_CONCAT_status_id_label",
"dataType": "Integer",
"label": "(List) Status",
"sortable": true,
"tally": {
"fn": null
}
}
],
"actions": false,
"classes": [
"table",
"table-striped"
],
"headerCount": false,
"tally": {
"label": "Total"
}
},
"acl_bypass": false
}
],
"match": [
"name",
"saved_search_id"
]
}
],
[
"Afform",
"save",
{
"records": [
{
"name": "afsearchMembersCurrentActiveTable",
"requires": [],
"title": "Members: Current Active Summary",
"description": "Display current active members. With new, grace, current.",
"is_dashlet": true,
"is_public": false,
"is_token": false,
"permission": "access CiviCRM",
"type": "search",
"entity_type": null,
"join_entity": null,
"contact_summary": null,
"summary_contact_type": null,
"icon": "fa-list-alt",
"server_route": "civicrm/member/summary-current",
"redirect": null,
"create_submission": false,
"navigation": {
"parent": "Membership Reports",
"label": "Members: Current Active Summary",
"weight": 9
},
"layout": "<div af-fieldset=\"\">\n <crm-search-display-table search-name=\"Current_Active_Members\" display-name=\"Current_Active_Members_Table_1\"></crm-search-display-table>\n</div>\n"
}
]
}
]
]
```
#### SearchKit with form and display for Not Active Memberships
```json
[
[
"SavedSearch",
"save",
{
"records": [
{
"name": "Not_Active_Members",
"label": "Members: Not Active (Pending, Expired, Deceased)",
"form_values": null,
"mapping_id": null,
"search_custom_id": null,
"api_entity": "Membership",
"api_params": {
"version": 4,
"select": [
"membership_type_id:label",
"COUNT(id) AS COUNT_id",
"GROUP_CONCAT(DISTINCT status_id:label) AS GROUP_CONCAT_status_id_label"
],
"orderBy": [],
"where": [
[
"status_id:name",
"NOT IN",
[
"New",
"Grace",
"Current"
]
],
[
"Membership_Contact_contact_id_01.is_deleted",
"=",
false
]
],
"groupBy": [
"membership_type_id"
],
"join": [
[
"Contact AS Membership_Contact_contact_id_01",
"LEFT",
[
"contact_id",
"=",
"Membership_Contact_contact_id_01.id"
]
]
],
"having": []
},
"expires_date": null,
"description": "Members that do not have a membership status of New, Grace, or Current. Includes at least Pending, Expired, Deceased."
}
],
"match": [
"name"
]
}
],
[
"SearchDisplay",
"save",
{
"records": [
{
"name": "Not_Active_Members_Table_1",
"label": "Not Active Members Table 1",
"saved_search_id.name": "Not_Active_Members",
"type": "table",
"settings": {
"description": "Members: Not Active (Pending, Expired, Deceased)",
"sort": [],
"limit": 50,
"pager": [],
"placeholder": 5,
"columns": [
{
"type": "field",
"key": "membership_type_id:label",
"dataType": "Integer",
"label": "Membership Type",
"sortable": true,
"tally": {
"fn": null
}
},
{
"type": "field",
"key": "COUNT_id",
"dataType": "Integer",
"label": "Count",
"sortable": true,
"tally": {
"fn": "SUM"
}
},
{
"type": "field",
"key": "GROUP_CONCAT_status_id_label",
"dataType": "Integer",
"label": "(List) Status",
"sortable": true,
"tally": {
"fn": null
}
}
],
"actions": false,
"classes": [
"table",
"table-striped"
],
"tally": {
"label": "Total"
}
},
"acl_bypass": false
}
],
"match": [
"name",
"saved_search_id"
]
}
],
[
"Afform",
"save",
{
"records": [
{
"name": "afsearchMembersNotActivePendingExpiredDeceased",
"requires": [],
"title": "Members: Not Active (Pending, Expired, Deceased)",
"description": "",
"is_dashlet": true,
"is_public": false,
"is_token": false,
"permission": "access CiviCRM",
"type": "search",
"entity_type": null,
"join_entity": null,
"contact_summary": null,
"summary_contact_type": null,
"icon": "fa-list-alt",
"server_route": "civicrm/member/summary-notactive",
"redirect": null,
"create_submission": false,
"navigation": {
"parent": "Membership Reports",
"label": "Members: Not Active (Pending, Expired, Deceased)",
"weight": 10
},
"layout": "<div af-fieldset=\"\">\n <crm-search-display-table search-name=\"Not_Active_Members\" display-name=\"Not_Active_Members_Table_1\"></crm-search-display-table>\n</div>\n"
}
]
}
]
]
```
Current behaviour
----------------------------------------
Total incorrect for one of the displays, showing the same value for both. Seems like the variable name may not be unique between the two SearchKit displays. Described above.
Expected behaviour
----------------------------------------
Total should be correct value.
Environment information
----------------------------------------
<!-- Some of the items below may not be relevant for every bug - if in doubt please include more information than you think is neccessary. -->
* __Browser:__ Safari 16.5 (16615.2.9.11.6, 16615)
* __CiviCRM:__ 5.61.2
* __PHP:__ 8.0.28
* __CMS:__ WordPress 6.2.2
* __Database:__ MariaDB 10.6
* __Web Server:__ Apache 2.4.57 / Nginx 1.21.3
Comments
----------------------------------------
Apologies for the long code sections for the exported SearchKit settings.
@colemanw asked to be tagged during the SearchKit meeting, today.https://lab.civicrm.org/dev/core/-/issues/4347Word Replacements Case insensitive2023-06-28T06:57:11ZtreseroWord Replacements Case insensitiveI need to change all instances of SMS to text message (this really needs to be changed in core, most of our 20k plus members have no idea what SMS is).
Using Word Replacements, I put in SMS and Texts. Enabled and cleared caches, no chan...I need to change all instances of SMS to text message (this really needs to be changed in core, most of our 20k plus members have no idea what SMS is).
Using Word Replacements, I put in SMS and Texts. Enabled and cleared caches, no changes to words. And yes I tried with exact match as well. If I add Sms (which shows as well), it removes SMS but still doesn't change anything.
![Screenshot_2023-06-08_094430](/uploads/1b51070f8220c42f7093e1bbf4a82f5d/Screenshot_2023-06-08_094430.jpg)
![image](/uploads/09b4451a3c5bd95a30555e63a78f9498/image.png)
**After Save**
![image](/uploads/7c73249f6845a86cf2d9cceafc5fe12b/image.png)
**Nothing changed**
![image](/uploads/e5ebb044e5ff205c2c8ace631d971821/image.png)https://lab.civicrm.org/dev/core/-/issues/4345SearchKit: Escaped text appearing in dropdown2023-06-08T03:10:06ZcstoneSearchKit: Escaped text appearing in dropdownOverview
----------------------------------------
Not sure if this is a bug or a feature, but the top two fields show up as escaped, the ones under them all look fine.
![friendlyescaping](/uploads/87f99e4f8f53f8fa2f6f573c92679303/friend...Overview
----------------------------------------
Not sure if this is a bug or a feature, but the top two fields show up as escaped, the ones under them all look fine.
![friendlyescaping](/uploads/87f99e4f8f53f8fa2f6f573c92679303/friendlyescaping.png)
{ts escape="sql"}Recurring Frequency Units{/ts}
The full HTML is:
`<div class="select2-result-label" id="select2-result-label-1943" role="option" title="{ts escape="sql"}Recurring Frequency Units{/ts}">{ts escape="sql"}Recurring Frequency Units{/ts}<div class="crm-select2-row-description"><p>{ts escape="sql"}Recurring Frequency Units{/ts}</p></div></div>`
Reproduction steps
----------------------------------------
1. I chose the searches in the screenshot above.
Current behaviour
----------------------------------------
It is displaying the first two options escaped.
Expected behaviour
----------------------------------------
The <ts> doesn't show up on the drop down.
Environment information
----------------------------------------
* __CiviCRM:__ 5.61.beta1https://lab.civicrm.org/dev/core/-/issues/4343SearchKit: Directive Filters can fail with non-privileged user2023-06-07T09:56:20ZJonGoldSearchKit: Directive Filters can fail with non-privileged userIt's possible to get a "Authorization Failed" error as a non-privileged user, even when ACL bypass is enabled. It requires you filter on an entity that has a `labelField` defined in the XML schema.
Steps to replicate:
Import the SK/Aff...It's possible to get a "Authorization Failed" error as a non-privileged user, even when ACL bypass is enabled. It requires you filter on an entity that has a `labelField` defined in the XML schema.
Steps to replicate:
Import the SK/Afform below. Or manually:
* Create a SK query of an entity that contains a labelField. "Countries" works well. No added WHERE, columns, etc. are necessary.
* Create a table display of this SK query. Enable ACL bypass.
* Create an Afform of the table display. Give it a path, make accessible on the front end, use a permission available to anonymous users (e.g. "make online contributions").
* On the second tab of the Afform, add a filter on the id, getting it from the URL.
---
* Once you have the afform in place, visit it as both an admin and anonymous user, both with and without filters.
Admin users get all results without a filter, and a single result with a filter.
Anonymous users can (correctly) get all results without a filter, but adding a filter results in an "Authorization failed" error on the API call.
This happens because there's an API call made where `checkPermissions` is set to whether the SK query should check permissions, but doesn't consider whether an ACL bypass is in place.
```json
[
[
"SavedSearch",
"save",
{
"records": [
{
"name": "d2_test",
"label": "d2 test",
"form_values": null,
"mapping_id": null,
"search_custom_id": null,
"api_entity": "Country",
"api_params": {
"version": 4,
"select": [
"id",
"name"
],
"orderBy": [],
"where": [],
"groupBy": [],
"join": [],
"having": []
},
"expires_date": null,
"description": null
}
],
"match": [
"name"
]
}
],
[
"SearchDisplay",
"save",
{
"records": [
{
"name": "d2_test_Table_1",
"label": "d2 test Table 1",
"saved_search_id.name": "d2_test",
"type": "table",
"settings": {
"description": null,
"sort": [],
"limit": 50,
"pager": [],
"placeholder": 5,
"columns": [
{
"type": "field",
"key": "id",
"dataType": "Integer",
"label": "Country ID",
"sortable": true
},
{
"type": "field",
"key": "name",
"dataType": "String",
"label": "Country",
"sortable": true
}
],
"actions": true,
"classes": [
"table",
"table-striped"
]
},
"acl_bypass": true
}
],
"match": [
"name",
"saved_search_id"
]
}
],
[
"Afform",
"save",
{
"records": [
{
"name": "afsearchD2TestAfform",
"requires": [],
"title": "d2 test afform",
"description": "",
"is_dashlet": false,
"is_public": true,
"is_token": false,
"permission": "make online contributions",
"type": "search",
"icon": "fa-list-alt",
"server_route": "civicrm/d2",
"entity_type": null,
"join_entity": null,
"contact_summary": null,
"summary_contact_type": null,
"redirect": null,
"create_submission": null,
"navigation": null,
"layout": "<div af-fieldset=\"\">\n <crm-search-display-table search-name=\"d2_test\" display-name=\"d2_test_Table_1\" filters=\"{id: routeParams.id}\"></crm-search-display-table>\n</div>\n"
}
]
}
]
]
```JonGoldJonGoldhttps://lab.civicrm.org/dev/core/-/issues/4338Prevent people from sneakily adding fields to your extension's reserved custo...2023-06-15T22:56:03ZDaveDPrevent people from sneakily adding fields to your extension's reserved custom groups by using the Move action1. Make an extension that makes a reserved custom field group.
2. Someone adds a field to some other non-reserved custom field group.
3. Then they sneakily use the Move link from the links on the right to move it into your reserved group...1. Make an extension that makes a reserved custom field group.
2. Someone adds a field to some other non-reserved custom field group.
3. Then they sneakily use the Move link from the links on the right to move it into your reserved group.
4. You make some code update that then crashes or mangles the data in that field because it's not expecting it to be there.
The UI currently goes out of its way to prevent you even seeing that reserved groups exist, and bouncing if you try to hack an edit link to a field. It should also prevent moving a field into the group.5.64.0https://lab.civicrm.org/dev/core/-/issues/4337Dedupe using length doesn't appear to be working2023-06-05T21:12:43ZStoobDedupe using length doesn't appear to be workingTo reproduce on dmaster
1. create a rule that checks email, postal code, or street address on first X characters
2. run dedupe rule and see random (or perhaps name dedupe) certainly not by email
This is [how 'length' feature in dedupe i...To reproduce on dmaster
1. create a rule that checks email, postal code, or street address on first X characters
2. run dedupe rule and see random (or perhaps name dedupe) certainly not by email
This is [how 'length' feature in dedupe is documented](https://docs.civicrm.org/user/en/latest/common-workflows/deduping-and-merging/#configuring-rules) pretty clear it is intended to work this way, and IIRC worked as recently as two years ago @eileen please tag as regression if appropriate
![rule](/uploads/cdbcfacd21f3bc646ccabb9a073c4125/rule.png)
![f](/uploads/f221b72a0c1d1a8f816bf1bba330f1fa/f.png)
![result](/uploads/8ac18e3fcd72de10404db512356b0357/result.png)