CiviCRM Core issueshttps://lab.civicrm.org/dev/core/-/issues2022-10-26T05:03:42Zhttps://lab.civicrm.org/dev/core/-/issues/846CQ: Refactor Recurring Contribution Forms2022-10-26T05:03:42Zmattwiremjw@mjwconsult.co.ukCQ: Refactor Recurring Contribution FormsThe contributionrecur forms have poor test coverage, are inconsistent with each other and do not have sensible parameters being passed to them (eg. recur_id). This is a meta issue to track improvements to these forms:
CRM/Contribute/For...The contributionrecur forms have poor test coverage, are inconsistent with each other and do not have sensible parameters being passed to them (eg. recur_id). This is a meta issue to track improvements to these forms:
CRM/Contribute/Form/CancelSubscription
CRM/Contribute/Form/UpdateBilling
CRM/Contribute/Form/UpdateSubscription
All 3 forms have been converted to inherit from the parent class `CRM/Contribute/Form/ContributionRecur` and common functionality will gradually be moved there.https://lab.civicrm.org/dev/core/-/issues/841Event Income report template does not exclude trashed contacts2022-10-18T05:03:56ZlcdwebEvent Income report template does not exclude trashed contactsThe Event Income report template currently does not exclude trashed contacts. Consequently, if you register someone for an event and then trash the contact, the report will still reflect numbers for their registration.The Event Income report template currently does not exclude trashed contacts. Consequently, if you register someone for an event and then trash the contact, the report will still reflect numbers for their registration.lcdweblcdwebhttps://lab.civicrm.org/dev/core/-/issues/838Expose participant note in Participant list Count Report2022-10-18T05:03:55ZyashodhaExpose participant note in Participant list Count ReportExpose participant note in Participant list Count ReportExpose participant note in Participant list Count Reportyashodhayashodhahttps://lab.civicrm.org/dev/core/-/issues/835Expose Registered by Participant Name field to participant report2022-10-19T05:03:47ZyashodhaExpose Registered by Participant Name field to participant reportExpose *Registered by Participant Name* field to participant reportExpose *Registered by Participant Name* field to participant reportyashodhayashodhahttps://lab.civicrm.org/dev/core/-/issues/829Swaziland has changed its name to Eswatini2019-03-28T20:07:12Zlord_tSwaziland has changed its name to EswatiniSwaziland country has changed name to Eswatini so in CiviCRM it also has to be changed.
> On 19 April 2018, King Mswati III announced that the Kingdom of Swaziland had renamed itself the Kingdom of Eswatini, reflecting the extant Swazi...Swaziland country has changed name to Eswatini so in CiviCRM it also has to be changed.
> On 19 April 2018, King Mswati III announced that the Kingdom of Swaziland had renamed itself the Kingdom of Eswatini, reflecting the extant Swazi name for the state eSwatini, to mark the 50th anniversary of Swazi independence. The new name, **Eswatini**, [...]
Source: https://en.wikipedia.org/wiki/Eswatini#Independence_(1968%E2%80%93present)
Patch: https://github.com/civicrm/civicrm-core/pull/139025.13.0https://lab.civicrm.org/dev/core/-/issues/826Reports show " " in filters with child-groups2019-10-14T08:03:58ZCésarReports show " " in filters with child-groupsHi,
Im using CiviCRM 5.10.4 and I see in all reports ``` ``` when I use child-groups in filters.
![error_view](/uploads/7c72af518ab6a5c68ff00e0b21a4a7d3/error_view.png)Hi,
Im using CiviCRM 5.10.4 and I see in all reports ``` ``` when I use child-groups in filters.
![error_view](/uploads/7c72af518ab6a5c68ff00e0b21a4a7d3/error_view.png)https://lab.civicrm.org/dev/core/-/issues/822Quick Search: It isn't possible to find a contact by phone number with the "+...2023-01-14T05:03:31ZPradeep Nayakpradpnayak@gmail.comQuick Search: It isn't possible to find a contact by phone number with the "+" symbolThe system has a contact with e.g. this +55 98 98239 7434 phone number.
Steps:
* Open the Quick Search list
* Choose the Phone radio button
* Type the phone number (+55 98 98239 7434) from the precondition to the Quick Search field
* ...The system has a contact with e.g. this +55 98 98239 7434 phone number.
Steps:
* Open the Quick Search list
* Choose the Phone radio button
* Type the phone number (+55 98 98239 7434) from the precondition to the Quick Search field
* Try to type the phone number without "+"
**Actual result:** It isn't possible to find a contact by phone number with the "+" symbol.
**Expected result:** It is possible to find a contact by phone number with the "+" symbolhttps://lab.civicrm.org/dev/core/-/issues/819Search results: Actions: Export contacts: DB Error: Syntax error occurs when ...2019-03-27T20:08:45ZPradeep Nayakpradpnayak@gmail.comSearch results: Actions: Export contacts: DB Error: Syntax error occurs when not all necessary fields are selectedSTR:
* Navigate to "Search→Find Contacts"
* Leave the search fields empty and click "Search"
* Select any Individual
* Click the "Actions" dropdown
* Select "Export Contacts"
* Click the "Select fields for export" radio button
* Click ...STR:
* Navigate to "Search→Find Contacts"
* Leave the search fields empty and click "Search"
* Select any Individual
* Click the "Actions" dropdown
* Select "Export Contacts"
* Click the "Select fields for export" radio button
* Click "Continue"
* On the Select Fields to Export step, click the "Select record type" dropdown
* Select "Individual"
* Leave the "Select field" dropdown empty
* Click "Export"
**Result:** DB Error: syntax error occurs. Please take a look at the attachment
![ExportError-Before](/uploads/e97b8cb4b4dfb1ae5fed72dafcd4e459/ExportError-Before.gif)5.13.0https://lab.civicrm.org/dev/core/-/issues/817META - improve code quality2024-02-29T20:06:14ZeileenMETA - improve code qualityI'm writing this as a place to group together various efforts to improve our code quality - this means we can link towards other issues that reflect where we are going code-wise.
In general from a product maintenance point of view the ...I'm writing this as a place to group together various efforts to improve our code quality - this means we can link towards other issues that reflect where we are going code-wise.
In general from a product maintenance point of view the goals we have are
1) ongoing improvement in code stability through
- adding test coverage,
- fixing things 'the right way' rather than hack-fixes
- addressing buggy coding
- improving code commenting
- addressing underlying logic problems
- cleaning up known bad patterns
- extracting smaller functions out of larger functions
- improving code readability
- not adding new functionality (fields, logic etc and even bug fixes) to dirty code (either cleaning it up first or leaving well enough alone).
Note that is IS harder to get changes accepted into parts of the code which are nasty - this is a feature not a bug. It's also harder to get changes reviewed & accepted into areas with poor test coverage. As I write this prs to alter sending out invoices and code impacting on imports are notably stagnating. This reflects an unwillingness to touch those code areas unless unit tests are being added as they have almost no coverage. (of course we also want tests on more tested code areas...)
2) ongoing improvement in performance through
- removing bad joins & bad queries
- php improvements
3) ensuring secure code practices are used
4) adapting the code to new versions of mysql & php as they become relevant
6) laying the ground work for LeXIM through
- moving logic out of the form layer and into the BAO, api xml or other metadata where appropriate
- improving api interaction with the code (making more stuff api-accessible & making it more logical & consistent)
- adding hooks, regions etc, although not into dirty code as that locks in suboptimal fixes.
- improving hook consistency
There are other goals for CiviCRM as a product - in the Leap By Extension / funded projects part of the LeXIM picture which are outside the scope of the concerns of product maintenance. It should be noted that the there is limited capacity to review PRs submitted to core so fit with these will affect how high a priority product mtce reviewers give to PRs. Of course other things play into the prioritisation like whether the submitter has been actively reviewing other PRs.
I'm going to start adding / linking issues that relate to cleaning up known bad patterns here
**Related issues**
~~Remove ->free calls https://lab.civicrm.org/dev/core/issues/562~~
~~Performance - done, remove use of mysql LOWER~~
Switch core forms to Entity Forms https://lab.civicrm.org/dev/core/issues/818 - also https://lab.civicrm.org/dev/core/issues/115
~~Get rid of jcalendar https://lab.civicrm.org/dev/core/issues/561~~
Use TempTable class for all temp tables - https://lab.civicrm.org/dev/core/issues/183
Consolidate settings & preference forms onto being metadata driven https://lab.civicrm.org/dev/core/issues/495
Consolidate recurring forms https://lab.civicrm.org/dev/core/issues/846
Use guzzle to get http requests https://lab.civicrm.org/dev/core/issues/849 (for testability)
Get rid of nullArray usage https://lab.civicrm.org/dev/core/issues/1047
Remove non-std contribution_invoice_settings https://lab.civicrm.org/dev/core/issues/1558https://lab.civicrm.org/dev/core/-/issues/811Autocomplete select list disabled options2019-03-19T23:27:09ZPradeep Nayakpradpnayak@gmail.comAutocomplete select list disabled optionsCustom field with type Autocomplete-select lists disabled options.
![Autocomplete-select](/uploads/4255d3183f1e8baf55aee8e4201b95cc/Autocomplete-select.gif)Custom field with type Autocomplete-select lists disabled options.
![Autocomplete-select](/uploads/4255d3183f1e8baf55aee8e4201b95cc/Autocomplete-select.gif)5.13.0https://lab.civicrm.org/dev/core/-/issues/810Non-primary details exported in primary-only exports, when the setting 'Searc...2023-04-05T05:03:18ZAndrew WestNon-primary details exported in primary-only exports, when the setting 'Search Primary Details Only' is set to 'no'If you run an export with 'Export PRIMARY fields', but you have the setting 'Search Primary Details Only' set to 'No', the primary filter is not applied and you simply get the first available row in the table. This also happens when you ...If you run an export with 'Export PRIMARY fields', but you have the setting 'Search Primary Details Only' set to 'No', the primary filter is not applied and you simply get the first available row in the table. This also happens when you select the 'Primary' option when exporting individual fields.
This definitely applies to postal addresses. I haven't tested emails but I think it'll happen there too.
It happens because of this line in CRM_Contact_BAO_Query:
https://github.com/civicrm/civicrm-core/blob/a2540ad336faf7fb0218055a485c1a702200293f/CRM/Contact/BAO/Query.php#L446
which defaults to using the value from the setting. If this is set to no, the result SQL clause doesn't include 'is_primary = 1'.
CRM_Export_BAO_ExportProcessor creates the Query object here:
https://github.com/civicrm/civicrm-core/blob/a2540ad336faf7fb0218055a485c1a702200293f/CRM/Export/BAO/ExportProcessor.php#L509
but doesn't pass through a value for 'primaryLocationOnly' to override the default setting.
I can presumably adapt the above to pass through primaryLocationOnly when users have selected the 'Export PRIMARY fields' option - that *seems* simple enough. I haven't had a chance to dig into how it works when the export specifies individual fields, though - that seems like it'd be more complicated.
To replicate on demo site:
1. Create a new tmp group
2. Find a contact with an existing primary address
3. Add a new address for them, and set it to primary
4. Add this contact to the tmp group
4. Turn off the setting 'Search Primary Details Only'
5. Search for all members of the tmp group, and export them using 'Export PRIMARY fields only'
6. The contact's address in the CSV will be the original address, which is non-primaryhttps://lab.civicrm.org/dev/core/-/issues/806DB Error:: Already exists during renewing membership automatically2019-04-03T16:58:22ZPradeep Nayakpradpnayak@gmail.comDB Error:: Already exists during renewing membership automaticallyI have a cron job that runs smart debit sync every day for recurring contribution and its failing with DB Error: already exists
After looking it carefully in details found that it fails when the original contribution of recurring has ta...I have a cron job that runs smart debit sync every day for recurring contribution and its failing with DB Error: already exists
After looking it carefully in details found that it fails when the original contribution of recurring has tax_amount set.
Mar 18 10:53:06 [info] $Fatal Error Details = Array
(
[callback] => Array
(
[0] => CRM_Core_Error
[1] => exceptionHandler
)
[code] => -5
[message] => DB Error: already exists
[mode] => 16
[debug_info] => INSERT INTO civicrm_line_item (entity_table , entity_id , contribution_id , price_field_id , label , qty , unit_price , line_total , price_field_value_id , financial_type_id , tax_amount ) VALUES ('civicrm_contribution' , 20069 , 20069 , 1 , 'Contribution Amount' , 1 , 30.00 , 30.00 , 1 , 33 , 6 ) [nativecode=1062 ** Duplicate entry 'civicrm_contribution-20069-20069-1-1' for key 'UI_line_item_value']
[type] => DB_Error
[user_info] => INSERT INTO civicrm_line_item (entity_table , entity_id , contribution_id , price_field_id , label , qty , unit_price , line_total , price_field_value_id , financial_type_id , tax_amount ) VALUES ('civicrm_contribution' , 20069 , 20069 , 1 , 'Contribution Amount' , 1 , 30.00 , 30.00 , 1 , 33 , 6 ) [nativecode=1062 ** Duplicate entry 'civicrm_contribution-20069-20069-1-1' for key 'UI_line_item_value']
[to_string] => [db_error: message="DB Error: already exists" code=-5 mode=callback callback=CRM_Core_Error::exceptionHandler prefix="" info="INSERT INTO civicrm_line_item (entity_table , entity_id , contribution_id , price_field_id , label , qty , unit_price , line_total , price_field_value_id , financial_type_id , tax_amount ) VALUES ('civicrm_contribution' , 20069 , 20069 , 1 , 'Contribution Amount' , 1 , 30.00 , 30.00 , 1 , 33 , 6 ) [nativecode=1062 ** Duplicate entry 'civicrm_contribution-20069-20069-1-1' for key 'UI_line_item_value']"]
)https://lab.civicrm.org/dev/core/-/issues/803Upgrade and vendor HMTLPurifier2019-04-11T00:26:06ZmfbUpgrade and vendor HMTLPurifierHTMLPurifier version 4.3.0 can be found at https://github.com/civicrm/civicrm-packages/blob/master/IDS/vendors/htmlpurifier but current version, with PHP 7.2 compatibility, is 4.10.0
Ideally we could move it to composer.json for core.HTMLPurifier version 4.3.0 can be found at https://github.com/civicrm/civicrm-packages/blob/master/IDS/vendors/htmlpurifier but current version, with PHP 7.2 compatibility, is 4.10.0
Ideally we could move it to composer.json for core.https://lab.civicrm.org/dev/core/-/issues/801Thank You letters have an invalid 'from' when sending from the contact's emai...2019-03-25T21:48:33ZbgmThank You letters have an invalid 'from' when sending from the contact's email addressTo reproduce:
* Record a contribution for a contact
* Find Contributions, select the contribution, Send Thank You Letters
* Select the option to send emails
* Use the default from of the contact, which should be the email on their conta...To reproduce:
* Record a contribution for a contact
* Find Contributions, select the contribution, Send Thank You Letters
* Select the option to send emails
* Use the default from of the contact, which should be the email on their contact record.
When sending the emails, CiviCRM will throw an error that there is no 'from' in the email, which sounds like this SE question: https://civicrm.stackexchange.com/questions/21780/civicontribute-thank-you-letter-not-emailed-using-cividesk-sparkpost/24948
Inspecting the form html reveal's this:
![Capture_d_écran_de_2019-03-14_12-45-04](/uploads/04998410f1c204cb52310c0dbb6da0fc/Capture_d_écran_de_2019-03-14_12-45-04.png)
It seems very familiar to issue #3575.12.0https://lab.civicrm.org/dev/core/-/issues/798Prefix/suffix select2 renders oddly on public-facing pages2019-03-14T21:07:10ZJonGoldPrefix/suffix select2 renders oddly on public-facing pagesPrefix and suffix fields in contribution/event profiles render incorrectly on public-facing pages. See screenshot:
![Selection_823](/uploads/5d05559371fa6c062b2dad8ecd8c2901/Selection_823.png)
There are a couple of ways to fix, I'll do...Prefix and suffix fields in contribution/event profiles render incorrectly on public-facing pages. See screenshot:
![Selection_823](/uploads/5d05559371fa6c062b2dad8ecd8c2901/Selection_823.png)
There are a couple of ways to fix, I'll do whatever folks like best.
One is to fix `civicrm.css` here:
```css
.crm-container.crm-public .select2-container .select2-choice {
padding: 5px 5px 5px 8px;
height: auto;
}
```
Changing `height: auto` to `height: 26px` matches the backend `select2.css`. Other select2 widgets are unaffected because they have placeholder text. I could also add placeholder text to the default rendering of this widget, but I think the CSS fix makes more sense.
I'll submit a PR to continue this discussion.5.13.0JonGoldJonGoldhttps://lab.civicrm.org/dev/core/-/issues/795PHP Warning "explode() expects parameter 2 to be string, array given" for mul...2019-03-20T14:59:22ZVirenmagePHP Warning "explode() expects parameter 2 to be string, array given" for multi-value country fieldsI am getting above error while trying to save multiple country for agent profile. And when I search about this error I found that unnecessary use of explode() function on line 127. You can see more about on https://lab.civicrm.org/dev/co...I am getting above error while trying to save multiple country for agent profile. And when I search about this error I found that unnecessary use of explode() function on line 127. You can see more about on https://lab.civicrm.org/dev/core/issues/216 and code file
https://lab.civicrm.org/dev/core/blob/master/CRM/Core/BAO/CustomValueTable.php#L127
So according to me you need to ask to civiCRM team to comment line 127
$mulValues = explode(',', $value);
![error](/uploads/c124cf6618247c06ef570df0639f869c/error.png)5.13.0https://lab.civicrm.org/dev/core/-/issues/787Auto-complete search results not consistent with other searches2020-03-16T20:27:10ZyashodhaAuto-complete search results not consistent with other searchesAuto-complete (custom data on contacts) search results not consistent with other searches if the searched string has a space.
(check screenshot)![search](/uploads/8047fab578e9e63da65526701a88682d/search.png)
The quick search result is ri...Auto-complete (custom data on contacts) search results not consistent with other searches if the searched string has a space.
(check screenshot)![search](/uploads/8047fab578e9e63da65526701a88682d/search.png)
The quick search result is right and the auto-complete should also show 1 result only.5.25.0yashodhayashodhahttps://lab.civicrm.org/dev/core/-/issues/786Search Builder: Empty Operators create DB Errors; switching to NULL Operators...2023-01-03T05:03:33ZjoeglSearch Builder: Empty Operators create DB Errors; switching to NULL Operators fixesStackOverflow here: https://civicrm.stackexchange.com/questions/28802/search-builder-smart-group-with-latitute-street-address-criteria-1292-truncated
We have upgraded from 4.7.17 to 5.9.1. This was initially a Smart Group DB Error issue...StackOverflow here: https://civicrm.stackexchange.com/questions/28802/search-builder-smart-group-with-latitute-street-address-criteria-1292-truncated
We have upgraded from 4.7.17 to 5.9.1. This was initially a Smart Group DB Error issue, but I believe it has more to do with the Empty vs Null operators. The Smart Group/Contact Group in question is built on two simple search builder criteria:
Contacts Primary Street Address is NOT EMPTY
Contacts Primary Latitude IS EMPTY
The resulting error from trying to update this Smart Group is:
`[nativecode=1292 ** Truncated incorrect DOUBLE value: '']`
Additionally, when I attempt to create a new Search Builder with the same criteria, I wouldn't get a hard DB Error page fail, but I still saw this in the logs:
`Ignoring exception thrown by nullHandler: -1, DB Error: unknown error`
When I switched both the operators from EMPTY to NULL in the criteria, I had no problems with search and was able to successfully update the Smart Group.
One thing which I think is important/pertinent is when I initially loaded the "Edit Search Criteria" page for the existing Smart Group, the Search did not remember the operators and I had to re-select them -- this leads me to believe the field storage methodology for the operator lists changed at some point, and the options we had selected in this search were not carried over properly in an upgrade, but I am not certain.https://lab.civicrm.org/dev/core/-/issues/782CiviMail not showing proper groups for multisite2022-03-03T16:30:51ZandyburnsCiviMail not showing proper groups for multisiteBecause groups are not tied to a domain, they are accessible to anyone. This means 1) they see groups that are irrelevant to them and 2) in CiviMail send mailings out to records who are not within their ACL control via this extension: ht...Because groups are not tied to a domain, they are accessible to anyone. This means 1) they see groups that are irrelevant to them and 2) in CiviMail send mailings out to records who are not within their ACL control via this extension: https://civicrm.org/extensions/multisite-permissioning.
This leads to the question, how do we get more entities to be domain specific? There are some listed on the old documentation as desirable here: https://wiki.civicrm.org/confluence/display/CRMDOC/Multisites%2C+Multidomain%2C+and+Multilevel+ACLs#Multisites,Multidomain,andMultilevelACLs-FunctionalSeparationinMultisite, groups is not.https://lab.civicrm.org/dev/core/-/issues/781Contact Display Name vs Email Greeting in Workflow templates2019-10-23T20:22:53ZMichael LabriolaContact Display Name vs Email Greeting in Workflow templatesI noticed that some of the workflow templates use contact.display_name in the greeting and some of them use contact.email_greeting. It would make sense to me that they all use contact.email_greeting. From what I can tell these template...I noticed that some of the workflow templates use contact.display_name in the greeting and some of them use contact.email_greeting. It would make sense to me that they all use contact.email_greeting. From what I can tell these templates are part of civicrm_generated.mysql file, which is quite large. I created a fork and updated the several places where display_name is still being used. Is submitting a merge request something a general user can do here?
Thanks!5.20.0