Development issueshttps://lab.civicrm.org/groups/dev/-/issues2023-10-27T05:03:24Zhttps://lab.civicrm.org/dev/core/-/issues/2933Search kit feedback - afforms don't offer date range filters on aggregated dates2023-10-27T05:03:24ZeileenSearch kit feedback - afforms don't offer date range filters on aggregated datesThe default value feature in form builder is treating date values as string values. When date values are entered into the form, a LIKE text match is applied to the date. It would be helpful if this were formatt-able as a date.
This is s...The default value feature in form builder is treating date values as string values. When date values are entered into the form, a LIKE text match is applied to the date. It would be helpful if this were formatt-able as a date.
This is strongly connected to https://lab.civicrm.org/dev/core/-/issues/2932 & relates to how the forms handle aggregate dates whereas that is how the search displays do.https://lab.civicrm.org/dev/core/-/issues/2934Searchkit feedback2023-10-10T05:03:21ZeileenSearchkit feedbackRequest for COUNTIF() in the transforms - ie count if field value > xRequest for COUNTIF() in the transforms - ie count if field value > xhttps://lab.civicrm.org/dev/drupal/-/issues/168Notice: Undefined variable: custom_link in civicrm_handler_field_link_contact...2022-12-01T01:13:06ZAndrew WassonNotice: Undefined variable: custom_link in civicrm_handler_field_link_contact->render_link() (line 118 of civicrm/drupal/modules/views/civicrm/civicrm_handler_field_link_contact.inc).Hi Guys,
It's been a while (years) since I've contributed in the issue queue so I'm a little rusty.
This is just an annoyance where CiviCRM tries to render the Contact Link in a view for visitors who don't have the permissions to see i...Hi Guys,
It's been a while (years) since I've contributed in the issue queue so I'm a little rusty.
This is just an annoyance where CiviCRM tries to render the Contact Link in a view for visitors who don't have the permissions to see it. The result is a PHP Warning:
```Notice: Undefined variable: custom_link in civicrm_handler_field_link_contact->render_link() (line 118 of /sites/all/modules/civicrm/drupal/modules/views/civicrm/civicrm_handler_field_link_contact.inc).```
In order to squelch the notice I've added a conditional isset($custom_link). I can't see any adverse consequences from adding it and I'll be happy to make a patch if someone can point me in the direction of some docs for doing so.
Cheers,
Andrew5.57.0https://lab.civicrm.org/dev/core/-/issues/2935Print/Merge produces blank results when using a docx or odt template file2023-07-27T10:57:01ZChrisHardiePrint/Merge produces blank results when using a docx or odt template fileOverview
----------------------------------------
When trying to generate thank you letters or other printed/merged documents, and when uploading a .docx or .odt template file to use, CiviCRM generates blank output (e.g. a blank PDF file...Overview
----------------------------------------
When trying to generate thank you letters or other printed/merged documents, and when uploading a .docx or .odt template file to use, CiviCRM generates blank output (e.g. a blank PDF file, a blank .docx file). When generating the same document without uploading a template file, CiviCRM successfully generates output that contains the desired document body.
Reproduction steps
----------------------------------------
1. Find one or more contacts, or contributions, or other entities that can be printed/merged
1. Select an action that involves print/merge (e.g. thank you letters)
1. Upload a template document to use for the printed/merged output, in .odt or .docx format
1. Generate the merged document in any format (pdf, docx, html, odt)
1. Observe that the resulting document is blank
Expected behaviour
----------------------------------------
When a merged/generated document is produced, it should use the uploaded template and the specified document body, and not be blank.
Environment information
----------------------------------------
* __Browser:__ Attempted with Safari 15.1 and Chrome 96.0.4664.27 on macOS
* __CiviCRM:__ 5.42.0
* __PHP:__ 7.4
* __CMS:__ WordPress 5.8.1https://lab.civicrm.org/dev/core/-/issues/2936When creating a mailing, the name has a character limit but doesn't check for...2023-10-16T05:03:17ZDevAppWhen creating a mailing, the name has a character limit but doesn't check for oneWhen creating a mailing, the name has a character limit but doesn't check for one
The mailing name, subject, from name and from email have a DB field limit of 128 characters, yet the GUI allows for more.
Checked for existing tickets, b...When creating a mailing, the name has a character limit but doesn't check for one
The mailing name, subject, from name and from email have a DB field limit of 128 characters, yet the GUI allows for more.
Checked for existing tickets, but couldn't find this ticket or related error.
![CiviMail_copy_warning](/uploads/422c35417430f15ebe67462800c73628/CiviMail_copy_warning.jpeg)
![error](/uploads/c3276c0c638a2bfa61d482bf2246cf34/error.png)https://lab.civicrm.org/dev/core/-/issues/2937CiviCRM should find proper file id based on file name in case sensitivity mode2023-11-14T05:03:21ZscardiniusCiviCRM should find proper file id based on file name in case sensitivity modeOverview
----------------------------------------
Uploading images via webform to `File` custom field causes invalid preview for files with similar names like *picture.jpg* and *Picture.JPG*
Reproduction steps
-------------------------...Overview
----------------------------------------
Uploading images via webform to `File` custom field causes invalid preview for files with similar names like *picture.jpg* and *Picture.JPG*
Reproduction steps
----------------------------------------
1. create webform for creating contacts with image on `File` custom field
1. fill out the form with image named *Picture.JPG* (first contact)
1. fill out again the form with other image similar named *picture.jpg* (secord contact)
1. open the first contact -> *Picture.JPG* is on display of custom field
1. open the second contact -> *Picture.JPG* is on display of custom field but should be *picture.jpg*
Current behaviour
----------------------------------------
* from unix server perspective files *picture.jpg* and *Picture.JPG* are different - this is fine
* from `CRM_Core_DAO::getFieldValue('CRM_Core_DAO_File', $value, 'id', 'uri');` civicrm method *Picture.JPG* is equal *picture.jpg* because **DB_DataObject** package doesn't use `BINARY` for conditions
https://github.com/civicrm/civicrm-core/blob/c6773e51b512e6531198ffe0c91901f05956d79f/CRM/Core/BAO/CustomField.php#L1174
```php
case 'File':
// In the context of displaying a profile, show file/image
if ($value) {
if ($entityId) {
if (CRM_Utils_Rule::positiveInteger($value)) {
$fileId = $value;
}
else {
$fileId = CRM_Core_DAO::getFieldValue('CRM_Core_DAO_File', $value, 'id', 'uri');
}
```
Expected behaviour
----------------------------------------
CiviCRM should find proper file id based on file name in case sensitivity mode https://dev.mysql.com/doc/refman/5.7/en/case-sensitivity.html
Environment information
----------------------------------------
* __CiviCRM:__ _Master/5.35_
* __PHP:__ _7.3__
* __CMS:__ _Drupal 7_
* __Database:__ _5.7.35-38-log Percona Server_
* __Web Server:__ _Apache 2.4_
Comments
----------------------------------------
simple workaround
```php
// $fileId = CRM_Core_DAO::getFieldValue('CRM_Core_DAO_File', $value, 'id', 'uri');
$query = "SELECT id FROM civicrm_file WHERE uri = BINARY %1";
$params = [
1 => [$value, 'String'],
];
$fileId = (int) CRM_Core_DAO::singleValueQuery($query, $params);
```https://lab.civicrm.org/dev/core/-/issues/2938Proposal - add created_date, modified_date to civicrm_relationship2022-11-25T02:00:54ZeileenProposal - add created_date, modified_date to civicrm_relationshipIt can be useful to know when a relationship was created in CiviCRM (as opposed to when it started)It can be useful to know when a relationship was created in CiviCRM (as opposed to when it started)https://lab.civicrm.org/dev/core/-/issues/2939getFieldValue failed on empty multiple-contact reference field2022-07-02T16:45:27ZAdam WoodgetFieldValue failed on empty multiple-contact reference fieldWhen submitting a record that includes a custom field of multiple contact reference type, if that field is empty (i.e. no contacts), an error message "getFieldValue failed" sometimes occurs and the screen freezes and needs to be reloaded...When submitting a record that includes a custom field of multiple contact reference type, if that field is empty (i.e. no contacts), an error message "getFieldValue failed" sometimes occurs and the screen freezes and needs to be reloaded. The record update seems to go ahead nonetheless.
This seems to be due to a change introduced in https://github.com/civicrm/civicrm-core/pull/18941 that adds support to CRM/Core/BAO/CustomField.php for multiple contact fields. The new logic checks that the value is of the correct type (array or numeric) but omits the check that the value is not empty. (Before this change, one of the conditions was that the value does not equate to false).
Before change (note the `&& $value`):
```php
if ($field['data_type'] == 'ContactReference' && $value) {
if (is_numeric($value)) {
$display = CRM_Core_DAO::getFieldValue('CRM_Contact_DAO_Contact', $value, 'display_name');
}
else {
$display = $value;
}
}
```
After change:
```php
if ($field['data_type'] == 'ContactReference' && (is_array($value) || is_numeric($value))) {
$displayNames = [];
foreach ((array) $value as $contactId) {
$displayNames[] = CRM_Core_DAO::getFieldValue('CRM_Contact_DAO_Contact', $contactId, 'display_name');
}
$display = implode(', ', $displayNames);
}
elseif ($field['data_type'] == 'ContactReference') {
$display = $value;
}
```
Suggested fix - remove vulnerability to empty scalar values being passed:
```php
if ($field['data_type'] == 'ContactReference' && (is_array($value) || is_numeric($value))) {
if (empty($value))
{
$display = '';
}
else
{
$displayNames = [];
foreach ((array) $value as $contactId) {
$displayNames[] = CRM_Core_DAO::getFieldValue('CRM_Contact_DAO_Contact', $contactId, 'display_name');
}
$display = implode(', ', $displayNames);
}
}
elseif ($field['data_type'] == 'ContactReference') {
$display = $value;
}
```5.45.0https://lab.civicrm.org/dev/core/-/issues/2940Remove requirement to have a bounce email account setup2022-09-30T20:45:40ZseamusleeRemove requirement to have a bounce email account setupWith some more modern SMTP providers bounce email accounts may not be necessary for CiviMail Bounces to work because e.g. with Amazon SES / Sendgrid you can get the bounces processed via webhooks instead.
However within the code base we...With some more modern SMTP providers bounce email accounts may not be necessary for CiviMail Bounces to work because e.g. with Amazon SES / Sendgrid you can get the bounces processed via webhooks instead.
However within the code base we assume we need a bounce account to generate stuff like [no-reply email address](https://github.com/civicrm/civicrm-core/blob/master/CRM/Core/BAO/Domain.php#L364) or when we are getting [message ids](https://github.com/civicrm/civicrm-core/blob/513f6a469927c5dc5a41905feb7c3cff2cf15f0b/CRM/Campaign/BAO/Petition.php#L548)
It would be nice to get rid of this reliance on it being the default mail account which is the bounce processing one https://github.com/civicrm/civicrm-core/blob/513f6a469927c5dc5a41905feb7c3cff2cf15f0b/CRM/Core/BAO/MailSettings.php#L59
cc @JoeMurrayMonish DebMonish Debhttps://lab.civicrm.org/dev/core/-/issues/2941Follow-up task - Remove the CiviCRM Connections functionality from CiviCRM co...2024-03-21T05:03:26Zjustinfreeman (Agileware)Follow-up task - Remove the CiviCRM Connections functionality from CiviCRM core (Task 2 of 2) - Remove the codeThis is a follow-up task to https://lab.civicrm.org/dev/core/-/issues/2910 - which was changed to only remove the menu item from the menu as an intermediary step.
To complete this work, this task will remove the CiviCRM Connections func...This is a follow-up task to https://lab.civicrm.org/dev/core/-/issues/2910 - which was changed to only remove the menu item from the menu as an intermediary step.
To complete this work, this task will remove the CiviCRM Connections functionality from CiviCRM core. This concept was already approved on https://lab.civicrm.org/dev/core/-/issues/2910
Agileware Ref: CIVIBLD-286https://lab.civicrm.org/dev/core/-/issues/2942Displaying map for contact address causes WP error2021-11-15T07:59:28Ztreasurer@tricitiesprideDisplaying map for contact address causes WP errorOverview
----------------------------------------
Selecting "map" from the contact detail causes a Wordpress error.
![image](/uploads/6da1e74e2278d36dd879c7cf4a106605/image.png)
![image](/uploads/86c348df39b887caa6d56a9f92756bee/image....Overview
----------------------------------------
Selecting "map" from the contact detail causes a Wordpress error.
![image](/uploads/6da1e74e2278d36dd879c7cf4a106605/image.png)
![image](/uploads/86c348df39b887caa6d56a9f92756bee/image.png)
Reproduction steps
----------------------------------------
1. Click on **Contacts -> Map**.
Current behaviour
----------------------------------------
Selecting "map" from the contact detail causes a Wordpress error.
![image](/uploads/6da1e74e2278d36dd879c7cf4a106605/image.png)
![image](/uploads/86c348df39b887caa6d56a9f92756bee/image.png)
```
Error Details
=============
An error of type E_ERROR was caused in line 128 of the file /wp-content/plugins/civicrm/civicrm/CRM/Contact/Form/Task/Map.php. Error message: Uncaught Error: Using $this when not in object context in /wp-content/plugins/civicrm/civicrm/CRM/Contact/Form/Task/Map.php:128
Stack trace:
#0 /wp-content/plugins/civicrm/civicrm/CRM/Contact/Form/Task/Map.php(92): CRM_Contact_Form_Task_Map::createMapXML(Array, 1, Object(CRM_Contact_Form_Task_Map), true, 'Contact')
#1 /wp-content/plugins/civicrm/civicrm/CRM/Core/Form.php(629): CRM_Contact_Form_Task_Map->preProcess()
#2 /wp-content/plugins/civicrm/civicrm/CRM/Core/QuickForm/Action/Display.php(76): CRM_Core_Form->buildForm()
#3 /wp-content/plugins/civicrm/civicrm/packages/HTML/QuickForm/Controller.php(203): CRM_Core_QuickForm_Action_Display->perform(Object(CRM_Contact_Form_Task_Map), 'display')
#4 /wp-content/plugins/civicrm/civicrm/packages/HTML/QuickForm/Page.php(103): HTML_QuickForm_Controller->handle(Object(CRM_C
```
Expected behaviour
----------------------------------------
Map should display
Environment information
----------------------------------------
* __Browser:__ _Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36_
* __CiviCRM:__ Version 5.43.0
* __PHP:__ _7.4.22__
* __CMS:__ _Wordpress Version 5.8.1_
* __Database:__ MariaDB 10.3.31-MariaDB-log-cll-lve - MariaDB Server..._
* __Web Server:__ Apache 2.4.48_5.43.1https://lab.civicrm.org/dev/core/-/issues/3561CiviMail stopped sending email after upgrade to CiviCRM 5.432022-06-11T14:53:42Zlishaw1968lshaw@lacliniquefinanciere.comCiviMail stopped sending email after upgrade to CiviCRM 5.43CiviMail does not send test email after upgrade to CiviCRM 5.43CiviMail does not send test email after upgrade to CiviCRM 5.435.43.1https://lab.civicrm.org/dev/core/-/issues/2943CiviCRM System Status Page tabs links a bit broken2023-10-12T05:03:15Zluke.stewartCiviCRM System Status Page tabs links a bit brokenOverview
----------------------------------------
If you right click on the "Visible" or "Hidden" tabs and open in new tab on the System Status Check page you get the following URLS which are broken:
https://dmaster.demo.civicrm.org/civi...Overview
----------------------------------------
If you right click on the "Visible" or "Hidden" tabs and open in new tab on the System Status Check page you get the following URLS which are broken:
https://dmaster.demo.civicrm.org/civicrm/a/#/tab-status-visible-1
https://dmaster.demo.civicrm.org/civicrm/a/#tab-status-visible-0
Reproduction steps
----------------------------------------
1. Go to https://dmaster.demo.civicrm.org/civicrm/a/#/status
1. Right click (or use a OS/browser appropriate method to do the similar) on "Active" or "Hidden" tabs select Open in New Tab/Window
1. See the "unknown path" error page when you are taken to https://dmaster.demo.civicrm.org/civicrm/a/#/status or https://dmaster.demo.civicrm.org/civicrm/a/#/tab-status-visible-1
Expected behaviour
----------------------------------------
Should the page load with the appropriate tab selected. Should these be repurposed as a non link element to prevent this bad behaviour being available.
Does it really matter on such an admin focused page.
Perhaps not.https://lab.civicrm.org/dev/core/-/issues/2944Make report column groups hookable2023-10-13T05:03:24ZyashodhaMake report column groups hookableProvide a way to manipulate column groups in report to change the order of the column checkboxes in the _Columns_ tab.Provide a way to manipulate column groups in report to change the order of the column checkboxes in the _Columns_ tab.yashodhayashodhahttps://lab.civicrm.org/dev/core/-/issues/3585Mosaico Hangs2022-06-11T14:54:54ZGrowMosaico HangsWe are suddenly experiencing a problem with Mosaico.
The grey bar appears at bottom of screen, "Save" button at top right disappears, and templates and designing/templates on left of screen remains frozen.
![image](/uploads/0ac8e12522b3...We are suddenly experiencing a problem with Mosaico.
The grey bar appears at bottom of screen, "Save" button at top right disappears, and templates and designing/templates on left of screen remains frozen.
![image](/uploads/0ac8e12522b3d175cb95ab16973c43e1/image.png)
Are there any known issues that have come up since recent updates either to Civi or Mosaico?
- CMS: WordPress (latest)
- Plugins (all updated)
- Browser: Chrome (latest)
- Civi Extensions - Documenten (does not want to upgrade - might need to remove it)
thankshttps://lab.civicrm.org/dev/core/-/issues/3228Can't filter by anything other than contribution status in Contribution Aggre...2022-04-22T15:51:19ZDaveDCan't filter by anything other than contribution status in Contribution Aggregate by Relationship CiviReportThere's a hack(?) in the report to allow filtering by status: https://github.com/civicrm/civicrm-core/blob/08e8cd56136aed47f3c9e598c2d9f318d6c81977/CRM/Report/Form/Contribute/History.php#L432-L434
and then the query uses it at https://g...There's a hack(?) in the report to allow filtering by status: https://github.com/civicrm/civicrm-core/blob/08e8cd56136aed47f3c9e598c2d9f318d6c81977/CRM/Report/Form/Contribute/History.php#L432-L434
and then the query uses it at https://github.com/civicrm/civicrm-core/blob/08e8cd56136aed47f3c9e598c2d9f318d6c81977/CRM/Report/Form/Contribute/History.php#L688-L690
(Yes this report is in a file called History.php - I assume for _historical_ reasons...)
But choosing to filter by anything else doesn't apply the filter.
1. Create two contributions for a person, with different financial types.
1. Run the report and check the Aggregate Amount column and filter by one financial type.
1. It still includes both contributions.
There's an argument that this is "correct" in the sense described at https://lab.civicrm.org/dev/core/-/issues/2707#note_62816, i.e. "Find contacts that match the criteria, THEN run the report on them", so that it's finding _CONTACTS_ that have a contribution with that financial type, and then running the report and aggregating their contributions. But this report isn't a generic advanced search, it's specifically related to contributions, so I'd argue the contribution filters should apply to the contributions being included.
I can see why this might be a little difficult in this report because it needs to build the rows separately to handle the relationships, so it doesn't just use the stock civireport framework to do the filtering. But maybe the "hack" could be made more generic.
The report also gives an error `User deprecated function: Formatting non-numeric values is no longer supported: ... Caller: CRM_Utils_Money::formatLocaleNumericRoundedByPrecision` but that's separate. (Edit: Haha it seems I've noticed this before https://lab.civicrm.org/dev/core/-/issues/2819)5.45.0https://lab.civicrm.org/dev/core/-/issues/2945Make CRM_Core_Smarty::singleton() use Civi::statics instead of a static var2023-10-13T05:11:14ZDaveDMake CRM_Core_Smarty::singleton() use Civi::statics instead of a static varDuring unit tests, static vars can be problematic because they don't get reset between tests. There's a point within smarty where if a test fails at that point then its secure mode doesn't get reset. It's come up a couple times and then ...During unit tests, static vars can be problematic because they don't get reset between tests. There's a point within smarty where if a test fails at that point then its secure mode doesn't get reset. It's come up a couple times and then all the tests that use smarty on certain forms fail after it. It's not easy to track down if you haven't seen it before.
There's an argument civi code should be smarty secure-mode-compliant instead, but it isn't at the moment.https://lab.civicrm.org/dev/core/-/issues/2946Cannot search for fullname when sort_name is {contact.last_name}{, }{contact....2022-05-12T15:54:35ZalmeidamCannot search for fullname when sort_name is {contact.last_name}{, }{contact.first_name}Overview
----------------------------------------
If we have sort_name like {contact.last_name}{, }{contact.first_name}, users are not able to search for the full name: "{first_name} {last_name}".
Example use-case
----------------------...Overview
----------------------------------------
If we have sort_name like {contact.last_name}{, }{contact.first_name}, users are not able to search for the full name: "{first_name} {last_name}".
Example use-case
----------------------------------------
Assuming you have a John Doe (sort name: "Doe, John")
1. On the quick search bar write "John Doe"
OR
1. Go to Search->Search Contacts and search for "John Doe" on "Name or Email"
Current behaviour
----------------------------------------
Contact is not found.
Proposed behaviour
----------------------------------------
Contact should be found.
Comments
----------------------------------------
I know that altering the sort_name to {contact.first_name}{ }{contact.last_name} would allow to search for the full name, but it is not what we ant to achieve. We want to be able to keep the sort_name as is and to be able to search by both "Doe, John" or "John Doe" and retrieve the contact.
Btw, this has been raised a few years back: https://civicrm.stackexchange.com/questions/11190/cant-search-by-first-name-last-name-wordpress-dashboard/https://lab.civicrm.org/dev/core/-/issues/2947event token values missing from pdf export from participant search2021-11-15T11:00:40ZJanecevent token values missing from pdf export from participant search5.43.1https://lab.civicrm.org/dev/core/-/issues/2948Custom data not available in the post hook after registering for an event2021-11-15T15:10:05ZjaapjansmaCustom data not available in the post hook after registering for an eventOverview
----------------------------------------
When using the event registration page the custom data is not available on the post hook. This causes troubles with at least CiviRules.
For example when you have a rule triggered on Pa...Overview
----------------------------------------
When using the event registration page the custom data is not available on the post hook. This causes troubles with at least CiviRules.
For example when you have a rule triggered on Participant is added and a field value comparison condition on a custom field.
See also: https://lab.civicrm.org/extensions/civirules/-/issues/142
Configuration steps
----------------------------------------
1. Install CiviRules
1. Create an event with online registration
1. Edit the registration profile
1. Add a custom set for Participant
1. Add a custom field in this set of data type Alphanumeric and HTML type Radio Buttons, also add some options (such as soup, bread, wine)
1. Go to Administer --> CiviRules --> Add Rule
1. Select trigger Participant is Added
1. Add condition Field Value Comparison, select the field which we have added in the previous step and compare it to soup
1. Add action: Add tag to contact
Reproduction steps
----------------------------------------
1. Go to public event registration page
1. Register for the event and then select the radio button soup
1. Finish the registration
Current behaviour
----------------------------------------
No tag is added to participant (contact)
Expected behaviour
----------------------------------------
A tag is added to the participant (contact) as we have selected the soup option which would fire the action of our civirule.
Technicalities
----------------------------------------
CiviRules is fired after the database transaction has been committed. Although in the event registration page the custom data is added to the participant after the database transaction has been committed.
One solution is to wrap the registration in another database transaction.
Or another solution is to move the code to store the custom data to the function where the participant record is created.
* Call to create participant record: https://github.com/civicrm/civicrm-core/blob/master/CRM/Event/Form/Registration.php#L672
* Call to store custom data: https://github.com/civicrm/civicrm-core/blob/master/CRM/Event/Form/Registration.php#L689
Environment information
----------------------------------------
* __CiviCRM:__ 5.42.alpha1
Comments
----------------------------------------
See also https://lab.civicrm.org/extensions/civirules/-/issues/1425.45.0jaapjansmajaapjansma