Development issueshttps://lab.civicrm.org/groups/dev/-/issues2024-02-22T05:21:07Zhttps://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/4633Fix extensions to work with Smarty3 - backticks2023-11-17T00:41:05ZeileenFix extensions to work with Smarty3 - backticksIn order to replace Smarty 2 with Smarty 3 we need to make minor changes to extensions so that they are compatible
UPDATE - the backticks seem to be less hurty than I thought so I misunderstood @larssg anaysis of when they DO cause issu...In order to replace Smarty 2 with Smarty 3 we need to make minor changes to extensions so that they are compatible
UPDATE - the backticks seem to be less hurty than I thought so I misunderstood @larssg anaysis of when they DO cause issues
Ref https://github.com/kanshin/CakeSmarty/blob/master/vendors/Smarty-3.0.9/SMARTY2_BC_NOTES
- [ ] Backticks should no longer be used in strings - unfortunately the advertised way of doing crmUrl included backticks - we should add to `civix upgrade` to include doing a regex to fix these
href="{crmURL p='civicrm/participant/add' q="reset=1&action=add&context=standalone&eid=`$event.id`"}"
this regex seems to work to find them
\".*`\$.*`\"
![image](/uploads/51b4097c2491e9d07b432605c7b3ed34/image.png)
![image](/uploads/8241c284e6cff66e766b832b5a3beaf6/image.png)
- [ ] Find extensions with older civix & run regex on them - for those with backticks this will fix. For the others it will allow Smarty3 to be run in the transition period
- [ ] Patch / hack Smarty2 to give deprecation notices for the above
- [ ] When we are closer to transitioning consider temporarily hacking string replace into smarty 3 fetch function
Extension list
- [ ] CiviRules
- [ ] UK Gift Aid https://lab.civicrm.org/extensions/ukgiftaid/-/merge_requests/41
- [ ] CiviCalender https://github.com/agiliway/com.agiliway.civicalendar/pull/34
- [ ] Elections https://lab.civicrm.org/extensions/elections/-/merge_requests/4https://lab.civicrm.org/dev/core/-/issues/4629Search Kit: DB Entity needs all columns to work2023-10-20T07:56:29Za.valllloveraSearch Kit: DB Entity needs all columns to workOverview
----------------------------------------
When using DB Entity you cannot delete columns, or the results will not be refreshed on the DB table
Reproduction steps
----------------------------------------
![DB_Entity_Rows](/uploa...Overview
----------------------------------------
When using DB Entity you cannot delete columns, or the results will not be refreshed on the DB table
Reproduction steps
----------------------------------------
![DB_Entity_Rows](/uploads/8ffa61cb9c3b70be840877c4505152e8/DB_Entity_Rows.gif)
Current behaviour
----------------------------------------
If you delete some columns in the DB Entity, you can Save the Search but it will not refresh the results in the DB Table.
The Api4 gets you more information about what's happening:
![image](/uploads/ec5d210a1fc5e4a952ce273f1960b7c7/image.png)
```
"info": "INSERT INTO `civicrm_sk_contacts_db_entity1` (id, sort_name)
SELECT `a`.`id` AS `id`,
`a`.`sort_name` AS `sort_name`,
`a`.`contact_type` AS `contact_type:label`,
`a`.`contact_sub_type` AS `contact_sub_type:label`
FROM civicrm_contact a
WHERE (`a`.`contact_type` = \"Individual\")
ORDER BY `a`.`sort_name` ASC
[nativecode=1136 ** Column count doesn't match value count at row 1]",
"db_error": "value count on row",
```
As you can see, the Insert above is not correct and that (I suspect) is the main reason of this behaviour.
Expected behaviour
----------------------------------------
Can alter the number of columns in the DB Entity, to only save the ones that you want on the DB Table.
Environment information
----------------------------------------
* __CiviCRM:__ _[dmaster](https://dmaster.demo.civicrm.org/civicrm/dashboard?reset=1)_ v.5.67.alpha1https://lab.civicrm.org/dev/core/-/issues/4628Search Kit: DB Entity doesn't work with Data Segment2023-10-20T07:56:10Za.valllloveraSearch Kit: DB Entity doesn't work with Data SegmentOverview
----------------------------------------
When you have fields with Data Segmentation and try to use the DB Entity, the search will never be saved in the database, it will stuck in neverending Saving status.
https://chat.civicrm...Overview
----------------------------------------
When you have fields with Data Segmentation and try to use the DB Entity, the search will never be saved in the database, it will stuck in neverending Saving status.
https://chat.civicrm.org/civicrm/pl/jkbfnoukuid38mhroyj1fer1mh
Reproduction steps
----------------------------------------
1. Create a Data Segmentation
1. Create a SK Search that includes the Data Segmentation previosly created
1. Use the DB Entity and try to Save the search while selecting the Data Segmentation field.
![SK_Db_Entity](/uploads/0dce391d884193738e5ca9f767da59ec/SK_Db_Entity.gif)
Current behaviour
----------------------------------------
When you want to save the Search, the DB Entity it enters into an infinite saving status.
![Saving_forever](/uploads/14c2f4b90e0c45176bd1a8424692df92/Saving_forever.gif)
Via api4 you can see that the table is not created in the DB.
![image](/uploads/24c59f656eb38276978c2a3b7fe00e81/image.png)
Expected behaviour
----------------------------------------
It saves the Search, create the Table in the DB and refresh the table with the content of the search.
Environment information
----------------------------------------
* __CiviCRM:__ [dmaster](https://dmaster.demo.civicrm.org/civicrm/dashboard?reset=1) v.5.67.alpha1https://lab.civicrm.org/dev/core/-/issues/4626Reduce calls to CRM_Utils_System::url() in mailings2023-10-05T11:45:56ZJonGoldReduce calls to CRM_Utils_System::url() in mailingsOn Drupal 8+ and possibly on other CMSes, `CRM_Utils_System::url()` takes an absurdly long time to run. Seems like `\Drupal\Core\Utility\UnroutedUrlAssembler::assemble()` is the main culprit, but even that's only part of the problem.
W...On Drupal 8+ and possibly on other CMSes, `CRM_Utils_System::url()` takes an absurdly long time to run. Seems like `\Drupal\Core\Utility\UnroutedUrlAssembler::assemble()` is the main culprit, but even that's only part of the problem.
When generating VERP URLs, we call `CRM_Utils_System::url()` 5 times per email, to generate almost-identical URLs. Simply reducing that to one call per email cut my test mail sending by just over 25%!
There are further improvements to be made, I'd love to hear folks' feedback.
* Do we even need to call `\Drupal\Core\Url::fromUri()` every time we call `CRM_Utils_System::url()`? Is there a faster way to generate URLs?
* Many email service providers (Mailjet, Sparkpost etc.) emit a webhook on bounce. What if we created a "Disable VERP" setting?JonGoldJonGoldhttps://lab.civicrm.org/dev/core/-/issues/4625Inconsistent search result when "Modified By" field and apply an action2023-09-26T12:28:52Zthomas_SYSTOPIAInconsistent search result when "Modified By" field and apply an action**Description:**
When apply an action (like "Tag - add to contacts") on a search result using "Change Log->Modified By" field the result scope is lost. Instead the action would be applied to all contacts.
**Steps to reproduce** (tested...**Description:**
When apply an action (like "Tag - add to contacts") on a search result using "Change Log->Modified By" field the result scope is lost. Instead the action would be applied to all contacts.
**Steps to reproduce** (tested on https://d9-master.demo.civicrm.org/):
1. Use the advanced search form with "Change Log->Modified By" = _admin_. The result includes exactly one contact.
2. Choose "Tag - add to contacts" from the action menu.
3. You'll see "Number of selected contacts: 204" (204 are the sum of all contacts.)https://lab.civicrm.org/dev/drupal/-/issues/190Links in Drupal Views are improperly URL-encoded2023-10-05T12:00:17ZresgaLinks in Drupal Views are improperly URL-encodedOriginal and open issue: [CRM-21716 Links in Drupal Views are improperly URL-encoded](https://issues.civicrm.org/jira/browse/CRM-21716).
As I read https://lab.civicrm.org/infra/ops/-/wikis/gitlab-roadmap#what-about-the-2000-open-issues-...Original and open issue: [CRM-21716 Links in Drupal Views are improperly URL-encoded](https://issues.civicrm.org/jira/browse/CRM-21716).
As I read https://lab.civicrm.org/infra/ops/-/wikis/gitlab-roadmap#what-about-the-2000-open-issues-in-jira-that-are-not-confirmed not all issues were migrated, and it looks like this one wasn't.
The updated code in the issue above works well, and URLs are properly formatted.https://lab.civicrm.org/dev/core/-/issues/4622Running queues following the docs' example might lead to infinite loops2023-10-27T08:36:37ZjensschuppeRunning queues following the docs' example might lead to infinite loopsFollowing the [_Queue Reference_ example](https://docs.civicrm.org/dev/en/latest/framework/queues/#3-run-the-queue) for running a queue in `CRM_Queue_Runner::ERROR_CONTINUE` mode with a `while` loop that only `break`s for `is_continue!=1...Following the [_Queue Reference_ example](https://docs.civicrm.org/dev/en/latest/framework/queues/#3-run-the-queue) for running a queue in `CRM_Queue_Runner::ERROR_CONTINUE` mode with a `while` loop that only `break`s for `is_continue!=1` will lead to infinite loops when a queue item has not been released yet (e.g. due to the script terminating without an exception being caught and the queue being re-run before release of the next item).
That's because `CRM_Queue_Queue_Sql::claimItem()` fetches the _first_ queue item and filters for `release_time` _afterwards_ - yielding no result, but reporting more items to be in the queue (`is_continue=1`). The only way to catch these cases with code calling the `CRM_Queue_Runner::runNext()` method is to check for `is_error=1` and the `exception` message being `Failed to claim next task`.
So, I've got some questions regarding Queues:
* Is there any best practice for handling errors during `claimItem()` any better?
* Would you agree there should be another indicator in the task result for those cases, or maybe that exception actually being thrown?
* Alternatively, should `is_continue` be `0` instead for those cases (i.e. its meaning would change from _queue finished_ to _queue processing can continue_)?
* Can the `$lease_time` parameter for SQL queues' `claimItem()` be exposed to all queues, so that the caller can modify it?
I see that the query was altered with https://github.com/civicrm/civicrm-core/pull/15421 by @artfulrobothttps://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/4619Eliminate `contributeMode`2023-09-26T12:23:10ZeileenEliminate `contributeMode``contributeMode` is the old concept when we thought we could categorise payment processors into 3-4 basic types that did the same stuff. We have mostly eliminated but it perseveres in a few places we want to kill
| Form | Used for |Alte...`contributeMode` is the old concept when we thought we could categorise payment processors into 3-4 basic types that did the same stuff. We have mostly eliminated but it perseveres in a few places we want to kill
| Form | Used for |Alternative|
| ------ | ------ |------------|
| Contribution_Confirm | Should the form `postProcess` hook be called before `doPayment` |? `$processor->supports('formAssumesNoReturn')` (I kinda feel it should be on the processor to call the hook but...|
| Contribution_Confirm | Should the button be called 'Continue' or 'Make Contribution' |Ditch? always 'Make Contribution'? Or do we need a `getText('continue_contribution_button)`|
|Event_Registration|Should emails be sent from the form (otherwise sent on completetransaction)|? `$processor->supports('formAssumesNoReturn')`|
|Event_Registration_Confirm|Should paypal express code be called|probably just a different hack|
|Event_Registration_Confirm::554|several places tricky stuff around doPayment| will need unravelling|
|Contribution Confirm.tpl|What text should we use for continue_instructions-section|?`paymentObject->getText('continue_contribution_instruction')` ?|
|Registration Thankyou.tpl|What text should be used arount 'Your registration has been processed successfully'|?`paymentObject->getText('event_success_instruction')` ?|
All other places are either doing nothing or are removablehttps://lab.civicrm.org/dev/core/-/issues/4618Tracking: Uses of {php} to remove from Smarty in order to allow upgrade to Sm...2023-09-26T03:17:14ZlarsssandergreenTracking: Uses of {php} to remove from Smarty in order to allow upgrade to Smarty 3+This is the complete list remaining (not including those in pending PRs)
- [ ] https://github.com/civicrm/civicrm-core/blob/master/templates/CRM/Contact/Form/Task/PDFLetterCommon.hlp#L27 (I think we can get the param directly in Smarty ...This is the complete list remaining (not including those in pending PRs)
- [ ] https://github.com/civicrm/civicrm-core/blob/master/templates/CRM/Contact/Form/Task/PDFLetterCommon.hlp#L27 (I think we can get the param directly in Smarty 3 or maybe it would be OK to hardcode docx and odt in here)
- [x] https://github.com/civicrm/civicrm-core/blob/master/templates/CRM/Admin/Page/APIExplorer.js#L752 (APIv3 Explorer ouputs {php} when we have an array, but in Smarty 3 we can pass in the array, so this can be removed)
- [ ] https://github.com/civicrm/civicrm-core/blob/master/templates/CRM/Campaign/Page/Petition/SocialNetwork.drupal#L28
- [ ] https://github.com/civicrm/civicrm-core/blob/master/templates/CRM/common/accesskeys.hlp#L11 (Could maybe redo this in JS)
- [ ] https://github.com/civicrm/civicrm-core/blob/master/templates/CRM/ACL/Header.tpl#L17
- [ ] https://github.com/civicrm/civicrm-core/blob/master/xml/templates/civicrm_msg_template.tplhttps://lab.civicrm.org/dev/user-interface/-/issues/59Cleanup Civi markup to use the 'canonical' style-guide versions2023-11-28T12:49:34ZnicolCleanup Civi markup to use the 'canonical' style-guide versionsThe hoped-for final step of the theme project is to cleanup Civi markup to remove the multitude of patterns found in #56, repolacing them with the canonical versions specified in #57, so that the theme #58 can shrink in size/complexity.
...The hoped-for final step of the theme project is to cleanup Civi markup to remove the multitude of patterns found in #56, repolacing them with the canonical versions specified in #57, so that the theme #58 can shrink in size/complexity.
The further the project of [replacing Civi's Admin UI screens](https://github.com/civicrm/civicrm-core/pull/27422) with SearchKit and FormBuilder gets, the smaller this task becomes.Improve Civi's front-endhttps://lab.civicrm.org/dev/user-interface/-/issues/57Recommend best-practice markup for all Civi UI elements in updated UI Referen...2024-02-25T22:48:10ZnicolRecommend best-practice markup for all Civi UI elements in updated UI Reference Guide / new Civi StyleGuideCivi's [UI Reference Guide](https://docs.civicrm.org/dev/en/latest/framework/ui/) is helpful but very incomplete. As well as trying to [reduce the wide range of markup patterns](https://lab.civicrm.org/dev/user-interface/-/issues/56) in ...Civi's [UI Reference Guide](https://docs.civicrm.org/dev/en/latest/framework/ui/) is helpful but very incomplete. As well as trying to [reduce the wide range of markup patterns](https://lab.civicrm.org/dev/user-interface/-/issues/56) in use in CiviCRM, a comprehensive StyleGuide (either a new project or an update to the Reference Guide is needed to:
- Ensure new CiviCRM interfaces - in core or extensions - use consistent, and core-team/community agreed markup.
- Allows a process to improve this markup.
- Support the development of a new Theme that separates canonical 'style-guide supported' markup patterns, from legacy patterns (support for which will eventually be dropped).
- Helps the eventual process of Civi Core markup clean-up by demonstrating what all the patterns documented in [ThemeTest](https://lab.civicrm.org/extensions/themetest) should be replaced with.
In the longer run the Style Guide can support the introduction of new user experience patterns (e.g. SearchKit layouts), by documenting how to change their appearance.
The chosen patterns should prioritise:
* **accessibility**, as well as improving legibility, font scalability, descriptive icons and colour contrast ratios, to fully incorporate [ARIA attributes](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA) to support screen-readers,
* **mobile responsiveness**, as well as improving smaller screen support, using [input modes](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/inputmode) to support mobile keyboards or perhaps [enterkeyhint](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/enterkeyhint).
* **usability**, such as using [HTML autocomplete](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete) to support browser-led auto-complete.
Examples of style guides (thanks Dryden@EcoPing for the list):
- [Gov.UK](https://design-system.service.gov.uk/styles/) - separates _styles_ (e.g. lists, links), _components_ (e.g. accordion, breadcrumbs) and _patterns_ (from asking for a Date, to confirm an email, create a username).
- [Shopify](https://polaris.shopify.com/getting-started) - separates more (foundations, design principles, etc) but still separates components (e.g. buttons) and patterns (e.g. confirmation screen), icons, and 'tokens' - classes that implement a quick design element.
- [Material Design](https://m3.material.io/styles) - Google's Open Source design system. Separates styles and components (no patterns).
- [Mailchimp](https://ux.mailchimp.com/) - Mailchimp's guide is called a Pattern library, and lists inside this components - its definitions for these seems different to Gov.UK and Shopify.
Lasting notes can be added to the [Wiki Page](https://lab.civicrm.org/dev/user-interface/-/wikis/DINO:-Identify-preferred-markup) for this.
Previous similar issue https://lab.civicrm.org/dev/user-interface/-/issues/24 by @bgm, & related [Wiki](https://lab.civicrm.org/dev/user-interface/-/wikis/flex-css) with @andie.Improve Civi's front-endhttps://lab.civicrm.org/dev/user-interface/-/issues/56Document all CiviCRM Markup patterns in ThemeTest Extension2024-02-08T16:04:53ZnicolDocument all CiviCRM Markup patterns in ThemeTest ExtensionCiviCRM markup is full of examples of multiple methods to create the same UI element (buttons, accordions, modals, etc). By documenting every variation we can:
- make the process of theme-writing easier as all variations can be tested qu...CiviCRM markup is full of examples of multiple methods to create the same UI element (buttons, accordions, modals, etc). By documenting every variation we can:
- make the process of theme-writing easier as all variations can be tested quickly
- support the process of agreeing a 'canonical' approach for best practice markup in a style guide
- help identify markup patterns that should be deprecated as too obscure, legacy or non-accessible.
This is being done with @artfulrobot's extension [ThemeTest](https://lab.civicrm.org/extensions/themetest), below. To contribute, take a look at the issues. Preferably run a local copy of the extension in a recent Civi setup (any CMS), and work thru open issues or add patterns you've found that aren't documentedfollowing the instructions here: https://lab.civicrm.org/extensions/themetest#adding-patterns.
![image](/uploads/30c5423a2956f2c4004fd1f8bb8c02a3/image.png)
NB: this is a work in progress extension without release numbering, use the latest Main branch.
FTR, a **distinct pattern** is one which has its own CSS assigned to it in the default Greenwich theme or in Bootstrap3.css. So, for e.g. `<span class="crm-button">` and `<button class="crm-button">` as defined by the selector `.crm-button` are the same pattern. But if there was a selector in civicrm.css targeting only `button.crm-button` (there isn't) then they would be different.
At present UX markup patterns (aka 'snippets') have been written in these categories:
- [x] Accordions
- [ ] Alerts
- [ ] Buttons
- [ ] Dialogs
- [ ] Dropdowns
- [ ] Inputs
- [ ] Notifications
- [ ] Other
- [ ] Tabs
- [ ] Radios & Checklists
- [ ] Select lists (incl. Select2)
- [ ] Tables
The main gaps are:
Notes specific to this meta-issue can be added to the [related Wiki page](https://lab.civicrm.org/dev/user-interface/-/wikis/DINO:-Document-variations).Improve Civi's front-endhttps://lab.civicrm.org/dev/core/-/issues/4613Can't uncheck "display in table" for custom fields2023-09-26T12:18:06ZDaveDCan't uncheck "display in table" for custom fields1. Create a multivalued custom field group.
2. Create a custom field with "display in table" checked.
3. Edit the field and uncheck display in table.
4. Go to edit it again and note that it's checked.
This sounds familiar.1. Create a multivalued custom field group.
2. Create a custom field with "display in table" checked.
3. Edit the field and uncheck display in table.
4. Go to edit it again and note that it's checked.
This sounds familiar.https://lab.civicrm.org/dev/core/-/issues/4612Searchkit: copy MessageTemplate action2023-09-26T12:17:18Ztycho77Searchkit: copy MessageTemplate action## Overview
You want to create a copy of a message template directly from a Searchkit form, which you can then edit immediately.
## Example use-case
1. in a SearchKit-Form searching for **MessageTemplates**
2. there is a **menu-column...## Overview
You want to create a copy of a message template directly from a Searchkit form, which you can then edit immediately.
## Example use-case
1. in a SearchKit-Form searching for **MessageTemplates**
2. there is a **menu-column** added for selecting actions for one of the MessageTemplates shown
3. you want to select **Copy MessageTemplate**
## Current behaviour
1. you can already choose between CRUD functionalities for MessageTemplates
## Proposed behaviour
1. the copy takes the original name followed by " (copy)"
2. the search is reloaded, so that you can immediately see and edit the copy
## Comments
if this could be done with an hour's effort, there is concrete budget left for this.https://lab.civicrm.org/dev/financial/-/issues/218Precise decimal and tax calculation2023-09-19T00:41:38Z5knotsPrecise decimal and tax calculationI have products that cost $10, including a 7% value-added tax.
10/1,07 = 9.3457943925233645
In the price set, I enter 9.345794393 accordingly https://lab.civicrm.org/dev/core/-/issues/1603, and I include the tax in the contribution ty...I have products that cost $10, including a 7% value-added tax.
10/1,07 = 9.3457943925233645
In the price set, I enter 9.345794393 accordingly https://lab.civicrm.org/dev/core/-/issues/1603, and I include the tax in the contribution type.
I thought that CiviCRM had been calculating correctly recently, but it's not doing so anymore. During the initial calculation on https://dmaster.demo.civicrm.org/, $20 is correctly displayed, but it's saving as $19.99.
Calculation while typing:
![Bildschirmfoto_2023-09-15_um_17.53.51](/uploads/a9eb56b5eee2d68b03ffaf59b8bdf426/Bildschirmfoto_2023-09-15_um_17.53.51.png)
stored value:
![Bildschirmfoto_2023-09-15_um_17.54.05](/uploads/680d13ceb5a77517991c87f87bfc0b37/Bildschirmfoto_2023-09-15_um_17.54.05.png)
I suspect that it worked with 5.59.4 and has exhibited different behavior with the current security release at 5.65.1.https://lab.civicrm.org/dev/core/-/issues/4610checkAccess() or the Contact get api does not return contacts allowed by rela...2023-09-26T12:16:37ZjitendracheckAccess() or the Contact get api does not return contacts allowed by relationship.**Usecase**: Contact loaded via checksum on a webform does not load the permitted related contact.
Checksum in the URL adds the contact id in the session. Contact get api with `checkPermission = true` should allow the access for contact...**Usecase**: Contact loaded via checksum on a webform does not load the permitted related contact.
Checksum in the URL adds the contact id in the session. Contact get api with `checkPermission = true` should allow the access for contacts which has permission enabled in the relationship table.
Current code only checks for the contacts allowed via ACL https://github.com/civicrm/civicrm-core/blob/master/CRM/Contact/BAO/Contact/Permission.php#L361
Possible fixes:
- Add related contacts ids in the ACL cache table OR.
- Add another code to `cacheSubQuery` for the relationship_cache table.https://lab.civicrm.org/dev/core/-/issues/4609Smarty/token processing fails with embedded CSS2023-09-26T12:15:49ZlarsssandergreenSmarty/token processing fails with embedded CSSAfter upgrade to 5.65, sending scheduled reminders with embedded CSS in them fails because the parsing interprets something like `selector { attribute: value; }` as broken smarty. Not entirely sure when this problem was introduced, but l...After upgrade to 5.65, sending scheduled reminders with embedded CSS in them fails because the parsing interprets something like `selector { attribute: value; }` as broken smarty. Not entirely sure when this problem was introduced, but lots of reports after [5.65 was released](https://chat.civicrm.org/civicrm/pl/npfsiennxbytpygm6b67bqo41c), so that seems likely.
Embedding CSS in an email may or may not be wise, but it definitely is a valid thing to do, so our smarty/token parsing is broken if it fails on that.https://lab.civicrm.org/dev/core/-/issues/4608View mailing access is not allowed for users authenticated via checksum2023-09-26T12:15:20ZlarsssandergreenView mailing access is not allowed for users authenticated via checksumIf you send a mailing with a link to view the mailing in your browser that includes contact id and checksum (which is what the default "View in browser" link Mosaico's Versafix template does), you would expect that you'd be able to view ...If you send a mailing with a link to view the mailing in your browser that includes contact id and checksum (which is what the default "View in browser" link Mosaico's Versafix template does), you would expect that you'd be able to view the mailing even if the Publication is set to User and User Admin Only. However, if you open the link in a private browsing window, you'll get access denied.
I think the expected behaviour would be that you can access the mailing when authenticated via checksum. Otherwise, that View in browser link is broken for any mailing that isn't public.
If the mailing isn't public, the [page just checks](https://github.com/civicrm/civicrm-core/blob/0c5f17226c73474e40285a87d8509b272f4f4a67/CRM/Mailing/Page/View.php#L27) for administer CiviCRM, approve mailings or access CiviMail. Maybe we need a new permission like `CiviMail: access non-public mailings` or maybe we can simply allow any logged in user to view mailings (since it says "User and User Admin Only" and a logged in contact is a user).