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/5063Payment Processor shows Machine Name instead of Backend Title in Configure Ev...2024-03-07T13:44:21Za.valllloveraPayment Processor shows Machine Name instead of Backend Title in Configure Event FeeCurrently the Machine Name of the Payment Processor is shown instead of the Backend Title in Configure Event Fee.
![image.png](/uploads/8029ab7c4e2e343a7adcd43b9ff57bbd/image.png)
![image.png](/uploads/15041218f9d5c10911b5b3d4c5e72fcb/...Currently the Machine Name of the Payment Processor is shown instead of the Backend Title in Configure Event Fee.
![image.png](/uploads/8029ab7c4e2e343a7adcd43b9ff57bbd/image.png)
![image.png](/uploads/15041218f9d5c10911b5b3d4c5e72fcb/image.png)
In Event:
![image.png](/uploads/d8ed15dd94db3f41c2c6ac93ed4544cc/image.png)
Additionally, this means that is meaningless to rename the Backend Title since it will not be displayed. Seems that is getting the `name` field instead of the `title` field.
The tests were made in Master.
EDIT: Seems the problem is here: [PseudoConstant.php](https://github.com/civicrm/civicrm-core/blob/2b410a28eb62e3fc0ada7df712e538794cd06efa/CRM/Core/PseudoConstant.php#L978)https://lab.civicrm.org/dev/core/-/issues/5044CiviCRM 5.70.0, When doing a back-end event registration for an Event which u...2024-03-18T15:30:22Zjustinfreeman (Agileware)CiviCRM 5.70.0, When doing a back-end event registration for an Event which uses a Priceset, the event registration allows a $0 registration fee which does not record any line itemsWhen doing a back-end event registration for an Event which uses a Priceset, the event registration allows a $0 registration fee which does not record any line items. This causes Priceset related errors when generating the emails using t...When doing a back-end event registration for an Event which uses a Priceset, the event registration allows a $0 registration fee which does not record any line items. This causes Priceset related errors when generating the emails using the Message Template. Event registration will just “hang” and the following logged to the error log.
```
An error of type E_ERROR was caused in line 474 of the file civicrm/CRM/Financial/BAO/Order.php. Error message: Uncaught TypeError: CRM_Financial_BAO_Order::getPriceSetID(): Return value must be of type int, null returned in
CRM/Financial/BAO/Order.php:474
```
CiviCRM 5.70.0
Agileware Ref: CIVICRM-2220https://lab.civicrm.org/dev/core/-/issues/5035Editing an unpaid event registration to add a partial payment crashes2024-02-26T22:27:11ZDaveDEditing an unpaid event registration to add a partial payment crashesI think this is at least semi-recent since I know one site that uses this workflow regularly.
1. Create a backend event registration.
2. Uncheck the record payment checkbox.
3. Save.
4. Edit the registration.
5. Check the record payment...I think this is at least semi-recent since I know one site that uses this workflow regularly.
1. Create a backend event registration.
2. Uncheck the record payment checkbox.
3. Save.
4. Edit the registration.
5. Check the record payment checkbox and put in a partial payment.
6. Crash - Mandatory key(s) missing from params array: trxn_date. Note that on edit the Contribution Date field in the payment section is blank, as opposed to when first creating it. But note also that entering a full payment does not crash.
`civicrm_api3('Payment', 'create', Array) at /CRM/Event/Form/Participant.php:1095`5.71.0https://lab.civicrm.org/dev/core/-/issues/5028Add CKEditor/WYSIWYG to the Event Confirmation Email Text Field2024-02-28T12:47:28ZpbarmakAdd CKEditor/WYSIWYG to the Event Confirmation Email Text FieldPer a discussion with Eileen, it would be great to finally get the Confirmation Email Text field of Event Online Registrations to use CKEditor. That will allow admins to create much nicer confirmation emails (with embedded graphics and b...Per a discussion with Eileen, it would be great to finally get the Confirmation Email Text field of Event Online Registrations to use CKEditor. That will allow admins to create much nicer confirmation emails (with embedded graphics and branding) without the need to learn HTML. Given the Registration Screen Introductory Text and Thank-you Screen text both have this option, it seems like a good idea to also have it for the confirmation email.https://lab.civicrm.org/dev/core/-/issues/4907Event full inconsistencies2024-01-15T11:35:24ZeileenEvent full inconsistenciesThe way EventFull is calculated in apiv4 is not consistent with elsewhere
apiv4 returns a field `'remaining_participants'` which is
event.max_participants - COUNT(participant rows for the event where contact is not deleted, participant ...The way EventFull is calculated in apiv4 is not consistent with elsewhere
apiv4 returns a field `'remaining_participants'` which is
event.max_participants - COUNT(participant rows for the event where contact is not deleted, participant is not test and participant status is_counted)
By contrast apiv3 returns the contents of `CRM_Event_BAO_Participant::eventFull()` which also takes into account the participant role and other aspects of the status
`eventFull()` has some funky parameters - there are 12 calls to it
| caller | returnEmptySeats |includeWaitingList|returnWaitingCount|considerTestParticipant|onlyPositiveStatuses|
| ------ | ------ |------ |------ |------ |------ |
| apiv3-event | TRUE |TRUE|FALSE|FALSE|FALSE|
| Participant::eventFullMessage | FALSE |FALSE|FALSE|FALSE|FALSE|
| Participant::eventFullMessage(2) | FALSE |TRUE|TRUE|FALSE|FALSE|
|ParticipantStatusType::process|TRUE|FALSE|FALSE|FALSE|
|ParticipantTest|FALSE|TRUE|FALSE|FALSE|FALSE|
|Registration::preProcess|FALSE|if-event-has-waitlist|FALSE|FALSE|FALSE|
|Registration::preProcess(2)|TRUE|if-event-has-waitlist|FALSE|FALSE|FALSE|
|Event_Confirm::formRule|FALSE|if-event-has-waitlist|FALSE|FALSE|FALSE|
|ParticipantConfirm|TRUE|FALSE|TRUE|FALSE|TRUE|
|Register::preProcess|FALSE|if-event-has-waitlist|FALSE|FALSE|FALSE|
|EventInfo::run|FALSE|if-event-has-waitlist|FALSE|FALSE|FALSE|
|event-cart|TRUE|TRUE|FALSE|FALSE|FALSE|
Note that this issue somewhat relates/ explains
https://lab.civicrm.org/dev/event/-/issues/23https://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/4902Unnecessary Event Breadcrumb When Editing Event2024-02-01T10:45:52ZthemakUnnecessary Event Breadcrumb When Editing EventWhen editing an event - the breadcrumbs that display are:
CiviCRM > CiviEvent Dashboard > Manage Events > Manage Events
The first 3 make sense, but the last one actually links to the edit event page that you are editing. While I have se...When editing an event - the breadcrumbs that display are:
CiviCRM > CiviEvent Dashboard > Manage Events > Manage Events
The first 3 make sense, but the last one actually links to the edit event page that you are editing. While I have seen breadcrumbs include the current page you are on, usually they are not linked and sometimes greyed out. To stay consistent with other parts of civi, I would remove the last breadcrumb. If we decide to keep for some reason - at very least it should say Configure Event - not Manage Event.
5.69.1 - also replicated in 5.71.alpha1
![Screenshot_2024-01-10_at_12.52.30_PM](/uploads/d6048cb7a5167aab82e3dca9c2aba45d/Screenshot_2024-01-10_at_12.52.30_PM.png)https://lab.civicrm.org/dev/core/-/issues/4896Conflict between cividiscount and public registrations2024-01-10T00:01:31ZtottenConflict between cividiscount and public registrationsOverview
----------------------------------------
There appears to be some conflict between CiviCRM 5.70-rc and cividiscount 3.8.9. I have not examined sufficiently to determine which one should be updated.
Reproduction steps
---------...Overview
----------------------------------------
There appears to be some conflict between CiviCRM 5.70-rc and cividiscount 3.8.9. I have not examined sufficiently to determine which one should be updated.
Reproduction steps
----------------------------------------
1. Install CiviCRM 5.70 and cividiscount 3.8.9 (current master, via git)
1. Create a free event with online registration. (I disabled confirmation-web-page and enabled conformation-email, FWIW.)
1. In a new/private window:
1. Open the event info page (`civicrm/event/info?reset=1&id=7`)
1. Open the event registration page (`civicrm/event/register?id=7&reset=1`)
Current behaviour
----------------------------------------
`civicrm/event/info` works but `civicrm/event/register` raises an error:
```
ReflectionException: "Property CRM_Event_Form_Registration_Register::$_contactID does not exist"
#0 /Users/totten/bknix/build/dmaster/web/sites/all/modules/civicrm/CRM/Core/Form.php(2114): ReflectionProperty->__construct(Object(CRM_Event_Form_Registration_Register), "_contactID")
#1 /Users/totten/bknix/build/dmaster/web/sites/all/modules/civicrm/tools/extensions/cividiscount/cividiscount.php(453): CRM_Core_Form->getVar("_contactID")
#2 /Users/totten/bknix/build/dmaster/web/sites/all/modules/civicrm/tools/extensions/cividiscount/cividiscount.php(95): _cividiscount_get_form_contact_id(Object(CRM_Event_Form_Registration_Register))
#3 /Users/totten/bknix/build/dmaster/web/sites/all/modules/civicrm/CRM/Utils/Hook.php(276): cividiscount_civicrm_buildForm("CRM_Event_Form_Registration_Register", Object(CRM_Event_Form_Registration_Register))
#4 /Users/totten/bknix/build/dmaster/web/sites/all/modules/civicrm/CRM/Utils/Hook/DrupalBase.php(73): CRM_Utils_Hook->runHooks((Array:60), "civicrm_buildForm", 2, "CRM_Event_Form_Registration_Register", Object(CRM_Event_Form_Registration_Register), NULL, NULL, NULL, NULL)
#5 /Users/totten/bknix/build/dmaster/web/sites/all/modules/civicrm/Civi/Core/CiviEventDispatcher.php(314): CRM_Utils_Hook_DrupalBase->invokeViaUF(2, "CRM_Event_Form_Registration_Register", Object(CRM_Event_Form_Registration_Register), NULL, NULL, NULL, NULL, "civicrm_buildForm")
#6 /Users/totten/bknix/build/dmaster/web/sites/all/modules/civicrm/vendor/symfony/event-dispatcher/EventDispatcher.php(251): Civi\Core\CiviEventDispatcher::delegateToUF(Object(Civi\Core\Event\GenericHookEvent), "hook_civicrm_buildForm", Object(Civi\Core\UnoptimizedEventDispatcher))
#7 /Users/totten/bknix/build/dmaster/web/sites/all/modules/civicrm/vendor/symfony/event-dispatcher/EventDispatcher.php(73): Symfony\Component\EventDispatcher\EventDispatcher->callListeners((Array:1), "hook_civicrm_buildForm", Object(Civi\Core\Event\GenericHookEvent))
#8 /Users/totten/bknix/build/dmaster/web/sites/all/modules/civicrm/Civi/Core/CiviEventDispatcher.php(263): Symfony\Component\EventDispatcher\EventDispatcher->dispatch(Object(Civi\Core\Event\GenericHookEvent), "hook_civicrm_buildForm")
#9 /Users/totten/bknix/build/dmaster/web/sites/all/modules/civicrm/CRM/Utils/Hook.php(168): Civi\Core\CiviEventDispatcher->dispatch("hook_civicrm_buildForm", Object(Civi\Core\Event\GenericHookEvent))
#10 /Users/totten/bknix/build/dmaster/web/sites/all/modules/civicrm/CRM/Utils/Hook.php(495): CRM_Utils_Hook->invoke((Array:2), "CRM_Event_Form_Registration_Register", Object(CRM_Event_Form_Registration_Register), NULL, NULL, NULL, NULL, "civicrm_buildForm")
#11 /Users/totten/bknix/build/dmaster/web/sites/all/modules/civicrm/CRM/Core/Form.php(766): CRM_Utils_Hook::buildForm("CRM_Event_Form_Registration_Register", Object(CRM_Event_Form_Registration_Register))
#12 /Users/totten/bknix/build/dmaster/web/sites/all/modules/civicrm/CRM/Core/QuickForm/Action/Display.php(76): CRM_Core_Form->buildForm()
#13 /Users/totten/bknix/build/dmaster/web/sites/all/modules/civicrm/packages/HTML/QuickForm/Controller.php(203): CRM_Core_QuickForm_Action_Display->perform(Object(CRM_Event_Form_Registration_Register), "display")
#14 /Users/totten/bknix/build/dmaster/web/sites/all/modules/civicrm/packages/HTML/QuickForm/Page.php(103): HTML_QuickForm_Controller->handle(Object(CRM_Event_Form_Registration_Register), "display")
#15 /Users/totten/bknix/build/dmaster/web/sites/all/modules/civicrm/CRM/Core/Controller.php(355): HTML_QuickForm_Page->handle("display")
#16 /Users/totten/bknix/build/dmaster/web/sites/all/modules/civicrm/CRM/Core/Invoke.php(322): CRM_Core_Controller->run((Array:3), NULL)
#17 /Users/totten/bknix/build/dmaster/web/sites/all/modules/civicrm/CRM/Core/Invoke.php(69): CRM_Core_Invoke::runItem((Array:18))
#18 /Users/totten/bknix/build/dmaster/web/sites/all/modules/civicrm/CRM/Core/Invoke.php(36): CRM_Core_Invoke::_invoke((Array:3))
#19 /Users/totten/bknix/build/dmaster/web/sites/all/modules/civicrm/drupal/civicrm.module(472): CRM_Core_Invoke::invoke((Array:3))
#20 /Users/totten/bknix/build/dmaster/web/includes/menu.inc(527): civicrm_invoke("event", "register")
#21 /Users/totten/bknix/build/dmaster/web/index.php(24): menu_execute_active_handler()
#22 {main}
```
Expected behaviour
----------------------------------------
Show registration screen
Environment information
----------------------------------------
<!-- Some of the items below may not be relevant for every bug - if in doubt please include more information than you think is neccessary. -->
* __Browser:__ Firefox
* __CiviCRM:__ 5.70-rc
* __PHP:__ 8.1
* __CMS:__ D7
* __Database:__ MySQL 5.7
* __Web Server:__ Apachehttps://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/4849Shorten all Event iCal descriptions to match Add event to Google Calendar2024-03-07T00:52:44ZshaneonabikeShorten all Event iCal descriptions to match Add event to Google CalendarOverview
----------------------------------------
Presently, the _Add event to Google Calendar_ provide the ability to add a CiviCRM event into Google Calendars. The description is reduced down to the first paragraph and a link to the Ev...Overview
----------------------------------------
Presently, the _Add event to Google Calendar_ provide the ability to add a CiviCRM event into Google Calendars. The description is reduced down to the first paragraph and a link to the Event details is provided below. This is a lot cleaner than the present _Add event to iCalendar_, which includes all the Event description
![Selection_001](/uploads/33efb84cb475bfff4b087364d08d705c/Selection_001.png)
Example use-case
----------------------------------------
1. Create a New Event
1. Add a long description
1. View Event Info page
Current behaviour
----------------------------------------
The description provided in the ```ics``` and other formats is quite long.
Proposed behaviour
----------------------------------------
Reduce the description down to one paragraph with a link to the actual Event within the description. It would make it consistent and also probably a bit cleaner since most people (I think) don't read a full description after they have added something to their calendar but a reference is awesome!https://lab.civicrm.org/dev/core/-/issues/4809Backend register for event via credit card has problematic pre-help text and ...2023-12-06T23:06:43ZDaveDBackend register for event via credit card has problematic pre-help text and should be completely removed and replaced with only a translation-friendly indicator of live vs testCopied from https://github.com/civicrm/civicrm-core/pull/28309
I think the [tpl line](https://github.com/civicrm/civicrm-core/blob/6c6fdea6429f39d552d0cc6bae0254d27daa4919/templates/CRM/Event/Form/Participant.tpl#L31) needs to be comple...Copied from https://github.com/civicrm/civicrm-core/pull/28309
I think the [tpl line](https://github.com/civicrm/civicrm-core/blob/6c6fdea6429f39d552d0cc6bae0254d27daa4919/templates/CRM/Event/Form/Participant.tpl#L31) needs to be completely replaced. I would remove the first sentence since it adds no value since right above it already says the name when it's present, and when it's not present is the cause of this notice, and then the second sentence is not correct in other languages (the "live"/"test" is always in english). Elsewhere the approach for that when there's a known list of values is to just hardcode the full sentences in an `{if}` block.
I do think it's important to identify if it's live or test, but since none of the above has been raised as an issue the help text itself seems very unimportant. Maybe it should just have some kind of icon indicating live or test and that's it.https://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/4704Event Info displays "registration is closed", but it requires login2023-10-20T17:45:41ZbgmEvent Info displays "registration is closed", but it requires loginIn commit 597e807091d835fba28a636ea8f9da76bf63b1a0, the condition for assigning this variable changed:
```
--- a/CRM/Event/Page/EventInfo.php
+++ b/CRM/Event/Page/EventInfo.php
@@ -280,10 +280,8 @@ class CRM_Event_Page_EventInfo extends...In commit 597e807091d835fba28a636ea8f9da76bf63b1a0, the condition for assigning this variable changed:
```
--- a/CRM/Event/Page/EventInfo.php
+++ b/CRM/Event/Page/EventInfo.php
@@ -280,10 +280,8 @@ class CRM_Event_Page_EventInfo extends CRM_Core_Page {
$this->assign('registerURL', $url);
}
}
- elseif (CRM_Core_Permission::check('register for events')) {
- $this->assign('registerClosed', TRUE);
- }
}
+ $this->assign('registerClosed', !empty($values['event']['is_online_registration']) && !$isEventOpenForRegistration);
$this->assign('allowRegistration', $allowRegistration);
```
The template in `templates/CRM/Event/Page/EventInfo.tpl` has the following code:
```
{if $registerClosed}
<div class="spacer"></div>
<div class="messages status no-popup">
<i class="crm-i fa-info-circle" aria-hidden="true"></i>
{ts}Registration is closed for this event{/ts}
</div>
{/if}
```
On a specific project, we previously had the following conditions:
- People had to login in order to register for an event
- Registrations can be closed at some pointhttps://lab.civicrm.org/dev/core/-/issues/4634Replace all form-assigned variables from event workflow templates2024-02-22T05:21:07ZeileenReplace all form-assigned variables from event workflow templates**The goal is to remove all form based variables from the event workflow templates in order to**
1) make them work consistently from whereever they are called
2) make them display in preview mode (eg. with Message Admin extension)
3) re...**The goal is to remove all form based variables from the event workflow templates in order to**
1) make them work consistently from whereever they are called
2) make them display in preview mode (eg. with Message Admin extension)
3) reduce hacky code in the form layer with associated brittleness & fragility
4) eliminate the notices
5) make the code more similar on event templates
**To this end we have a few strategies**
1) Use tokens whereever possible. These are standardised across Workflow Templates & Event templates & follow consistent naming
2) Establish consistent variables to be assigned at the WorkFlow layer where tokens are not suitable
**Status**
**Workflow variables**
- `$participants` - this is an array of all participants associated with the registration with details in subkeys:
- contact_display_name
- line_items
- totals
- `$participantDetail` - the item from the above array that relates to the recipient participant
- `$isPrimary` is this the primary participant
- `$taxTerm` is broadly available in workflow templates - eg 'VAT'
- `$isShowLineItems` (comes from the price set is_quick_config)
**Tokens**
Tokens are available from event, participant, contact & contribution entities
**To do**
- [ ] Work through variables `$isOnWaitlist` `$isRequireApproval` (all event forms)
- [ ] Replace `$participant_status` with a token (online receipt)
- [ ] Replace is_pay_later with token (online receipt)
- [ ] Replace isAmountZero with token (online receipt)
- [ ] Replace isAdditionalParticipant with !$isPrimary (online receipt)
- [ ] Replace {$pay_later_receipt} with token (offline receipt)
- [ ] Replace event_confirm_text with token (online receipt)
- [ ] Replace `$receive_date`, financialType (online receipt)
- [ ] Replace isShowLocation with token (online receipt)
- [ ] Make sense of `$payer.name` (online receipt)
- [ ] Assign billingName, address from the ContributionWorkflowTrait or token - comes from civicrm_contribution.address_id.*
- [ ] Maybe credit_card_type, number etc come from the financial_trxn table
- [ ] Replace `$lineItems|@count` with something from the participant array & doesn't used smarty-2-only |@count (online & offline receipt)
- [ ] Replace $priceSetFieldsCount with something from the workflow message template layer, also `{foreach from=$lineItem item=pcount}` loop
- [ ] Replace $event.confirm_email_text with `$userText` offline receipt
- [ ] Move event_registration_receipt to event cart - this extension is being phased out so we can let it go once that is the case
- [ ] Move assigning `customGroups` to the workflow template (offline receipt) https://github.com/civicrm/civicrm-core/pull/27596
- [ ] Move assigning profiles to the workflow template (online receipt)
- [ ] Get tokens & token substution & examples working for remaining participant templates -transfered, cancelled etc
- [ ] $hookDiscountMessage - ? not surehttps://lab.civicrm.org/dev/core/-/issues/4620CiviEvent dashboard: start date is 7 days ago2023-09-26T12:23:49ZmasettoCiviEvent dashboard: start date is 7 days agoI follow up https://civicrm.stackexchange.com/questions/22424/how-to-customize-events-dashboard.
The event dashboard now shows recent and upcoming events (where start date is 7 days ago OR later).
It would be convenient if the numbe...I follow up https://civicrm.stackexchange.com/questions/22424/how-to-customize-events-dashboard.
The event dashboard now shows recent and upcoming events (where start date is 7 days ago OR later).
It would be convenient if the number of days was configurable in the preferences of CiviEvents (`civicrm/admin/setting/preferences/event`).
Do you think it is useful and required by others as well?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.