Development issueshttps://lab.civicrm.org/groups/dev/-/issues2023-06-30T10:16:22Zhttps://lab.civicrm.org/dev/core/-/issues/4256SearchKit: Does not list activities correctly on Contact Summary2023-06-30T10:16:22ZKurund JalmiSearchKit: Does not list activities correctly on Contact SummaryCreate a SK display to replace existing Activity tab.
![Screenshot_from_2023-04-22_17-46-25](/uploads/682c4d5e851ddcde05a825a286be6435/Screenshot_from_2023-04-22_17-46-25.png)
Activity Tab (SK) does not display activities.
![Screenshot...Create a SK display to replace existing Activity tab.
![Screenshot_from_2023-04-22_17-46-25](/uploads/682c4d5e851ddcde05a825a286be6435/Screenshot_from_2023-04-22_17-46-25.png)
Activity Tab (SK) does not display activities.
![Screenshot_from_2023-04-22_17-48-50](/uploads/28ef32556946fcc40b959a1fc507940e/Screenshot_from_2023-04-22_17-48-50.png)
Here is default Activity Tab
![Screenshot_from_2023-04-22_17-48-27](/uploads/5a7bb144c255c7461fa18eca54908eb8/Screenshot_from_2023-04-22_17-48-27.png)
I am checking this on master.https://lab.civicrm.org/dev/core/-/issues/4397What should the Name and Address reserved general Individual dedupe rule do?2023-06-30T00:14:21ZlarsssandergreenWhat should the Name and Address reserved general Individual dedupe rule do?We have a reserved dedupe rule on new installs for Individuals called Name and Address.
What it actually does is matches contacts who have the same first name, last name and street address. What it claims to do is the following:
![image]...We have a reserved dedupe rule on new installs for Individuals called Name and Address.
What it actually does is matches contacts who have the same first name, last name and street address. What it claims to do is the following:
![image](/uploads/d427acb2b1c3ce07c994b68a2371ac62/image.png)
[This rule](https://github.com/civicrm/civicrm-core/blob/master/sql/civicrm_data/civicrm_dedupe_rule/IndividualGeneral.sqldata.php) also includes suffix_id and middle_name with weights of 1, which cannot influence the matches (threshold 15, all other items have weight 5), so these don't do anything.
There is a [hard-coded query](https://github.com/civicrm/civicrm-core/blob/master/CRM/Dedupe/BAO/QueryBuilder/IndividualGeneral.php) for this rule that should match up with the above (right now we are querying middle_name, suffix and birthdate for no reason, which is kind of ironic since this query claims to be optimized).
None of this has changed in at least ten years.
Personally, I don't think matching on first, last and street address is useful (as street addresses are often written slightly differently so are not that likely to match). Maybe we should just eliminate this reserved dedupe rule, since I can't see that it is used for anything. If not, maybe we should make it more useful by making it just first and last name. Or maybe there is some reason this is useful as is and we should simply make this all consistent so it just matches on first, last and address and nothing more.https://lab.civicrm.org/dev/core/-/issues/3478Afform - email delivery2023-06-29T15:47:01Zaydunsaidan.saunders@squiffle.ukAfform - email deliveryOverview
----------------------------------------
Add an action to enable scheduled Email Delivery of SearchKit results.
Reports provides settings to enable scheduled Email Delivery of reports. The lack of an option to do the same dete...Overview
----------------------------------------
Add an action to enable scheduled Email Delivery of SearchKit results.
Reports provides settings to enable scheduled Email Delivery of reports. The lack of an option to do the same deters some people from using SearchKit - see https://civicrm.stackexchange.com/q/41966/225
Comments
----------------------------------------
Not a high priority item but noting for parity with Reports functionality.https://lab.civicrm.org/dev/core/-/issues/2114Trigger-based logging doesn't log if just changing a letter to upper/lower case2023-06-29T12:55:38ZDaveDTrigger-based logging doesn't log if just changing a letter to upper/lower case1. Turn on logging. (Admin - System Settings - Misc - Logging).
1. Change the first name of a contact just changing e.g. the first letter from upper to lower case.
1. Either look in the database in log_civicrm_contact or go to CiviReport...1. Turn on logging. (Admin - System Settings - Misc - Logging).
1. Change the first name of a contact just changing e.g. the first letter from upper to lower case.
1. Either look in the database in log_civicrm_contact or go to CiviReports - Contact Reports - Contact Logging.
1. Change has not been logged.
It's because the standard collation for civi is the case-insensitive xxx_unicode_ci or possibly xxx_general_ci. You might have also changed it manually to use the same as your CMS but is likely still case-insensitive. And in mysql 8 the default utf8mb4_0900_ai_ci is also accent-insensitive (i.e. `é` is treated the same as `e`), if you manually changed your civi tables to use that.
The logging triggers should probably use `xxx_bin`. Related but separate: https://github.com/civicrm/civicrm-core/pull/18721https://lab.civicrm.org/dev/core/-/issues/4395Token support to allow us to migrate sort_name, display_name, address formats...2023-06-28T07:10:08ZeileenToken support to allow us to migrate sort_name, display_name, address formats to tokensWe have a goal to get sort_name, display_name and address formats to resolve using the standard token system, at the same time as the greetings are resolved.
Unfortunately there are some things they support at the moment that our tokens...We have a goal to get sort_name, display_name and address formats to resolve using the standard token system, at the same time as the greetings are resolved.
Unfortunately there are some things they support at the moment that our tokens don't. Our tokens DO support the default filter
`{contact.first_name|default:"donor"}`
and they support the magic space - ie
`{contact.first_name}{ }{contact.last_name}`
which resolves a space in the above, but not if there is no last name.
However, in sort name there is a variant on the magic space we don't currently support in tokens - - ie
`{contact.last_name}{, }{contact.first_name}`
The regex that supports that actually removes the whole `{}` contents if the following tag is empty or renders the contents otherwise.
This is pretty hard to make compatible with smarty :-(, which is a requirement to standardise. So ideally we would
1) make the magic syntax support know usages (within reason) which so far are the magic space, the magic comma and this variant
`{contact.first_name}{ ~ }{contact.nick_name}{ ~ }{contact.last_name}`
2) add a system-check to highlight notify using variations of the magic syntax other than the 3 on our radar that they may not work in future upgrades if we don't add support & direct them to this ticket to comment & explain the use case
3) depending on the variations that come out of 2 add 'micro-conditional support'
Note micro-conditionals was an idea @totten came up with when we were spit-balling this - I've pasted his thoughts below
---------------------------------------------------------------------------------------------------------------------
micro-conditionals: special tokens that conditionally display a handful of symbols
```
---------
{contact.first_name} {contact.last_name} { ~ } {contact.nick_name}
{contact.last_name}{ }{contact.first_name}
{contact.last_name}{, }{contact.first_name}
{contact.first_name}{ (}{contact.nick_name}{) }{contact.last_name}
Dear {contact.first_name}{?friend},
----------
{contact.first_name contact.last_name " ~ " contact.nick_name}
{contact.last_name " " contact.first_name}
{contact.last_name ", " contact.first_name}
{contact.first_name " (" contact.nick_name ") " contact.last_name}
Dear {contact.first_name ?friend},
----------
{{{contact.first_name contact.last_name ~ contact.nick_name}}}
{{{contact.last_name contact.first_name}}}
{{{contact.last_name, contact.first_name}}}
{{{contact.first_name (contact.nick_name) contact.last_name}}}
Dear {{{contact.first_name??"friend"}}},
-------------
```
Also note - first draft of appropriate test https://github.com/civicrm/civicrm-core/pull/26637/files#diff-a5d237ba4e392d0e8ad764a535315f0b1101cc5ca61c39b4e572de42f5c6b4bchttps://lab.civicrm.org/dev/drupal/-/issues/188drupal 9: Event registration with drupal user creation crashes if using first...2023-06-28T07:09:49ZDaveDdrupal 9: Event registration with drupal user creation crashes if using first+last+email dedupe ruleThis is pulled out from https://lab.civicrm.org/dev/drupal/-/issues/186 since it's not recent and while touching a similar code area it's not exactly the same.
Part of the problem here is it only sends on the email to createUser, but as...This is pulled out from https://lab.civicrm.org/dev/drupal/-/issues/186 since it's not recent and while touching a similar code area it's not exactly the same.
Part of the problem here is it only sends on the email to createUser, but as in the other ticket it already has the contact id so it shouldn't need to do dedupe rules, it's just how to get that contact id to get passed on to synchronizeUFMatch: https://github.com/civicrm/civicrm-core/blob/c0a3d0e01a7d8df34786a1510d8a4661dffee82b/CRM/Event/Form/Registration.php#L807. Using $_POST is not great, but it needs to be something that gets passed on from the _drupal_ insert hook. And it would be nice to re-use whatever mechanism for the contact user add task too.https://lab.civicrm.org/dev/core/-/issues/4361Add Pay now link to Invoice template2023-06-28T06:58:22ZlarsssandergreenAdd Pay now link to Invoice templateIt would be nice to have the link to pay online included in the Invoice template. Currently, a user would have to guess this is possible, find the correct link on SE and add it to the template (then maintain it as the template is updated...It would be nice to have the link to pay online included in the Invoice template. Currently, a user would have to guess this is possible, find the correct link on SE and add it to the template (then maintain it as the template is updated).
I think if default_invoice_page is set, we could simply include a Pay Now link in the Payment Advice section (which is only shown if the Contribution is pending and pay later). If an org doesn't want to include a link for online payment, they can simply leave default_invoice_page empty (Edit: They cannot currently do this for newer installs, will have to make it possible). I think it would be very rare for an org to want to have a default_invoice_page for payments from the User Dashboard, but not to include a link for online payments in invoices (and in that case, they can edit the template).
Will do this and add docs if supported.https://lab.civicrm.org/dev/core/-/issues/4342It should be possible to remove a hidden smart group from recipients of a mai...2023-06-28T06:56:18ZlarsssandergreenIt should be possible to remove a hidden smart group from recipients of a mailing that has been copiedIf you create a mailing by copying another mailing that was sent to search results, it is impossible to remove the hidden smart group from the recipients of your new mailing. This can be frustrating, because your intent in copying a mail...If you create a mailing by copying another mailing that was sent to search results, it is impossible to remove the hidden smart group from the recipients of your new mailing. This can be frustrating, because your intent in copying a mailing may not have been to send it to the same contacts, rather to re-use the content. With Mosaico, you can't easily duplicate the content, so this is a pain.
Ideally, hidden smart groups would be mandatory for the original mailing and could be removed for copies. However, that isn't possible because mandatory groups are simply [included groups that are hidden](https://github.com/civicrm/civicrm-core/blob/f0648c892ab4795b9bec873c840e06009ea4800a/ang/crmMailing/BlockRecipients.html#L6).
Options I see:
1. Don't include hidden groups when copying a mailing. Would solve this issue, but then some users are going to expect identical recipients when they copy a mailing because they are copying the mailing in order to resend to the same recipients, changing the content.
1. Add a Copy without recipients option. This seems like it would add UI complexity for something pretty specific.
2. Allow hidden smart groups to be removed from mailings in general, with a confirmation. This feels like the best option to me. Maybe I've started a mailing from search results and later decide I don't want to send it to those search results. Clearly we want to prevent users from removing a hidden group by accident, but as an intentional decision the user confirms, I think this makes sense. Would have to look at how to handle the unsubscribe group in this case.https://lab.civicrm.org/dev/core/-/issues/4328Double opt-in requires traditional bounce handling to be enabled2023-06-28T06:55:29ZJonGoldDouble opt-in requires traditional bounce handling to be enabledOverview
----------------------------------------
The default double opt-in email says:
> You have a pending subscription to the {subscribe.group} mailing list. To confirm this subscription, reply to this email or click <a href="{subscri...Overview
----------------------------------------
The default double opt-in email says:
> You have a pending subscription to the {subscribe.group} mailing list. To confirm this subscription, reply to this email or click <a href="{subscribe.url}">here</a>.
However, "reply to this email" requires traditional bounce handling (with a bounce mailbox) to be set up. In this day and age that's less common compared to using a third party mailer that sends bounce notifications via API (to [Airmail](https://civicrm.org/extensions/airmail) or one of its many cousins).
Moreover, it's a usability issue to put "here" as the clickable text. It should be more like: "Please click here to <a href="{subscribe.url}">confirm your subscription.</a>.
I want to get concept approval - and also guidance on whether we should update existing templates or just new installs. Personally I think we should update any non-customized template.https://lab.civicrm.org/dev/core/-/issues/24Passing an array for contact_id/client_id to Case.Create API when updating an...2023-06-23T17:54:22Zmattwiremjw@mjwconsult.co.ukPassing an array for contact_id/client_id to Case.Create API when updating an existing case causes case to be "reassigned"The contact_id/client_id for the case supports multiple ids. It can be passed to the case.create API either as a single value or as an array. However, the code is inconsistent in it's handling of contact_id and expects it to be both an...The contact_id/client_id for the case supports multiple ids. It can be passed to the case.create API either as a single value or as an array. However, the code is inconsistent in it's handling of contact_id and expects it to be both an array and a single value. The result is that if an array is passed in it will fail to detect that an existing case contact_id already matches and it will "reassign" the case to the default contact id (1). This issue was identified because of inconsistent behaviour when submitting case/activity updates via webform_civicrm.
The proposed solution is to ensure that contact_id is always an array, and then check the first element against the original contact id.https://lab.civicrm.org/dev/core/-/issues/13rare recurring error: CiviMail will not send an empty mail body, Skipping2023-06-23T17:54:21Zmfbrare recurring error: CiviMail will not send an empty mail body, SkippingIt appears in a tiny fraction of mailing recipients (less than 0.01%), we are not sending the mailing because contact details are empty. The contact details contains custom tokens that we have added, but no actual core contact data, e.g...It appears in a tiny fraction of mailing recipients (less than 0.01%), we are not sending the mailing because contact details are empty. The contact details contains custom tokens that we have added, but no actual core contact data, e.g. preferred_mail_format (which is required to compose a message). To be clear, no contact data is present, it's not that preferred_mail_format is NULL.
Perhaps this is caused by a failed db query somewhere along the way. Will require further debugging to get to the bottom of it.https://lab.civicrm.org/dev/core/-/issues/5CiviMail Mailing Accounts allow duplicate names, but breaks processing.2023-06-23T17:54:21ZjohnffCiviMail Mailing Accounts allow duplicate names, but breaks processing.If two CiviMail Mailing Accounts have the same name, even if they have different roles, only the first will be used in either case.
The offending line of code is somewhere in the path of: CRM_Utils_Mail_EmailProcessor::_process -> CRM_M...If two CiviMail Mailing Accounts have the same name, even if they have different roles, only the first will be used in either case.
The offending line of code is somewhere in the path of: CRM_Utils_Mail_EmailProcessor::_process -> CRM_Mailing_MailStore::getStore.
To replicate (Drupal, 4.7.27):
1. Create two mailing accounts.
The first one should be "Email to Activity" and have no username / password settings
The second should be "Bounce processing" and have username / password settings
(order of creation is important, and give them both the same name)
2. Run the scheduled job "fetch bounces".
3. In watchdog, observe the error "could not connect" using the credentials of email to activity processor, even though it should use the Bounce Processing one.
4. Clear the watchdog logs.
5. Rename them to have different names, then retry
6. Check the watchdogs, and observe no error.https://lab.civicrm.org/dev/core/-/issues/4381CiviReport: default orientation for pdf output2023-06-22T08:23:40ZJanecCiviReport: default orientation for pdf outputOverview
----------------------------------------
I was unable to set the orientation for pdf output of reports.
Example use-case
----------------------------------------
1. Configure a PDF output format in settings
1. Use the "print PD...Overview
----------------------------------------
I was unable to set the orientation for pdf output of reports.
Example use-case
----------------------------------------
1. Configure a PDF output format in settings
1. Use the "print PDF letter"-action
Current behaviour
----------------------------------------
You PDF-report will be in landscape
Proposed behaviour
----------------------------------------
Use the configured setting.
Comments
----------------------------------------
Removing the hard coded value solves thishttps://lab.civicrm.org/dev/core/-/issues/4334Remove Event Info link from Manage Event (and same from Manage Contribution P...2023-06-21T14:55:10ZlarsssandergreenRemove Event Info link from Manage Event (and same from Manage Contribution Page)![image](/uploads/dd822bae24450b2001a604f392198a89/image.png)
I'm not sure this is needed, since it just replicates the link available in the Event Links above, except less completely, as it doesn't include Online Registration, so users...![image](/uploads/dd822bae24450b2001a604f392198a89/image.png)
I'm not sure this is needed, since it just replicates the link available in the Event Links above, except less completely, as it doesn't include Online Registration, so users tend to think this is the only option (some organizations do not use Event Info, preferring to link straight to Registration).
There is a similar thing at the bottom of the first Manage Contribution Page tab that could also be removed, in my opinion. These look kind of weird and aren't really necessary, so I think they can go without losing anything, but am looking for further opinions on this.https://lab.civicrm.org/dev/core/-/issues/4318Contributions sometimes lack line items, leads to fatal error upon "Download ...2023-06-21T00:11:44ZAllenShawContributions sometimes lack line items, leads to fatal error upon "Download Invoice"Originally reported at https://civicrm.stackexchange.com/questions/44907/contribution-has-no-line-items-shouldnt-that-be-impossible
**Problem and observation:**
On several sites I have found contributions which have no line items -- th...Originally reported at https://civicrm.stackexchange.com/questions/44907/contribution-has-no-line-items-shouldnt-that-be-impossible
**Problem and observation:**
On several sites I have found contributions which have no line items -- that is, rows in civicrm_contribution that have no corresponding rows in civicrm_line_item.
![no-line-items](/uploads/0f3958d00084586a43d7c04419a29ab7/no-line-items.png)
Responses at the above-linked SE question indicate that this is not normal.
This situation leads to a fatal error ("Return value of CRM_Financial_BAO_Order::getPriceSetID() must be of the type int, null returned") when attempting to generate a PDF invoice with "Download Invoice" for the given contribution, apparently on the assumption that this situation is not expected by core code.
**Detecting ffected sites:**
I've observed this on several sites (all currently running CiviCRM 5.58.1 but all having existed much longer), including one local dev site that sees relatively light usage.
This SQL query identifies contributions lacking line items:
```
SELECT count(*)
FROM
civicrm_contribution ctr
left join civicrm_line_item li on li.contribution_id = ctr.id
where li.id is null;
```
**Unable to repro:**
I'm unable to reproduce this situation at will, except by manually deleting rows in civicrm_line_item via API or SQL. It seems any contribution record will, by design, have at least one line_item, even if using a quick-config contribution instead of a visible price set, or if manually creating even a zero-dollar contribution in the back-end.
**Moving forward:**
Until we have a solid set of steps to repro, I'm not sure there's much we can do here. Hopefully this issue can serve as a place for others to share their findings (and hopefully we'll get to some repro steps at some point).https://lab.civicrm.org/dev/user-interface/-/issues/45Introduce a way to link event participants from the associated booking.2023-06-20T22:57:12ZBradley TaylorIntroduce a way to link event participants from the associated booking.When an event booking is made, the booking is stored across two primary entities:
- One or more participants
- One contribution
When you view an event participant, the list of associated payments is listed at the bottom of that screen:...When an event booking is made, the booking is stored across two primary entities:
- One or more participants
- One contribution
When you view an event participant, the list of associated payments is listed at the bottom of that screen:
![Screenshot_2022-02-04_at_08.46.02](/uploads/e8b76fabe84694810861ace5ecfef8b9/Screenshot_2022-02-04_at_08.46.02.png)
However, the reverse is not true. There is no way to easily get to the participants, when viewing a contriubtion:
![Screenshot_2022-02-04_at_08.46.41](/uploads/a1e19956ed2bda850fea737ca2eca33e/Screenshot_2022-02-04_at_08.46.41.png)
This can make it harder for administrators to see what a contribution has been used to purchase, and harder to see what additional participants the primary booker booked.
I've not looked into the feasability of either approach, but I can see a couple of obvious ways of fitting this into the UI.
**Option 1.** Link each event line item in the line items table to the relevant participant:
![Screenshot_2022-02-04_at_08.48.17](/uploads/cba5c2fb9239c82ecedaefe02adaa31d/Screenshot_2022-02-04_at_08.48.17.png)
(I'm not sure how this option would work with the line item editor extension)
**Option 2.** Introduce a new table of participants:
![Screenshot_2022-02-04_at_08.53.53](/uploads/c3565698dff7fae04900f47226526643/Screenshot_2022-02-04_at_08.53.53.png)
Similar thinking could be employed to link to the associated membership to a membership payment, but I thought I'd get the conversation going in relation to event bookings first.https://lab.civicrm.org/dev/core/-/issues/4297Do help links go after the label or after the field?2023-06-20T20:38:21ZlarsssandergreenDo help links go after the label or after the field?It seems like on some backend forms, the little help links are after the label, while in other places they are after the field itself. If we can agree on one or the other, I will adjust the templates so forms are consistent. My unscienti...It seems like on some backend forms, the little help links are after the label, while in other places they are after the field itself. If we can agree on one or the other, I will adjust the templates so forms are consistent. My unscientific survey indicates that we have about 2/3 after the label and 1/3 after the field right now.
Here's an example with both:
![image](/uploads/28270ce52cc725f384c3e4bcb368442a/image.png)
Additional consideration: When there is both a setting and a help, probably having one after the other would be not great.
![image](/uploads/2966630753c68c090d2a80269a488c34/image.png)
Also, there are a few with help at the end of the description
![image](/uploads/964d812410ed131320947dc6d7b0b7c5/image.png)
Some fields it has to be after the field because there is no label
![image](/uploads/d2f943517edf44b307599502855c4346/image.png)
Checkboxes are always after the label, but that's at the end of the line.
![image](/uploads/f7d02999614ef14009d158d8236b9951/image.png)
With multiple checkboxes, it has to be after the label, there isn't really any other option.
![image](/uploads/155a387d37d5452b9e4f7373cb7a447a/image.png)
Another different layout, I think it only makes sense after the label here
![image](/uploads/d13c5bd26e5bb9aff8f72adf5dc2f109/image.png)https://lab.civicrm.org/dev/core/-/issues/4386Contact tags don't work when triggered using the CiviRules action on Contact ...2023-06-20T13:49:44Zhitesh_compucorpContact tags don't work when triggered using the CiviRules action on Contact formOverview
----------------------------------------
When using the CiviRules extension there is an issue where adding tags to a contact does not work as expected while adding new contact using contact form. The problem arises when a rule ...Overview
----------------------------------------
When using the CiviRules extension there is an issue where adding tags to a contact does not work as expected while adding new contact using contact form. The problem arises when a rule is triggered for `Add Tag to Contact` action, causing it to remove any tags added by CiviRules before saving the contact form.
Reproduction steps
----------------------------------------
1. Create new CiviRules having Trigger as `Contact of any type is added` and Action as `Add Tag to Contact`
1. Create new contact
1. Contact tags configured by Civirules gets removed once the form is saved.
![issue_civirules](/uploads/8dcb8cc83041c41d1a2b7c48ac2df4b2/issue_civirules.gif)
Current behaviour
----------------------------------------
Tags configured from Civirules gets removed while saving contact form.
Expected behaviour
----------------------------------------
Civirules Tags shouldn't get deleted once we add new contact using contact form.
Environment information
----------------------------------------
* __CiviCRM:__ Master
* __CMS:__ Drupal 7.30
PR - https://github.com/civicrm/civicrm-core/pull/26580https://lab.civicrm.org/dev/core/-/issues/4368Changing repeating events crashes when there are events to be deleted/removed...2023-06-20T13:29:25ZRichChanging repeating events crashes when there are events to be deleted/removed from seriesI _think_ I've pinned this one down.
When you change the end-date for repeating events, it makes a list of the original repeats and will either delete them (if no participants) or remove them from the series.
The code here just plain l...I _think_ I've pinned this one down.
When you change the end-date for repeating events, it makes a list of the original repeats and will either delete them (if no participants) or remove them from the series.
The code here just plain looks wrong to me:
https://lab.civicrm.org/dev/core/-/blob/1edfed415fe687e7c7847df41497352b5fa96368/CRM/Core/Form/RecurringEntity.php#L408
It's doing a call like `call_user_func([$classname, $argument1])` which should surely be `call_user_func([$classname, $methodname], $argument1)`
In the execution, the helper class (`$classname` above) is `CRM_Event_DAO_Event", I have no idea what method should be called, and the `$argument1` is an array of IDs.
Commenting out that line seems to be ok, but I've no idea what it was supposed to do. This problem has been here for at least 8 years(!).https://lab.civicrm.org/dev/core/-/issues/4379Preview support for event online template2023-06-20T13:20:13ZeileenPreview support for event online templateWe have preview support for the event offline template - but it doesn't cover additional participants - focussing for now on the line items I'm documenting what to expect
1) We will assign the same variables as other financial templates...We have preview support for the event offline template - but it doesn't cover additional participants - focussing for now on the line items I'm documenting what to expect
1) We will assign the same variables as other financial templates (taxRateBreakdown, lineItems)
2) I think we should also assign a participant specific version of the above & then toggle whether to show all or not based on whether the participant is primary.
I'm gonna add screen shots to what happens now during an online flow because I know there are existing inconsistencies and that is considered correct
Also refer https://github.com/civicrm/civicrm-core/pull/23098 for thoughts about 'right behaviour' and
https://lab.civicrm.org/dev/core/-/issues/224