CiviCRM Core issueshttps://lab.civicrm.org/dev/core/-/issues2022-10-18T05:03:56Zhttps://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/830Proposal - add cancel_reason field to civicrm_contribution_recur table2020-07-13T00:08:49ZeileenProposal - add cancel_reason field to civicrm_contribution_recur tableWe have a request to add a field cancel_reason to the civicrm_contribution_recur table.
The main reason to consider putting this in core (as opposed to a custom field) is that it would provide consistency with the civicrm_contribution ...We have a request to add a field cancel_reason to the civicrm_contribution_recur table.
The main reason to consider putting this in core (as opposed to a custom field) is that it would provide consistency with the civicrm_contribution table which has cancel_date & cancel_reason (the latter being toggled for visibility based on the former).
Associated cleanup
- I think it's kind of a condition of adding any UI feature / functionality/ new field to core that some sort of tangental cleanup is also done - I think probably the related area that could most do with some love is to add the field to the contribution search & add unit test coverage for the recurring contribution fields - they currently are not covered by any searches.
Review
- If we do this I will trade review with someone - probably Matt Wire as I don't assume someone will 'just review it'https://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/818CQ: Switch core forms to be Entity Forms2022-10-31T05:03:14ZeileenCQ: Switch core forms to be Entity FormsWe have switched some forms already to use the EntityFormTrait as part of the following goals
1) move data about the fields on the forms into the schema xml - this will be important to help us migrate away from quick form
2) support cus...We have switched some forms already to use the EntityFormTrait as part of the following goals
1) move data about the fields on the forms into the schema xml - this will be important to help us migrate away from quick form
2) support custom data on a wide range of entities - several entities already support custom data as a result of having been switched to entity forms - relationship type form, membership status, financial type, price set etc
3) support parameters passed through the url in a non ad-hoc way - we have a history of security issues are url parameters so any new retrieval should be stdised & we need to work to remove existing ones
4) support extension intervention in the fields displayed - this is particularly supported by the tpl changes in the entity form structure
5) generalised reduction in unecessary code
6) improving translation consistency
What is involved in the Entity Form is best understood by looking at existing examples but basically it consists of
- using the EntityFormTrait
- ensuring the relevant things are declared on the class to support that
- declaring all the fields that can be added through metadata in the metadata array
- working towards simplifying the tpl to a single line {include file="CRM/Core/Form/EntityForm.tpl"}
Generally in any change we can take steps towards this rather than fully implement ithttps://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/785Differentiate smart group from regular group using icon in select2 field2020-07-27T19:47:10ZMonish DebDifferentiate smart group from regular group using icon in select2 fieldCurrently there is no way to tell which group is smart or regular group from UI. It would be ideal to use icon against such smart group options to differentiate them from regular ones.Currently there is no way to tell which group is smart or regular group from UI. It would be ideal to use icon against such smart group options to differentiate them from regular ones.5.29.0Monish DebMonish Deb