Development issueshttps://lab.civicrm.org/groups/dev/-/issues2023-07-05T23:48:38Zhttps://lab.civicrm.org/dev/financial/-/issues/210Changing contribution financial type from non-deductible to deductible does n...2023-07-05T23:48:38ZlarsssandergreenChanging contribution financial type from non-deductible to deductible does not change non-deductible amount, resulting in inability to issue tax receiptsSuppose someone enters a donation with an event fee financial type by mistake. The non-deductible amount is set to the full amount of the contribution. If they then change the financial type to a donation type, the non-deductible amount ...Suppose someone enters a donation with an event fee financial type by mistake. The non-deductible amount is set to the full amount of the contribution. If they then change the financial type to a donation type, the non-deductible amount remains the full amount of the contribution, so no tax receipt can be issued for the donation. Since most people probably don't use non-deductible amount regularly, if at all, they aren't likely to check this. Not a big deal if you then try to issue a tax receipt for the single contribution as it will be obvious that something is wrong (though perhaps frustrating because it isn't clear what), but if you are issuing them in bulk, you may not notice this at all, resulting in a donor not getting their tax receipt — a pretty bad outcome from a donor stewardship perspective.
We probably don't want to change non-deductible amounts in the background for existing contributions, but how about a warning that pops up when the financial type is changed from non-deductible to deductible, advising the user to check the non-deductible amount? Perhaps this wouldn't matter to some users, who don't care at all about deductible versus non-deductible, but this does seem worth warning about because it can produce unexpected results in the background.
Something like:
```You've changed the financial type for this $NNN contribution from non-tax deductible to tax deductible, but the non-deductible amount of $NNN has not been changed. This could prevent a tax receipt from being issued. You may want to edit the non-deductible amount.```https://lab.civicrm.org/dev/core/-/issues/3815Drop-down (select-list) fields don't render if "Options per line" is set2023-07-05T23:48:36ZmessicaDrop-down (select-list) fields don't render if "Options per line" is setOverview
----------------------------------------
Drop-down custom fields are not displayed if "Options per line" is set, even if the setting is hidden.
Reproduction steps
----------------------------------------
1. Create a "Radio butt...Overview
----------------------------------------
Drop-down custom fields are not displayed if "Options per line" is set, even if the setting is hidden.
Reproduction steps
----------------------------------------
1. Create a "Radio buttons" Custom Field.
1. Set "Options per line" to any value besides 0
1. Change the Field Input Type to "Drop-down (select list)"
1. Save
Current behaviour
----------------------------------------
The Drop-down field is not rendered at all, in previews or on front end.
Expected behaviour
----------------------------------------
The Drop-down field should ignore any previously set values for "Options per line"
Environment information
----------------------------------------
* __CiviCRM__: 5.46.3
* __PHP__: 7.4.27
* __CMS__: _WordPress 6.0.1
* __Database:__ 10.3.34-MariaDB-0+deb10u1
* __Web Server:__ Apache/2.4.38 (Debian)5.63.0https://lab.civicrm.org/dev/core/-/issues/2448Possible bug: authenticated user with ACL Edit Right for a group of contacts ...2023-07-05T05:03:19ZalmeidamPossible bug: authenticated user with ACL Edit Right for a group of contacts can "Record Activity, Tag Contact and Add to Group" on ALL contactsOverview
----------------------------------------
I have an ACL role that has Edit right over a group of contacts (group A). When I list all my contacts this user is able perform some actions it shouldn't on the other contacts (not in g...Overview
----------------------------------------
I have an ACL role that has Edit right over a group of contacts (group A). When I list all my contacts this user is able perform some actions it shouldn't on the other contacts (not in group A).
Actions: "Record Activity", "Tag Contact" and "Add to group"
Reproduction steps
----------------------------------------
1. Create ACL with Edit Permission over a group of contacts (i.e. European Manager has Edit Access over European Contacts)
![image](/uploads/33e2bf2f5eadca89c6742b49072991f8/image.png)
2. Give "View All" permission to authenticated users in CMS
OR
Do not give "View All Contacts" permission to authenticated users in CMS AND create a group "All Contacts", add all contacts to that group and give ACL View permission to authenticated users
(Note: the only other CMS permissions set for this role are "CiviCRM: access CiviCRM backend and API and CiviCRM: access AJAX API).
3. List All Contacts
Current behaviour
----------------------------------------
You'll see that this user can perform actions "Record Activity", "Tag Contact" and "Add to Group" on all contacts.
![image](/uploads/7cbd921841b091cf276de03e0b47202d/image.png)
Expected behaviour
----------------------------------------
This user should only be allowed these actions (Record activity, etc) on the contacts it has Edit rights over. For the ones it has only View access, it should only be allowed to "View" and "Send Email".
Environment information
----------------------------------------
* __CiviCRM:__ 5.33.2
* __PHP:__ 7.4
* __CMS:__ Drupal 7
* __Database:__ MySQL 5.7
Comments
----------------------------------------
I am unsure if this is a bug or just a bad configuration on my part, but the inconsistency brought me to create this issue.
I have found a counter example that further exposes this inconsistency:
* When we don't have "View All Contacts" for authenticated users and we an ACL View Permissions on "All Groups" (instead of an ACL View permission over a group of all contacts) .
With this configuration we don't get "Record Activity", "Tag Contact" or "Add to Group" on any of the contacts:
![image](/uploads/6f28d4906016223ffc130e9228c89e19/image.png)
![image](/uploads/1e34b4040254cbfa90d31867b4052772/image.png)
This may actually be the expected result, since my user does not have "Manage Groups" permission.
However, what I would actually like to achieve is:
* All authenticated user can View All contacts
* Users with Edit ACLs can edit specific contacts
* Users with ACL's can Add to groups (and created groups) of contacts ONLY over which they have Edit Permission.
Which seems impossible at the moment.https://lab.civicrm.org/dev/core/-/issues/2437figure out a way to warn about potentially bad sums2023-07-04T05:03:26Zeileenfigure out a way to warn about potentially bad sumsThis is the left join problem - let's assume the search wants to get a list of dad's along with their total contributions - you would construct a search like the one below. However if the dad has 2 children the contribution amount will b...This is the left join problem - let's assume the search wants to get a list of dad's along with their total contributions - you would construct a search like the one below. However if the dad has 2 children the contribution amount will be doubled.
There is no easy answer but potentially we could at least find some way of making them aware there COULD be a problem
![image](/uploads/442277cfb87e21c8e01b4cdc1c3d353c/image.png)
https://dmaster.localhost:32353/civicrm/admin/search#/create/Contact?params=%7B%22version%22:4,%22select%22:%5B%22id%22,%22display_name%22,%22GROUP_CONCAT(Contact_RelationshipCache_Contact_01.display_name)%20AS%20GROUP_CONCAT_Contact_RelationshipCache_Contact_01_display_name%22,%22GROUP_CONCAT(Contact_RelationshipCache_Contact_01.birth_date)%20AS%20GROUP_CONCAT_Contact_RelationshipCache_Contact_01_birth_date%22,%22gender_id:label%22,%22SUM(Contact_Contribution_contact_id_01.total_amount)%20AS%20SUM_Contact_Contribution_contact_id_01_total_amount%22%5D,%22orderBy%22:%7B%7D,%22where%22:%5B%5D,%22groupBy%22:%5B%22id%22%5D,%22join%22:%5B%5B%22Contact%20AS%20Contact_RelationshipCache_Contact_01%22,true,%22RelationshipCache%22,%5B%22id%22,%22%3D%22,%22Contact_RelationshipCache_Contact_01.far_contact_id%22%5D,%5B%22Contact_RelationshipCache_Contact_01.near_relation:name%22,%22%3D%22,%22%5C%22Child%20of%5C%22%22%5D%5D,%5B%22Contribution%20AS%20Contact_Contribution_contact_id_01%22,false,%5B%22id%22,%22%3D%22,%22Contact_Contribution_contact_id_01.contact_id%22%5D%5D%5D,%22having%22:%5B%5D%7Dhttps://lab.civicrm.org/dev/core/-/issues/2432Amount field at a contribution has a max length of 14 characters2023-07-03T05:03:17ZjaapjansmaAmount field at a contribution has a max length of 14 charactersWith the default localization settings (. as a decimal separator and , as a thousand separator) it is not possible to enter an amount such as 654,321.987654321
The amount field has a max length of 14 characters so 654,321.987654321 beco...With the default localization settings (. as a decimal separator and , as a thousand separator) it is not possible to enter an amount such as 654,321.987654321
The amount field has a max length of 14 characters so 654,321.987654321 becomes 654,321.987654
**How to reproduce**
1. First check your localization settings
2. Go to a contact and click under actions --> Add Contribution
3. Enter the amount of 654,321.987654321
**Proposed solution**
Remove the max length constraint on the input element and rather validate the input on whether it is a correct amount.
**Also on**
On the edit/add membership type screen the minimum fee is also limited to 14 characters.
**Environment**
_dmaster.demo.civicrm.org_
Drupal 7
CiviCRM version 5.36.alpha1https://lab.civicrm.org/dev/core/-/issues/441Proposal - Add Timezone support for all Date/Time fields in CiviCRM2023-07-02T19:22:33Zjustinfreeman (Agileware)Proposal - Add Timezone support for all Date/Time fields in CiviCRMAdd Timezone support for all Date/Time fields in CiviCRM. Currently, CiviCRM does not have any timezone handling for date/time fields - timezone is not stored with the value.
The first change is to start storing a timezone with the date...Add Timezone support for all Date/Time fields in CiviCRM. Currently, CiviCRM does not have any timezone handling for date/time fields - timezone is not stored with the value.
The first change is to start storing a timezone with the date/time field. After this is implemented then other changes can follow which deal with the display of the date/time field in the local time zone or showing the timezone for the value.
**Proposed Change**
Have ability to set the timezone for a date/time field and store that value with the field.
Default timezone should set using the CMS timezone default and/or a new setting on the Localisation Settings page.
Agileware Ref: CIVICRM-995https://lab.civicrm.org/dev/core/-/issues/2433Changing participant to another event fee hangs2023-07-02T05:03:21ZjaapjansmaChanging participant to another event fee hangsChanging a selection on an event registration sometimes hangs.
After changing the selection a few times the wrong amount is displayed in the contact card Event tab and on in the screen on view participant.
**How to reproduce**
1. Creat...Changing a selection on an event registration sometimes hangs.
After changing the selection a few times the wrong amount is displayed in the contact card Event tab and on in the screen on view participant.
**How to reproduce**
1. Create an event with online registration and a fee of $ 12.90 (called Min), $ 200 (called Family) and $ 897,654,321.99 (called Max). Also add a dummy payment processor.
2. Register via online registration and select Max and pay with the dummy payment processor.
3. Now go to the contact card and click Event and click on Edit behind the registration.
4. In the next screen click on Change Selection and change Max to Family.
**Environment**
- _dmaster.demo.civicrm.org_
- Drupal 7
- CiviCRM: 5.36.aplha1https://lab.civicrm.org/dev/core/-/issues/2417Proposal add support for latin American preferred language2023-07-02T05:03:20ZeileenProposal add support for latin American preferred languageCurrently when editing the preferred language for a contact we have these 3 spanish options
![image](/uploads/123b26710174bc10869c2cc79d2b17c2/image.png)
Our standard appears to be the IETF language tag
https://en.wikipedia.org/wiki/La...Currently when editing the preferred language for a contact we have these 3 spanish options
![image](/uploads/123b26710174bc10869c2cc79d2b17c2/image.png)
Our standard appears to be the IETF language tag
https://en.wikipedia.org/wiki/Language_code
![image](/uploads/e630095633c71b8de1194a4008452681/image.png)
However, we don't offer es-419 "Spanish appropriate for the Latin America and Caribbean region, using the UN M.49 region code"
This ommission is not just at the option value level - but at the schema level. In order to support this language variant we need to alter the schema to accept 6 rather than 5 characters for the preferred_language field
```
<field>
<name>preferred_language</name>
<title>Preferred Language</title>
<type>varchar</type>
<length>5</length>
```
@bgmhttps://lab.civicrm.org/dev/core/-/issues/4206FormBuilder: Enable/disable "Add to Contact Summary Page" causes form to be v...2023-06-30T19:27:09Zmattwiremjw@mjwconsult.co.ukFormBuilder: Enable/disable "Add to Contact Summary Page" causes form to be visible in contactlayout when disabled.1. Observe that formname.aff.json has `"contact_summary: null"`
2. Enable "Add to Contact Summary Page" - save.
3. Disable "Add to Contact Summary Page" - save.
4. Observe that formname.aff.json has `"contact_summary: 0"`
If `contact_su...1. Observe that formname.aff.json has `"contact_summary: null"`
2. Enable "Add to Contact Summary Page" - save.
3. Disable "Add to Contact Summary Page" - save.
4. Observe that formname.aff.json has `"contact_summary: 0"`
If `contact_summary` = 0 contact layout editor extension displays the tab on "Individual" contact layout. Not sure if this needs fixing in formbuilder or contactlayout? But formbuilder should be saving the value consistently at least I would think? ie. 0 or null not both.5.62.0https://lab.civicrm.org/dev/core/-/issues/4082Event participant role import inconsistency2023-06-30T14:06:52ZguitarmanEvent participant role import inconsistencyOverview
----------------------------------------
Event participant role import doesn't respect submitted values.
Reproduction steps
----------------------------------------
1. Import a list of event participants, role = non-default val...Overview
----------------------------------------
Event participant role import doesn't respect submitted values.
Reproduction steps
----------------------------------------
1. Import a list of event participants, role = non-default value
2. Import runs through without showing any errors/warnings
3. Check DB-records, whatever has been submitted, the participant role value will always be set to "1" i.e. the default value set in the event configuration.
Current behaviour
----------------------------------------
Whatever is submitted, the participant role value will be set to "1" (default value).
Expected behaviour
----------------------------------------
The correct/submitted participant role value should be imported.https://lab.civicrm.org/dev/core/-/issues/533Update recaptcha to v32023-06-30T05:03:20ZMartinUpdate recaptcha to v3Google recaptcha v3 has now been officially released:
https://webmasters.googleblog.com/2018/10/introducing-recaptcha-v3-new-way-to.html
Obviously v2 is still working for the time being but it would be beneficial to update core to use v...Google recaptcha v3 has now been officially released:
https://webmasters.googleblog.com/2018/10/introducing-recaptcha-v3-new-way-to.html
Obviously v2 is still working for the time being but it would be beneficial to update core to use v3. For example one of our clients is currently seeing this issue (significant usability bug in iOS):
https://github.com/google/recaptcha/issues/130
Thanks!https://lab.civicrm.org/dev/core/-/issues/2293Sample data has no contributions since Oct 20202023-06-30T05:03:19ZDaveDSample data has no contributions since Oct 2020While it might be realistic that it's been tough to get donations lately, the sample data could use some recent contributions since otherwise the Top Donors dashlet which is a stock dashlet on the demo looks at first glance to be broken,...While it might be realistic that it's been tough to get donations lately, the sample data could use some recent contributions since otherwise the Top Donors dashlet which is a stock dashlet on the demo looks at first glance to be broken, but it's just empty. Or the dashlet could have some text displayed when there's no data.https://lab.civicrm.org/dev/core/-/issues/2250Notice: Undefined variable: CRM16923AnUnreliableMethodHasBeenUserToDetermineP...2023-06-29T05:03:21ZDaveDNotice: Undefined variable: CRM16923AnUnreliableMethodHasBeenUserToDeterminePaymentProcessorFromEvent`Notice: Undefined variable: CRM16923AnUnreliableMethodHasBeenUserToDeterminePaymentProcessorFromEvent in CRM_Contribute_BAO_Contribution->loadRelatedObjects() (line 2796 of .../CRM/Contribute/BAO/Contribution.php).`
It's not clear if t...`Notice: Undefined variable: CRM16923AnUnreliableMethodHasBeenUserToDeterminePaymentProcessorFromEvent in CRM_Contribute_BAO_Contribution->loadRelatedObjects() (line 2796 of .../CRM/Contribute/BAO/Contribution.php).`
It's not clear if this is an expected notice that's on the roadmap already someday to improve, or if this is an unexpected path that should no longer be possible.
I'm not sure exactly what the trigger is yet, but it can be reproduced on dmaster.demo with contact id 9 and contribution id 46 by just opening the contribution and saving it (turn off popups so you can see the error). The contribution looks like this:
![Untitled](/uploads/bd527b3d06d9d2f65b386f6369f11a08/Untitled.png)https://lab.civicrm.org/dev/core/-/issues/2401Unable to include seconds in date format for display2023-06-28T05:03:20Zfreeform.stephUnable to include seconds in date format for displayWe would like to include seconds when viewing date fields in reports, the option "%S" does not work (displays "%S" instead of the seconds value).
Reproduce: on Localization > Date format, change the value of "Date Format: Complete Date ...We would like to include seconds when viewing date fields in reports, the option "%S" does not work (displays "%S" instead of the seconds value).
Reproduce: on Localization > Date format, change the value of "Date Format: Complete Date and Time" from the default "%B %E%f, %Y %l:%M %P" to "%B %E%f, %Y %l:%M:%S %P" and load a report displaying a date column, you'll see something like "January 4th, 2021 3:28:%S PM".
First reported on stack exchange: https://civicrm.stackexchange.com/questions/38869/date-and-hour-format-with-secondshttps://lab.civicrm.org/dev/core/-/issues/2399Add new property to Phone entity to mark a number as a mobile phone or the pr...2023-06-28T05:03:19ZhomotechsualAdd new property to Phone entity to mark a number as a mobile phone or the primary SMS number.Overview
----------------------------------------
_Currently we don't have a straightforward way to say "this is a mobile phone/cell phone number" we have the `phone_type` property but being an option group it's inherently unreliable and...Overview
----------------------------------------
_Currently we don't have a straightforward way to say "this is a mobile phone/cell phone number" we have the `phone_type` property but being an option group it's inherently unreliable and subject to change. If we were looking for a way to say "this phone number is a mobile phone - use it for sending SMS" we're kinda out of luck!_
Current behaviour
----------------------------------------
_We can try to infer whether a phone number is for a cell phone by checking for phone_type but it's unreliable and we can't reliably rely on a single ID designating a mobile phone number (or that any of them do!)_
Proposed behaviour
----------------------------------------
_An explicit property that denotes that a number is a cellphone/mobile number or alternatively a property that denotes that that number is the preferred for SMS e.g `is_smsprimary`._https://lab.civicrm.org/dev/wordpress/-/issues/121Guard against invalid (php) timezone strings in wordpress2023-06-27T22:17:48ZDaveDGuard against invalid (php) timezone strings in wordpressPulling this out from dev/core#2122 since it's wordpress-specific and I think has a relatively easy fix.
As mentioned in that ticket the default timezone string in wordpress is 'UTC+0', which is not a valid php timezone string. Also it ...Pulling this out from dev/core#2122 since it's wordpress-specific and I think has a relatively easy fix.
As mentioned in that ticket the default timezone string in wordpress is 'UTC+0', which is not a valid php timezone string. Also it looks like maybe if you have an offset timezone instead of a place name string in the settings, then currently civi attempts to use null or blank which is also invalid. Offsets aren't recommended anyway, but they are valid choices in wordpress.
Looking at the code I think this can be fixed like this, I just don't have a system to test it on. The function appears to be available since wordpress 5.3.
@kcristiano @haystack
```patch
--- a/CRM/Utils/System/WordPress.php
+++ b/CRM/Utils/System/WordPress.php
@@ -745,7 +745,7 @@ class CRM_Utils_System_WordPress extends CRM_Utils_System_Base {
else {
throw new CRM_Core_Exception("Could not find the bootstrap file for WordPress");
}
- $wpUserTimezone = get_option('timezone_string');
+ $wpUserTimezone = wp_timezone_string();
if ($wpUserTimezone) {
date_default_timezone_set($wpUserTimezone);
CRM_Core_Config::singleton()->userSystem->setMySQLTimeZone();
@@ -1128,7 +1128,7 @@ class CRM_Utils_System_WordPress extends CRM_Utils_System_Base {
* @inheritDoc
*/
public function getTimeZoneString() {
- return get_option('timezone_string');
+ return wp_timezone_string();
}
/**
```5.64.0https://lab.civicrm.org/dev/core/-/issues/4115AFFORM: numerical fields are not checked when the form is submitted2023-06-27T09:00:36ZNadaillacAFFORM: numerical fields are not checked when the form is submittedSee Wpmaster 5.60
Expected -> have an error message and do not allow the form submissionSee Wpmaster 5.60
Expected -> have an error message and do not allow the form submissionhttps://lab.civicrm.org/dev/core/-/issues/495CQ: Migrate simple Preferences & Settings forms to using a Generic class.2023-06-27T05:03:25ZeileenCQ: Migrate simple Preferences & Settings forms to using a Generic class.Per https://github.com/civicrm/civicrm-core/pull/13023 @mattwire & myself have recently worked on consolidating some of the setting form metadata handling. This is mostly done however our end goal is worth spelling out.
Basically the cl...Per https://github.com/civicrm/civicrm-core/pull/13023 @mattwire & myself have recently worked on consolidating some of the setting form metadata handling. This is mostly done however our end goal is worth spelling out.
Basically the class 'CRM_Admin_Form_Preferences_Event' and all classes that don't need special sauce would be removed & the xml would be altered to
```
<item>
<path>civicrm/admin/setting/preferences/event</path>
<title>CiviEvent Component Settings</title>
<page_callback>CRM_Admin_Form_Generic</page_callback>
</item>
```
This page would load settings based on filtering setting metadata - so any fields with a key in their metadata like this
```
settings_pages => [
'event' => ['weight' => 10]
]
```
would show up at the url above (note the last value on the url is the filter).
Extensions could use the existing alterSettingMetadata hook to add & remove fields from any pages that use the Generic form to choose their settings and extensions could add settings pages by just adding an xml entry & their metadata
We would convert simple forms & for more complex forms we would attempt to break the inheritance on the 2 existing forms (CRM_Admin_Form_Preferences & CRM_Admin_Form_Setting) in favour of using just the CRM_Admin_Form_SettingTrait in an attempt to grandfather them out.https://lab.civicrm.org/dev/core/-/issues/2393Settings metadata help_text parameter doesn't work and causes errors if you s...2023-06-27T05:03:25ZDaveDSettings metadata help_text parameter doesn't work and causes errors if you specify it but there's no .hlp fileNot sure if I'm going to follow this thru but am recording some findings. There's at least 3 things to deal with:
1. There's no facility to specify the title of the help box. This is the easiest since it can compute it from the setting ...Not sure if I'm going to follow this thru but am recording some findings. There's at least 3 things to deal with:
1. There's no facility to specify the title of the help box. This is the easiest since it can compute it from the setting label.
2. CRM.help _does_ support passing a single string as the help content, but you get into quote-hell pretty quickly.
3. The `{help}` plugin which is what generates the `<a>` link that calls CRM.help doesn't have a way to accept a string as the help content, and `{help}` is what SettingForm.tpl uses. \
3.b Related note: the `{help}` plugin behaves differently whether you pass it a title parameter or not. If there's no parameter it expects to find it inside an associated .hlp file.
Earlier related issue: https://lab.civicrm.org/dev/core/-/issues/1920https://lab.civicrm.org/dev/core/-/issues/3570When creating a CiviMail it is possible to select this mailing as a "previous...2023-06-26T19:32:24ZlolcodeWhen creating a CiviMail it is possible to select this mailing as a "previous mailing" in the recipients listWhen creating a CiviMail it is possible to select this mailing as a "previous mailing" in the recipients list. I have not tested what it does but it makes no sense from a user point of view.
To reproduce just name the mailing and then o...When creating a CiviMail it is possible to select this mailing as a "previous mailing" in the recipients list. I have not tested what it does but it makes no sense from a user point of view.
To reproduce just name the mailing and then open the recipients list. In fact before the mailing is named it still shows in the list but with the name "null".
![bug-first-mailing](/uploads/ea99f69608bb75993b467f1e77795480/bug-first-mailing.jpg)
![null-mailing](/uploads/61df71ab974462ffded69b02aba4046f/null-mailing.jpg)