Development issueshttps://lab.civicrm.org/groups/dev/-/issues2024-03-18T19:23:47Zhttps://lab.civicrm.org/dev/core/-/issues/5085Incorrect fee level saved when editing event participant2024-03-18T19:23:47Zchrisgaraffachris@aghstrategies.comIncorrect fee level saved when editing event participantOverview
----------------------------------------
Editing an event participant changes the fee level and amount listed, seemingly at random.
Reproduction steps
----------------------------------------
- Register a contact for an event ...Overview
----------------------------------------
Editing an event participant changes the fee level and amount listed, seemingly at random.
Reproduction steps
----------------------------------------
- Register a contact for an event that uses a price set for fees (I'm using Summer Solstice Day Concert from dmaster in this example). Doesn't matter if they register online or an admin adds their registration
- Select Bass - $ 25.00
- Save the event registration
- Edit the event registration
- Change nothing
- Click Save
Current behaviour
----------------------------------------
The Fee level on the participant changes to something else - the specific value seems random on the first save, then doesn't seem to change.
Settings for adding the event registration:
![image](/uploads/04829e0ca7f423daf94a29b56883da07/image.png)
Display after creating the registration:
![image](/uploads/028cb9da80776075397f2df2541ee7a5/image.png)
Display after editing the registration, changing nothing, and saving:
![image](/uploads/5e63e0f24e9de983944a6c0e5873e577/image.png)
Expected behaviour
----------------------------------------
The fee level shouldn't change
Environment information
----------------------------------------
* __CiviCRM:__ Reproduced on 5.70.2, 5.71.0, dmaster (5.73.alpha1)https://lab.civicrm.org/dev/core/-/issues/5081Event Online Receipt can yield Smarty error2024-03-12T19:26:34ZJonGoldEvent Online Receipt can yield Smarty errorCurrently, the `selfcancelxfer_time` field in Civi can be `NULL`. But if it's set to `NULL` then submitting an online event registration crashes because you can't compare it to an integer in this template line in `event_reg_online`:
```...Currently, the `selfcancelxfer_time` field in Civi can be `NULL`. But if it's set to `NULL` then submitting an online event registration crashes because you can't compare it to an integer in this template line in `event_reg_online`:
```
{capture assign=selfservice_preposition}{if {event.selfcancelxfer_time|boolean} && {event.selfcancelxfer_time} > 0}{ts}before{/ts}{else}{ts}after{/ts}{/if}{/capture}
```https://lab.civicrm.org/dev/core/-/issues/4904"unreachable code price set is always set here"2024-02-07T18:46:09ZDaveD"unreachable code price set is always set here"I'm trying to review https://github.com/civicrm/civicrm-core/pull/28399 - event approval isn't a workflow I use anywhere. After doing the online reg, this comes up:
`unreachable code price set is always set here - passed as a hidden fie...I'm trying to review https://github.com/civicrm/civicrm-core/pull/28399 - event approval isn't a workflow I use anywhere. After doing the online reg, this comes up:
`unreachable code price set is always set here - passed as a hidden field although we could just load... Caller: CRM_Core_Form::mainProcess`
This is with the default rainforest event but with the extra participant statuses enabled and then approval turned on for the online registration.5.71.0eileeneileenhttps://lab.civicrm.org/dev/core/-/issues/4860VTIMEZONE block in ICS file publishes DSTART in wrong timezone2024-01-17T23:01:42ZjamieVTIMEZONE block in ICS file publishes DSTART in wrong timezoneA lot of great work went into fixing our ICS timezone support in #2887!
But, I _think_ there is still one small problem with timezone support.
I'm testing with the ICS file generated by the Montreal Developer Training on February 26th ...A lot of great work went into fixing our ICS timezone support in #2887!
But, I _think_ there is still one small problem with timezone support.
I'm testing with the ICS file generated by the Montreal Developer Training on February 26th (https://civicrm.org/civicrm/event/ical?reset=1&id=1745). The event is supposed to start at 9:00 AM America/New_York time.
I'm using Thunderbird. I have my Thunderbird timezone set to America/Los_Angeles. It's important to set your calendar timezone to a timezone that does not match the event time zone to replicate the problem.
When I import the ICS file, my calendar shows it as starting at 1:00 am America/Los_Angeles time, which would be 4:00 am America/New_York time. The reason it's off is because Thunderbird percieves the correct time to be 9:00 am UTC rather than 9:00 am America/New_York.
Here are the relevant parts of the ICS file.
First, the timezone is defined:
```
BEGIN:VTIMEZONE
TZID:America/New_York
BEGIN:STANDARD
TZOFFSETFROM:-0500
TZOFFSETTO:-0500
TZNAME:EST
DTSTART:20240226T140000
END:STANDARD
END:VTIMEZONE
```
Then, the event date start is defined:
```
TSTAMP;TZID=America/New_York:20240226T090000
DTSTART;TZID=America/New_York:20240226T090000
DTEND;TZID=America/New_York:20240227T170000
```
The problem is with the timezone definition, specifically:
`DTSTART:20240226T140000`
This represents the start time in UTC. But, the [standards](https://www.rfc-editor.org/rfc/rfc5545#section-3.6.5) says:
> The mandatory "DTSTART" property gives the effective onset date
and local time for the time zone sub-component definition.
"DTSTART" in this usage MUST be specified as a date with a local
time value.
In other words, it should be the local time, not UTC. In this case: `DTSTART:20240226T090000`.
Making that adjustment causes it to import properly in Thunderbird.
I'm happy to work on this, but would love some feedback to make sure I'm not offbase on anything. I know @justinfreeman did a lot of work on this in #2887 so maybe has some thoughts.5.71.0https://lab.civicrm.org/dev/core/-/issues/4789Custom entity reference field on event can't be edited post creation2024-02-09T01:48:11Ztoby-fzCustom entity reference field on event can't be edited post creationOverview
----------------------------------------
I was trying to create an event with a custom field of type entity reference on CiviCRM 5.67.beta1 and after I set that when I went back to view it, the field was empty again (but still s...Overview
----------------------------------------
I was trying to create an event with a custom field of type entity reference on CiviCRM 5.67.beta1 and after I set that when I went back to view it, the field was empty again (but still set in the database). When I went to test on dmaster I could view the field fine after setting it initially but if I tried to change it I would get an infinite loading screen. See the steps below.
I'm not sure if this issue and my original issue are related or not.
Reproduction steps
----------------------------------------
Create a new custom field of type entity reference, for events.
Create a new event
Edit that event and try to change the contact in the entity reference field
It loads infinitely.
Current behaviour
----------------------------------------
Trying to change the contact in the entity reference and it won't stop loading
![image](/uploads/33344d5c1c6b518da67ca2e3fe663072/image.png)
I tried to add the logviewer ext to see the logs on dmaster but it didn't seem to be able to access them5.71.0https://lab.civicrm.org/dev/core/-/issues/4735Event Registration Error on Wordpress 6.3.1 Civi 5.63.4 "Could not find valid...2023-12-06T16:06:38Zdarren.woodsEvent Registration Error on Wordpress 6.3.1 Civi 5.63.4 "Could not find valid value for id"Overview
----------------------------------------
When registering for an event, users do not see the configured thank you messge, but instead are shown the error: "Could not find valid value for id"
https://civicrm.stackexchange.com/qu...Overview
----------------------------------------
When registering for an event, users do not see the configured thank you messge, but instead are shown the error: "Could not find valid value for id"
https://civicrm.stackexchange.com/questions/45729/event-registration-error-on-wordpress-6-3-1-civi-5-63-4-could-not-find-valid-va
Reproduction steps
----------------------------------------
1. Configure an event with free online registration and a thankyou message.
2. Register for the event from the event info page.
Current behaviour
----------------------------------------
Users are shown an error: "Could not find valid value for id"
Expected behaviour
----------------------------------------
Thank you message configured in the event should be shown.
Environment information
----------------------------------------
* __Browser: Browser independent.
* __CiviCRM: 5.63.4
* __PHP: 8.1
* __CMS: WordPress 6.3.1
* __Database: MariaDB
* __Web Server: Nginx
Comments
----------------------------------------
This only happens with registering for events using the Civi event info page. If you embed a shortcode for the specific event in a WordPress page then the error is not shown.https://lab.civicrm.org/dev/core/-/issues/4545Events - Self service and change options after initial registration2023-09-06T13:20:42ZtreseroEvents - Self service and change options after initial registrationThis is a common scenario, and I'm not sure why CiviEvents doesn't support it.
Scenario 1: Joe signs up for a multi-day event and pays for the registration. A month later, the event organizers add a golf tournament fundraiser option, Jo...This is a common scenario, and I'm not sure why CiviEvents doesn't support it.
Scenario 1: Joe signs up for a multi-day event and pays for the registration. A month later, the event organizers add a golf tournament fundraiser option, Joe wants to add this to his registration.
Scenario 2: Joe now realizes that he wants to add his wife.
Scenario 3: Joe's friend Jeff wants to go, and also play golf.
You get the idea.
As Events is now, there is no way to adjust your registration and it has to be done manually. That is not an option for 700 - 800 registrations run by all volunteers (i.e. we don't have any paid staff). Another issue is we can't make the payment required as it would have to be paid when there is a "new" change. Making it optional, well, you can see the problem.
My thinking would be to look up email, or something and populate the form etc. We already require them to create a wordpress account so that could also be used. It's just not there.
Also, we have 25,000+ constituents that were imported from a legacy system. They don't have any accounts, but it would be nice if there were a way to match emails (where possible, I know not all have updated/current emails), but this is a less important scenario.
I have coding skills, but as we are all volunteers, I don't have much time. There is some money to budget for a developer. All code will be added back to the public.
![image.png](/uploads/9e7d2100f9b61ee6b871d0467d58338d/image.png)
As you can see, this is an example. Of course, none is not an option. but if we added other additions, or they want to add another person, it has to be manually done.https://lab.civicrm.org/dev/core/-/issues/4541Membership renewal on Feb 29 of a leap year is calculated incorrectly2023-08-29T19:23:09ZlarsssandergreenMembership renewal on Feb 29 of a leap year is calculated incorrectlyOr it doesn't match what the test expects, anyways.
Basically, the [membership renewal here](https://github.com/civicrm/civicrm-core/blob/bb49a5de4a1630e57e91e3618c370bc075a793b5/CRM/Member/BAO/MembershipType.php#L524) in CRM_Member_BAO...Or it doesn't match what the test expects, anyways.
Basically, the [membership renewal here](https://github.com/civicrm/civicrm-core/blob/bb49a5de4a1630e57e91e3618c370bc075a793b5/CRM/Member/BAO/MembershipType.php#L524) in CRM_Member_BAO_MembershipType::getRenewalDatesForMembershipType() will renew a membership that expires on Feb 29 for one year and set the new expiry date to Feb 28. But the [test here](https://github.com/civicrm/civicrm-core/blob/bb49a5de4a1630e57e91e3618c370bc075a793b5/tests/phpunit/CRM/Member/BAO/MembershipTest.php#L518) in CRM_Member_BAO_MembershipTest::testRenewMembership() thinks the membership should expire on Mar 1, which is actually more reasonable.
The problem is the kind of funky add one day and then subtract it later after adding a membership period logic, which doesn't make sense in this case as Feb 29 exists one year, but not the next.https://lab.civicrm.org/dev/core/-/issues/4456Saving event with custom file field gives fatal error2024-02-07T19:47:09ZwouterhSaving event with custom file field gives fatal error1. Create a file field for event(s).
1. Go to an existing event containing this custom file field – Press save.
1. Red alert box "network error" and the custom fields don't display.
`TypeError: Cannot access offset of type string on st...1. Create a file field for event(s).
1. Go to an existing event containing this custom file field – Press save.
1. Red alert box "network error" and the custom fields don't display.
`TypeError: Cannot access offset of type string on string in include() (regel 59 van /var/www/html/web/sites/default/files/civicrm/templates_c/nl_NL/%%1D/1DB/1DB03A28%%CustomField.tpl.php).`
Using CiviCRM 5.62.0 & PHP 8. Doesn't happen in PHP 7.5.71.0https://lab.civicrm.org/dev/core/-/issues/4390Multiple Participant Event Registration Issue2024-02-12T09:17:09ZChiplehMultiple Participant Event Registration Issue1. We can successfully submit a multi-participant event registration with custom data in the profiles with the dummy processor.
2. We cannot do so either with core Paypal Website Payments Pro or Stripe.
3. Removing any custom fields f...1. We can successfully submit a multi-participant event registration with custom data in the profiles with the dummy processor.
2. We cannot do so either with core Paypal Website Payments Pro or Stripe.
3. Removing any custom fields from the profiles allowed us to successfully submit a payment for the event with Stripe.
4. We can confirm the registration was charged correctly.
5. Something with payment processing (core Paypal Website Payments Pro and Stripe extension) is not working properly when custom fields have been added to the CiviEvent registration form.
6. This happens both in WordPress and Drupal 7. In WordPress, this occurs whether the registration form is accessed directly or embedded in a page via shortcode.
Details (site 1):
WordPress 6.2.1
CiviCRM ESR 5.57.4
Stripe Extension: 6.7.14
https://lab.civicrm.org/extensions/stripe
Firewall Extension: 1.5.7
https://lab.civicrm.org/extensions/firewall
Paypal Website Payments Pro (core integration)
PHP 8.0
Details (site 2):
Drupal 7.98
CiviCRM ESR 5.57.4
Paypal Website Payments Pro (core integration)
PHP 8.0
To replicate:
1. Add a custom field group to the event registration form.
2. Go to /civicrm/event/register/?reset=1&action=preview&id=[event_id] and test with multiple participants (2 or more), dummy card # appropriate for the payment processor, any CVV, any date in future
2. Critical error after submitting at the end.
WordPress error from log:
[debug] $backTrace = #0 /home/XXXXXXXXXXX/www/www/wp-content/plugins/civicrm/civicrm/CRM/Core/Error.php(441): CRM_Core_Error::backtrace("backTrace", TRUE)
#1 /home/XXXXXXXXXXX/www/www/wp-content/plugins/civicrm/civicrm/CRM/Core/Invoke.php(39): CRM_Core_Error::handleUnhandledException(Object(CRM_Core_Exception))
#2 /home/XXXXXXXXXXX/www/www/wp-content/plugins/civicrm/civicrm.php(1199): CRM_Core_Invoke::invoke((Array:3))
#3 /home/XXXXXXXXXXX/www/www/wp-content/plugins/civicrm/includes/civicrm.basepage.php(380): CiviCRM_For_WordPress->invoke()
#4 /home/XXXXXXXXXXX/www/www/wp-includes/class-wp-hook.php(308): CiviCRM_For_WordPress_Basepage->basepage_handler(Object(WP))
#5 /home/XXXXXXXXXXX/www/www/wp-includes/class-wp-hook.php(332): WP_Hook->apply_filters(NULL, (Array:1))
#6 /home/XXXXXXXXXXX/www/www/wp-includes/plugin.php(565): WP_Hook->do_action((Array:1))
#7 /home/XXXXXXXXXXX/www/www/wp-includes/class-wp.php(797): do_action_ref_array("wp", (Array:1))
#8 /home/XXXXXXXXXXX/www/www/wp-includes/functions.php(1334): WP->main("")
#9 /home/XXXXXXXXXXX/www/www/wp-blog-header.php(16): wp()
#10 /home/XXXXXXXXXXX/www/www/index.php(17): require("/home/XXXXXXXXXXX/www/www/wp-blog-header.php")
#11 {main}
Could this be an issue with PHP 8?
After reviewing the error log, we see:
Warning: Array to string conversion in /wp-content/plugins/civicrm/civicrm/CRM/Contact/BAO/Query.php on line 655
Fatal error: Uncaught TypeError: preg_match(): Argument #2 ($subject) must be of type string, array given in /home/XXXXXXXXXXX/www/www/wp-content/plugins/civicrm/civicrm/CRM/Core/BAO/CustomField.php:692 Stack trace: #0 /home/XXXXXXXXXXX/www/www/wp-content/plugins/civicrm/civicrm/CRM/Core/BAO/CustomField.php(692): preg_match('/^custom_(\\d+)_...', Array, Array) #1 /home/XXXXXXXXXXX/www/www/wp-content/plugins/civicrm/civicrm/CRM/Contact/BAO/Query.php(655): CRM_Core_BAO_CustomField::getKeyID(Array) #2 /home/XXXXXXXXXXX/www/www/wp-content/plugins/civicrm/civicrm/CRM/Contact/BAO/Query.php(559): CRM_Contact_BAO_Query->buildParamsLookup() #3 /home/XXXXXXXXXXX/www/www/wp-content/plugins/civicrm/civicrm/CRM/Contact/BAO/Query.php(524): CRM_Contact_BAO_Query->initialize(NULL) #4 /home/XXXXXXXXXXX/www/www/wp-content/plugins/civicrm/civicrm/CRM/Event/BAO/Event.php(1696): CRM_Contact_BAO_Query->__construct(Array, Array, Array) #5 /home/XXXXXXXXXXX/www/www/wp-content/plugins/civicrm/civicrm/CRM/Event/Form/Registration/Confirm.php(1178): CRM_Event_BAO_Event::displayProfile(Array, '263', Array, Array, Array) #6 /home/XXXXXXXXXXX/www/www/wp-content/plugins/civicrm/civicrm/CRM/Event/Form/Registration/Confirm.php(273): CRM_Event_Form_Registration_Confirm::assignProfiles(Object(CRM_Event_Form_Registration_Confirm)) #7 /home/XXXXXXXXXXX/www/www/wp-content/plugins/civicrm/civicrm/CRM/Core/Form.php(689): CRM_Event_Form_Registration_Confirm->buildQuickForm() #8 /home/XXXXXXXXXXX/www/www/wp-content/plugins/civicrm/civicrm/CRM/Core/StateMachine.php(120): CRM_Core_Form->buildForm() #9 /home/XXXXXXXXXXX/www/www/wp-content/plugins/civicrm/civicrm/CRM/Core/QuickForm/Action/Next.php(43): CRM_Core_StateMachine->perform(Object(CRM_Event_Form_Registration_Confirm), 'next', 'Next') #10 /home/XXXXXXXXXXX/www/www/wp-content/plugins/civicrm/civicrm/packages/HTML/QuickForm/Controller.php(203): CRM_Core_QuickForm_Action_Next->perform(Object(CRM_Event_Form_Registration_Confirm), 'next') #11 /home/XXXXXXXXXXX/www/www/wp-content/plugins/civicrm/civicrm/packages/HTML/QuickForm/Page.php(103): HTML_QuickForm_Controller->handle(Object(CRM_Event_Form_Registration_Confirm), 'next') #12 /home/XXXXXXXXXXX/www/www/wp-content/plugins/civicrm/civicrm/CRM/Core/Controller.php(355): HTML_QuickForm_Page->handle('next') #13 /home/XXXXXXXXXXX/www/www/wp-content/plugins/civicrm/civicrm/CRM/Core/Invoke.php(319): CRM_Core_Controller->run(Array, NULL) #14 /home/XXXXXXXXXXX/www/www/wp-content/plugins/civicrm/civicrm/CRM/Core/Invoke.php(69): CRM_Core_Invoke::runItem(Array) #15 /home/XXXXXXXXXXX/www/www/wp-content/plugins/civicrm/civicrm/CRM/Core/Invoke.php(36): CRM_Core_Invoke::_invoke(Array) #16 /home/XXXXXXXXXXX/www/www/wp-content/plugins/civicrm/civicrm.php(1199): CRM_Core_Invoke::invoke(Array) #17 /home/XXXXXXXXXXX/www/www/wp-content/plugins/civicrm/includes/civicrm.basepage.php(380): CiviCRM_For_WordPress->invoke() #18 /home/XXXXXXXXXXX/www/www/wp-includes/class-wp-hook.php(308): CiviCRM_For_WordPress_Basepage->basepage_handler(Object(WP)) #19 /home/XXXXXXXXXXX/www/www/wp-includes/class-wp-hook.php(332): WP_Hook->apply_filters(NULL, Array) #20 /home/XXXXXXXXXXX/www/www/wp-includes/plugin.php(565): WP_Hook->do_action(Array) #21 /home/XXXXXXXXXXX/www/www/wp-includes/class-wp.php(797): do_action_ref_array('wp', Array) #22 /home/XXXXXXXXXXX/www/www/wp-includes/functions.php(1334): WP->main('') #23 /home/XXXXXXXXXXX/www/www/wp-blog-header.php(16): wp() #24 /home/XXXXXXXXXXX/www/www/index.php(17): require('/home/harrisbur...') #25 {main} thrown in /home/XXXXXXXXXXX/www/www/wp-content/plugins/civicrm/civicrm/CRM/Core/BAO/CustomField.php on line 692
There has been a critical error on this website.5.71.0https://lab.civicrm.org/dev/core/-/issues/4377Don't allow scheduled reminders for events to also include groups2023-09-02T05:11:52ZlarsssandergreenDon't allow scheduled reminders for events to also include groupsEdit: See discussion below, this doesn't actually work anyways.
If a user is able to edit events and has access to a particular group, they can add that group to a scheduled reminder for an event with Also include. It doesn't seem like ...Edit: See discussion below, this doesn't actually work anyways.
If a user is able to edit events and has access to a particular group, they can add that group to a scheduled reminder for an event with Also include. It doesn't seem like a good idea to let users scheduled a reminder to potentially a very large number of contacts via an event scheduled reminder, which is intended to email participants for an event.
I can see the case for also including manually selected contacts, but also including groups seems dangerous and an invitation for mistakes. If a user needs to send a scheduled reminder to a group, they would probably be better off using a mailing or a separate scheduled reminder.
Proposal: Disable the Also include > Select Group option in scheduled reminders for events.https://lab.civicrm.org/dev/wordpress/-/issues/140Event registration confirmation page no longer shown. Error: Could not find v...2023-12-07T09:30:02Zdarren.woodsEvent registration confirmation page no longer shown. Error: Could not find valid value for id.WordPress 6.2, Civi ESR 5.57.5.
The confirmation page after event registration is no longer shown (for both Test and Live links). Instead, the attached error is shown:-
![image](/uploads/602b80ebba49507af86158d362c9b164/image.png)
The ...WordPress 6.2, Civi ESR 5.57.5.
The confirmation page after event registration is no longer shown (for both Test and Live links). Instead, the attached error is shown:-
![image](/uploads/602b80ebba49507af86158d362c9b164/image.png)
The workaround is to embed the event registration page as a shortcode. However the confirmation page and confirmation emails show a link to the event info page, which then has the "Register" button taking people to the wrong page.
I'm wondering if this can be fixed, or if we need to override the confirmation and event info pages somehow to redirect users to the WordPress page (perhaps using a naming convention).
Thanks!https://lab.civicrm.org/dev/core/-/issues/4260CiviEvent: Submit button has wrong label in online registrations with multipl...2023-07-05T23:48:38ZAndreasandreas.howiller@civiservice.deCiviEvent: Submit button has wrong label in online registrations with multiple participants (on free events without confirmation screen)Overview
----------------------------------------
On a registration page for an event that allows multiple attendees, the submit button is labelled "Review" instead of "Register" though confirmation screen is disabled and event has no f...Overview
----------------------------------------
On a registration page for an event that allows multiple attendees, the submit button is labelled "Review" instead of "Register" though confirmation screen is disabled and event has no fees:
![grafik](/uploads/212957e4dfcbd9d321ff468009e9fce7/grafik.png)
Reproduction steps
----------------------------------------
1. Create a event free of charge with online registration
1. Enable checkbox "Register multiple participants?"
1. Try out registration page
Current behaviour
----------------------------------------
1. Button is labelled "Review" when option for multiple participants is enabled and drop down option is "1".
2. For dropdown "2" the label is "Continue" in the first step of the form. The last step then shows "Continue" again.
Expected behaviour
----------------------------------------
The "final submission button" should here always have the label "register" as it is the case when disabling "Register multiple participants".
Environment information
----------------------------------------
Reproduced on:
* __CiviCRM:__ _5.61.alpha1/5.60.0/5.58.1_
* __PHP:__ _8.1/7.4_https://lab.civicrm.org/dev/core/-/issues/4176Allow to search on participant id2023-03-24T17:21:16ZyashodhaAllow to search on participant idOverview
---------
Allow to search on participant id.
The participant search doesn't have an option to quickly search on ID, this should fix that.
This is already available for contribution and membership search.Overview
---------
Allow to search on participant id.
The participant search doesn't have an option to quickly search on ID, this should fix that.
This is already available for contribution and membership search.5.61.0yashodhayashodhahttps://lab.civicrm.org/dev/core/-/issues/4142Add Activity Target consistently2023-04-24T19:25:30ZSandor SemseyAdd Activity Target consistentlyOverview
----------------------------------------
When creating related activities for other entities (e.g. Contribution, Participant (event registration), Membership) source and target contact IDs holds different contacts and have diffe...Overview
----------------------------------------
When creating related activities for other entities (e.g. Contribution, Participant (event registration), Membership) source and target contact IDs holds different contacts and have different meanings if a logged-in user added the entity or an anonymous user (through an online form).
This creates inconsistency and makes any downstream processing harder: searching, creating extensions & automations based on these activities.
Example use-case
----------------------------------------
If a contact get registered for an event by a logged-in user (someone showed interest in email and a backoffice user adding the registration to Civi) "Event Registration" activity's source (Added by) would be the CRM user and target (With) is the contact who wants to attend the event. This makes sense and the roles match the label: registration was *added by* the user and the *target* is the contact. Also works well as audit trails.
However, if the contact is using the online registration form source will be the contact and target will be empty.
Proposed behaviour
----------------------------------------
In my opinion best case would be: if there's no logged in user then source is the system user and target is the contact. This presents exactly what happened: a contact has registered and registration was added by the system, not by a real user manually.
If that's too much of a change or system user determination is hard across all CMS then just add contact to target (in this case source and target would be the same contact_id). This way also has the benefits of the same results for consumers.
In the latter case the downside is there would be redundancy in `civicrm_activity_contact` table (https://lab.civicrm.org/dev/core/-/issues/2450#note_55527). Regarding this, I argue that consistency worths more than disk space.
Comments
----------------------------------------
I've found some issues that mention this, but not as the main topic (https://lab.civicrm.org/dev/core/-/issues/2450) or hasn't any progress (https://lab.civicrm.org/dev/core/-/issues/2669). As it would be nice to change this through all of Civi.
PR at https://github.com/civicrm/civicrm-core/pull/256505.60.0https://lab.civicrm.org/dev/financial/-/issues/214Link to record payment from within participant change selections links it to ...2023-05-27T14:08:26ZDaveDLink to record payment from within participant change selections links it to wrong contribution, or crashes if that doesn't exist1. Register an event participant for a paid event.
2. In the record payment section of the registration, change the amount to less than the total so it's just a partial payment.
3. Save.
4. View/edit the participant record. Note the id i...1. Register an event participant for a paid event.
2. In the record payment section of the registration, change the amount to less than the total so it's just a partial payment.
3. Save.
4. View/edit the participant record. Note the id in the url.
5. Click Change Selections.
6. Click View Payments.
7. Click Record Payment. Note the id in the url. It's the participant id not the contribution id. If a contribution with that id doesn't exist then at this point it crashes.
8. If it does exist, note now at this point the balance owed displayed may be incorrect because it's from an unrelated contribution.
9. Fill it out and save.
10. Note it takes you to a different contact and has applied the payment to the unrelated contribution.
This is only from the Change Selections section. The other Record Payment link found at the bottom of the participant record when you expand the triangle is correct.
Can reproduce on dmaster. I doubt this is recent.5.63.0https://lab.civicrm.org/dev/core/-/issues/4103Event price sets: Admin-only text field amount is shown in event registration...2023-05-05T15:52:20ZlarsssandergreenEvent price sets: Admin-only text field amount is shown in event registration test driveThis is a minor issue, but potentially confusing as it makes the event registration test drive page incorrect and different from the live registration page.
Steps to replicate:
1. Start with an event with a price set for registration o...This is a minor issue, but potentially confusing as it makes the event registration test drive page incorrect and different from the live registration page.
Steps to replicate:
1. Start with an event with a price set for registration options
2. Add a Text / Numeric Quantity field to the price set with Visibility = Admin.
3. Open Registration (Test Drive) in an Incognito / Private window.
4. Open Registration (Live) in an Incognito / Private window.
Note that the amount of the field is shown on a line on the test drive page, but not on the live page. The input field itself is not shown, just the amount. Nothing should be shown on the test drive page as this option is admin only.
This only happens with text fields, other field types are correctly not shown if set to admin only.
Tested on dmaster (5.59).
I will look into this when I have some time available.5.63.0https://lab.civicrm.org/dev/core/-/issues/4082Event participant role import inconsistency2023-06-30T14:06:52ZguitarmanEvent participant role import inconsistencyOverview
----------------------------------------
Event participant role import doesn't respect submitted values.
Reproduction steps
----------------------------------------
1. Import a list of event participants, role = non-default val...Overview
----------------------------------------
Event participant role import doesn't respect submitted values.
Reproduction steps
----------------------------------------
1. Import a list of event participants, role = non-default value
2. Import runs through without showing any errors/warnings
3. Check DB-records, whatever has been submitted, the participant role value will always be set to "1" i.e. the default value set in the event configuration.
Current behaviour
----------------------------------------
Whatever is submitted, the participant role value will be set to "1" (default value).
Expected behaviour
----------------------------------------
The correct/submitted participant role value should be imported.https://lab.civicrm.org/dev/core/-/issues/4081API v.3 Event.create used for update will change Event Template to ordinary E...2023-01-16T15:26:05Zniels_erik_andersenAPI v.3 Event.create used for update will change Event Template to ordinary EventWhen API v.3 Event.create is used for update event template, it will set is_template to false so that the template is changed to an ordinary event.
To reproduce:
cv api Event.create id=nnn template_title="New Title"
Where nnn is id for...When API v.3 Event.create is used for update event template, it will set is_template to false so that the template is changed to an ordinary event.
To reproduce:
cv api Event.create id=nnn template_title="New Title"
Where nnn is id for Event Template
To fix:
In
CRM_Event_BAO_Event::create(&$params) {
$transaction = new CRM_Core_Transaction();
if (empty($params['is_template'])) {
$params['is_template'] = 0;
}
Change
if (empty($params['is_template'])) {
to:
if (empty($params['id']) && empty($params['is_template'])) {5.59.0https://lab.civicrm.org/dev/core/-/issues/4059CiviEvent: API3/4 deletes event is_template flag on event update2023-01-16T15:22:16ZBjörn EndresCiviEvent: API3/4 deletes event is_template flag on event updateOverview
----------------------------------------
The CiviCRM API resets(!) the ``is_template`` flag on an event entity when manipulating unrelated attributes. Tested on APIv3 and APIv4.
Reproduction steps
------------------------------...Overview
----------------------------------------
The CiviCRM API resets(!) the ``is_template`` flag on an event entity when manipulating unrelated attributes. Tested on APIv3 and APIv4.
Reproduction steps
----------------------------------------
1. Create a new event template (not a message template)
1. Go to the API explorer (3 or 4)
1. Run ``Event.get`` with the ID of the given template. Observe that the ``is_template`` parameter is set to 1/true.
1. Run ``Event.create/update`` with parameters:
* ``id`` = ID of the given template
* ``title`` = "just want to trigger a change"
1. Run ``Event.get`` with the ID of the given template.
Current behaviour
----------------------------------------
Observe that the ``is_template`` parameter is set to 0/false - **the flag has been deleted!**
Expected behaviour
----------------------------------------
API call should leave the ``is_template`` parameter alone, i.e. the return value of then ``is_template`` parameter should be 1/true
Environment information
----------------------------------------
Tested on current [DMASTER](https://dmaster.demo.civicrm.org) running 5.59.alpha1, but has definitely been around for longer.
Comments
----------------------------------------
A unit test to cover that should be pretty straightforward with these instructions.5.59.0