CiviCRM Core issueshttps://lab.civicrm.org/dev/core/-/issues2022-04-22T16:21:18Zhttps://lab.civicrm.org/dev/core/-/issues/3351Remove scriptFee & scriptArray params2022-04-22T16:21:18Zmattwiremjw@mjwconsult.co.ukRemove scriptFee & scriptArray paramsThese parameters are not used and should be removed from CiviCRM codeThese parameters are not used and should be removed from CiviCRM code5.20.0https://lab.civicrm.org/dev/core/-/issues/1064Allow personalised 'view in browser' links for mass emails2021-09-13T08:10:09ZJKingsnorthAllow personalised 'view in browser' links for mass emailsProblem summary:
As a user, I want to view an email in my browser, but when I do the tokens are not populated.
Detail:
The {mailing.viewUrl} token can be used to generate a link to the 'public' view of an email. If a user is logged in t...Problem summary:
As a user, I want to view an email in my browser, but when I do the tokens are not populated.
Detail:
The {mailing.viewUrl} token can be used to generate a link to the 'public' view of an email. If a user is logged in to the website, then the tokens in the email are replaced correctly. However, it would be cool if the public view of the email also supported checksums, so that we can include a link to the personalised web-version of the email.
This involves:
* Supporting checksums when rendering the email in \CRM_Mailing_Page_View::run
* Adding a new token to extract the 'mailing key' (ID or hash) from the mailing
* Updating the documentation to describe the URL format to use for this
The proposed format is:
https://example.com/civicrm/mailing/view?reset=1&id={mailing.key}&cid={contact.contact_id}&{contact.checksum}
This is because we can't easily 'inject' contact-related tokens into the existing {mailing.viewUrl}. This format also matches the existing patterns as described in https://docs.civicrm.org/user/en/latest/common-workflows/tokens-and-mail-merge/
(It would be super-awesome if we could make these tokens more user-friendly, like {checksum.event.123} or something. But that is out-of-scope for this issue!)
I'm about to throw up a PR with the proposed code changes.https://lab.civicrm.org/dev/core/-/issues/3390API different from Form when setting contrib status to failed for event reg2024-01-12T05:03:26ZJoeMurrayAPI different from Form when setting contrib status to failed for event regUsing the API to set a Contribution's status to "Failed" does not also update its related Participant to "Cancelled", unlike when you edit via the UI.
Move business logic from Form
https://github.com/civicrm/civicrm-core/blob/master/CR...Using the API to set a Contribution's status to "Failed" does not also update its related Participant to "Cancelled", unlike when you edit via the UI.
Move business logic from Form
https://github.com/civicrm/civicrm-core/blob/master/CRM/Contribute/BAO/Contribution.php#L1938
to BAO as per discussion at https://chat.civicrm.org/civicrm/pl/gms1or8wyfni3q3boj8cx1ktxamattwiremjw@mjwconsult.co.ukmattwiremjw@mjwconsult.co.ukhttps://lab.civicrm.org/dev/core/-/issues/1065Grant in Edit mode doesn't show the associated contact and standardize all sc...2020-10-16T00:39:24ZyashodhaGrant in Edit mode doesn't show the associated contact and standardize all screens accordingly.Grant in Edit mode doesn't but should show the associated contact![edit_grant](/uploads/48bdaafb98a0568db0f1b8e97f1fe352/edit_grant.png)
All associated screens contribution, partipant, member,etc need to display contact name as clickabl...Grant in Edit mode doesn't but should show the associated contact![edit_grant](/uploads/48bdaafb98a0568db0f1b8e97f1fe352/edit_grant.png)
All associated screens contribution, partipant, member,etc need to display contact name as clickable link.
![parti](/uploads/0c31de2d736fcc6d4d03db822522e668/parti.png)5.21.0yashodhayashodhahttps://lab.civicrm.org/dev/core/-/issues/3348Event Information page, Price Set, Field Label is hidden if only 1 price opti...2022-04-22T16:21:14Zjustinfreeman (Agileware)Event Information page, Price Set, Field Label is hidden if only 1 price option is set for the field, but shown if more than 1 price option is setEvent Information page, Price Set, Field Label is hidden if only 1 price option is set for the field, but shown if more than 1 price option is set. This is counter-intuitive and problematic because the Field Label is expected to be alway...Event Information page, Price Set, Field Label is hidden if only 1 price option is set for the field, but shown if more than 1 price option is set. This is counter-intuitive and problematic because the Field Label is expected to be always shown. Not to have conditional logic which determines when it is shown. There is no guidance given in the user interface for this behaviour.
Recommend that the logic here be removed, https://github.com/civicrm/civicrm-core/blob/master/CRM/Event/Page/EventInfo.php#L132
**Price set, 2 price options - field label shown.**
Price set, field label
![chrome_Bkc47oIGbW](/uploads/1f3d6ddd3f94b30ddd15a76c168cb33e/chrome_Bkc47oIGbW.png)
Shown on the page like this
![chrome_L7m5Yd6CEY](/uploads/42810caf7891584a7e5f651b44794dd5/chrome_L7m5Yd6CEY.png)
**Price set, 1 price option - no field label shown.**
Price set, field label
![chrome_OoefRWUI9q](/uploads/b79d8c06cfd3dbea36b8e6de50feac30/chrome_OoefRWUI9q.png)
Shown on the page like this
![chrome_Vx0EOvDtDZ](/uploads/7b1739adb16783fddaefb2a76c8554da/chrome_Vx0EOvDtDZ.png)
Agileware Ref: CIVICRM-1366https://lab.civicrm.org/dev/core/-/issues/1066AND operator breaks MAILINGS Navigation menu2019-06-24T15:18:33ZtapashAND operator breaks MAILINGS Navigation menuIn the "Navigation Menu" settings when multiple permission is selected with "AND" operator the MAILING menu item disappears. I have tried with 2 operators - "Access CiviMail" AND "Delete in CiviMail".
I am running 5.14.1 and tested this ...In the "Navigation Menu" settings when multiple permission is selected with "AND" operator the MAILING menu item disappears. I have tried with 2 operators - "Access CiviMail" AND "Delete in CiviMail".
I am running 5.14.1 and tested this on dmaster to confirm that its a bug. This seemed to have worked in 5.13.https://lab.civicrm.org/dev/core/-/issues/3397Quicklink to participant search on manage events includes Pending In Cart but...2022-04-22T16:22:46ZDaveDQuicklink to participant search on manage events includes Pending In Cart but that isn't an option in the list of statuses on event searchOn manage events there's a quicklink on the right hand side under Participants that takes you to no-show, cancelled, etc. It includes Pending in Cart, but this isn't a searchable status because it's hardcoded to be excluded.
Where this ...On manage events there's a quicklink on the right hand side under Participants that takes you to no-show, cancelled, etc. It includes Pending in Cart, but this isn't a searchable status because it's hardcoded to be excluded.
Where this came up was during testing https://github.com/civicrm/civicrm-core/pull/16038 I'm getting an E_NOTICE on my local and the status field on the search form doesn't get filled in. In trying to track that down I'm still not sure if it's related to this issue but I saw that even on dmaster.demo Pending In Cart is being searched on by that quicklink but not appearing in the list of statuses.
So the question is which of these is correct?:
1. It should be in the list for the quicklink and in the list of searchable statuses.
1. It shouldn't be in the list for the quicklink.https://lab.civicrm.org/dev/core/-/issues/1067CiviCRM Campaign, the Revenue Goal field stores 0 if $5,000 or any other non-...2019-06-27T05:28:09Zjustinfreeman (Agileware)CiviCRM Campaign, the Revenue Goal field stores 0 if $5,000 or any other non-numeric value is enteredCiviCRM Campaign, the **Revenue Goal** field will store 0 if a non-numeric value is entered. The value is changed without any warning to the user when the Campaign form is saved.
The Revenue Goal field accepts any text value and then co...CiviCRM Campaign, the **Revenue Goal** field will store 0 if a non-numeric value is entered. The value is changed without any warning to the user when the Campaign form is saved.
The Revenue Goal field accepts any text value and then converts the value to a number. There is no field help or guidance provided to the user at all about what type of values can be entered into this field. No warning or notice that the value was changed.
Recommended changes:
* Change Revenue Goal field to only allow numbers to be entered
* Provide Revenue Goal field help, like: "Use this field to enter the number representing the Revenue Goal"
* Display the defined CiviCRM currency as a prefix for the field, eg. $AUD which is a visual indication for what to be entered here.
Video of the bug in action, https://app.hyfy.io/v/abxnpn3llWo/
Confirmed on CiviCRM 5.16.alpha1
Agileware Ref: CIVICRM-12495.16.0seamusleeseamusleehttps://lab.civicrm.org/dev/core/-/issues/3368"Confirm from waitlist" doesn't consider whether participant roles are counted.2022-04-22T16:21:55ZJonGold"Confirm from waitlist" doesn't consider whether participant roles are counted.To test this:
* Set your Participant Role of "Host" as not Counted. Keep "Attendee" as Counted.
* Create an event with a max enrollment of 1.
* Register a host.
* Observe that everywhere you can look in the UI, the non-counted participan...To test this:
* Set your Participant Role of "Host" as not Counted. Keep "Attendee" as Counted.
* Create an event with a max enrollment of 1.
* Register a host.
* Observe that everywhere you can look in the UI, the non-counted participant isn't counted; registration is still open.
* Register an attendee.
* Add an attendee to the waitlist.
* Cancel (or delete) the registered attendee's participant record.
* At this point, everything STILL works correctly.
The issue only arises when the person gets the "Confirm you want to come off the waitlist" email and clicks the link, bringing them to `<site>/civicrm/event/confirm`. This page says that registration is closed - because it's counting the Host against the max enrollment count.
After working through this, I realized this is very similar to event#7 - the function `CRM_Event_BAO_Participant::pendingToConfirmSpaces()` is a dog. It duplicates code found elsewhere, but poorly.
I replaced the one reference to this function with a call to `CRM_Event_BAO_Participant::eventFull()`, which I tweaked slightly to accommodate this use case. This means that:
* We removed a 50-line function by adding 5 lines to another function;
* We replaced an untested function with a tested one.5.23.0JonGoldJonGoldhttps://lab.civicrm.org/dev/core/-/issues/1068County / State Does not load2019-06-23T08:13:06ZtapashCounty / State Does not loadon CiviCRM 5.14.1 State list does not seem to load properly. No matter what Country I select the list of state remains the same. I have tested with a clean environment
![2019-06-22_16-34-29.2019-06-22_16_35_51](/uploads/6f2fd11c84d1e70e...on CiviCRM 5.14.1 State list does not seem to load properly. No matter what Country I select the list of state remains the same. I have tested with a clean environment
![2019-06-22_16-34-29.2019-06-22_16_35_51](/uploads/6f2fd11c84d1e70e8893939e60527286/2019-06-22_16-34-29.2019-06-22_16_35_51.gif)https://lab.civicrm.org/dev/core/-/issues/3367"Confirm your Registration" from waitlist has poor UX2022-04-22T16:21:54ZJonGold"Confirm your Registration" from waitlist has poor UXOn the "Confirm your Registration" page (<site>/civicrm/event/confirm) you must click "Confirm my Registration", then redo your entire event registration (it pulls some of your registration data but not all of it, depending on your permi...On the "Confirm your Registration" page (<site>/civicrm/event/confirm) you must click "Confirm my Registration", then redo your entire event registration (it pulls some of your registration data but not all of it, depending on your permissions). However, on free events, this all seems a bit excessive. I propose that on free events it simply changes your status to "Registered".
I'm going to implement this in an extension now - but will PR it if the concept is approved.JonGoldJonGoldhttps://lab.civicrm.org/dev/core/-/issues/1069Error thrown while sending email using the preferred from address2019-07-31T10:23:15ZyashodhaError thrown while sending email using the preferred from addressGo to Settings - Outbound Mail
Check Allow Mail to be sent from logged in contact's email address
Error is thrown while sending email using the preferred from address (logged in user's email address)
![from_error](/uploads/af9340f4d2f...Go to Settings - Outbound Mail
Check Allow Mail to be sent from logged in contact's email address
Error is thrown while sending email using the preferred from address (logged in user's email address)
![from_error](/uploads/af9340f4d2fd80fc572d43ac9a78d609/from_error.png)
This behavior replicated *only* for preferred from address.
![preferred_from](/uploads/3357529a787d528568898a372f6e9d0a/preferred_from.png)
yashodhayashodhahttps://lab.civicrm.org/dev/core/-/issues/3354Participant name overwritten with Billing Name2022-04-22T16:21:27ZADG CreativeParticipant name overwritten with Billing NameNoticed after update to Civi 5.20.2
On front-end Event Registration form, when the billing First/Last name is different than the event participant name, upon submitting the form, the Participant First/Last name is overwritten with the Bi...Noticed after update to Civi 5.20.2
On front-end Event Registration form, when the billing First/Last name is different than the event participant name, upon submitting the form, the Participant First/Last name is overwritten with the Billing First Last Name.
This causes the event registration to be attached to the Billing contact instead of the Participant contact.
![EventReg](/uploads/b052394df67c272cf04ae072d4d4d438/EventReg.jpg)
![EventConfirm](/uploads/081f712c33fba71e88b11a1153205d4b/EventConfirm.jpg)
![FindParticipants](/uploads/b3d3ae3ad5db1f2dc006ea0963e98f18/FindParticipants.jpg)5.21.0https://lab.civicrm.org/dev/core/-/issues/1070For CiviCRM v4 API, I would like to resurrect the discussion to remove the de...2019-06-25T13:05:13Zjustinfreeman (Agileware)For CiviCRM v4 API, I would like to resurrect the discussion to remove the default limit of 25 from the APIFor CiviCRM v4 API, I would like to resurrect the discussion to remove the default limit of 25 from the API.
The default limit of 25 is problematic because it is unexpected - not explicitly defined in the API call. So new developers are...For CiviCRM v4 API, I would like to resurrect the discussion to remove the default limit of 25 from the API.
The default limit of 25 is problematic because it is unexpected - not explicitly defined in the API call. So new developers are caught unaware of this limit when testing their code on small test data sets. When moving to a production environment, the default limit then appears and causes problems. We've seen this issue affect both new and seasoned CiviCRM developers.
I found this old discussion thread over here with familiar faces, https://forum.civicrm.org/index.php%3Ftopic=26854.0.html
This is a developer improvement similar to #1062
Agileware Ref: CIVICRM-1253https://lab.civicrm.org/dev/core/-/issues/3364Can't self-service cancel a participant record unless status is "Registered".2022-04-22T16:21:49ZJonGoldCan't self-service cancel a participant record unless status is "Registered".It's not unreasonable for someone to want to cancel if they're waitlisted (to make room for others); one can imagine a range of scenarios in which a participant record should be canceled when status isn't "Registered".
I went to fix thi...It's not unreasonable for someone to want to cancel if they're waitlisted (to make room for others); one can imagine a range of scenarios in which a participant record should be canceled when status isn't "Registered".
I went to fix this, but the code here is overall bad. Plenty of values are hard-coded that shouldn't be, and logic that belongs in the BAO is in the form. I expanded the range of cancelable statuses, but also did some cleanup to move the logic out of the form layer.JonGoldJonGoldhttps://lab.civicrm.org/dev/core/-/issues/1071CiviCRM Mailing does not set the Reply-To header to use VERP (CiviCRM return ...2020-09-17T09:47:54Zjustinfreeman (Agileware)CiviCRM Mailing does not set the Reply-To header to use VERP (CiviCRM return address) when Flexmailer is installed and using default optionCiviCRM Mailing does not set the Reply-To header to use VERP (CiviCRM return address) when Flexmailer is enabled and **Traditional Mailing Handler** using the *default* option of **Automatic** or **CiviMail BAO** or on page /civicrm/admi...CiviCRM Mailing does not set the Reply-To header to use VERP (CiviCRM return address) when Flexmailer is enabled and **Traditional Mailing Handler** using the *default* option of **Automatic** or **CiviMail BAO** or on page /civicrm/admin/flexmailer?reset=1
If the **Traditional Mailing Handler** option is set to **Flexmailer Pipeline** then the Reply-To header is set correctly.
This is problematic because all email replies are sent to the reply-to email address which is often a **user mailbox** and not processed by CiviCRM at all. The user receives all the bounced emails and out of office replies.
Because this problem occurs with the default options, there is a high likelihood that this problem will impact on a CiviCRM site.
Environment:
* CiviCRM 5.14.1
* Flexmailer extension 1.1.0
* Track replies using VERP in Reply-To header option is enabled
* Enable Custom Reply-To option is disabled
Agileware Ref: CIVICRM-1254https://lab.civicrm.org/dev/core/-/issues/1072Combine the CiviMail Settings and the CiviMail Components Settings which are ...2020-09-17T09:48:45Zjustinfreeman (Agileware)Combine the CiviMail Settings and the CiviMail Components Settings which are currently on two different pages to be on the same pageCombine the CiviMail Settings and the CiviMail Components Settings which are currently on two different pages to be on the same page.
The reasoning is that these settings are all related to CiviMail and should be shown on the same page....Combine the CiviMail Settings and the CiviMail Components Settings which are currently on two different pages to be on the same page.
The reasoning is that these settings are all related to CiviMail and should be shown on the same page.
Particularly confusing when the VERP configuration is on BOTH pages.
**Settings - CiviMail**
* Enable Custom Reply-To
* VERP Separator
**CiviMail Component Settings**
* Track replies using VERP in Reply-To header
![Settings_-_CiviMail](/uploads/735ca3a60a22986c58a2f9bfe1a21946/Settings_-_CiviMail.png)
![CiviMail_Component_Settings](/uploads/a6ef9a8e20d71b46744d511d97d85590/CiviMail_Component_Settings.png)
Agileware Ref: CIVICRM-1255https://lab.civicrm.org/dev/core/-/issues/3403Scheduled reminders are incorrectly sent from event templates when "additiona...2022-04-22T16:22:57ZJonGoldScheduled reminders are incorrectly sent from event templates when "additional group" is selectedTo replicate:
* Create a new event template.
* In the template's Scheduled Reminders, create a reminder.
* In that reminder, select "Also Include" "Group".
* Fire `Job.send_reminder` via API, Scheduled Jobs page, whatever.
Expected res...To replicate:
* Create a new event template.
* In the template's Scheduled Reminders, create a reminder.
* In that reminder, select "Also Include" "Group".
* Fire `Job.send_reminder` via API, Scheduled Jobs page, whatever.
Expected result:
* No scheduled reminders are sent - no event exists.
Actual result:
* Scheduled reminders are sent based on the template.5.23.0JonGoldJonGoldhttps://lab.civicrm.org/dev/core/-/issues/1073Performance : Expose some important smarty configuration variables outside th...2021-03-29T14:14:27ZVangelisPPerformance : Expose some important smarty configuration variables outside the smarty classWhile working with multiple "complex" civicrm sites on dedicated server instances, I've noticed that even though the database was highly optimized, all sites were having some sort of overhead of nearly 1.5-2 seconds before rendering the...While working with multiple "complex" civicrm sites on dedicated server instances, I've noticed that even though the database was highly optimized, all sites were having some sort of overhead of nearly 1.5-2 seconds before rendering the results. That is on the contact display page, on search, advanced search and so on.
Added Redis caching to CiviCRM, helped with a bit of small improvement but again, the delay was there.
Digging deeper with XHProf, I've found out that for every page that was loading, Smarty was checking if the templates needed recompiling.
Long story short, inside the /packages/Smarty/Smarty.class.php there's a variable that is `true` by default:
`var $compile_check = true;`
Description is the following:
> This tells Smarty whether to check for recompiling or not. Recompiling does not need to happen unless a template or config file is changed. Typically you enable this during development, and disable for production.
Disabling this in production, i did see a big improvement in terms of speed, as Smarty is now being instructed not scan every time if it needs to recompile the templates.
My suggestion would be to expose that variable (along with `$caching`) as a constant so that for example we can add it to `settings.php` as 'false' in production environments.
I could provide a patch (if needed) that does that.
PS. "complex" = a CiviCRM instance with many extensions and many tpl injections through custom extensions.5.17.0https://lab.civicrm.org/dev/core/-/issues/3409Back-office registration of guest participants2023-01-10T15:22:25ZJKingsnorthBack-office registration of guest participants**Motivation:**
Currently it is not possible to add 'additional participants' (guests) to an event booking in the back end. Instead, you need to create a new booking for the guest record, and then there is no way to 'link' them to the le...**Motivation:**
Currently it is not possible to add 'additional participants' (guests) to an event booking in the back end. Instead, you need to create a new booking for the guest record, and then there is no way to 'link' them to the lead booker.
**Solution:**
Allow additional participants (guests) to be added to someone's booking, when managing participants through the back end, eg:
![image](/uploads/00c03cb2e27642db624ec612516927f8/image.png)
**Previous work:**
See https://issues.civicrm.org/jira/browse/CRM-19047 . The PR here (https://github.com/civicrm/civicrm-core/pull/8676) works for adding guests to peoples' bookings in the back end for free events. But we ran into some problems with paid events, because of the way the contribution row is handled.
We are currently working on this and hope to submit a new PR that will work for free and paid events by the end of January.https://lab.civicrm.org/dev/core/-/issues/1074Remove from groups is action is broken when searching of contacts within a group2019-06-30T00:07:10ZseamusleeRemove from groups is action is broken when searching of contacts within a groupWhen you get a list of contacts within a group by going to contacts -> manage groups -> contacts and then go and select a contact and then select contacts - remove from groups it fails on a DB syntax error. However doing a similar thing ...When you get a list of contacts within a group by going to contacts -> manage groups -> contacts and then go and select a contact and then select contacts - remove from groups it fails on a DB syntax error. However doing a similar thing via advanced search works. It looks like the prevNextCache is not getting populated sensibly
Error and backtrace
```
[to_string] => [db_error: message="DB Error: syntax error" code=-2 mode=callback callback=CRM_Core_Error::exceptionHandler prefix="" info="SELECT *
FROM civicrm_contact
WHERE (id IN ())
[nativecode=1064 ** You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '))' at line 3]"]
)
Jun 26 08:02:55 [info] $backTrace = #0 /home/seamus/buildkit/build/47-test/sites/all/modules/civicrm/CRM/Core/Error.php(952): CRM_Core_Error::backtrace("backTrace", TRUE)
#1 /home/seamus/buildkit/build/47-test/sites/all/modules/civicrm/vendor/pear/pear-core-minimal/src/PEAR.php(922): CRM_Core_Error::exceptionHandler(Object(DB_Error))
#2 /home/seamus/buildkit/build/47-test/sites/all/modules/civicrm/packages/DB.php(985): PEAR_Error->__construct("DB Error: syntax error", -2, 16, (Array:2), "SELECT *\nFROM civicrm_contact\nWHERE (id IN ())\n [nativecode=1064 ** You ha...")
#3 /home/seamus/buildkit/build/47-test/sites/all/modules/civicrm/vendor/pear/pear-core-minimal/src/PEAR.php(575): DB_Error->__construct(-2, 16, (Array:2), "SELECT *\nFROM civicrm_contact\nWHERE (id IN ())\n [nativecode=1064 ** You ha...")
#4 /home/seamus/buildkit/build/47-test/sites/all/modules/civicrm/vendor/pear/pear-core-minimal/src/PEAR.php(223): PEAR->_raiseError(Object(DB_mysqli), NULL, -2, 16, (Array:2), "SELECT *\nFROM civicrm_contact\nWHERE (id IN ())\n [nativecode=1064 ** You ha...", "DB_Error", TRUE)
#5 /home/seamus/buildkit/build/47-test/sites/all/modules/civicrm/packages/DB/common.php(1907): PEAR->__call("raiseError", (Array:7))
#6 /home/seamus/buildkit/build/47-test/sites/all/modules/civicrm/packages/DB/mysqli.php(933): DB_common->raiseError(-2, NULL, NULL, "SELECT *\nFROM civicrm_contact\nWHERE (id IN ())\n [nativecode=1064 ** You ha...", "1064 ** You have an error in your SQL syntax; check the manual that correspon...")
#7 /home/seamus/buildkit/build/47-test/sites/all/modules/civicrm/packages/DB/mysqli.php(403): DB_mysqli->mysqliRaiseError()
#8 /home/seamus/buildkit/build/47-test/sites/all/modules/civicrm/packages/DB/common.php(1216): DB_mysqli->simpleQuery("SELECT *\nFROM civicrm_contact\nWHERE (id IN ())\n")
#9 /home/seamus/buildkit/build/47-test/sites/all/modules/civicrm/packages/DB/DataObject.php(2415): DB_common->query("SELECT *\nFROM civicrm_contact\nWHERE (id IN ())\n")
#10 /home/seamus/buildkit/build/47-test/sites/all/modules/civicrm/packages/DB/DataObject.php(1607): DB_DataObject->_query("SELECT *\nFROM civicrm_contact\nWHERE (id IN ())\n")
#11 /home/seamus/buildkit/build/47-test/sites/all/modules/civicrm/CRM/Core/DAO.php(439): DB_DataObject->query("SELECT *\nFROM civicrm_contact\nWHERE (id IN ())\n")
#12 /home/seamus/buildkit/build/47-test/sites/all/modules/civicrm/CRM/Core/DAO.php(1414): CRM_Core_DAO->query("SELECT *\nFROM civicrm_contact\nWHERE (id IN ())\n", TRUE)
#13 /home/seamus/buildkit/build/47-test/sites/all/modules/civicrm/CRM/Utils/SQL/Select.php(517): CRM_Core_DAO::executeQuery("SELECT *\nFROM civicrm_contact\nWHERE (id IN ())\n", (Array:0), TRUE, NULL, FALSE, TRUE, FALSE)
#14 /home/seamus/buildkit/build/47-test/sites/all/modules/civicrm/CRM/Contact/Form/Task.php(491): CRM_Utils_SQL_Select->execute()
#15 /home/seamus/buildkit/build/47-test/sites/all/modules/civicrm/CRM/Contact/Form/Task.php(272): CRM_Contact_Form_Task::getSelectedContactNames()
#16 /home/seamus/buildkit/build/47-test/sites/all/modules/civicrm/CRM/Contact/Form/Task.php(91): CRM_Contact_Form_Task::preProcessCommon(Object(CRM_Contact_Form_Task_RemoveFromGroup))
#17 /home/seamus/buildkit/build/47-test/sites/all/modules/civicrm/CRM/Core/Form.php(590): CRM_Contact_Form_Task->preProcess()
#18 /home/seamus/buildkit/build/47-test/sites/all/modules/civicrm/CRM/Core/QuickForm/Action/Display.php(92): CRM_Core_Form->buildForm()
#19 /home/seamus/buildkit/build/47-test/sites/all/modules/civicrm/packages/HTML/QuickForm/Controller.php(203): CRM_Core_QuickForm_Action_Display->perform(Object(CRM_Contact_Form_Task_RemoveFromGroup), "display")
#20 /home/seamus/buildkit/build/47-test/sites/all/modules/civicrm/packages/HTML/QuickForm/Page.php(103): HTML_QuickForm_Controller->handle(Object(CRM_Contact_Form_Task_RemoveFromGroup), "display")
#21 /home/seamus/buildkit/build/47-test/sites/all/modules/civicrm/CRM/Core/Controller.php(351): HTML_QuickForm_Page->handle("display")
#22 /home/seamus/buildkit/build/47-test/sites/all/modules/civicrm/CRM/Core/Invoke.php(311): CRM_Core_Controller->run((Array:3), (Array:0))
#23 /home/seamus/buildkit/build/47-test/sites/all/modules/civicrm/CRM/Core/Invoke.php(85): CRM_Core_Invoke::runItem((Array:14))
#24 /home/seamus/buildkit/build/47-test/sites/all/modules/civicrm/CRM/Core/Invoke.php(52): CRM_Core_Invoke::_invoke((Array:3))
#25 /home/seamus/buildkit/build/47-test/sites/all/modules/civicrm/drupal/civicrm.module(444): CRM_Core_Invoke::invoke((Array:3))
#26 /home/seamus/buildkit/build/47-test/includes/menu.inc(527): civicrm_invoke("group", "search")
#27 /home/seamus/buildkit/build/47-test/index.php(21): menu_execute_active_handler()
```5.15.0https://lab.civicrm.org/dev/core/-/issues/3374Event registration form doesn't prevent multiple signups for waitlisted parti...2022-04-22T16:22:05ZJonGoldEvent registration form doesn't prevent multiple signups for waitlisted participants.CRM-2426 implemented duplicate registrant detection - but I suspect it predates waitlist functionality.
### Replication steps
* Create an event with a **max registrants** of 1.
* Register a participant.
* Register a user for the waitlis...CRM-2426 implemented duplicate registrant detection - but I suspect it predates waitlist functionality.
### Replication steps
* Create an event with a **max registrants** of 1.
* Register a participant.
* Register a user for the waitlist.
* Register the waitlisted user for the waitlist again.
### Expected Result
An error: `It looks like you are already registered for this event. If you want to change your registration, or you feel that you've received this message in error, please contact the site administrator.`
### Actual Results
Multiple registrations are permitted.JonGoldJonGoldhttps://lab.civicrm.org/dev/core/-/issues/1075Event Registration Confirmation will output all CiviCRM Custom Fields in the ...2020-09-17T09:48:47Zjustinfreeman (Agileware)Event Registration Confirmation will output all CiviCRM Custom Fields in the same Field Set and not use only those Custom Fields used in the Event Participant ProfileEvent Registration Confirmation will output all CiviCRM Custom Fields in the same Field Set and not use only those Custom Fields used in the Event Participant Profile
**Steps to reproduce**
1. Create a Custom Field Set for Participants...Event Registration Confirmation will output all CiviCRM Custom Fields in the same Field Set and not use only those Custom Fields used in the Event Participant Profile
**Steps to reproduce**
1. Create a Custom Field Set for Participants
1. Create three new Participant fields: Field A, Field B, Field C
1. Create a Profile for the Event Registration
1. Add the custom Participant field: Field A to the Profile
1. Register for the Event
1. Check the Event Registration Confirmation, fields: Field A, Field B, Field C are listed
The expected behaviour is that only Field A should be listed on the Event Registration Confirmation.
Agileware Ref: CIVICRM-1259https://lab.civicrm.org/dev/core/-/issues/3391E_NOTICES when visiting a contact's Events tab under certain conditions.2024-01-12T05:03:27ZDaveDE_NOTICES when visiting a contact's Events tab under certain conditions.I haven't had a chance to get the exact conditions and I don't think it's recent and the following might be a bit off but it's something like:
1. Using latest master.
2. Enable the waitlist features for an event (enable the two waitlist...I haven't had a chance to get the exact conditions and I don't think it's recent and the following might be a bit off but it's something like:
1. Using latest master.
2. Enable the waitlist features for an event (enable the two waitlist participant statuses and the checkbox on an event configuration info tab).
3. Fill up the event to its max participants.
4. Add a waitlist person.
5. Visit their events tab.
`Notice: Undefined index: target_contact_name in CRM_Activity_BAO_Activity::getContactActivitySelector() (line 2611 of .../CRM/Activity/BAO/Activity.php).`
```
elseif (!$values['target_contact_name']) {
$activity['target_contact_name'] = '<em>n/a</em>';
}
```
Note it doesn't show on the screen only in drupal watchdog.https://lab.civicrm.org/dev/core/-/issues/1076When target URL ends in ? then CiviCRM Mailing does not generate correct clic...2020-09-17T09:48:46Zjustinfreeman (Agileware)When target URL ends in ? then CiviCRM Mailing does not generate correct click-tracking URL when Flexmailer is installed and using default option for Traditional Mailing HandlerWhen target URL ends in ? then CiviCRM Mailing does not generate correct click-tracking URL when Flexmailer is installed and using default option for **Traditional Mailing Handler** of either **Automatic** or **CiviMail BAO** on page /ci...When target URL ends in ? then CiviCRM Mailing does not generate correct click-tracking URL when Flexmailer is installed and using default option for **Traditional Mailing Handler** of either **Automatic** or **CiviMail BAO** on page /civicrm/admin/flexmailer?reset=1
This is only reproducible if the URL has the format of *https://foo.bar?* - URL ending in ?
If the **Traditional Mailing Handler** option is set to **Flexmailer Pipeline** then the click-tracking URL is generated correctly.
This is a relatively low priority bug because the target URL itself was incorrect, however, it may indicate some underlying issue and so it's being reported. May be similar issue to #1071
Environment:
* CiviCRM 5.14.1
* Flexmailer extension 1.1.0
Agileware Ref: CIVICRM-1260https://lab.civicrm.org/dev/core/-/issues/3392"Confirm Event Invitation" message template has a bad variable2023-09-04T07:59:16ZJonGold"Confirm Event Invitation" message template has a bad variableIn the above-mentioned template, there are two URLs generated that are ostensibly the same:
```
{capture assign=selfService}{crmURL p='civicrm/event/selfsvcupdate' q="reset=1&pid=`$participantID`&{contact.checksum}" h=0 a=1 fe=1}{/captur...In the above-mentioned template, there are two URLs generated that are ostensibly the same:
```
{capture assign=selfService}{crmURL p='civicrm/event/selfsvcupdate' q="reset=1&pid=`$participantID`&{contact.checksum}" h=0 a=1 fe=1}{/capture}
```
and:
```
{capture assign=selfService}{crmURL p='civicrm/event/selfsvcupdate' q="reset=1&pid=`$participant.id`&{contact.checksum}" h=0 a=1 fe=1}{/capture}
```
`$participant.id` is a valid token in this context. `$participantID` isn't. Easy fix.JonGoldJonGoldhttps://lab.civicrm.org/dev/core/-/issues/1077Make report listing actions links hookable2020-08-12T14:56:34ZyashodhaMake report listing actions links hookableMake report listing actions hookable. All the other action links in CRM are exposed to links hook.
![report_action](/uploads/0163d968e46b47ae3fbe41bdf96e7875/report_action.png)Make report listing actions hookable. All the other action links in CRM are exposed to links hook.
![report_action](/uploads/0163d968e46b47ae3fbe41bdf96e7875/report_action.png)yashodhayashodhahttps://lab.civicrm.org/dev/core/-/issues/3358Add option to include guest information in back-office confirmation emails2024-01-07T05:03:23ZJKingsnorthAdd option to include guest information in back-office confirmation emailsProblem: when you send a confirmation email from the back-end after registering a participant, or editing their booking, it only includes the information for the 'current' participant (ie, just the lead booker). It does not include any '...Problem: when you send a confirmation email from the back-end after registering a participant, or editing their booking, it only includes the information for the 'current' participant (ie, just the lead booker). It does not include any 'additional participants' (guests) linked to their registration.
Solution: suggested CiviCRM core patch to add a checkbox to 'include guest information' for confirmation emails for participants that have guests attached to them. This would include the guest information int he email, as though it was from a front-end booking.
ie: IF the booking has additional participants, display a new checkbox:
![image](/uploads/2dbec13b633d9be6e880c2fb255a4b80/image.png)
If the checkbox is ticked, then add in the guest information, in the same way as a 'front-end' registration would add their information.https://lab.civicrm.org/dev/core/-/issues/1078Customers being charged double randomly2022-11-15T05:03:39ZSohalKhatwaniCustomers being charged double randomlyWe are using Core CiviCRM and the customers are now being charged double for their memberships and 2 payments are being taken. We are on the 5.13.5 and don't see any issues which would cause this. It is a live site with alot of membershi...We are using Core CiviCRM and the customers are now being charged double for their memberships and 2 payments are being taken. We are on the 5.13.5 and don't see any issues which would cause this. It is a live site with alot of memberships coming through. Can anyone help.https://lab.civicrm.org/dev/core/-/issues/3408Allow the "Cancellation or transfer time limit (hours)" to be negative2022-04-22T16:23:12ZJonGoldAllow the "Cancellation or transfer time limit (hours)" to be negativeEvents are often multi-day events; in my particular use case, events represent university courses, and there is an add/drop period wherein students may freely cancel their registration in the first week of classes.
This involves changin...Events are often multi-day events; in my particular use case, events represent university courses, and there is an add/drop period wherein students may freely cancel their registration in the first week of classes.
This involves changing the relevant MySQL field from an `unsigned int` to a `signed int`, altering a few lines of form-level validation, and changing some help text to document the change.5.30.0JonGoldJonGoldhttps://lab.civicrm.org/dev/core/-/issues/1079Improper character encoding breaks xml processor2019-07-01T21:28:21ZMonish DebImproper character encoding breaks xml processorWhen printing a case, if the contact name has an ampersand (&) it breaks loadXML due to improper encoding, resulting in the activity listing not displaying.
Steps to replicate:
1. Create a Case where client name should have & character
...When printing a case, if the contact name has an ampersand (&) it breaks loadXML due to improper encoding, resulting in the activity listing not displaying.
Steps to replicate:
1. Create a Case where client name should have & character
2. Go to 'Manage Case'
3. Click 'Print Report'
Error: There are no activities on the preview screen.5.16.0Monish DebMonish Debhttps://lab.civicrm.org/dev/core/-/issues/3379Can't meaningfully disable self-service transfer/cancellation once enabled2022-04-22T16:22:15ZJonGoldCan't meaningfully disable self-service transfer/cancellation once enabledTo replicate:
* Create an event. Enable self-service transfer/cancellation.
* Register a participant, receive the email to the self-service update page.
* Disable self-service transfer/cancellation.
* Click the self-service link. Note t...To replicate:
* Create an event. Enable self-service transfer/cancellation.
* Register a participant, receive the email to the self-service update page.
* Disable self-service transfer/cancellation.
* Click the self-service link. Note that you can still load the self-service page even though self-service has been disabled.
This is an easy fix, but given the many self-service issues, I think a refactor is in order first, so I'll submit that before proceeding.5.29.0JonGoldJonGoldhttps://lab.civicrm.org/dev/core/-/issues/1080Option for encrypting sensitive data2022-11-15T05:03:39ZherbdoolOption for encrypting sensitive dataHas anyone developed a way to encrypt sensitive data in CiviCRM? Only certain user roles would be able to decrypt it. Inspired by https://www.drupal.org/project/encrypt Is anyone interested in this? I could imagine a lot of non-profits w...Has anyone developed a way to encrypt sensitive data in CiviCRM? Only certain user roles would be able to decrypt it. Inspired by https://www.drupal.org/project/encrypt Is anyone interested in this? I could imagine a lot of non-profits wanting to encrypt sensitive data like drivers licenses, birth certificates, birthdays, etc.
I'm guessing putting this issue in the Core project isn't the best place but it's not clear where else it could go. Maybe we need an extensions ideas project?https://lab.civicrm.org/dev/core/-/issues/3393CALSCALE being inserted at the wrong place in generated ICalendar files2024-01-13T05:03:27ZbrongCALSCALE being inserted at the wrong place in generated ICalendar filesWe had a bug report at Fastmail from a customer trying to add the following file to their calendar, which was generated by CiviCRM:
```
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//CiviCRM//NONSGML CiviEvent iCal//EN
X-WR-TIMEZONE:America/Los_...We had a bug report at Fastmail from a customer trying to add the following file to their calendar, which was generated by CiviCRM:
```
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//CiviCRM//NONSGML CiviEvent iCal//EN
X-WR-TIMEZONE:America/Los_Angeles
METHOD:PUBLISH
BEGIN:VEVENT
UID:CiviCRM_EventID_255_c2ebced490c608cd2aa7a6ae86cb8f9a@supporters.eff.org
SUMMARY:At Home With EFF: COVID-19\, Free Speech\, and Pri
vacy
DESCRIPTION:omitted here...
CATEGORIES:Workshop
CALSCALE:GREGORIAN
DTSTAMP;VALUE=DATE-TIME:20200422T120000
DTSTART;VALUE=DATE-TIME:20200422T120000
DTEND;VALUE=DATE-TIME:20200422T131500
URL:https://supporters.eff.org/civicrm/event/info?reset=1&id=255
END:VEVENT
END:VCALENDAR
```
Per the spec, CALSCALE should be in the outer VCALENDAR object, not inside the contained VEVENT object.
See: https://tools.ietf.org/html/rfc5545 section 3.7.
Having said that, `CALSCALE:GREGORIAN` is already the default, so just omitting it would be fine.https://lab.civicrm.org/dev/core/-/issues/1081contribution detail report: error when sorting by custom contrib field (DB Er...2019-07-11T00:47:09ZCésarcontribution detail report: error when sorting by custom contrib field (DB Error: no such field)Hello,
I see regresion of this: https://issues.civicrm.org/jira/browse/CRM-17280 in CiviCRM 5.13.4, only the case when custom field is not in select. The query creates a field with alias only in order by and show this error: DB Error: n...Hello,
I see regresion of this: https://issues.civicrm.org/jira/browse/CRM-17280 in CiviCRM 5.13.4, only the case when custom field is not in select. The query creates a field with alias only in order by and show this error: DB Error: no such field5.16.0https://lab.civicrm.org/dev/core/-/issues/1800After enabling multilingual site, DB error 'underlying table doesn't have a d...2023-08-24T05:03:30Zfreeform.stephAfter enabling multilingual site, DB error 'underlying table doesn't have a default value' prevents saving any future language settings or enable extensionsI have a brand new install, WordPress with CiviCRM 5.26.0 (originally tested with 5.24.6 with the same issue)
Once I enable multilingual and install an additional language I am no longer able to make any additional changes to the locali...I have a brand new install, WordPress with CiviCRM 5.26.0 (originally tested with 5.24.6 with the same issue)
Once I enable multilingual and install an additional language I am no longer able to make any additional changes to the localization page, I can't even save the page with no changes, without getting the error "*DB Error: unknown error*", I am also unable to enable a new extension. Backtrace: [backtrace.txt](/uploads/54b0313b267a669110db7aebaa384eb6/backtrace.txt)
> [debug_info] => INSERT INTO `civicrm_option_value_en_CA` (`option_group_id` , `label` , `value` , `is_default` , `weight` , `is_active` ) VALUES ( 103 , 'CAD ($)' , 'CAD' , 1 , 1 , 1 ) [nativecode=1423 ** Field of view 'example_db.civicrm_option_value_en_CA' underlying table doesn't have a default value]
In addition, the 'Available Currency' field has been erased, attempting to re-add a currency gives error: "*DB Error: already exists*" Backtrace: [backtrace_duplicate.txt](/uploads/c5824a07e285ea9f4ac3beb65392f80b/backtrace_duplicate.txt)
> [debug_info] => INSERT INTO `civicrm_option_group_en_CA` (`name` , `title` , `is_reserved` , `is_active` ) VALUES ('currencies_enabled' , 'currencies_enabled' , 1 , 1 ) [nativecode=1062 ** Duplicate entry 'currencies_enabled' for key 'UI_name']
The view and table listed in the errors always correspond to the default language, whether it's set to en_CA or en_US.
(disabling SQL STRICT mode is not an option)
Thanks!https://lab.civicrm.org/dev/core/-/issues/3347API4: Inconsistent behavior on Role ID2022-04-22T16:21:12ZJonGoldAPI4: Inconsistent behavior on Role IDTo replicate:
* Create a participant record with two different roles, say, "Attendee" and "Volunteer".
* With API4, search for that participant ID with "role_id = Attendee".
* Do the same with API3.
Expected result:
The results should b...To replicate:
* Create a participant record with two different roles, say, "Attendee" and "Volunteer".
* With API4, search for that participant ID with "role_id = Attendee".
* Do the same with API3.
Expected result:
The results should be consistent with API3 and API4, and the participant record should be returned.
Actual result:
API3 behaves as expected. API4 does not show the record because "role_id" doesn't match Attendee exactly, there are two role IDs in an array.https://lab.civicrm.org/dev/core/-/issues/1082Send copy of case activity is using the contribution receipt template - actua...2019-06-29T23:04:54ZDaveDSend copy of case activity is using the contribution receipt template - actually all message templates seem to be mixed upNot sure what's going on exactly yet but can reproduce on dmaster.demo.civicrm.org.
1. Create a case.
2. Edit or create a case activity.
3. In the send copy section pick a role.
4. On demo it won't send an email but you can see the acti...Not sure what's going on exactly yet but can reproduce on dmaster.demo.civicrm.org.
1. Create a case.
2. Edit or create a case activity.
3. In the send copy section pick a role.
4. On demo it won't send an email but you can see the activity copy it saves on the case. In the details field it has the contribution receipt template message.
The template itself seems correct under admin - civimail - message templates, so the send copy must be loading the wrong one or something.
It doesn't seem to be a problem on an existing site that was upgraded, but I see it on PR test sites too as well as dmaster.5.15.0https://lab.civicrm.org/dev/core/-/issues/3350Event registration form has inconsistent labelling2022-04-22T16:21:16ZJonGoldEvent registration form has inconsistent labellingFollowing on from core#1613 - [PR 16651](https://github.com/civicrm/civicrm-core/pull/16651) updated the button text but nor corresponding instructions.
Hat tip to Bryan for discovering this and [posting on Stack Exchange](https://civic...Following on from core#1613 - [PR 16651](https://github.com/civicrm/civicrm-core/pull/16651) updated the button text but nor corresponding instructions.
Hat tip to Bryan for discovering this and [posting on Stack Exchange](https://civicrm.stackexchange.com/questions/35964/misleading-instructions-in-civievent-registration-template-for-multiple-particip).
https://github.com/civicrm/civicrm-core/pull/176955.29.0JonGoldJonGoldhttps://lab.civicrm.org/dev/core/-/issues/3353No way to empty the cart procedurally or via a URL2024-01-05T05:03:31ZTomAndersonNo way to empty the cart procedurally or via a URLHow do we get rid of anything in the cart? For example, if it's after 1 hour, we may want to dump the entire cart.
For example, could I do an AJAX call like this? `{crmURL p='civicrm/event/empty_cart' q="reset=1" fb=1}`
I'm not seeing ...How do we get rid of anything in the cart? For example, if it's after 1 hour, we may want to dump the entire cart.
For example, could I do an AJAX call like this? `{crmURL p='civicrm/event/empty_cart' q="reset=1" fb=1}`
I'm not seeing anything to this effect.
Alternately, how can we do this procedurally (in PHP).https://lab.civicrm.org/dev/core/-/issues/1084Contribution confirmation page: Translation won't work2019-11-24T06:15:23ZDetlev SieberContribution confirmation page: Translation won't workThe message {ts 1=$button}Your contribution will not be completed until you click the <strong>%1</strong> button. Please click the button one time only.{/ts} is not translated.
The reason is: The code is split over several lines and con...The message {ts 1=$button}Your contribution will not be completed until you click the <strong>%1</strong> button. Please click the button one time only.{/ts} is not translated.
The reason is: The code is split over several lines and contains spaces, linebreaks and tab characters. This breaks the gettext translation.5.16.0Detlev SieberDetlev Sieberhttps://lab.civicrm.org/dev/core/-/issues/1085Donor's name is overwritten with name on Paypal account2022-11-14T05:04:00ZnaomiDonor's name is overwritten with name on Paypal accountI have set up a contribution page using Paypal Express (the one in core). I have added a profile which includes the first and last names of the contact. But when the contact is created, these names are not used, and the contact gets the ...I have set up a contribution page using Paypal Express (the one in core). I have added a profile which includes the first and last names of the contact. But when the contact is created, these names are not used, and the contact gets the name from the Paypal account instead. And if the contact already exists, then their name gets overwritten with the name from the Paypal account.
It seems this has been an issue since 2017, or perhaps it is a regression. The following bug report is still open.
https://issues.civicrm.org/jira/browse/CRM-20553
I've tested the fix from here (although the line number has changed) https://civicrm.stackexchange.com/a/21496/465 and it works. The name does not get overwritten, and the paypal name is saved into the "name" field of the billing address (which AFAICS only exists in the database, not the GUI).
I'll do a merge request for it now. But the client I'm doing this for is on the ESR release. How can I get the merge request into that too?https://lab.civicrm.org/dev/core/-/issues/1086Too many divs in caseTypeDetails.html2019-07-01T04:47:10ZDaveDToo many divs in caseTypeDetails.htmlI count mismatched number of `div` and `/div` in ang/crmCaseType/caseTypeDetails.html.
https://github.com/civicrm/civicrm-core/pull/14682I count mismatched number of `div` and `/div` in ang/crmCaseType/caseTypeDetails.html.
https://github.com/civicrm/civicrm-core/pull/146825.16.0https://lab.civicrm.org/dev/core/-/issues/1087Inappropriately small edit box for large text fields when editing inline2022-11-16T05:03:58ZandrewcormickdockeryInappropriately small edit box for large text fields when editing inlineWhen editing text fields via the inline editor, an inappropriately small box appears even for fields which require a large amount of text.
For example, consider the custom fields as created according to the first image attached. When e...When editing text fields via the inline editor, an inappropriately small box appears even for fields which require a large amount of text.
For example, consider the custom fields as created according to the first image attached. When editing, only a small amount of the long text field can be observed at once (see second image).
This has caused usability issues for our user base.
![First image - when viewing custom fields](/uploads/00a8cb8067bb1f295f466b0768d5e3cd/image.png)
![Second image - trying to edit a large text field](/uploads/2dad994174335728b2caba425bec80da/image.png)https://lab.civicrm.org/dev/core/-/issues/1088When you using the "Copy" action for a Profile an error is displayed: "is not...2019-07-03T19:03:44Zjustinfreeman (Agileware)When you using the "Copy" action for a Profile an error is displayed: "is not of type String" and the Profile is still copiedWhen you using the "Copy" action for a Profile an error is displayed: "is not of type String" and the Profile is still copied.
Here's a link to the video with this bug in action, https://app.hyfy.io/share/abHwYlGYxko/
Environment:
* C...When you using the "Copy" action for a Profile an error is displayed: "is not of type String" and the Profile is still copied.
Here's a link to the video with this bug in action, https://app.hyfy.io/share/abHwYlGYxko/
Environment:
* CiviCRM 5.16.alpha1
Agileware Ref: CIVICRM-12635.15.0https://lab.civicrm.org/dev/core/-/issues/1089Participant custom field of type: Alphanumeric, CheckBox shows incorrect valu...2019-11-29T15:07:46Zjustinfreeman (Agileware)Participant custom field of type: Alphanumeric, CheckBox shows incorrect values on the confirmation page for an Event RegistrationParticipant custom field of type: Alphanumeric, CheckBox shows incorrect values on the confirmation page for an Event Registration.
**Steps to reproduce**
1. Create a custom field for Participants, "Dietary requirements"
1. Set the fie...Participant custom field of type: Alphanumeric, CheckBox shows incorrect values on the confirmation page for an Event Registration.
**Steps to reproduce**
1. Create a custom field for Participants, "Dietary requirements"
1. Set the field to be: Alphanumeric, CheckBox
1. Set options:
1. Dietary requirements: Pizza, Fish, Sausages, Pies, Only green things
1. Add the field to a Profile
1. Use the Profile for an Event Registration
1. Register a test participant for the Event
1. Select the values: Pizza, Fish, Sausages
1. Submit the Registration
1. Confirmation page will show Dietary requirements values of: Pizza, Pizza, , Pizza,
Video of the bug, https://app.hyfy.io/v/abU7OWOKxko/
Environments tested:
* CiviCRM 5.14.1
* CiviCRM 5.16.alpha1
![Food_Preference_2](/uploads/6282f1769694d85930ad121c74dbd8de/Food_Preference_2.png)
![Food_Preference_1](/uploads/ec61516c6d39e4681197b57d8ee33bfc/Food_Preference_1.png)
Agileware Ref: CIVICRM-1264https://lab.civicrm.org/dev/core/-/issues/1090CiviCRM and the WordPress Pods plugin (since version 2.7.13) is incompatible ...2020-09-17T09:43:01Zjustinfreeman (Agileware)CiviCRM and the WordPress Pods plugin (since version 2.7.13) is incompatible due to Pods including marionette v3.3.1 for backbone, newer than CiviCRM's bundled marionette v1.0.3CiviCRM and the WordPress [Pods plugin – Custom Content Types and Fields](https://wordpress.org/plugins/pods/) (since version 2.7.13) is incompatible due to Pods including marionette v3.3.1 for backbone, newer than CiviCRM's bundled mari...CiviCRM and the WordPress [Pods plugin – Custom Content Types and Fields](https://wordpress.org/plugins/pods/) (since version 2.7.13) is incompatible due to Pods including marionette v3.3.1 for backbone, newer than CiviCRM's bundled marionette v1.0.3
Erroring line in CiviCRM's js/view/crm.designer.js has been present for over 6 years, see [js/view/crm.designer.js](https://github.com/civicrm/civicrm-core/blame/ae3dbe533c627d8882a59f15502ebeb1a60376f8/js/view/crm.designer.js#L17)
Issue is that the v3 Marionette library that Pods loads does not provide the ItemView object.
Potentially could be solved by CiviCRM aliasing the Marionette object into the CRM namespace when Marionette is loaded, and then refactoring all CiviCRM code referencing Marionette to use this.
Agileware Ref: CIVICRM-1265justinfreeman (Agileware)justinfreeman (Agileware)https://lab.civicrm.org/dev/core/-/issues/1187csv import only import one phone number2019-09-06T12:41:15ZJankcsv import only import one phone numberIf i import trough UI some contacts with different phone number types, eg. with fax and/or cell and/or phone, only one number is imported. In this repro in all cases with more than one number only the cell number is imported.
See attache...If i import trough UI some contacts with different phone number types, eg. with fax and/or cell and/or phone, only one number is imported. In this repro in all cases with more than one number only the cell number is imported.
See attached Screenshots and example-csv.
![image](/uploads/16219ba0a56c27d64b1a573261abe65d/image.png)
![image](/uploads/51ae5e5dd8c0bf9cd7ea3754db3c8da0/image.png)
![image](/uploads/7355ce9514f4d636493bdb1d607a80d1/image.png)
![image](/uploads/5c26413032a4191aa627f3a21923f6c2/image.png)
This record should have all phone types.
![image](/uploads/2534f104657ada8f3e8f827cc1529caa/image.png)
This record should have fax and cell.
![image](/uploads/fb472d742f06b046e5ae94ad1f379192/image.png)
This record should only have phone and have it.
![image](/uploads/a264850e382880dd0356069a6869872c/image.png)
[export_organizations-test.csv](/uploads/e32981489eeaf7d0185b8b3577751b3b/export_organizations-test.csv)
Sorry, screenshots are german only5.18.0https://lab.civicrm.org/dev/core/-/issues/1091Sybunt/lybunt sample report instance has year filter saved as 20112022-10-29T17:19:26ZDaveDSybunt/lybunt sample report instance has year filter saved as 20112011 wasn't a bad year, but the instance probably doesn't need any year saved.
The report code itself is fine, and creating a new report from template defaults to current year.
I believe this is coming from xml/templates/civicrm_naviga...2011 wasn't a bad year, but the instance probably doesn't need any year saved.
The report code itself is fine, and creating a new report from template defaults to current year.
I believe this is coming from xml/templates/civicrm_navigation.tpl: `s:6:"yid_op";s:2:"eq";s:9:"yid_value";s:4:"2011";`
https://civicrm.stackexchange.com/questions/31266/sybunt-some-year-but-not-this-year-showing-2011-as-this-year5.56.0https://lab.civicrm.org/dev/core/-/issues/1092Cannot create second child tag with same name2022-11-17T05:03:52ZMonish DebCannot create second child tag with same name1. Create tag parent1, create tag parent2.
2. Create "child" tag as a child of parent1.
3. Create again as child of parent2 with same name
It results in an error.1. Create tag parent1, create tag parent2.
2. Create "child" tag as a child of parent1.
3. Create again as child of parent2 with same name
It results in an error.Monish DebMonish Debhttps://lab.civicrm.org/dev/core/-/issues/1093Add support for bulkcreates2023-01-04T05:03:23ZeileenAdd support for bulkcreatesAfter discussing with @colemanw on chat - there is a demand in some cases to create an entity in a way that performs well on multiple creates at one. GroupContact or MailingQueue are both examples. The current example is creating bulk cu...After discussing with @colemanw on chat - there is a demand in some cases to create an entity in a way that performs well on multiple creates at one. GroupContact or MailingQueue are both examples. The current example is creating bulk custom fields - the actual row saves are fine here but if adding more than one field to an-already-large custom table then multiple column adds is slow whereas one sql action adding multiple indexes & columns (& one for log tables) is much better.
We talked about laying the ground work for this being a supported apiv4 action with the goal being that apiv4 would expose an action for any entities that have a bulkCreate action.
At this stage my scope is limited to cleaning up the CustomField.create function and adding a bulkCreate function that is tested & suitable to be exposed via apiv4 (but I'm not taking that next step at this stage so the contract can still change). Currently 2 BAO have bulkCreate functions. They relate to mailings and are suitable for bulk create although require some tweaks (passing keyed params rather than 0, 1 etc)https://lab.civicrm.org/dev/core/-/issues/1094export custom fields with long labels gives a database error2019-07-04T06:50:34ZJoostexport custom fields with long labels gives a database errorWhen making an export containing a label with more than 255 characters a db error happens. The error message is Data too long for column 'custom_98' at row 6, 1406. This probably happens when importing the data in a temporary table with...When making an export containing a label with more than 255 characters a db error happens. The error message is Data too long for column 'custom_98' at row 6, 1406. This probably happens when importing the data in a temporary table with a column that is less wide than the one the data is coming from.https://lab.civicrm.org/dev/core/-/issues/1095Activity Details report: Sorting by the “Source Email” field: DB Error: no su...2022-11-17T05:03:52ZPradeep Nayakpradpnayak@gmail.comActivity Details report: Sorting by the “Source Email” field: DB Error: no such field.**Steps to replicate:**
1. Click "Reports" > "Contact Reports"
1. Open the "Activity Details" report
1. Open the "Sorting" tab
1. Set following sorting options :
* Column: Source Email
* Order: Ascending
* Section Header / Group By: che...**Steps to replicate:**
1. Click "Reports" > "Contact Reports"
1. Open the "Activity Details" report
1. Open the "Sorting" tab
1. Set following sorting options :
* Column: Source Email
* Order: Ascending
* Section Header / Group By: check box selected
1. Click "Refresh Results"
**Actual result:** DB Error: no such field.
**Expected result:** The user can group the “Activity Details” report by the “Source Email” field
Query:
```
Jul 02 11:00:54 [info] $Fatal Error Details = Array
(
[callback] => Array
(
[0] => CRM_Core_Error
[1] => handle
)
[code] => -19
[message] => DB Error: no such field
[mode] => 16
[debug_info] => SELECT ifnull(civicrm_email_source_contact_email, '') as civicrm_email_source_contact_email, ifnull(civicrm_contact_contact_assignee, '') as civicrm_contact_contact_assignee, ifnull(civicrm_contact_contact_target, '') as civicrm_contact_contact_target, ifnull(civicrm_contact_contact_source_id, '') as civicrm_contact_contact_source_id, ifnull(civicrm_contact_contact_assignee_id, '') as civicrm_contact_contact_assignee_id, ifnull(civicrm_contact_contact_target_id, '') as civicrm_contact_contact_target_id, ifnull(civicrm_activity_id, '') as civicrm_activity_id, ifnull(civicrm_activity_source_record_id, '') as civicrm_activity_source_record_id, ifnull(civicrm_activity_activity_type_id, '') as civicrm_activity_activity_type_id, ifnull(civicrm_activity_activity_subject, '') as civicrm_activity_activity_subject, ifnull(civicrm_activity_activity_date_time, '') as civicrm_activity_activity_date_time, ifnull(civicrm_activity_status_id, '') as civicrm_activity_status_id , count(DISTINCT civicrm_activity_id) as ct from civicrm_tmp_e_dflt_8ce364900bed80d360a3cf2827858c9a group by civicrm_email_source_contact_email [nativecode=1054 ** Unknown column 'civicrm_email_source_contact_email' in 'field list']
[type] => DB_Error
[user_info] => SELECT ifnull(civicrm_email_source_contact_email, '') as civicrm_email_source_contact_email, ifnull(civicrm_contact_contact_assignee, '') as civicrm_contact_contact_assignee, ifnull(civicrm_contact_contact_target, '') as civicrm_contact_contact_target, ifnull(civicrm_contact_contact_source_id, '') as civicrm_contact_contact_source_id, ifnull(civicrm_contact_contact_assignee_id, '') as civicrm_contact_contact_assignee_id, ifnull(civicrm_contact_contact_target_id, '') as civicrm_contact_contact_target_id, ifnull(civicrm_activity_id, '') as civicrm_activity_id, ifnull(civicrm_activity_source_record_id, '') as civicrm_activity_source_record_id, ifnull(civicrm_activity_activity_type_id, '') as civicrm_activity_activity_type_id, ifnull(civicrm_activity_activity_subject, '') as civicrm_activity_activity_subject, ifnull(civicrm_activity_activity_date_time, '') as civicrm_activity_activity_date_time, ifnull(civicrm_activity_status_id, '') as civicrm_activity_status_id , count(DISTINCT civicrm_activity_id) as ct from civicrm_tmp_e_dflt_8ce364900bed80d360a3cf2827858c9a group by civicrm_email_source_contact_email [nativecode=1054 ** Unknown column 'civicrm_email_source_contact_email' in 'field list']
[to_string] => [db_error: message="DB Error: no such field" code=-19 mode=callback callback=CRM_Core_Error::handle prefix="" info="SELECT ifnull(civicrm_email_source_contact_email, '') as civicrm_email_source_contact_email, ifnull(civicrm_contact_contact_assignee, '') as civicrm_contact_contact_assignee, ifnull(civicrm_contact_contact_target, '') as civicrm_contact_contact_target, ifnull(civicrm_contact_contact_source_id, '') as civicrm_contact_contact_source_id, ifnull(civicrm_contact_contact_assignee_id, '') as civicrm_contact_contact_assignee_id, ifnull(civicrm_contact_contact_target_id, '') as civicrm_contact_contact_target_id, ifnull(civicrm_activity_id, '') as civicrm_activity_id, ifnull(civicrm_activity_source_record_id, '') as civicrm_activity_source_record_id, ifnull(civicrm_activity_activity_type_id, '') as civicrm_activity_activity_type_id, ifnull(civicrm_activity_activity_subject, '') as civicrm_activity_activity_subject, ifnull(civicrm_activity_activity_date_time, '') as civicrm_activity_activity_date_time, ifnull(civicrm_activity_status_id, '') as civicrm_activity_status_id , count(DISTINCT civicrm_activity_id) as ct from civicrm_tmp_e_dflt_8ce364900bed80d360a3cf2827858c9a group by civicrm_email_source_contact_email [nativecode=1054 ** Unknown column 'civicrm_email_source_contact_email' in 'field list']"]
)
```https://lab.civicrm.org/dev/core/-/issues/1096Manage groups: Warning message on:hover shows edit option2022-11-19T05:04:01ZPradeep Nayakpradpnayak@gmail.comManage groups: Warning message on:hover shows edit optionSteps:
1. Click "Contact" -> "Manage Group"
2. Try to find some non-existent group
Take a look at the message: "No Groups have been created for this site."
Actual result: It is possible to edit the warning message. (See gif)
Expected ...Steps:
1. Click "Contact" -> "Manage Group"
2. Try to find some non-existent group
Take a look at the message: "No Groups have been created for this site."
Actual result: It is possible to edit the warning message. (See gif)
Expected result: It is not possible to edit the warning message.
![Groups](/uploads/7ddb5a784c299ed546f68e95311045a7/Groups.gif)https://lab.civicrm.org/dev/core/-/issues/1097Count on Groups tab changes when tab is loaded2019-07-04T15:12:28Zkirk-jacksonCount on Groups tab changes when tab is loadedIf a contact has been explicitly added to any Smart Groups, then the number on their Groups tab changes when the tab is loaded.
### Steps to reproduce
* Explicitly add a contact to a Smart Group by going to their Groups tab, clicking ...If a contact has been explicitly added to any Smart Groups, then the number on their Groups tab changes when the tab is loaded.
### Steps to reproduce
* Explicitly add a contact to a Smart Group by going to their Groups tab, clicking the "**+** Add to a group" dropdown, selecting a Smart Group and clicking the Add button.
* Refresh the page in the browser. Note the count on the Groups tab.
* Click the contact's Groups tab. Note the count on the Groups tab.
### Expected results
The count on the Groups tab should be as accurate as reasonably possible, and should not change when the Groups tab is loaded.
### Actual results
Before the Groups tab is loaded, the count does not include Smart Groups that the contact has been explicitly added to. After the Groups tab is loaded, the count changes to include Smart Groups that the contact has been explicitly added to.
### Cause
The count is calculated using the **CRM_Contact_BAO_GroupContact::getContactGroup** function, which is called by **CRM_Contact_BAO_Contact::getCountComponent** when the contact page is loaded, and by **CRM_Contact_Page_View_GroupContact::browse** when the Groups tab is loaded. The discrepancy arises because the two calls to that function pass different arguments: The first call omits the **$includeSmartGroups** argument, which defaults to **FALSE**, whereas the second call passes **TRUE** to the **$includeSmartGroups** argument.
### Proposal
I propose changing the call to **CRM_Contact_BAO_GroupContact::getContactGroup** in **CRM_Contact_BAO_Contact::getContactGroup** so that it passes **TRUE** to the **$includeSmartGroups** argument. This one-line change would ensure that the count on the Groups tab always includes Smart Groups to which the contact has been explicitly added.
Note that I'm only proposing counting groups to which the contact has been *explicitly* added; not all Smart Groups whose search criteria include the contact. Thus the change that I'm proposing avoids the [documented](https://issues.civicrm.org/jira/browse/CRM-11068) [problems](https://issues.civicrm.org/jira/browse/CRM-12466) with counting all Smart Groups. There is no significant performance hit.
I will submit a PR.https://lab.civicrm.org/dev/core/-/issues/1098Slow performance on activity search2020-08-28T04:32:05ZeileenSlow performance on activity searchI did some digging into this long term problem & have some code - basically the issue is actually when the 'acl' is applied it joins onto the option value table for activity type with a bad join.
However, it raises a couple of questions...I did some digging into this long term problem & have some code - basically the issue is actually when the 'acl' is applied it joins onto the option value table for activity type with a bad join.
However, it raises a couple of questions as to the right way to fix
I've added code comments into the PR at https://github.com/civicrm/civicrm-core/pull/15016 pointing to where I think we need to gohttps://lab.civicrm.org/dev/core/-/issues/1099CiviCRM Event - Confirm Your Registration Information page issue2019-11-29T15:07:44ZgibsonoliverCiviCRM Event - Confirm Your Registration Information page issueOn the event confirm your registration details page any Profile fields which contain a multi select field are showing incorrect values.
So the user may have selected 'Vegetarian' and 'Vegan' in a dietary requirements field.
But no matt...On the event confirm your registration details page any Profile fields which contain a multi select field are showing incorrect values.
So the user may have selected 'Vegetarian' and 'Vegan' in a dietary requirements field.
But no matter what they select on the confirm your registration details page all users will see, for example, the value 'Dairy Free' repeated.
When the event registration is saved the values 'Vegetarian' and 'Vegan' are saved correctly. So there is just an issue with the confirm your registration details page. We have seen this on 2 different systems (5.13.4). The attached file![Capture](/uploads/f994dee98fc070aebbb6099789878e26/Capture.PNG) shows an example.https://lab.civicrm.org/dev/core/-/issues/1100Proposal to add a new hook_civicrm_alterExternUrl2020-05-30T01:02:26ZAndrei Mondocandreimondoc@gmail.comProposal to add a new hook_civicrm_alterExternUrlThere's been talks about deprecating all `extern` scripts in favour of CMS REST endpoints or use [CiviCRM's routing](https://lab.civicrm.org/dev/cloud-native/issues/16), and along the way helping other issues like CMS bootstrapping, base...There's been talks about deprecating all `extern` scripts in favour of CMS REST endpoints or use [CiviCRM's routing](https://lab.civicrm.org/dev/cloud-native/issues/16), and along the way helping other issues like CMS bootstrapping, base paths, and session management.
[Drupal 8](https://www.drupal.org/docs/8/api/restful-web-services-api) and [WordPress](https://developer.wordpress.org/rest-api/) offer the possibility of extending their REST endpoints, and it seems Joomla does so too although unofficially? ([REST API for Joomla!](https://extensions.joomla.org/extension/rest-api/) and [cAPI Core REST API for Joomla!](https://extensions.joomla.org/extension/capi-core-rest-api/))
This seems to me like a sensible way forward, hence my proposal to add a `hook_civicrm_alterExternUrl` something along the lines of:
``` php
// Create an event object.
$event = GenericHookEvent::create(array(
'type' => 'cxn', // replacing with ipn|extern|soap|pxIPN|etc.
'civiURL' => &$civiUrl,
'url' => rtrim($civiUrl, '/') . '/extern/cxn.php',
);
/**
* Allow filtering of extern URL.
*
* @since ...
*
* @param string $hook_name The dispatched hook name.
* @param object $hook_event The dispatched hook event object.
*/
Civi::service('dispatcher')->dispatch('hook_alterExternUrl', $event);
return $event->url;
```
I have completed the [REST endpoints integration for WordPress](https://github.com/civicrm/civicrm-wordpress/pull/160) and I remember someone (in Mattermost) mentioning they were/are doing the same for Drupal 8. In order to start testing and integrating those endpoints this hook would a good transition.
Any feedback is appreciated, thanks.5.23.0https://lab.civicrm.org/dev/core/-/issues/1101Feature request - Add a Public Group Title and Public Group Description field...2020-09-17T09:48:49Zjustinfreeman (Agileware)Feature request - Add a Public Group Title and Public Group Description fields to CiviCRM Group and display these fields on the public pages for subscribe, unsubscribe etc.Feature request - Add a Public Group Title and Public Group Description fields to CiviCRM Group and display these fields on the public pages for subscribe, unsubscribe etc.
Currently, Group Title and Group Description have dual uses:
1....Feature request - Add a Public Group Title and Public Group Description fields to CiviCRM Group and display these fields on the public pages for subscribe, unsubscribe etc.
Currently, Group Title and Group Description have dual uses:
1. Displayed in the CiviCRM back-end and used for internal reference only, AND
2. Displayed publicly on the Internet on public pages
The problem is that the internal title and description for a group is often not appropriate as a public title and description, often revealing targetting / collation information as to how the group is populated which can be potentially embarrassing or harmful to the organisation if revealed publicly.
This proposal is similar to the feature which has been added to Profiles to have an Profile Title (internal display only) and Public Profile Title (displayed on public pages).
Agileware Ref: CIVICRM-1269https://lab.civicrm.org/dev/core/-/issues/1102If a report is sorted on a custom "Number" field, the sort should use numeric...2022-11-18T05:03:23ZtottenIf a report is sorted on a custom "Number" field, the sort should use numeric orderingI observed this while replicating #1081, so steps to reproduce start out similarly. Of course, it is a different issue, so the steps do become different. The steps are:
(1) Create a custom field on contribution records. Make it "Number=...I observed this while replicating #1081, so steps to reproduce start out similarly. Of course, it is a different issue, so the steps do become different. The steps are:
(1) Create a custom field on contribution records. Make it "Number=>Text" and flag it as searchable. I called the example "Frobnication Score".
![Screen_Shot_2019-07-03_at_8.59.44_PM](/uploads/a54e1537d12bbb9061620ece8d214e07/Screen_Shot_2019-07-03_at_8.59.44_PM.png)
(2) Do a search for some contribution records. Edit a few of them and fill in made-up values for the "Frobnication Score". I happened to use "100", "120", and "90.
(3) Create a "Contribution Detail" report. In "Columns", add the "Frobnication Score". In "Sorting", choose "Frobnication Score" (first) and "Contact Name (in sort format)" (second).
The column is numerical, so you would expect the ordering to be numerical (ascending, "90 => 100 => 120"; or descending, "120 => 100 => 90"). The actual ordering looks like dictionary/alphabetic ("100", "120", "90"). For numeric data, the only useful ordering would be... numerical ordering...
![Screen_Shot_2019-07-03_at_8.58.33_PM](/uploads/d650e5ca589ad2bde2b851faaa76203e/Screen_Shot_2019-07-03_at_8.58.33_PM.png)
I've observed similar behavior in 5.12.4 and 5.16.alpha1.https://lab.civicrm.org/dev/core/-/issues/1103Activity search by date range fails when "to" is empty2019-07-05T09:41:27Zsluc23Activity search by date range fails when "to" is emptySearching by Activity date range, only entering *from* date, and leaving *to* date empty fails.
`Activity Date: Please check that your date range is in correct chronological order.`
![Peek_2019-07-04_10-33](/uploads/900e721bd2d6c4a6...Searching by Activity date range, only entering *from* date, and leaving *to* date empty fails.
`Activity Date: Please check that your date range is in correct chronological order.`
![Peek_2019-07-04_10-33](/uploads/900e721bd2d6c4a6a1888008a32a2998/Peek_2019-07-04_10-33.gif)https://lab.civicrm.org/dev/core/-/issues/1104Make admin panels hookable2019-08-01T04:07:14ZyashodhaMake admin panels hookableMake it easy to show/hide items on administer screen.Make it easy to show/hide items on administer screen.5.17.0yashodhayashodhahttps://lab.civicrm.org/dev/core/-/issues/1105Users who can add price options can't reorder them2022-11-19T05:04:00ZJKingsnorthUsers who can add price options can't reorder themThe permission to be able to add price sets, and price options is related to: `access CiviCRM,access CiviEvent`
However, in order to re-arrange price set options, the user needs to have `administer CiviCRM`.
This leads to a weird scena...The permission to be able to add price sets, and price options is related to: `access CiviCRM,access CiviEvent`
However, in order to re-arrange price set options, the user needs to have `administer CiviCRM`.
This leads to a weird scenario where users can create price options, but cannot re-order them.
The snag is: the 'weight' functionality is used all over the site. So how do we know which permissions to assign?https://lab.civicrm.org/dev/core/-/issues/1106A mental health plan for search2020-04-05T08:07:41ZeileenA mental health plan for searchI've been thinking a lot about how to move forwards with search functionality of late. When I think about the sorts of bugs and regressions we were dealing with 2 years ago versus today there are a lot of areas of the code that were cons...I've been thinking a lot about how to move forwards with search functionality of late. When I think about the sorts of bugs and regressions we were dealing with 2 years ago versus today there are a lot of areas of the code that were constantly breaking or requiring changes 2 years ago that we now rarely touch. We have added barrage of unit tests & retrofitted sanity into the code & eventually reached the end of the line on the whackamole in a lot of areas. Not so much searches & reports....
Part of the problem is that we were late to the party getting searches and reports under unit testing - or at least some of the more obscure search functionality. But much more of the problem is the poor underlying code structure for searches and the in-built reports. In addition search builder and advanced search expose much more functionality than actually works well - creating a back door for new tricky functionality. Compounding this, the original search code had a lot of security holes in it which have sent us into various cycles of whackamole.
When we talk about search people want to
- be able to retrieve data
- take actions on that data
- create groups based on the data
In many cases they can use a report or some custom form to retrieve a group of contacts but then they can't take the actions they want on those contacts. In particular it's currently impossible to create a smart group or utilise our bank of actions without working off the search framework. The problem with getting away from our quickform search structure is that we have a lot of assets tied up with it and so creating a non-quickform search quickly runs into the fact that various actions cannot be accessed and the lift involved in getting past that is too much - so we wind up with 'yet another custom search' or another change to core to bad code.
I don't think we can break the situation where we are spending a tonne of sunk time on search functionality in the short-term. I think adding thises & thats to search & custom searches and reports will continue at least for another year. The [data processor extension](https://lab.civicrm.org/extensions/dataprocessor/tree/master) by @jaapjansma does a pretty good of retrofitting sanity onto the quickform search structure, but I think we should set a goal that in a year's time quickform search structure and BAO_Query object are out of active development and there is a viable alternative.
We already have a pretty good alternative for retrieving the data - apiv4. When you look at apiv4 explorer if 'feels like' all you need to turn that into a replacement for search builder is a 'create smart group function'
Many of the things that work badly in search builder already work well in the apiv4 explorer but it is missing the ability to leverage our 'action-bank'. Going down the apiv4-as-smart-groups path also sets us up to offer the ability to have custom apiv4 apis that can also create smart groups and leverage actions.
That was a pretty long intro but the point of this ticket was more to spell out a path that I think allows us to start chipping away at this and to divert some of our 'product maintenance effort' towards breaking the cycle. These are the steps I think need taking (not necessarily in this order). Any of the steps, but in particular 3 & 4 would be suitable as funded CT work & that would speed them up & this whole process considerably, but I think there are things we can be doing now towards the end result.
1) create the ability to programaticially create a smart group based on an apiv4 explorer 'get' action. I think this is actually not that tricky. We would need to define the format of the array saved to 'form_values' - something like ['module' => 'apiv4', 'entity' => 'x', 'where' => [], 'select' => [], 'orderBy => []]. Perhaps ->createSavedSearch() would be an action that can be taken from apiv4? We would need to hobble UI functionality related to the smart group that might not work - ie suppress actions that don't work & the 'edit smart group search criteria' link in the group settings page - we can be a bit clunky on this in this step since it would not be exposed unless a developer exposed it. I feel like this step is pretty manageable & could be done in the next couple of releases. Since I think we should start on this I have created https://lab.civicrm.org/dev/core/issues/1107 for specific discussion on this issue
2) consider extending the above to cover other api actions - we talked about the idea of it being possible to create a smart group off a report. This is mostly a conversation about what sort of api an extension needs to create for it to be available for a saved search & what metadata is required. It would also involved creating a protocol to configure a url for 'edit smart group search criteria'. This could be done in conjunction with making smart groups possible from extended reports via an apiv4 action as experimental functionality. I don't see this as ever being a feature in core reports as I hope that by the time we've matured all of this we'll be figuring out how to leave them behind, but it seems like a way of opening up the transition process to leaping by extension.
3) tackle the search actions - figure out how to make them less tied to the QF architecture they sit on - could they be apis? Or just a much more sensible php interface? This is probably the deeper dive of this work and it might be a big lift but I also feel it's the sort of thing that we routinely chip away at in the product maintenance sphere & we could do that here. I suspect @mattwire has more idea than I do of that code at the moment...
4) Copy & adapt (or extract & componentise) the api v4 explorer to be search oriented. Mostly tie the search part of the interface with an action selector. Alternatively look at something like https://querybuilder.js.org/ - I feel like this piece is something CT should do as a dedicated chunk of work & which could be done at any point in the process by soliciting funding.
@totten @mattwire @colemanw @seamuslee @jitendra @monish.deb @pradeep @yashodha @bgm @lcdweb @johntwyman @mfb @pfigel @daved @justinfreeman https://lab.civicrm.org/dev/core/-/issues/1107create the ability to programaticially create a smart group based on an apiv4...2024-01-16T05:03:24Zeileencreate the ability to programaticially create a smart group based on an apiv4 explorer 'get' actionSub issue of https://lab.civicrm.org/dev/core/issues/1106Sub issue of https://lab.civicrm.org/dev/core/issues/1106https://lab.civicrm.org/dev/core/-/issues/1108Unsubscribe broken if mailing sent to previous mailing recipients with an exc...2019-11-17T19:42:12ZRichUnsubscribe broken if mailing sent to previous mailing recipients with an excluded groupI think <https://lab.civicrm.org/dev/core/commit/96fce13bb554201fa9eae10b02160ed7b5644806> broke the unsubscribe in various situations.
The logic is pretty hard to follow because the options create zillions of use cases, however, having...I think <https://lab.civicrm.org/dev/core/commit/96fce13bb554201fa9eae10b02160ed7b5644806> broke the unsubscribe in various situations.
The logic is pretty hard to follow because the options create zillions of use cases, however, having been hit by this I can report that the following situation created it:
1. send a mailing (A) to a mailing group
2. send a second mailing (B) to the recipients of mailing (A), excluding those in a group (C).
Recipients of (B) will not be able to unsubscribe.
This is because (as I have understood so far):
1. The unsubscribe code is supposed to find all the lists of contacts (I'm deliberately using _lists_ to avoid ambiuities with _groups_ -if I say _group_ it means a CiviCRM group as you would see on a contact's record.) that were used to select recipients of the mailing. These "lists" might be groups or previous mailings.
2. After the initial fetch - for the mailing that triggered the unsubscribe - there is a recursive fetch loop that goes back up the tree of mailings that were used to include contacts in the lists, finding all their included groups.
The code introduced by the commit above makes (1) return no records, and therefore the second step is never triggered, resulting in no groups whatsoever being identified as the ones to unsubscribe (remove) contacts from.
This is getting orgs using CiviMail in this way in hot water as you can imagine.5.21.0RichRichhttps://lab.civicrm.org/dev/core/-/issues/1109Contact Reference fields are not updated when merging contacts2019-08-08T03:27:12ZPatrick Figelpfigel@greenpeace.orgContact Reference fields are not updated when merging contactsWhen contacts are merged, any Contact Reference custom fields pointing to the contact that was deleted will not be updated to point to the remaining contact.
This is not a recent regression. It used to work in 4.6, but was broken at som...When contacts are merged, any Contact Reference custom fields pointing to the contact that was deleted will not be updated to point to the remaining contact.
This is not a recent regression. It used to work in 4.6, but was broken at some point after that. (Confirmed as broken in 5.7, 5.13 and master.)5.17.0https://lab.civicrm.org/dev/core/-/issues/1110Contribution Summary Report does not update the Total Amount and Total Contri...2023-02-08T05:03:14ZCésarContribution Summary Report does not update the Total Amount and Total Contributions with some filtersHello,
In contribution summary report doesn't update the total amount and total contributions in statistics with this filters:
- total_amount_value
- non_deductible_amount_value
- total_sum_value
- total_avg_value
- total_count_value
...Hello,
In contribution summary report doesn't update the total amount and total contributions in statistics with this filters:
- total_amount_value
- non_deductible_amount_value
- total_sum_value
- total_avg_value
- total_count_value
Other filters are working good and show correct statistics based in final expected result.
Im testing this report on 5.15.1https://lab.civicrm.org/dev/core/-/issues/1111Move upload_max_filesize warning to system check2022-11-20T21:49:18ZAndie HuntMove upload_max_filesize warning to system checkCurrently the `CRM_Utils_Number::formatUnitSize()` function [does a check](https://github.com/civicrm/civicrm-core/blob/358a1864ba3c5a3fc3ff65f03b3db045ea2199a8/CRM/Utils/Number.php#L107-L118) for whether the `upload_max_filesize` in PHP...Currently the `CRM_Utils_Number::formatUnitSize()` function [does a check](https://github.com/civicrm/civicrm-core/blob/358a1864ba3c5a3fc3ff65f03b3db045ea2199a8/CRM/Utils/Number.php#L107-L118) for whether the `upload_max_filesize` in PHP is smaller than the maximum upload size in your site settings.
1. The message calls the php.ini setting "upload_max_size", which will lead people astray.
2. This really should be a system check that you see well before you are about to upload something.
There's a similar check in there if `post_max_size` is smaller than `upload_max_filesize`. This should also move to the system check.https://lab.civicrm.org/dev/core/-/issues/1112Require less permission for contribution page management2023-04-06T05:03:35ZJKingsnorthRequire less permission for contribution page managementCurrently a user needs a very high level of permissions in order to manage contribution pages on the website; contrary to the approach used in CiviEvent.
In order to manage events in CiviCRM, the permission 'access CiviEvent' is used.
...Currently a user needs a very high level of permissions in order to manage contribution pages on the website; contrary to the approach used in CiviEvent.
In order to manage events in CiviCRM, the permission 'access CiviEvent' is used.
In order to manage contribution pages in CiviCRM, the permissions access CiviContribute AND administer CiviCRM are required.
I suggest we either:
* Make the permission just access CiviContribute (and add this to the admin/price paths)
* Add a new permission for 'manage contribution pages' with access to the civicrm/admin/contribute* paths (and the admin/price paths)
The first option will make CiviContribute behave more like CiviEvent - giving access to create the contribution pages, but not all the admin functions like managing custom fields and profiles.https://lab.civicrm.org/dev/core/-/issues/1113Decimal Separator - Invalid value "total_amount" (NaN,N) creating or editing ...2021-05-05T13:51:47ZCésarDecimal Separator - Invalid value "total_amount" (NaN,N) creating or editing a membershipHello,
I see a error with one field associated with "Membership Payment and Receipt" but i think error is a "Decimal Separator"
Steps to reproduce this error:
1. Change the decimal separator to "," for example (Thousands Separator nee...Hello,
I see a error with one field associated with "Membership Payment and Receipt" but i think error is a "Decimal Separator"
Steps to reproduce this error:
1. Change the decimal separator to "," for example (Thousands Separator needs diferent format):
* ![image](/uploads/20f9093fbb84d217900f1a553f5bca0c/image.png)
2. Create a new membership or edit, but dont complete all fields required:
* ![image](/uploads/5f4c966831a5846c67dd952c161948c9/image.png)
3. Click submit button and show correct validation:
* ![image](/uploads/54f806bce74a26f8995fe59882ef825c/image.png)
4. Next complete the field required and click submit:
* ![image](/uploads/689e7656c42da0cda0d0162d93bba5f1/image.png)
5. In this point appears the validation of "total_amount"
* ![image](/uploads/23d1501cc3dc0d8e16c5ba04fb600674/image.png)
6. If click in "Record Membership Payment?" checkbox you see the incorrect value.
* ![image](/uploads/3596b91ddf641a4fc00501e1f710d4ce/image.png)
7. In this point, you need clear the value and uncheck checkbox for save the membership.
Its observed in CiviCRM 5.15.15.29.0https://lab.civicrm.org/dev/core/-/issues/1114Smart group created from mailing Successful Deliveries shows entire database2022-11-26T05:03:22ZjohnsSmart group created from mailing Successful Deliveries shows entire databaseVerified in 5.13.4:
1. Click on Scheduled and Sent Mailings
2. Click on Report for a completed mailing
3. Click on Advanced Search on the Successful Deliveries line
4. Select All Records
5. Select "Group - create Smart Group" from drop-...Verified in 5.13.4:
1. Click on Scheduled and Sent Mailings
2. Click on Report for a completed mailing
3. Click on Advanced Search on the Successful Deliveries line
4. Select All Records
5. Select "Group - create Smart Group" from drop-down
6. Create group as a mailing list
7. Go to Manage Groups, find the new group
8. Click contacts
9. It shows the whole database instead of just contacts in that group
Info from when I first reported this:
Key: CRM-14305
URL: https://issues.civicrm.org/jira/browse/CRM-14305
Project: CiviCRM
Issue Type: Bug
Components: Core CiviCRM
Affects Versions: 4.4.4, 5.0.0
Reporter: John Sullivan
Priority: Important
Fix For: Unscheduledhttps://lab.civicrm.org/dev/core/-/issues/1115CiviCase singleton activity warning has wrong url2019-07-15T19:07:10ZDaveDCiviCase singleton activity warning has wrong urlThis came up earlier when I was first checking out the Case v5 extension, but I thought I also checked it against core and it was ok in core so I filed the bug against the extension (https://github.com/compucorp/uk.co.compucorp.civicase/...This came up earlier when I was first checking out the Case v5 extension, but I thought I also checked it against core and it was ok in core so I filed the bug against the extension (https://github.com/compucorp/uk.co.compucorp.civicase/issues/151). But maybe I didn't actually check since it also seems to be in core.
1. Configure a case type so that some activity type (other than open case) has a max_instances set.
2. On manage case, create a second activity of that type.
3. It will properly give you the warning that the singleton activity already exists, and provide a link to edit the existing one, but the link has `id=0` instead of the actual activity id.
4. If you click the link, it gives a fatal error.
It's something going on here: https://github.com/civicrm/civicrm-core/blob/5.15.1/CRM/Case/Form/Activity.php#L187-L199
Will see what I can do...https://lab.civicrm.org/dev/core/-/issues/1118Case summary report filters incorrectly for case type2019-07-21T23:07:54ZDeepak SrivastavaCase summary report filters incorrectly for case typeCase summary report uses REGEXP filtering for case type:
`WHERE case_civireport.case_type_id REGEXP '[[:cntrl:]]*5[[:cntrl:]]*' `
Which results in records where case type id consists of 5 (for this example).
![image](/uploads/485a42f6d...Case summary report uses REGEXP filtering for case type:
`WHERE case_civireport.case_type_id REGEXP '[[:cntrl:]]*5[[:cntrl:]]*' `
Which results in records where case type id consists of 5 (for this example).
![image](/uploads/485a42f6d595079ce990816695e1b4a6/image.png)
The clause looks old and appears to be based on assumption that case could be based on multiple case types. Case type however is an integer column and could use where() clause of CRM/Report/Form.php.
The problem also been raised on stack exchange - https://civicrm.stackexchange.com/questions/30573/case-type-filter-bug-in-case-summary-report-multiple-case-types-reported.
A PR would follow.5.17.0https://lab.civicrm.org/dev/core/-/issues/1119Repeating events do not propagate custom data when user chooses apply "to eve...2022-11-22T05:03:56ZRichRepeating events do not propagate custom data when user chooses apply "to every event in the series"## What happens now
If you create a custom dataset on Events, then create an event and populate that dataset, then create some repeating events from it:
1. <del>custom data from the original event is not present in the repeats.</del> (...## What happens now
If you create a custom dataset on Events, then create an event and populate that dataset, then create some repeating events from it:
1. <del>custom data from the original event is not present in the repeats.</del> (this seems to have been fixed recently?)
2. editing the custom data on the original, then choosing "change applies to every event in the series" from the pop-up that appears after clicking Save, gives a success message but the custom data is only saved for the current event.
## What I think should happen
1. ✔ Custom data should be copied to repeat events on creation.
2. Custom data should be copied to repeat events when the user says so.
## Other observations
Changing the number of events does seem to trigger the data to propagate again.https://lab.civicrm.org/dev/core/-/issues/1120Export help info does not match code2019-07-16T20:03:55ZeileenExport help info does not match codeIn the export screen we see that the postal greeting or addressee greeting can change if more than 2 contacts are merged
![Screen_Shot_2019-07-16_at_9.32.04_AM](/uploads/871c946c283258e8e4c6e68bae72e1d7/Screen_Shot_2019-07-16_at_9.32.04...In the export screen we see that the postal greeting or addressee greeting can change if more than 2 contacts are merged
![Screen_Shot_2019-07-16_at_9.32.04_AM](/uploads/871c946c283258e8e4c6e68bae72e1d7/Screen_Shot_2019-07-16_at_9.32.04_AM.png)
In the code the rules are that 2 or more contacts being merged use the rules (ie if contacts are merged then use the rules). (There is some mickey mouse separate handling where it seems the code attempts to only use the 'other' logic for 2 or more
I can't see why you wouldn't use the merge string for any merges - which would simplify the code a lot too
@lcdweb @colemanw thoughts - can we tweak the above to '(when merging contacts to one row)' & clean up the code to just do that (without extra code that with more or less success attempts to do ? something ? when there are only 2 & use the merge string where there is more than 2
I *think* the intent might have been that you could choose different behaviour for many vs just 2 but in practice you can't actually select that in the UI5.17.0https://lab.civicrm.org/dev/core/-/issues/1121Activity Export: Fields with the value of 0 are exported as empty2022-12-01T05:03:38ZReece Activity Export: Fields with the value of 0 are exported as emptyHi all,
When following the below steps, any fields that have the value of zero are exported into the CSV as empty cells.
Steps to reproduce (must have an Activity that has a field with the value of zero in it):
1. Perform an Activity ...Hi all,
When following the below steps, any fields that have the value of zero are exported into the CSV as empty cells.
Steps to reproduce (must have an Activity that has a field with the value of zero in it):
1. Perform an Activity Search
2. Select Activities (that contain either the value being zero or not)
3. Actions -> Export Activities
4. Select fields for Export
5. Fields:
* The field that has the value of zero (or other)
* Can also add the contact name to lookup in the UI easily..
6. Export
[Line 346 of Export.php on Master](https://github.com/civicrm/civicrm-core/blob/master/CRM/Export/BAO/Export.php#L346) is only checking against `empty($value)` whereas it should either check if the value `is_numeric($value)` aswell, or swap the empty function to `CRM_Utils_System::isNull($value)` which I believe would resolve this too.
Cheers,
Reecehttps://lab.civicrm.org/dev/core/-/issues/1122Performance issue when loading GroupContactCache in larger databases2022-11-22T05:03:55ZlolcodePerformance issue when loading GroupContactCache in larger databasesI am attaching a sample from our slow query logs that shows that group loading is a problem for some of our Smart groups. In particular the code that checks for removed contacts looks like it could benefit from performance improvement.
...I am attaching a sample from our slow query logs that shows that group loading is a problem for some of our Smart groups. In particular the code that checks for removed contacts looks like it could benefit from performance improvement.
The potential solution is similar to the other ticket on group performance that I have opened: https://lab.civicrm.org/dev/core/issues/930
I have a patch for a partial solution so far and it doesn't break any of the existing tests. However I could use some guidance on making sure the tests cover enough cases of saved searches.
[performance-problem-samples.txt](/uploads/346b3cc009f6371ea13cf49dd9d94c6a/performance-problem-samples.txt)https://lab.civicrm.org/dev/core/-/issues/1123Changing the label for the Inbound Email activity type lets you edit/delete t...2019-09-07T21:07:07ZDaveDChanging the label for the Inbound Email activity type lets you edit/delete them even if the permission disallowsThis is related to dev/core#1116 but I'd like to start with this one first since it's more contained and allows removing a confusing variable that is only ever used once and used incorrectly.
1. To reproduce, set the permission so that ...This is related to dev/core#1116 but I'd like to start with this one first since it's more contained and allows removing a confusing variable that is only ever used once and used incorrectly.
1. To reproduce, set the permission so that editing inbound emails is disallowed. Will probably already be like this by default.
2. Change the activity type label for Inbound Email.
3. Go to a contact's activities tab and click the view link for an inbound email. On the popup there's now edit and delete buttons whereas before there weren't.
4. Click the edit button, make your edit, and save.
The problem is this line in https://github.com/civicrm/civicrm-core/blob/5.15.1/templates/CRM/Activity/Form/Activity.tpl#L252
`{if $action eq 4 && ($activityTName neq 'Inbound Email' || $allow_edit_inbound_emails == 1)}`
$activityTName (which is different than $activityTypeName, although it has the same value) is actually the label, and so if you've changed the label the comparison doesn't work.
This is the only place this variable is used.5.18.0https://lab.civicrm.org/dev/core/-/issues/1124Activity export Source Contact fields and Contact ID return same ID for Indiv...2022-11-24T05:03:32ZStoobActivity export Source Contact fields and Contact ID return same ID for IndividualsHow to replicate in 5.15:
1. Create two activities with yourself as Source
* one with another individual contact as Target
* one with another organization contact as Target
2. Find Activities and Export these two activities
3. Choose...How to replicate in 5.15:
1. Create two activities with yourself as Source
* one with another individual contact as Target
* one with another organization contact as Target
2. Find Activities and Export these two activities
3. Choose the following field mapping
![exp](/uploads/8c99dcd5c25fa40bc8f709cac832b247/exp.png)
4. Notice how the Sort Name field and Internal Contact ID field return same ID for Individual but different ID for Organization
Expected behavior: Sort Name and Internal Contact ID should return the Target Contact (not the Source) for all contact types. Cannot think of a reason to do otherwise.
@eileen FYI pursuant to our convo on Mattermosthttps://lab.civicrm.org/dev/core/-/issues/1126Unable to edit the membership end date for members that have a recurring payment2020-01-06T15:23:00ZwmortadaUnable to edit the membership end date for members that have a recurring paymentI am working on a website that has the option for members to pay for membership by direct debit (via GoCardless). This is working fine but occasionally we have an issue where a member pays by direct debit and also by card (via SagePay). ...I am working on a website that has the option for members to pay for membership by direct debit (via GoCardless). This is working fine but occasionally we have an issue where a member pays by direct debit and also by card (via SagePay). We refund the card payment to the member and update the related contribution in CiviCRM. This part is fine but the membership end date is incorrect and we are unable to edit it.
The membership is annual so if a member signs up by both direct debit and card the two payments will add two years to the end date (e.g. it will end in 2021 rather than 2020). So, after we refund the card payment we want to also edit the end date to change it to 2020. Unfortunately, we are unable to do this.
Normally, you can edit the end date, as shown below:
![membership](/uploads/902dfb876973356d59a4e1c0bb60c05a/membership.png)
It appears that if the membership is set as auto-renew and linked to a recurring payment then CiviCRM doesn't allow users to edit the end date. I presume this is a deliberate 'feature' but in our case it is preventing us from correcting the end date.
![memerbship-auto-renew](/uploads/69b89fd0aeeb5c65474241df97772a9d/memerbship-auto-renew.png)
The site is running CiviCRM 5.7.6 on WordPress.
I have posted a [question ](https://civicrm.stackexchange.com/questions/31215/how-can-you-edit-the-end-date-for-an-auto-renew-membership)on StackExchange about this issue to see if there was a workaround but I think it is a bug.https://lab.civicrm.org/dev/core/-/issues/1127Extra padding when increasing height of main menu2019-07-19T15:37:41ZAkA84Extra padding when increasing height of main menuHello, I was testing the `hook_civicrm_getAssetUrl` hook introduced in [this PR](https://github.com/civicrm/civicrm-core/pull/14135) to increase the height of the main menu (this is on Civi `v.5.15.1`)
```php
function myext_civicrm_getA...Hello, I was testing the `hook_civicrm_getAssetUrl` hook introduced in [this PR](https://github.com/civicrm/civicrm-core/pull/14135) to increase the height of the main menu (this is on Civi `v.5.15.1`)
```php
function myext_civicrm_getAssetUrl(&$asset, &$params) {
if ($asset == 'crm-menubar.css') {
$params['height'] = 60;
}
}
```
The hook works, but I'm getting some extra spacing between the menu and the rest of the page, caused by the [`.crm-menubar-wrapped`](https://github.com/civicrm/civicrm-core/blob/869b8ee06f2f7c2d11860601d1a51593ecc5b4ab/css/menubar-drupal7.css#L10-L12) class
![height](/uploads/4c2a80aeeb7f69c397efb3edf0e0bfb9/height.png)
I see that that class is [added via JS](https://github.com/civicrm/civicrm-core/blob/869b8ee06f2f7c2d11860601d1a51593ecc5b4ab/js/crm.menubar.js#L441-L442) only if the height of the menu is higher than 50 pixels, but i'm not sure why
```js
function handleResize() {
if ($(window).width() >= 768 && $('#civicrm-menu').height() > 50) {
$('body').addClass('crm-menubar-wrapped');
} else {
$('body').removeClass('crm-menubar-wrapped');
}
}
```
Is this working as expected? Anything that I'm missing?https://lab.civicrm.org/dev/core/-/issues/1128Primary email search fails2022-01-21T09:08:37ZandyburnsPrimary email search failsI get this error when searching for any email address in advanced search or search builder.
https://pastebin.com/6LRJDyt1
The 1-address alias is not defined, so it fails. In advanced search it does not let me select the location type f...I get this error when searching for any email address in advanced search or search builder.
https://pastebin.com/6LRJDyt1
The 1-address alias is not defined, so it fails. In advanced search it does not let me select the location type for the email. However, in search builder it does and it still fails. I tested this on the demo https://wpmaster.demo.civicrm.org/ and email search works there. I have disabled all civi extensions and it still fails.
WP 5.2.1 and Civi 5.13.4 multisite. Anyone else seeing this?
I had posted to SE https://civicrm.stackexchange.com/questions/30973/email-search-failure without resolving.https://lab.civicrm.org/dev/core/-/issues/1130Can't show contact subtype in search views2019-09-10T17:57:52ZJonGoldCan't show contact subtype in search viewsIf you add "Contact Subtype" to a Search View, it's ignored. That's because `templates/CRM/Contact/Form/Selector.tpl` explicitly says not to display it, because it's always added to the search result.
That happens in `CRM_Contact_Selec...If you add "Contact Subtype" to a Search View, it's ignored. That's because `templates/CRM/Contact/Form/Selector.tpl` explicitly says not to display it, because it's always added to the search result.
That happens in `CRM_Contact_Selector`. However, nowhere in the class (or the entire codebase) is this element referenced after it's assigned. That's not true for any of the other fields added to the search result.
In fact, the only reference to it is in `templates/CRM/Contact/Form/Selector.tpl`, where we're excluding it from the list of fields to display.
My conclusion is that there's no reason for it to be added to the row at all. Then we can remove it from the blacklist of fields in the template, and it can be used in search views.JonGoldJonGoldhttps://lab.civicrm.org/dev/core/-/issues/1131Disabling Cron warning in Status Screen does not disable2020-01-09T16:55:54ZStoobDisabling Cron warning in Status Screen does not disableI wish to disable popup notification of "Cron not running" on a dev/testing site, so I have chosen "never show again" on the Cron popup from the System Status screen. However, the warning is not suppressed - each time I login the warnin...I wish to disable popup notification of "Cron not running" on a dev/testing site, so I have chosen "never show again" on the Cron popup from the System Status screen. However, the warning is not suppressed - each time I login the warning still appears. This is on latest version 5.15.1https://lab.civicrm.org/dev/core/-/issues/1132fieldOptions hook fatal error2021-10-23T14:54:23ZDon WijesooriyafieldOptions hook fatal errorUsing fieldOptions hook in an extension crashes or generates a fatal error.
I've come across 2 issues:
1. Using a method defined in a class created in the extension generates fatal error
2. Using API crashes the website
## Steps to re...Using fieldOptions hook in an extension crashes or generates a fatal error.
I've come across 2 issues:
1. Using a method defined in a class created in the extension generates fatal error
2. Using API crashes the website
## Steps to reproduce:
1. Create a new module
2. Create a class with a static method inside CRM/extension-short-name/
3. Call that method inside fieldOptions hook. For eg: CRM_extension-short-name_Class::method()
4. Refresh civicrm home page
5. Server error log will have an error similar to the following
>>>
Class 'CRM_Myextension_MyClass' not found in /var/www/drupal/sites/default/files/civicrm/ext/uk.co.millertech.myextension/myextension.php on line 159, referer: http://chamil.drupal.local/civicrm/dashboard?reset=1
>>>
6. Next inside the fieldOptions hook, use the API to obtain any random data. For eg:
````php
$result = civicrm_api3('OptionValue', 'get', [
'sequential' => 1,
'option_group_id' => "contribution_status",
]);
````
7. Refresh civicrm home page
CiviCRM 5.15.1
Drupal 7
## Issue
For the first issue, it seems extension files are not loaded before invoking fieldOptions hook. Calling `_extension-short-name_civix_civicrm_config();` seems to fix that issue.
````php
function myextension_civicrm_fieldOptions($entity, $field, &$options, $params)
{
_myextension_civix_civicrm_config();
CRM_Myextension_MyClass::myMethod();
}
````
Could not find a workaround for the second issue5.37.0https://lab.civicrm.org/dev/core/-/issues/1133Payment method name is displayed instead of label in payment block for Manual...2019-07-19T20:27:43ZDon WijesooriyaPayment method name is displayed instead of label in payment block for Manual payment`getPaymentTypeLabel()` method in `CRM_Core_Payment_Manual` class returns payment method name instead of label.
````php
/**
* Get the name of the payment type.
*
* @return string
*/
public function getPaymentTypeLabel() ...`getPaymentTypeLabel()` method in `CRM_Core_Payment_Manual` class returns payment method name instead of label.
````php
/**
* Get the name of the payment type.
*
* @return string
*/
public function getPaymentTypeLabel() {
return CRM_Core_PseudoConstant::getName('CRM_Contribute_BAO_Contribution', 'payment_instrument_id', $this->getPaymentInstrumentID());
}
````
## Fix
````php
/**
* Get the name of the payment type.
*
* @return string
*/
public function getPaymentTypeLabel() {
return CRM_Core_PseudoConstant::getLabel('CRM_Contribute_BAO_Contribution', 'payment_instrument_id', $this->getPaymentInstrumentID());
}
````5.17.0https://lab.civicrm.org/dev/core/-/issues/1134Visibilty field is not exposed on the option value listing2022-11-25T05:03:18ZyashodhaVisibilty field is not exposed on the option value listingVisibilty field is not exposed on the option value listing is the value is present.Visibilty field is not exposed on the option value listing is the value is present.yashodhayashodhahttps://lab.civicrm.org/dev/core/-/issues/1135Participants having multiple roles affects maximum event registration count2019-08-05T19:47:12ZDon WijesooriyaParticipants having multiple roles affects maximum event registration countIf you add multiple participant roles for a participant entry, it affects the event full count.
### Steps to reproduce
1. On dmaster, create a new event
2. Enable online registration and set "Max Number of Participants" to 1
3. Go to l...If you add multiple participant roles for a participant entry, it affects the event full count.
### Steps to reproduce
1. On dmaster, create a new event
2. Enable online registration and set "Max Number of Participants" to 1
3. Go to live event registration page. You should be able to register
4. Now add a new registration to a different contact from backend.
5. Once again go to live event registration page. Now it should show the event full message.
6. Go back to the other contact's events. Edit the event participant entry and add another role such as "Host".
7. Now go to the event registration page and you will be able to register for the maxed out event
### Issue
After inspecting `CRM_Event_BAO_Participant::eventFull()` the following line assumes there will only be one value in the field
````php
$where[] = " participant.role_id IN ( '" . implode("', '", $escapedRoles) . "' ) ";
````
Therefore when you have multiple values it won't work properly.
### Solution
I used regular expression code that's used in `CRM_Event_BAO_Query::whereClauseSingle()` under `case 'participant_role_id'`. This is a simple workaround I could think of. Haven't tested in all other scenarios.
````php
$regexp = "([[:cntrl:]]|^)" . implode('([[:cntrl:]]|$)|([[:cntrl:]]|^)', $escapedRoles) . "([[:cntrl:]]|$)";
$where[] = " participant.role_id REGEXP '{$regexp}'";
````5.17.0https://lab.civicrm.org/dev/core/-/issues/307Error on Contribution API 'transact' action2021-02-01T01:10:25ZjackrabbithannaError on Contribution API 'transact' actionAt least with the Dummy payment processor, Contribution API, transact action calls are failing with:
ResponseText: Fatal error: Call to a member function doPayment() on null in ..../civicrm/api/v3/Contribution.php on line 435
line 434
...At least with the Dummy payment processor, Contribution API, transact action calls are failing with:
ResponseText: Fatal error: Call to a member function doPayment() on null in ..../civicrm/api/v3/Contribution.php on line 435
line 434
$paymentProcessor = CRM_Financial_BAO_PaymentProcessor::getPayment($params['payment_processor'], $params['payment_processor_mode']);
returns null instead of an object
This is accompanied with a notice:
Notice: Undefined offset: 1 in CRM_Financial_BAO_PaymentProcessor::getPayment() (line 221 of ...../civicrm/CRM/Financial/BAO/PaymentProcessor.php).
Testing against Version 5.4.0, not sure if this was around in previous 5.x versions, but worked in 4.7.30
Parameters being passed to transact call:
```
Array
(
[receive_date] => 20180806133730
[skipLineItem] => 1
[sequential] => 1
[financial_type_id] => 2
[total_amount] => 25.5
[contact_id] => 203
[payment_processor] => 1
[payment_processor_id] => 1
[credit_card_number] => 4111111111111111
[cvv2] => 123
[month] => 8
[year] => 2020
[invoice_id] => 33ef9bcca73cfa8ebb142da3e7b22433
[source] => CiviCRM Entity Price Set Field -- Event Registration
[billing_first_name] => Mark
[billing_last_name] => Hanna
[currencyID] => USD
[currency] => USD
[is_test] => 1
[version] => 3
[payment_processor_mode] => test
[amount] => 25.5
[net_amount] => 25.5
[invoiceID] => 33ef9bcca73cfa8ebb142da3e7b22433
)
```https://lab.civicrm.org/dev/core/-/issues/1136libmysqlclient >= 5.5.3, compatibilty with MariaDB2019-07-31T06:07:13Zedvanleeuwenlibmysqlclient >= 5.5.3, compatibilty with MariaDBUpgrading to version 5.15 gives the following warning:
> It is recommended, though not yet required, to upgrade your PHP MySQL driver (libmysqlclient) to >= 5.5.3 for utf8mb4 support.
I am using MariaDB 10.3.16. This has support for utf...Upgrading to version 5.15 gives the following warning:
> It is recommended, though not yet required, to upgrade your PHP MySQL driver (libmysqlclient) to >= 5.5.3 for utf8mb4 support.
I am using MariaDB 10.3.16. This has support for utf8mb4.
Could it be that the check for the proper libmysqlclient does not include MariaDB versions?https://lab.civicrm.org/dev/core/-/issues/1137Feature Request: Ability to enable SSL for database connection.2020-08-11T09:02:23ZtodddFeature Request: Ability to enable SSL for database connection.As far as I can tell, there is no way within civicrm core to enable SSL connections to a remote database. This would be a major concern for anyone running CiviCRM with separate web and database servers. I've 'solved' this issue for mys...As far as I can tell, there is no way within civicrm core to enable SSL connections to a remote database. This would be a major concern for anyone running CiviCRM with separate web and database servers. I've 'solved' this issue for myself by making the changes to civicrm/civicrm/packages/DB/common.php and civicrm/civicrm/packages/DB/mysqli.php detailed [here](https://civicrm.stackexchange.com/questions/31422/ssl-encypted-database-connection-for-civicrm), but it's rather sloppy and may need to be re-done after an update. Would be very useful to be able to set a flag within civicrm.settings.php (or even the initial install page) to enable SSL.5.29.0https://lab.civicrm.org/dev/core/-/issues/1138"Search Primary Details Only" Disabled but Not Working in Menu2019-07-21T08:38:31ZGhost User"Search Primary Details Only" Disabled but Not Working in MenuI'm opting out of "Search Primary Details Only". Then, when I query a contact with 2 phone or 2 email addresses in the menu search, the result does not appear. However, when I start searching with Enter on the same screen, the questions ...I'm opting out of "Search Primary Details Only". Then, when I query a contact with 2 phone or 2 email addresses in the menu search, the result does not appear. However, when I start searching with Enter on the same screen, the questions appear.
The query is not listed in the menu, but the search says Enter.![001552](/uploads/a6f2f6ed533b7f8cd990d05c6e91b890/001552.png)https://lab.civicrm.org/dev/core/-/issues/1140Adventures with accruals accounting in CiviCRM2023-01-07T05:03:29ZJamie Novick - CompucoAdventures with accruals accounting in CiviCRMHey all,
We have a few clients who are interested in the accruals accounting in CiviCRM and I've done some smoke testing with it, but there appear to be some major cases that are not covered / working correctly. I've listed them below t...Hey all,
We have a few clients who are interested in the accruals accounting in CiviCRM and I've done some smoke testing with it, but there appear to be some major cases that are not covered / working correctly. I've listed them below to start a discussion about what should be done about them. I've focussed on Membership for the time being, but I assume we should also look into events functionality at some stage:
*Membership*
**1. The system appears to allocate over n-1 months rather then the n months of membership:**
If I create a membership with a start date say 1/1/2019 for 1 year at a value of $120 and record a payment immediately (completed contribution), I would expect my accruals to be mapped through each month from 1/1/2019 to 1/12/2019 - i.e. split across the 12 months as $10 released each month. Instead the accruals are split over n-1 for some reason. Not sure if this is intended? This also causes some rounding issues.
**2. Refunds**
If I then subsequently refund the membership payment, no adjustment is made to the accruals. They should be reversed out.
**3. Changes to the membership dates after creation of membership.**
If I create a membership with a start date say 1/1/2019 for 1 year at a value of $120 and record a payment immediately (completed contribution), but then change the membership dates. For example to the next year, 1/1/2020 - 31/12/2020, I would expect that the original accruals should be reversed and new dates based on the updated dates of membership are created. No changes are made.
**Pending contributions / invoicing**
If I create a membership with a start date say 1/1/2019 for 1 year at a value of $120 and do not record a payment immediately (pending contribution):
Issue 1:
The accruals are not actually created when the original invoice is created.
Issue 2:
The accruals are not actually created when the original invoice is marked as paid.
**Pending contributions / invoicing and cancel of invoice before payment**
I could not therefore test the scenario where:
If I create a membership with a start date say 1/1/2019 for 1 year at a value of $120 and do not record a payment immediately (pending contribution): but then cancel the contribution after a few months, as for example the member did not pay.
In that case we would need the entries to be reversed out.
**Over/Underpayments**
For completeness I would also want to look into how over and underpayments should be treated but not had time for this.
I must admit that I'm not suggesting we fix this (and certainly we don't have the resource too), but perhaps this functionality should be marked at least as experimental or removed from core as I think it is far from robust.
@JoeMurray FYI.
Best
Jamie
nb. Our plan will be to create a report which gives a correct "as at" view of what the accruals position should be at any point in time, that clients can use to post the accruals amounts manually in their systems.https://lab.civicrm.org/dev/core/-/issues/1141Remove deprecated SQL_CALC_FOUND_ROWS2022-11-30T05:03:30ZJoeMurrayRemove deprecated SQL_CALC_FOUND_ROWSMySQL has deprecated SQL_CALC_FOUND_ROWS https://dev.mysql.com/doc/refman/8.0/en/information-functions.html:
> The SQL_CALC_FOUND_ROWS query modifier and accompanying FOUND_ROWS() function are deprecated as of MySQL 8.0.17 and will be r...MySQL has deprecated SQL_CALC_FOUND_ROWS https://dev.mysql.com/doc/refman/8.0/en/information-functions.html:
> The SQL_CALC_FOUND_ROWS query modifier and accompanying FOUND_ROWS() function are deprecated as of MySQL 8.0.17 and will be removed in a future MySQL version. As a replacement, considering executing your query with LIMIT, and then a second query with COUNT(*) and without LIMIT to determine whether there are additional rows.
We should refactor to remove it from core in the following places:
>>>
$ grep -R SQL_CALC_FOUND_ROWS ./*
```php
./CRM/Core/BAO/CustomValueTable.php: $query = "SELECT SQL_CALC_FOUND_ROWS id, " . implode(', ', $clauses) . " FROM $tableName WHERE entity_id = $entityID {$orderBy} {$limit}";
./CRM/Core/BAO/PrevNextCache.php:SELECT SQL_CALC_FOUND_ROWS {$selectString}
./CRM/Contribute/BAO/ContributionSoft.php: SELECT SQL_CALC_FOUND_ROWS ccs.id, ccs.amount as amount,
./CRM/Case/BAO/Case.php: SELECT SQL_CALC_FOUND_ROWS COUNT(ca.id) AS ismultiple,
./CRM/Report/Form/Contribute/Sybunt.php: $getContacts = "SELECT SQL_CALC_FOUND_ROWS {$this->_aliases['civicrm_contact']}.id as cid {$this->_from} {$this->_where} GROUP BY {$this->_aliases['civicrm_contact']}.id {$this->_limit}";
./CRM/Report/Form/Contribute/Lybunt.php: SELECT SQL_CALC_FOUND_ROWS {$this->_aliases['civicrm_contact']}.id as cid {$this->_from}
./CRM/Report/Form/Contribute/Lybunt.php: $sql = str_replace('SQL_CALC_FOUND_ROWS', '', $sql);
./CRM/Report/Form/Contribute/Lybunt.php: $sql = "SELECT SQL_CALC_FOUND_ROWS * FROM ( $sql ) as inner_query {$this->_orderBy} $this->_limit";
./CRM/Report/Form/Contribute/History.php: $getContacts = "SELECT SQL_CALC_FOUND_ROWS {$this->_aliases['civicrm_contact']}.id as cid, SUM({$this->_aliases['civicrm_contribution']}.total_amount) as civicrm_contribution_total_amount_sum {$this->_from} {$this->_where} {$addWhere} GROUP BY {$this->_aliases['civicrm_contact']}.id {$this->_having} {$this->_limit}";
./CRM/Report/Form/Contribute/Detail.php: return "SELECT SQL_CALC_FOUND_ROWS * FROM {$this->temporaryTables['civireport_contribution_detail_temp3']['name']} $this->_orderBy $this->_limit";
./CRM/Report/Form/Contribute/Detail.php: $select = str_ireplace('SELECT SQL_CALC_FOUND_ROWS ', 'SELECT ', $this->_select);
./CRM/Report/Form/Contribute/TopDonor.php: $this->_select = preg_replace('/SELECT/', 'SELECT SQL_CALC_FOUND_ROWS ', $this->_select, 1);
./CRM/Report/Form.php: if (stristr($this->_select, 'SQL_CALC_FOUND_ROWS')) {
./CRM/Report/Form.php: $select = str_ireplace('SELECT SQL_CALC_FOUND_ROWS ', 'SELECT ', $this->_select);
./CRM/Report/Form.php: $this->_select = preg_replace('/SELECT(\s+SQL_CALC_FOUND_ROWS)?\s+/i', 'SELECT SQL_CALC_FOUND_ROWS ', $this->_select);
./CRM/Report/Form.php: $select = preg_replace('/SELECT(\s+SQL_CALC_FOUND_ROWS)?\s+/i', $select, $this->_select);
./tests/phpunit/api/v3/ReportTemplateTest.php: SELECT SQL_CALC_FOUND_ROWS contact_civireport.id as cid FROM civicrm_contact contact_civireport INNER JOIN civicrm_contribution contribution_civireport USE index (received_date) ON contribution_civireport.contact_id = contact_civireport.id
```
>>>Monish DebMonish Debhttps://lab.civicrm.org/dev/core/-/issues/1142Upgrade test infrastructure to support 'edge' versions of dependencies like M...2020-01-08T01:52:11ZJoeMurrayUpgrade test infrastructure to support 'edge' versions of dependencies like MySQL8@totten wrote:
> we currently check releases using a matrix with `min` and `max` columns
>
> if we expect civicrm to be compatible already (and/or that updates will be quick and straight-forward), then we can use KISS approach and just...@totten wrote:
> we currently check releases using a matrix with `min` and `max` columns
>
> if we expect civicrm to be compatible already (and/or that updates will be quick and straight-forward), then we can use KISS approach and just bump up max (`mysql57` => `mysql80`)
>
> otoh, if the process is going to take longer, then we should add a new column (`min`, `max`, `edge`)
>
> (note: adding an `edge` column could also be useful wrt to phasing-in support for `php73`)
>
> ... it would mean that reports of errors for infrastructure that is on the edge of getting support are not treated as blockers, and are identifiable as edge errors
Once an edge technology dependency like MySQL 8 or PHP 7.3 are deemed ready to be declared supported, the max column will change, and the edge column will change to NULL or perhaps the next higher version if people are prepared to start work on that.
This issue is focused on adding edge support to the matrix through a new column, and everything that entails in the build infrastructure and error reporting.
In order to do that, MySQL8 happens to be the first edge version to be incorporated. Issues specific to getting MySQL8.0 testing working on infrastructure will be managed at https://lab.civicrm.org/dev/core/issues/1144. Issues regarding MySQL8 compatibility are being managed via the meta issue https://lab.civicrm.org/dev/core/issues/392.
PHP73 is expected to be the next edge dependency.5.23.0tottentottenhttps://lab.civicrm.org/dev/core/-/issues/1143Field Names now Reserved Words in MySQL82020-01-09T00:12:27ZJoeMurrayField Names now Reserved Words in MySQL8The new reserved words includes two which we use as field names:
- description
- grouping
While our code to create the fields will work because it uses ` to quote them as identifiers, we'll likely want to either change these names or go...The new reserved words includes two which we use as field names:
- description
- grouping
While our code to create the fields will work because it uses ` to quote them as identifiers, we'll likely want to either change these names or go through the code base and add the backtick quotes everywhere. Either approach will still mean that extensions will have to make changes to become MySQL 8.0 compatible. Using backticks will mean that extensions can continue to run on earlier versions of MySQL, and is likely the better approach. We don't want to force all extension maintainers to change references to these fields all at once when only a small number of installations will be using MySQL 8.0.
Decision: use backticks.5.23.0Monish DebMonish Debhttps://lab.civicrm.org/dev/core/-/issues/1144Support MySQL8 in test infrastructure2020-01-08T15:38:31ZJoeMurraySupport MySQL8 in test infrastructureThe testing infrastructure will be enhanced to support testing of versions of dependencies that are on the edge of support (see https://lab.civicrm.org/dev/core/issues/1142).
Setting up testing for MySQL is the focus of this issue.
In...The testing infrastructure will be enhanced to support testing of versions of dependencies that are on the edge of support (see https://lab.civicrm.org/dev/core/issues/1142).
Setting up testing for MySQL is the focus of this issue.
In particular, We may need to adjust some of our test infrastructure for PHP <7.1.16 or PHP 7.2 less than 7.2.4 as per instructions at http://php.net/manual/en/ref.pdo-mysql.php .Monish DebMonish Debhttps://lab.civicrm.org/dev/core/-/issues/1145Document upgrading to MySQL82020-05-15T01:39:39ZJoeMurrayDocument upgrading to MySQL8We should document how upgraders will have to deal with hassle of changes to MySQL user password library (https://dev.mysql.com/doc/refman/8.0/en/upgrading-from-previous-series.html#upgrade-caching-sha2-password) even though this doesn't...We should document how upgraders will have to deal with hassle of changes to MySQL user password library (https://dev.mysql.com/doc/refman/8.0/en/upgrading-from-previous-series.html#upgrade-caching-sha2-password) even though this doesn't affect our code.JoeMurrayJoeMurrayhttps://lab.civicrm.org/dev/core/-/issues/1146Custom multi profile: file fields only show one delete attachment action2022-11-26T05:03:21ZmountevCustom multi profile: file fields only show one delete attachment actionFor a profile with multi record custom set including multiple file fields, display delete attachment option only for one file.
Steps to reproduce:
- create a custom data set for contacts or indivs. mark it as a multi-record set.
- add ...For a profile with multi record custom set including multiple file fields, display delete attachment option only for one file.
Steps to reproduce:
- create a custom data set for contacts or indivs. mark it as a multi-record set.
- add two file type fields
- create a profile and add those fields to it. mark them as included in the multi-record listing (or pick a different field; you need at least one marked like this for the listing to work)
- open the profile in edit view. add a record and upload a file to each field. save it.
- that returns you to the listing of multi-records. edit the existing record. the two files will be listed but only one has a "delete attached file" link. if you click it, it removes the attachment for the last file field.
Note: if your custom data set is a single record set, the profile edit form will have the link for each file.
![image](/uploads/d69c46695e140fe31c965571faf48325/image.png)