Development issueshttps://lab.civicrm.org/groups/dev/-/issues2023-08-30T12:57:17Zhttps://lab.civicrm.org/dev/translation/-/issues/83No translation for "sections" in "New <contact>"2023-08-30T12:57:17Zthoni56No translation for "sections" in "New <contact>"When creating a new person/household/organisation there are foldable sections for details, address, communication preferences etc.
When the site has a non-English localization (at least a Swedish one) they are not translated.
![Skärmav...When creating a new person/household/organisation there are foldable sections for details, address, communication preferences etc.
When the site has a non-English localization (at least a Swedish one) they are not translated.
![Skärmavbild_2023-08-11_kl._13.38.33](/uploads/effa60ca9aa352a2d735ddfe89bb8d79/Skärmavbild_2023-08-11_kl._13.38.33.png)
I'm contributing to the Swedish translation so I know that the strings are translated in Transifex ;-). I have `uplang` installed and it seems to update other translations (although I would love a way to explicitly trigger the download, see https://lab.civicrm.org/extensions/uplang/-/issues/2).https://lab.civicrm.org/dev/core/-/issues/4378Schema support for rounding2023-08-30T04:05:32ZeileenSchema support for roundingWe have an ongoing issue with rounding which I essentially believe is because our schema does not adequately support the variations on rounding in use, and I think we need to add additional fields to support this. The principle I think w...We have an ongoing issue with rounding which I essentially believe is because our schema does not adequately support the variations on rounding in use, and I think we need to add additional fields to support this. The principle I think we need to work to is:
**Can we calculate the 'missing' values with the data we have, if not we need to store it not treat it as calculable**
Our exising code assumes that if you have 2 out of 3 of tax_amount, tax_rate and one of tax_inclusive or tax_exclusive you can calculate the third. However, if what you have stored is numbers with some rounding applied you actually can't reverse engineer them.
**Specific proposal**
I propose we add to the schema
- civicrm_contribution.total_amount_exclusive
- civicrm_line_item.line_total_inclusive
- civicrm_line_item.tax_rate (note this CAN be calculated from the price field value id but could change over time either because of legislative changes such as sales tax increases - it only ever increases - or configuration changes.)
- civicrm_price_field_value.amount_inclusive
These would be calculated, if not provided, at the point of save. v4 Order api and Form Builder & BAO layer would support more nuanced usage of these but I don't anticipate any immediate changes to existing contribution or configuration quick forms to accommodate these. Search kit would expose them.
There is a bit of a gotcha around not-exposing them & being able to edit them on forms - so it is likely the contribution edit form would need to be adjusted to avoid re-saving in a way that causes problems. Possibly we need to get the ability to edit amount off the main form & into a sub-form which incorporates line item editor - this is something we have talked about before.
**Current situation**
The variations of rounding approaches we have people reporting using are
1) start with tax inclusive
2) start with tax exclusive
e.g
|Version| Tax exclusive | tax rate | tax amount | tax inclusive|
|----|----|----|----|----|
|start from inclusive| 869.57 | 15% | 130.43 | 1000|
|start from exclusive| 869.57 | 15% | 130.44 | 1000.01|
3) Round each line item before totalling (I think we are doing this) - apply tax as a % of the rounded amount, round the tax on each line
3) Store each line item un-rounded - apply tax per line item & add up
4) Total and then round the sum of the line items - apply tax to the total as a %, the amount that does not fit the line items is a rounding line item ?
The relevant existing tables /fields are
civicrm_contribution
- total_amount (inclusive)
- tax_amount
~~ - non_deductible_amount~~
civicrm_line_item
- line_total (exclusive)
- tax_amount
~~ - non_deductible_amount~~
civicrm_price_field_value
- amount (exclusive)
~~ - non_deductible_amount~~
civicrm_financial_account
- tax_rate
**Related issues**
https://lab.civicrm.org/dev/core/-/issues/3714
https://lab.civicrm.org/dev/financial/-/issues/189
https://lab.civicrm.org/dev/financial/-/issues/52
**Other**
Api v4 contribution.get supports returning `tax_exclusive_amount` for the field proposed as total_amount_exclusive abovehttps://lab.civicrm.org/dev/core/-/issues/4535View Membership lists template contributions along with actual contribution u...2023-08-29T10:36:47ZRichView Membership lists template contributions along with actual contribution under "Related Contributions and Recurring Contributions"This is confusing. The status column is blank, too, so it looks at a glance as though this is a real payment:
![image](/uploads/61a1120ef3c1f389c2dda90bb0bd38f5/image.png)
I propose that template contributions are NOT shown on that pag...This is confusing. The status column is blank, too, so it looks at a glance as though this is a real payment:
![image](/uploads/61a1120ef3c1f389c2dda90bb0bd38f5/image.png)
I propose that template contributions are NOT shown on that page. Agree?https://lab.civicrm.org/dev/core/-/issues/4045Ideas for (funded) speed improvements in mailings2023-08-28T14:44:15ZAndrew WestIdeas for (funded) speed improvements in mailingsWe'd be interested in funding some speed improvements when building mailing recipients in CiviMail. They'd inherently feed through to Mosaico, I think.
We find the mailings screens pretty snappy apart from selecting recipients. There a...We'd be interested in funding some speed improvements when building mailing recipients in CiviMail. They'd inherently feed through to Mosaico, I think.
We find the mailings screens pretty snappy apart from selecting recipients. There are few bottlenecks that it'd be nice to get rid of:
**Improve the dropdown**
When you have lots of groups and mailings the dropdown doesn't work very well. It stalls, with multiple spinners appearing, or wipes out your text while typing, or says 'none found' for a bit before updating, or alternates between 'Searching' and 'Loading', and generally takes an achingly long time to find the groups in its own dropdown.
![image](/uploads/91dcd7a0a2c2e7d3230c4016d1d49db0/image.png)
Compare this to the smart group dropdown in Search Kit, which is blindingly fast.
Maybe this could be replaced with the new API4-based entityref? Possibly split into two (or even four?): Groups to include / Groups to Exclude / Mailings to include / Mailings to exclude?
**Improve generating the list of recipients**
A complicated selection of groups can easily take 30 seconds to update and save, for us. This is very frustrating when adding one smart group at a time in the dropdown. Possible fixes:
- Refactor CRM_Mailing_BAO_Mailing::getRecipients(). At the moment this function seems to create a lot of temp tables, and uses a bunch of heavy queries to compare them against each other. Again, Search Kit can do complicated includes/excludes way faster. So I figure this could be modernised.
- Possibly the slow part here is emptying/filling civicrm_mailing_recipients each time the criteria are changed. Maybe add a 'getRecipientCountPreview' function to get a count of recipients without actually populating the table? This would let people experiment in the mailing screen quickly. Then only generate the actual recipient list when the mailing is scheduled or saved as a draft?
Any other ideas? Or thoughts on whether the above makes sense?
We could fund maybe 15hrs on this atm. If anyone wants to join us that'd be great too :-)https://lab.civicrm.org/dev/joomla/-/issues/45Remove sidebar (at least for Joomla 4)2023-08-27T20:55:45ZnicolRemove sidebar (at least for Joomla 4)Joomla 4 has a sidebar, which defaults open, and means the Civi sidebar squashes the important info even more…
As WordPress and Drupal Civi cope ok without this sidebar, maybe it's time to remove the sidebar from Joomla (or at least for...Joomla 4 has a sidebar, which defaults open, and means the Civi sidebar squashes the important info even more…
As WordPress and Drupal Civi cope ok without this sidebar, maybe it's time to remove the sidebar from Joomla (or at least for Joomla 4)
![image](/uploads/c5fdc516916c3d36c925976bbfc3be2c/image.png)https://lab.civicrm.org/dev/joomla/-/issues/49CIVI CRM Menu does not show output when SEF is ON - Joomlai2023-08-25T20:05:21ZjoomCIVI CRM Menu does not show output when SEF is ON - JoomlaiHi
i updated the website to Joomla 4 and also updated CIVI to latest version and
PHP to PHP 8.
all seems fine on updates but on frontend no CIVI CRM menu item is showing any output with Joomla 4.
If i use system URL it works fine.
No ch...Hi
i updated the website to Joomla 4 and also updated CIVI to latest version and
PHP to PHP 8.
all seems fine on updates but on frontend no CIVI CRM menu item is showing any output with Joomla 4.
If i use system URL it works fine.
No change if i downgrade PHP version and turn off mod rewrite as well.
With SEF OFF or if copy the menu system URL its works fine **/index.php?option=com_civicrm&view=Dashboard&task=civicrm/user&reset=1&itemid=294**![Screenshot_3](/uploads/672b1f3257e0a6f17963cbbf1f964b59/Screenshot_3.png)https://lab.civicrm.org/dev/core/-/issues/3730Search Kit: data exported to spreadsheet as strings where numbers expected2023-08-25T14:47:13ZAndreasandreas.howiller@civiservice.deSearch Kit: data exported to spreadsheet as strings where numbers expectedOverview
----------------------------------------
When exporting spreadsheets from Search Kit in some cases data types seem to be exported incorrectly as strings where they should be numbers.
Reproduction steps
------------------------...Overview
----------------------------------------
When exporting spreadsheets from Search Kit in some cases data types seem to be exported incorrectly as strings where they should be numbers.
Reproduction steps
----------------------------------------
1. Create Search Kit search for **Contributions** on demo.
2. Add columns for **Total Amount** and **Date Received** and click **Search**.
3. Export results via **Action** → **Download Spreadsheet** and choose **.ods** (or **.xlsx**).
4. Open document with office software.
Current behaviour
----------------------------------------
While the Contribution ID column is correctly formatted as a number, Total Amount and Date Received are formatted as **strings**.
Note: Numbers are also left-aligned in Search Kit exports (column A).
Here is what the file looks like in LibreOffice 6.4.7.2:
![grafik](/uploads/ede5de9d9898448c1e0d2676863cfc17/grafik.png)
…and here the corresponding XML in content.xml:
![grafik](/uploads/9487cc0e42f0980eb08e958bea23e7f4/grafik.png)
Expected behaviour
----------------------------------------
Numbers and Date fields are exported in correct data type.
Additional ideas / Comments
----------------------------------------
- it would probably be very useful to have **more Field Transformations** to have some choice for data types, esp. to be able to output money values with our without money signs
- maybe numbers should not be left-aligned anymore (as it is the standard behaviour in spreadsheets)
Environment information
----------------------------------------
* CiviCRM: 5.52.alpha1 and 5.50.3
* PHP: 7.4
* CMS: WordPress 6.0 and Drupal 9.3.14https://lab.civicrm.org/dev/core/-/issues/4474Searchkit: Where clause doesn't handle financial types with commas in the name2023-08-25T02:21:36ZDaveDSearchkit: Where clause doesn't handle financial types with commas in the namee.g. suppose you have "Donations, Canada" and "Donations, US" as financial types. If you do a searchkit and in the where clause put "is one of" and choose your types, it separates them by commas so then the search doesn't find them, e.g....e.g. suppose you have "Donations, Canada" and "Donations, US" as financial types. If you do a searchkit and in the where clause put "is one of" and choose your types, it separates them by commas so then the search doesn't find them, e.g. the debug info looks like this:
```
"financial_type_id:name",
"IN",
[
"Donations",
"Canada"
]
```https://lab.civicrm.org/dev/core/-/issues/4527End Date field in Relationship cannot filter on date in join clause APIv42023-08-24T21:58:32ZseamusleeEnd Date field in Relationship cannot filter on date in join clause APIv4In APIv4 when joining onto relationships for example from contact.get you cannot use a date value e.g. 2023-08-23 you get unknown field error. However if you put the string into quotes it works
https://dmaster.demo.civicrm.org/civicrm/a...In APIv4 when joining onto relationships for example from contact.get you cannot use a date value e.g. 2023-08-23 you get unknown field error. However if you put the string into quotes it works
https://dmaster.demo.civicrm.org/civicrm/api4#/explorer/Contact/get?join=%5B%5B%22Relationship%20AS%20relationship%22,%22LEFT%22,null,%5B%22id%22,%22%3D%22,%22relationship.contact_id_a%22%5D,%5B%22relationship.end_date%22,%22%3E%22,%222023-08-23%22%5D%5D%5Dhttps://lab.civicrm.org/dev/core/-/issues/4534Price set discount by date back office issues2023-08-24T18:33:09ZlarsssandergreenPrice set discount by date back office issuesThese are probably not a priority for anyone, but I ran into these while testing @eileen's recent PR, so thought I might as well note them:
1. Discount set shows as a select on edit participant, but only in certain circumstances (haven'...These are probably not a priority for anyone, but I ran into these while testing @eileen's recent PR, so thought I might as well note them:
1. Discount set shows as a select on edit participant, but only in certain circumstances (haven't quite worked this out, but something to do with number of discount sets and/or whether the dates are current or in the past). It also seems to be wrong, showing the current discount set based on the current date, not the one for the participant. Regardless, it shouldn't be changeable here as that does nothing. It should either always show as frozen or never show at all.
2. On the other hand, discount set should always be selectable on Change Selections, with the default set to the discount set that the participant currently has (then if you change from adult to student ticket or something, they still get the discount based on date, but you also can change the discount if needed).
3. Discount set is selectable when registering a single participant from back office, but not on the Register search task for multiple participants. It should be.https://lab.civicrm.org/dev/core/-/issues/4533Searchkit: "Add new" button text2023-08-24T17:22:23Zmattwiremjw@mjwconsult.co.ukSearchkit: "Add new" button textWhen you enable the "Add New" button you cannot customise the text and it uses the entity name eg. "Add Activity". But if you want to link to a form that does something more specific eg. to create a signature on a petition it would be mu...When you enable the "Add New" button you cannot customise the text and it uses the entity name eg. "Add Activity". But if you want to link to a form that does something more specific eg. to create a signature on a petition it would be much clearer if this button could be customised to say eg. "Add Signature".https://lab.civicrm.org/dev/core/-/issues/4493Support for Note entity available in FormBuilder2023-08-24T16:19:13ZbrienneSupport for Note entity available in FormBuilderOverview
----------------------------------------
In continuing to expand FormBuilder's use cases, it would be great to support the Note entity on afforms, so that users can have a place to enter text without having to create a custom fi...Overview
----------------------------------------
In continuing to expand FormBuilder's use cases, it would be great to support the Note entity on afforms, so that users can have a place to enter text without having to create a custom field on the entity to which they want to stick a note.
Example use-case
----------------------------------------
1. A form for users to create a new contact and add a note about them, which may not fit into a specific (or reusable) custom field
Current behaviour
----------------------------------------
The Note entity is not currently available to add to an afform.
Proposed behaviour
----------------------------------------
A Note entity could be added in FormBuilder and configured so that the back end user can select the `entity_table` that the Note is associated with.https://lab.civicrm.org/dev/core/-/issues/4522Membership Detail improvements2023-08-24T14:02:52ZyashodhaMembership Detail improvementsIn the _Membership Details_ report,
add in _Columns_ tab:
- Auto-renew (Yes/no)
- Auto-renew Status
add in _Sorting_ tab:
- Start Date (of membership)
- End Date (of membership)
- State
- Auto-renew
- Auto-renew StatusIn the _Membership Details_ report,
add in _Columns_ tab:
- Auto-renew (Yes/no)
- Auto-renew Status
add in _Sorting_ tab:
- Start Date (of membership)
- End Date (of membership)
- State
- Auto-renew
- Auto-renew Statusyashodhayashodhahttps://lab.civicrm.org/dev/core/-/issues/4518Indicate in additional participant confirmation email when their status is pe...2023-08-24T14:01:24ZlarsssandergreenIndicate in additional participant confirmation email when their status is pending (pay later)When an additional participant receives a confirmation email and their status is pending (pay later), there is nothing to indicate their status in the email, so it looks like they are fully registered. We should include something like:
...When an additional participant receives a confirmation email and their status is pending (pay later), there is nothing to indicate their status in the email, so it looks like they are fully registered. We should include something like:
"Your registration is pending payment."https://lab.civicrm.org/dev/core/-/issues/4517Show a message to let event registrants know that additional participants wil...2023-08-24T14:00:38ZlarsssandergreenShow a message to let event registrants know that additional participants will receive an email confirming their registrationWhen you register additional participants for an event and enter an email for those additional participants, an email confirmation is sent to the additional participants' emails. We should include text on the additional participants scre...When you register additional participants for an event and enter an email for those additional participants, an email confirmation is sent to the additional participants' emails. We should include text on the additional participants screen indicating that this confirmation email will be sent when there is an email field on the page, something like:
"An email confirming registration will be sent to the email address provided below."https://lab.civicrm.org/dev/core/-/issues/4510Report results for custom date fields does NOT respect the date format2023-08-24T13:44:13ZyashodhaReport results for custom date fields does NOT respect the date formatSteps to replicate :
--------------------
- Create a custom date field of type _Date_ and date format _yy_
![Screenshot_from_2023-08-18_18-44-03](/uploads/8033862dfeb99ff818d5fb0a58797e7b/Screenshot_from_2023-08-18_18-44-03.png)
- ...Steps to replicate :
--------------------
- Create a custom date field of type _Date_ and date format _yy_
![Screenshot_from_2023-08-18_18-44-03](/uploads/8033862dfeb99ff818d5fb0a58797e7b/Screenshot_from_2023-08-18_18-44-03.png)
- Data shows as correctly on summary screen
![Screenshot_from_2023-08-18_18-45-53](/uploads/8a835e7bf893609014a12e55e977950f/Screenshot_from_2023-08-18_18-45-53.png)
- Report results do NOT respect the format
![Screenshot_from_2023-08-18_18-46-54](/uploads/b4bf0be27d8fc889e3efb93a24206c33/Screenshot_from_2023-08-18_18-46-54.png)
All custom data of type date should have respective Date format respected like on the other screens.yashodhayashodhahttps://lab.civicrm.org/dev/core/-/issues/4508CiviMail Auto complete includes unsent mailings2023-08-24T13:43:34ZseamusleeCiviMail Auto complete includes unsent mailingsAs reported by Jon Goldberg it seems the current CiviMail Recipients Auto complete includes unsent mailings https://github.com/civicrm/civicrm-core/pull/27071#issuecomment-1682481080As reported by Jon Goldberg it seems the current CiviMail Recipients Auto complete includes unsent mailings https://github.com/civicrm/civicrm-core/pull/27071#issuecomment-1682481080https://lab.civicrm.org/dev/core/-/issues/2641Users affected by ACLs intermittently lose access to contacts2023-08-22T04:01:30ZjhungerfordUsers affected by ACLs intermittently lose access to contactsOverview
----------------------------------------
When a user's permission to view Contacts is affected by multiple ACLs, they will intermittently lose access to some of them, especially directly after editing a record.
Reproduction ste...Overview
----------------------------------------
When a user's permission to view Contacts is affected by multiple ACLs, they will intermittently lose access to some of them, especially directly after editing a record.
Reproduction steps
----------------------------------------
1. Create a test User who is not an Administrator and does not have "view all contacts" or "edit all contacts" permission
2. Create two Groups (of type Access Control List), and add the test User to both groups
3. Create two Groups (not of ACL type) with distinct names like "Contact Group1" and "Contact Group2"
4. Create two Contacts and add one to each of the Groups created in step 3
5. Create two ACLs, each giving users in one of the ACL groups access to one of the Contact groups
6. Log in as the test User and repeatedly edit the Nickname (or any other data) on both of the test Contacts until you encounter a failure ("Error You do not have the necessary permission to view this contact").
It will rarely take more than ten edits before you encounter a failure, and the failures will never occur for one of the ACL groups.
Current behaviour
----------------------------------------
Sometimes it works, sometimes the user loses permission during the save or reload operation, resulting in the error message below. Our users reported that usually the data would be saved, but sometimes not (e.g. when saving some Activities on a Case). I have not been able to replicate the data loss scenario.
```
Error
You do not have the necessary permission to view this contact.
```
Expected behaviour
----------------------------------------
The data should be saved without error messages appearing (and this is what happens some of the time).
Environment information
----------------------------------------
* __Browser:__ Mostly tested on Chromium, most recently version 90.0.4430.93
* __CiviCRM:__ Tested on 5.33.5 and prior ESR versions
* __PHP:__ 7.3
* __CMS:__ Drupal 7.80
* __Database:__ 10.3.27-MariaDB
* __Web Server:__ Apache
Comments
----------------------------------------
We have mitigated the problem with this patch (minus the watchdog line with the FIXME comment):
https://github.com/AsylumSeekersCentre/civicrm-core/commit/030ecb6e31ed17b9fd01716cb772f13bb60bf455
With this in place, I've been unable to reproduce the error in manual testing. If it still happens, it's very rare. However, I'm not sure that this is a very "proper" solution so I'm opening the issue without a pull request for discussion.
The watchdog line from that patch usually produces output like this:
```
( ( `contact_a`.id IN ( SELECT contact_id FROM civicrm_group_contact WHERE group_id IN (5, 6) AND status = 'Added' ) ) ) AND (contact_a.is_deleted = 0)
```
On the occasions when the permission failure occurs, it instead looks like this:
```
( ( `contact_a`.id IN ( SELECT contact_id FROM civicrm_group_contact WHERE group_id IN (5) AND status = 'Added' ) ) ) AND (contact_a.is_deleted = 0)
```
It has somehow lost one of the groups it should be checking for. It always seems to retain the same one, which I think is why it works if the user is only affected by one ACL, and the bug only shows up if users are affected by multiple ACLs.https://lab.civicrm.org/dev/core/-/issues/2611Change default_value column for custom fields from varchar to text2023-08-20T02:32:58ZlarsssandergreenChange default_value column for custom fields from varchar to textA custom field can be of many types, including note. For a custom field that is a note, you may want to use a default value that is longer than 255 characters, but currently the default value is stored as a varchar(255). It would make se...A custom field can be of many types, including note. For a custom field that is a note, you may want to use a default value that is longer than 255 characters, but currently the default value is stored as a varchar(255). It would make sense to change this column to text, so that longer values can be entered.
In the custom fields UI, this field would be changed to a textarea when note is selected.
For us, the use case would be storing the content of a short waiver, so that the exact value of the waiver at the time of signing can be stored on the participant for an event, but I can imagine there may be other use cases.
Will submit PR if supported.https://lab.civicrm.org/dev/core/-/issues/4174FormBuilder: Server-side validation doesn't work2023-08-17T20:41:38ZJonGoldFormBuilder: Server-side validation doesn't workI've observed two different patterns on the master branch, but never the correct behavior.
##### Scenario 1
Basic FormBuilder form with a required date field. Date field doesn't properly client-side validate (see #4173) so it's submitt...I've observed two different patterns on the master branch, but never the correct behavior.
##### Scenario 1
Basic FormBuilder form with a required date field. Date field doesn't properly client-side validate (see #4173) so it's submitted. Server-side validation returns a 500 error. An unhelpful alert appears.
![ezgif-4-056315fd6a](/uploads/4df88302dca79440b03442d0b232029d/ezgif-4-056315fd6a.gif)
##### Scenario 2
Upon submitting, server-side validation is completely ignored and the form is submitted. I believe this happens when you have a non-required File field on the page.
![ezgif-2-2830537d8b](/uploads/1a5828a70ea9cb3f8d8b822bf4cf110a/ezgif-2-2830537d8b.gif)
Here is FormBuilder markup for both scenarios:
[scenario1-markup](/uploads/fbf2de2fe118e7a07f1cbdf2bc746628/scenario1-markup)
[scenario2-markup](/uploads/5256369eb51727d02c1ffe670f3f1b46/scenario2-markup)