Development issueshttps://lab.civicrm.org/groups/dev/-/issues2022-10-04T05:03:30Zhttps://lab.civicrm.org/dev/core/-/issues/733Validation radio custom fields on civicrm_validateForm hook does not work2022-10-04T05:03:30ZscardiniusValidation radio custom fields on civicrm_validateForm hook does not workI have a custom field to contact in radio type format, not required field.
I'd like to set up custom error on this empty field by using validateForm but `$fields` array doesn't contain a key for this custom field. After setting `$error...I have a custom field to contact in radio type format, not required field.
I'd like to set up custom error on this empty field by using validateForm but `$fields` array doesn't contain a key for this custom field. After setting `$error['custom_xx']` the form is reloaded without displaying the error.
The question is why for Radio type of custom field there is no a key in $fields array?
PS. Related to creating new contact and editing existing contact.https://lab.civicrm.org/dev/core/-/issues/734Contribution Detail Report Multiple Contacts combined into one link, comma-de...2022-10-03T05:03:56ZjoeglContribution Detail Report Multiple Contacts combined into one link, comma-delimited contact id'sWhen listing multiple contacts as contributions on the Contribution Detail Report, in CiviCRM 5.9.1, the contacts are listed as one link, with comma de-limited contact id's, like so:
`/civicrm/contact/view?reset=1&cid=13819,10902,10901`...When listing multiple contacts as contributions on the Contribution Detail Report, in CiviCRM 5.9.1, the contacts are listed as one link, with comma de-limited contact id's, like so:
`/civicrm/contact/view?reset=1&cid=13819,10902,10901`
When I click the link, I get a "Contact not found" error and am sent to the main dashboard.
Should these links be separate for each contact instead of comma-delimited in one link?
Not sure if this issue is also related: https://lab.civicrm.org/dev/core/issues/655
I was looking into the Soft Credit problem on the same same report when I found this issue. They both appear to be combining things in a Contribution Report that should not be combined, insofar as I can tell.https://lab.civicrm.org/dev/core/-/issues/735Query performance - suppress 'product' and related fields where products are ...2019-04-26T06:50:00ZeileenQuery performance - suppress 'product' and related fields where products are not in the databaseMost people hate the fact we waste an output field on premium on the contribution tab. They all think it should be replaced - but all have different replacements.
I don't want to solve that - I think the right solution for that is to f...Most people hate the fact we waste an output field on premium on the contribution tab. They all think it should be replaced - but all have different replacements.
I don't want to solve that - I think the right solution for that is to find funding to leap the interface.
What I DO think we can solve is the fact we are doing unnecessary joins / queries / processing to generate & display premiums - regardless of whether the site uses them. I think we could short-circuit that pretty cleanly by just doing a quick
"select id FROM civicrm_product_premium LIMIT 1' (cached) before adding product fields to our default return properties (with a small tpl tweak too)5.13.0https://lab.civicrm.org/dev/core/-/issues/736let's talk about indexes baby - let's talk about all the good things they cou...2022-10-03T05:03:56Zeileenlet's talk about indexes baby - let's talk about all the good things they could beThis is intended as a discussion and not necessarily a core change - sites can add their own indexes so this is more of a 'what have you added, what works' discussion post
I have a search that returns about 177k results based on a combi...This is intended as a discussion and not necessarily a core change - sites can add their own indexes so this is more of a 'what have you added, what works' discussion post
I have a search that returns about 177k results based on a combination of payment type & receive date.
Recent changes & in progress changes have gotten the time to render the search results page down from about 4 minutes to about 30 seconds.
However, I can get it down to 10 seconds by adding an additional index - a combined index on
payment_instrument_id + receive_date - ie
ALTER TABLE civicrm_contribution ADD INDEX payment_instrument_receive_date(payment_instrument_id, receive_date);
(note I'm comparing page render with page render not query time as more than one query could be affected)
The more indexes you have the longer it takes to write but I don't have any metrics on how much longer. It also takes up more disk space - some of our indexes are multiple GB.
OTOH they can make it quicker to retrieve.
Current indexes
KEY `UI_contrib_payment_instrument_id` (`payment_instrument_id`),
KEY `index_total_amount_receive_date` (`total_amount`,`receive_date`),
KEY `index_source` (`source`),
KEY `index_contribution_status` (`contribution_status_id`),
KEY `received_date` (`receive_date`),
KEY `check_number` (`check_number`),
KEY `index_creditnote_id` (`creditnote_id`),
KEY `FK_civicrm_contribution_contact_id` (`contact_id`),
KEY `FK_civicrm_contribution_financial_type_id` (`financial_type_id`),
KEY `FK_civicrm_contribution_contribution_page_id` (`contribution_page_id`),
KEY `FK_civicrm_contribution_contribution_recur_id` (`contribution_recur_id`),
KEY `FK_civicrm_contribution_address_id` (`address_id`),
KEY `FK_civicrm_contribution_campaign_id` (`campaign_id`),
My current thinking is to
- add receive_date & possibly contribution status_id to payment_instrument id index
- add receive_date to contribution_status_id index
@seamuslee @pfigel @sluc23 @davej @mfb have you guys tinkered with your indexes at all?https://lab.civicrm.org/dev/core/-/issues/737SMS not sent if "Send Immediately" option is chosen on the last screen2019-02-19T21:33:27ZjitendraSMS not sent if "Send Immediately" option is chosen on the last screenTo replicate -
1. Create an SMS
2. Fill all the req fields and click on "Send Immediately" option.
3. The SMS is not listed under `Scheduled` list and is not sent after the job is executed.To replicate -
1. Create an SMS
2. Fill all the req fields and click on "Send Immediately" option.
3. The SMS is not listed under `Scheduled` list and is not sent after the job is executed.5.10.3jitendrajitendrahttps://lab.civicrm.org/dev/core/-/issues/738Adding Sub-Options of Custom Data2019-02-19T10:11:39ZGhost UserAdding Sub-Options of Custom DataHello.
Maybe I didn't know, but I didn't know.
I need to add a sub-option to private recipients. I can explain this with an example.
Suppose you have an option. When I make a choice here, there must be sub-options that are optional in...Hello.
Maybe I didn't know, but I didn't know.
I need to add a sub-option to private recipients. I can explain this with an example.
Suppose you have an option. When I make a choice here, there must be sub-options that are optional in this option.
In the meantime, there is City / County option, but when I choose the province does not come from the county information. (For Turkey)
1. Receiving
a. White Apple
b. Green apple
c. Red Apple
2. Pear
a. White Pear
b. Green Pear
c. Red Pear
Joomla 3.9.3
CiviCRM 5.10.2!
![001275](/uploads/240b66db42d115a9fc5308fd1527bfed/001275.png)https://lab.civicrm.org/dev/core/-/issues/739Field not found when sorting report by Case Type as a section header2019-02-25T20:47:12ZgrahamsmithField not found when sorting report by Case Type as a section headerAttempting to create a Case Detail report sorted by the field Case Type with the option "Section Header" checked does not work.
Error is:
> Unknown column 'case_civireport.case_type_name' in 'field list'
This is a probable regression,...Attempting to create a Case Detail report sorted by the field Case Type with the option "Section Header" checked does not work.
Error is:
> Unknown column 'case_civireport.case_type_name' in 'field list'
This is a probable regression, as addressed by: https://github.com/civicrm/civicrm-core/pull/114195.12.0https://lab.civicrm.org/dev/core/-/issues/740Notes: It isn't possible to edit note if the user uploaded an image larger th...2019-03-23T21:19:49ZPradeep Nayakpradpnayak@gmail.comNotes: It isn't possible to edit note if the user uploaded an image larger than 3 MByte(s)Steps:
* Click "View contact record"
* Find contact from the precondition
* Open profile
* Open "Notes" tab
* Click "Add Note"
* Fill in all required fields
* Open the "Attachment(s)" tab
* Upload an image larger than 3 MByte(s)
* Clic...Steps:
* Click "View contact record"
* Find contact from the precondition
* Open profile
* Open "Notes" tab
* Click "Add Note"
* Fill in all required fields
* Open the "Attachment(s)" tab
* Upload an image larger than 3 MByte(s)
* Click "Save"
**Actual result:** It isn't possible to edit note if the user uploaded an image larger than 3 MByte(s).
**Expected result:** It should be possible to edit note if the user uploaded an image larger than 3 MByte(s)
![Before](/uploads/ec2da739b8eb4c6273033d8cea390742/Before.gif)5.13.0https://lab.civicrm.org/dev/core/-/issues/741Print/Merge: ODT output does not produce page-breaks2022-10-04T05:03:29ZtottenPrint/Merge: ODT output does not produce page-breaksSteps to reproduce
* Search for contacts
* Select 3 contacts
* Choose the task to print/merge a document
* Choose the output format -- PDF, DOCX, or ODT
In PDF and DOCX format, each contact's data is displayed on a separate page. If yo...Steps to reproduce
* Search for contacts
* Select 3 contacts
* Choose the task to print/merge a document
* Choose the output format -- PDF, DOCX, or ODT
In PDF and DOCX format, each contact's data is displayed on a separate page. If you generate ODT and view it in LibreOffice 5.x or 6.1, it produces some weird outlines -- but these do not translate into page-breaks. (The weird lines appear in normal WYSIWYG mode; they disappear in "Print Preview" mode. In neither case do they appear as page-breaks.)
![Screen_Shot_2019-02-19_at_5.44.01_PM](/uploads/047a756e086ec11e4510cde6d406dcfa/Screen_Shot_2019-02-19_at_5.44.01_PM.png)
This was observed when using either PHPWord 0.14 or 0.15 in Civi. Based on [this upstream issue/PR](https://github.com/PHPOffice/PHPWord/issues/824), ODT pagebreaks ought to be working with PHPWord 0.14+
```
me@localhost:~/src/PHPWord$ git tag --contains def9123575ed9e3c2e9e36aa4e0ba6f0d09fc6c1
0.14.0
0.15.0
0.16.0
```
(Note: This is not high priority for me. I just wanted to record because it came up incidentally in some other testing.)https://lab.civicrm.org/dev/core/-/issues/742Repeated warning: "simplexml_load_file(): I/O warning : failed to load extern...2023-02-04T05:03:30ZtottenRepeated warning: "simplexml_load_file(): I/O warning : failed to load external entity ".../xml/Menu/Activity.xml"__Environment__: Observed in Civi 5.10 and 5.7 with bknix-min (PHP 5.6 / MySQL 5.5). Haven't tested other environments yet.
__Steps to Reproduce__: Login as admin. Use `/civicrm/clearcache` (i.e. the browser-based clear)
__Outcome__:
...__Environment__: Observed in Civi 5.10 and 5.7 with bknix-min (PHP 5.6 / MySQL 5.5). Haven't tested other environments yet.
__Steps to Reproduce__: Login as admin. Use `/civicrm/clearcache` (i.e. the browser-based clear)
__Outcome__:
![Screen_Shot_2019-02-20_at_2.35.53_AM](/uploads/4d305c7b2d791d69a3b1707a12c3b940/Screen_Shot_2019-02-20_at_2.35.53_AM.png)
__Comments__:
* The warning message references many Menu XML files, but I think the first is the only the matters. It actually has an XML entity (`&`); removing that entity prevents the warnings (but would obviously break that menu item).
* It seems strange that `&` would be regarded as an external entity.https://lab.civicrm.org/dev/core/-/issues/743Case report showing 1 result2019-05-25T06:06:01ZDevAppCase report showing 1 resultAs of 5.10.2 the case summary report joins with relationships.
`
SELECT SQL_CALC_FOUND_ROWS c2_civireport.sort_name as civicrm_c2_client_name, c2_civireport.id as civicrm_c2_id, case_civireport.id as civicrm_case_id, case_civireport.subj...As of 5.10.2 the case summary report joins with relationships.
`
SELECT SQL_CALC_FOUND_ROWS c2_civireport.sort_name as civicrm_c2_client_name, c2_civireport.id as civicrm_c2_id, case_civireport.id as civicrm_case_id, case_civireport.subject as civicrm_case_subject, case_civireport.status_id as civicrm_case_status_id, case_civireport.case_type_id as civicrm_case_case_type_id, case_civireport.start_date as civicrm_case_start_date, case_civireport.end_date as civicrm_case_end_date
FROM civicrm_contact contact_civireport
inner join civicrm_relationship relationship_civireport on contact_civireport.id = relationship_civireport.contact_id_b
inner join civicrm_case case_civireport on case_civireport.id = relationship_civireport.case_id
inner join civicrm_relationship_type relationship_type_civireport on relationship_type_civireport.id=relationship_civireport.relationship_type_id
inner join civicrm_case_contact case_contact_civireport on case_contact_civireport.case_id = case_civireport.id
inner join civicrm_contact c2_civireport on c2_civireport.id=case_contact_civireport.contact_id
WHERE case_civireport.case_type_id REGEXP '[[:cntrl:]]*29[[:cntrl:]]*' AND ( case_civireport.is_deleted = 0 )
ORDER BY c2_civireport.sort_name ASC
LIMIT 0, 50
`
This only returns 1 result on a client's case summary report. Performing a Find Case returns 400+ results.
Reverting to an earlier version of the report fixes the issue:
`
SELECT SQL_CALC_FOUND_ROWS c2_civireport.sort_name as civicrm_c2_client_name, c2_civireport.id as civicrm_c2_id, case_civireport.id as civicrm_case_id, case_civireport.subject as civicrm_case_subject, case_civireport.status_id as civicrm_case_status_id, case_civireport.case_type_id as civicrm_case_case_type_id, case_civireport.start_date as civicrm_case_start_date, case_civireport.end_date as civicrm_case_end_date
FROM civicrm_case case_civireport
inner join civicrm_case_contact case_contact_civireport on case_contact_civireport.case_id = case_civireport.id
inner join civicrm_contact c2_civireport on c2_civireport.id=case_contact_civireport.contact_id
WHERE case_civireport.case_type_id REGEXP '[[:cntrl:]]*29[[:cntrl:]]*' AND ( case_civireport.status_id IN (1) )
LIMIT 0, 50
`
It appears the case summary report has changed to support relationships.
Checking the civicrm_relationship for a case ID that is valid, there isn't a case_id present for that case. Ideally this report should not be dependent (INNER JOIN) for a relationship existing and should begin withh the civicrm_case table.5.15.0https://lab.civicrm.org/dev/core/-/issues/3239Contribution reports don't include thank-you date2022-04-22T15:51:49ZJonGoldContribution reports don't include thank-you dateThis is an issue that a couple of people have noted [on Stack Exchange](https://civicrm.stackexchange.com/questions/15374/thank-you-letter-report/15377). However, this is the first time anyone has paid me to fix it :) PR incoming.This is an issue that a couple of people have noted [on Stack Exchange](https://civicrm.stackexchange.com/questions/15374/thank-you-letter-report/15377). However, this is the first time anyone has paid me to fix it :) PR incoming.JonGoldJonGoldhttps://lab.civicrm.org/dev/core/-/issues/3593{contact.hash} not populated in Flexmailer/Mosaico2022-06-11T14:55:07ZBjörn Endres{contact.hash} not populated in Flexmailer/MosaicoI don't know if this is the right forum, but but seems like the `{contact.hash}` token is not populated when using Flexmailer/Mosaico.
Observed on:
* CiviCRM `5.5.1`
* Flexmailer `0.2-6ff530c`
* Mosaico `2.0-beta4`I don't know if this is the right forum, but but seems like the `{contact.hash}` token is not populated when using Flexmailer/Mosaico.
Observed on:
* CiviCRM `5.5.1`
* Flexmailer `0.2-6ff530c`
* Mosaico `2.0-beta4`5.37.0https://lab.civicrm.org/dev/core/-/issues/745Smart groups broken when "Enable multiple bulk email address for a contact" s...2019-03-07T19:43:17ZscardiniusSmart groups broken when "Enable multiple bulk email address for a contact" setting is offWhen setting "Enable multiple bulk email address for a contact" is off then ALL smart groups have additional condition (Email On Hold) because of false-positive effect of code:
https://github.com/civicrm/civicrm-core/pull/12942/files
``...When setting "Enable multiple bulk email address for a contact" is off then ALL smart groups have additional condition (Email On Hold) because of false-positive effect of code:
https://github.com/civicrm/civicrm-core/pull/12942/files
```php
elseif ($id == 'email_on_hold') {
if ($onHoldValue = CRM_Utils_Array::value('email_on_hold', $formValues)) {
$onHoldValue = (array) $onHoldValue;
$params[] = array('on_hold', 'IN', $onHoldValue, 0, 0);
}
}
```
For such case `email_on_hold` has value:
```php
$formValues['email_on_hold'] = [
'on_hold' => NULL,
];
```
which is false-positive in condition5.11https://lab.civicrm.org/dev/backdrop/-/issues/39Show CiviCRM status in Backdrop status report?2022-10-08T12:17:11ZbgmShow CiviCRM status in Backdrop status report?*Created by: laryn*
@herbdool I think it would be a good idea to pull in the CiviCRM version in the Backdrop status report (including a red warning button if there's a security release/warning active in CiviCRM). What do you think of th...*Created by: laryn*
@herbdool I think it would be a good idea to pull in the CiviCRM version in the Backdrop status report (including a red warning button if there's a security release/warning active in CiviCRM). What do you think of the idea?
![screen shot 2019-02-21 at 10 06 35 am](https://user-images.githubusercontent.com/871421/53183168-6ec66700-35c0-11e9-9f9f-6ef6eb84d3bd.jpg)
https://lab.civicrm.org/dev/core/-/issues/3268Deprecate `getBasicContactFields` in favor of `getColumns('Contact')`2022-04-22T15:53:15ZJonGoldDeprecate `getBasicContactFields` in favor of `getColumns('Contact')`@eileen has ported some of the cleaner code for defining report specs from Extended Reports to core in the form of `getColumns()` and `getContactColumns()`. Since this appears to be the direction we're headed in, I think it makes sense ...@eileen has ported some of the cleaner code for defining report specs from Extended Reports to core in the form of `getColumns()` and `getContactColumns()`. Since this appears to be the direction we're headed in, I think it makes sense to deprecate `getBasicContactColumns()`, which does a similar job. However, `getBasicContactColumns()` adds a bunch of fields to core reports that `getContactColumns` doesn't.
My PR adds all the missing fields to `getContactColumns` (except for "Organization Name"; this seems unnecessary since it will virtually always match the display name). I also mark `getBasicContactFields()` as deprecated so future cleanup can target reports using it.5.12.0JonGoldJonGoldhttps://lab.civicrm.org/dev/core/-/issues/746Search Builder searches using > 1 smart group where operator is equals is bro...2019-02-23T08:30:32ZseamusleeSearch Builder searches using > 1 smart group where operator is equals is broken from 5.10.0To reproduce
1. Create 2 separate smart groups making sure that there is some contacts that overlap
2. go into the search builder and add 2 clauses both groups and use the = operator and select each of the smart groups created in 1
3. O...To reproduce
1. Create 2 separate smart groups making sure that there is some contacts that overlap
2. go into the search builder and add 2 clauses both groups and use the = operator and select each of the smart groups created in 1
3. Observe it returns 0 results when it should return the overlap between the 2 smart groups5.10.4https://lab.civicrm.org/dev/core/-/issues/747Contact images can no longer be viewed or re-uploaded2019-02-24T00:21:34ZKarinGContact images can no longer be viewed or re-uploadedAfter upgrading to 5.7.4
* I can not reproduce this on dmaster demo - all is working well there [10min ago].
**On a 5.7.4:**
Contact Summary Page:
Edit
Re-uploading image has no effect
![image](/uploads/beca23670453246b21e9bb4ce2082c...After upgrading to 5.7.4
* I can not reproduce this on dmaster demo - all is working well there [10min ago].
**On a 5.7.4:**
Contact Summary Page:
Edit
Re-uploading image has no effect
![image](/uploads/beca23670453246b21e9bb4ce2082c66/image.png)
On Contact Summary screen - tried to upload the exact same image as I was able to upload on dmaster demo:
![image](/uploads/a2431e6cdbffe3342dc9aeea3a22aeb1/image.png)
**On a 5.5.2 for this instance:**
I don't have a 5.7.3 copy for them - but I do have a functional 5.5.2 clone - and that works fine: I just confirmed by uploading this exact same image:
![image](/uploads/6e0a317e99698c27557e85508d95bf07/image.png)
Error when trying to view Contact Summary Page:
```
[info] $backTrace = #0 /var/www/civicrm/5-stable/CRM/Core/Error.php(381): CRM_Core_Error::backtrace("backTrace", TRUE)
#1 /var/www/civicrm/5-stable/CRM/Utils/Request.php(121): CRM_Core_Error::fatal("Could not find valid value for eid")
#2 /var/www/civicrm/5-stable/CRM/Core/Page/File.php(45): CRM_Utils_Request::retrieve("eid", "Positive", Object(CRM_Core_Page_File), TRUE)
#3 /var/www/civicrm/5-stable/CRM/Core/Invoke.php(309): CRM_Core_Page_File->run((Array:2), NULL)
#4 /var/www/civicrm/5-stable/CRM/Core/Invoke.php(84): CRM_Core_Invoke::runItem((Array:13))
#5 /var/www/civicrm/5-stable/CRM/Core/Invoke.php(52): CRM_Core_Invoke::_invoke((Array:2))
#6 /var/www/civicrm/5-stable/drupal/civicrm.module(445): CRM_Core_Invoke::invoke((Array:2))
#7 /var/www/drupal/git-7/includes/menu.inc(527): civicrm_invoke("file")
#8 /var/www/drupal/git-7/index.php(21): menu_execute_active_handler()
#9 {main}
```
**ADDITIONAL INFO:**
I upgraded another project on my local to 5.7.4 to see how/if PCP images are affected - this is using @parvez ' PCP extension: images visible prior to 5.7.4 upgrade are no longer visible and can not be re-uploaded via the GUI:
![image](/uploads/c4f65b16d2b2cb5cbd2ddb7947e91c7c/image.png)
5.10.4https://lab.civicrm.org/dev/core/-/issues/3236No pagination on Contribution Detail report2022-04-22T15:51:42ZJonGoldNo pagination on Contribution Detail reportThis seems to be a side effect of [this commit](https://github.com/civicrm/civicrm-core/commit/e6bab5eae9e7293dff9ecb9852f85e6aa01dad7f#diff-585f40aa84b2e15ef6b0768dd64bfd0c) fixing core#170. I'm not 100% sure why this isn't happening o...This seems to be a side effect of [this commit](https://github.com/civicrm/civicrm-core/commit/e6bab5eae9e7293dff9ecb9852f85e6aa01dad7f#diff-585f40aa84b2e15ef6b0768dd64bfd0c) fixing core#170. I'm not 100% sure why this isn't happening on the sandbox, but I'm reasonably certain it's because servers without Full Group By use a different code path.
There were 2.5 bugs that needed to be fixed:
* The first temp table for this report sets a limit of 50 rows - so the second time through `buildQuery()`, the SQL statement `SELECT * FROM civireport_contribution_detail_temp3 $this->_orderBy` will never return more than 50, so the pager won't be set.
* `setPager()` assumes that a) the last SQL statement executed includes `SQL_CALC_FOUND_ROWS`; b) that `$this->limit` is set.
Finally, I found a call to `setPager()` in a place where it would never be correct (on a temp table that's not the "final" temp table) so I removed it.JonGoldJonGoldhttps://lab.civicrm.org/dev/core/-/issues/3232Soft Credit report fails when Only Full Group By is enabled2022-04-22T15:51:29ZJonGoldSoft Credit report fails when Only Full Group By is enabledThis is replicable by running the report with no changes to defaults on dmaster.
The cause is that the Soft Credit report overrides `CRM_Core_Form::postProcess()` and calls `CRM_Core_DAO::executeQuery()` directly instead of `CRM_Core_Fo...This is replicable by running the report with no changes to defaults on dmaster.
The cause is that the Soft Credit report overrides `CRM_Core_Form::postProcess()` and calls `CRM_Core_DAO::executeQuery()` directly instead of `CRM_Core_Form::buildRows()`, which the FGB safeguards exist. So even though the report is marked as not optimized for FGB, it makes no difference.5.12.0JonGoldJonGold