CiviCRM Core issueshttps://lab.civicrm.org/dev/core/-/issues2023-11-10T05:03:20Zhttps://lab.civicrm.org/dev/core/-/issues/983'CiviCampaign: access CiviCampaign' permission missing2023-11-10T05:03:20Zmikantchap'CiviCampaign: access CiviCampaign' permission missingThe 'CiviCampaign: access CiviCampaign' permission is missing in admin/people/permissions.
This permission is referenced in civicrm/CRM/Activity/BAO/Activity.php (activityComponents function).
In order to get Campaign related activitie...The 'CiviCampaign: access CiviCampaign' permission is missing in admin/people/permissions.
This permission is referenced in civicrm/CRM/Activity/BAO/Activity.php (activityComponents function).
In order to get Campaign related activities listed in Contact -> Activities, you have to set 'CiviCampaign: administer CiviCampaign' which is too much.
I think it should be in civicrm/CRM/Campaign/Info.php.https://lab.civicrm.org/dev/core/-/issues/943When creating a new activity, it double-creates the activity (5.12+)2021-03-22T11:50:00ZtottenWhen creating a new activity, it double-creates the activity (5.12+)Steps to reproduce:
* __Variations__: (a.1) Open site in Chrome; (a.2) Open site in Firefox
* In "Admin => Display Pref", enable AJAX forms. (This is the default.)
* Navigate to "View Contact" for some contact record
* Choose "Actions =...Steps to reproduce:
* __Variations__: (a.1) Open site in Chrome; (a.2) Open site in Firefox
* In "Admin => Display Pref", enable AJAX forms. (This is the default.)
* Navigate to "View Contact" for some contact record
* Choose "Actions => Meeting"
* In the dialog, enter a "Subject"
* __Variations__: (b.1) Use the mouse-pointer to click the "Save" button; (b.2) Press "Enter" to submit.
* __Observe__: The dialog will close. One activity *should* be created. However, depending on the variation of procedure and the revision of code, there may be two activities created.
Additional notes:
* Observed on 5.12, 5.13, and master using `drupal-clean` build type. But 5.11 seemed OK.
* At first, it seemed a bit random - so one may need to retry a couple times to reproduce it. However, I think I've narrowed it down:
* The problem *does* manifest if you submit the AJAX form by using the mouse-pointer to click the "Save" button
* The problem does *not* manifest if you submit the AJAX form by using the keyboard to press "Enter".
* The problem does *not* manifest with traditional/non-AJAX/full-page forms.
* On 5.12, reverting https://github.com/civicrm/civicrm-core/pull/13342/ fixes the issue. (I've not yet tried reverting on 5.13 or master.)
* (*Note: Should re-check this. At the time when this was tested, I hadn't figured out that it was appropriate to control for keyboard "Enter" versus mouse "Save".*)
* On 5.13, applying https://github.com/civicrm/civicrm-core/pull/14196/commits/0b35176b3eaef3710d40b3c6ab7a0ff83eaf722b or
https://github.com/civicrm/civicrm-core/commit/bd756b532fae718ed3516ec49d7baf914acc0a56 does not produce better errors or fix the issue. (So I think they're dealing with a different aspect of submitOnce)
Related history: There have been several patches/issues in this space in recent months. Here's a snapshot at the time of writing:
* **Make submitOnce() button js into a button parameter** (no gitlab)
* [(PR 13333)](https://github.com/civicrm/civicrm-core/pull/13333) **Make submitOnce() button js into a button parameter** (Dec 20 - Feb 7) (*First Published: 5.12.0*)
* [(PR 13342)](https://github.com/civicrm/civicrm-core/pull/13342) **Remove activitystatus js. Add submitOnce handler for activity create** (Dec 21 - Feb 11) (*First Published: 5.12.0*)
* [(dev/core#903)](https://lab.civicrm.org/dev/core/issues/903) **When adding activity, a double click submits twice** (Apr 26-29) (*Closed dupe as resolved ^^^*)
* [(dev/core#904)](https://lab.civicrm.org/dev/core/issues/904) **PR 13333 breaks the Save and New button on a new case**
* [(PR 14145)](https://github.com/civicrm/civicrm-core/pull/14145) **undo part of 13333** (Apr 26-29) (*First published: 5.13.0*)
* [(dev/core#914)](https://lab.civicrm.org/dev/core/issues/914) **submitOnce revisited** (Apr 29-now)
* [(PR 14196)](https://github.com/civicrm/civicrm-core/pull/14196) **avoid multiple submitOnce buttons until better way** (May 1-now) (*Not yet merged*)5.14.1https://lab.civicrm.org/dev/core/-/issues/927Cancel first contribution associated to membership, cancels the membership2021-04-09T18:47:41Zsluc23Cancel first contribution associated to membership, cancels the membershipFollowing this old topic:
https://civicrm.stackexchange.com/questions/2482/membership-sets-to-cancelled-when-contribution-fails-why
https://issues.civicrm.org/jira/browse/CRM-18177
current CiviCRM behavior is when a Contribution a...Following this old topic:
https://civicrm.stackexchange.com/questions/2482/membership-sets-to-cancelled-when-contribution-fails-why
https://issues.civicrm.org/jira/browse/CRM-18177
current CiviCRM behavior is when a Contribution associated with a membership is Cancelled, if this membership has only this Contribution, the membership is cancelled too.
Same when the Contribution gets to "Failed", if it's the first Contribution associated with the membership, it is set to "Expired" status.
https://github.com/civicrm/civicrm-core/blob/5.13/CRM/Contribute/BAO/Contribution.php#L1784
We use Membership for many Organizations with *manual/offline* payment processors, like direct debit, where the first Contribution can be Cancelled (i.e.: the member has no funds in his bank account) but this doesn't mean that the membership has to be cancelled too. The ORG will reattempt to charge this contribution later, and this same Contribution can be later Completed or a new one charged.
This ticket is meant to reopen the discussion about this topic with other users, and if it worth it, to rework on a solution where this behavior of cancelling memberships is not mandatory
Other areas of the code where similar things happen:
* https://github.com/civicrm/civicrm-core/blob/5.13/CRM/Contribute/BAO/ContributionRecur.php#L2985.35.0https://lab.civicrm.org/dev/core/-/issues/878Remove copyright & years from all code, except LICENSE.md etc2020-04-15T06:55:32ZxurizaemonRemove copyright & years from all code, except LICENSE.md etcI'm browsing for a small change made to a template, and I'm navigating through a bunch of NFC changes like 2a73d3b and 6b83d5b. (Clicking on those commits may even WSoD Gitlab, so here's [2a73d3b on Github](https://github.com/civicrm/civ...I'm browsing for a small change made to a template, and I'm navigating through a bunch of NFC changes like 2a73d3b and 6b83d5b. (Clicking on those commits may even WSoD Gitlab, so here's [2a73d3b on Github](https://github.com/civicrm/civicrm-core/commit/2a73d3b).)
Credit to those doing the busywork, but those changes contribute little to the software while adding noise to the commit history of every file in CiviCRM.
The commit messages are fairly inconsistent over time, so someone browsing history can't be 100% sure that any given commit is safe to ignore.
I say it's time to stop changing hundreds of^W^W [thousands of](https://github.com/civicrm/civicrm-core/commit/6b83d5) (?!) files over and over just to update the copyright & CiviCRM version.
Let's make one final commit and remove them all, removing those comments in favour of references to licensing via COPYRIGHT.md (copyright year and owner), LICENSE.md (contents of the AGPL), and https://civicrm.org/licensing instead.
No shortage of other projects demonstrating this - I don't think it's legally contentious based on the number of projects using that approach.https://lab.civicrm.org/dev/core/-/issues/867Expose line item name on search2023-04-30T05:03:21ZmaduraExpose line item name on search## Problem
On Advanced Search and Find Contributions there is currently no field to search for the line items. If an admin wants to be able to search for the contacts or contributions based on line items information there is no other se...## Problem
On Advanced Search and Find Contributions there is currently no field to search for the line items. If an admin wants to be able to search for the contacts or contributions based on line items information there is no other search parameters available.
## Proposed Solution
Introduce the "line item name" field in search.
Technical Steps:
- Add a new field to contribution search form and in postprocess, handle it and add suitable where clauses using existing fields as reference.
- Add a new textfield for line item search in CRM_Contribute_BAO_Query::buildSearchForm()
- In CRM_Contribute_BAO_Query::whereClauseSingle add logic for including condition for line item name.https://lab.civicrm.org/dev/core/-/issues/833(DX) Make backtraces for API exceptions useful2022-10-16T05:04:38Ztotten(DX) Make backtraces for API exceptions usefulThe current API architecture began with this calling convention for checking errors:
```php
$result = civicrm_api(...);
if ($result['is_error']) ...
```
It quickly became a common problem that callers forgot to check the result for suc...The current API architecture began with this calling convention for checking errors:
```php
$result = civicrm_api(...);
if ($result['is_error']) ...
```
It quickly became a common problem that callers forgot to check the result for success/failure, so a thin wrapper was introduced which generated an exception instead of returning an error-value:
```php
try {
$result = civicrm_api3(...);
}
catch (API_Exception $e) {...}
```
This generally surfaces errors better, but then the next step is: what caused the error? How do I get a backtrace?
The backtrace always points to the wrapper function. If you want the real backtrace, you need to switch back to `civicrm_api()`, set `debug=1`, and inspect the output for `trace` info.
I don't have a quick solution. Questions to elicit thoughts/planning:
* Can one generate a synthetic exception?
* If the initial problem is reported as an exception, and if the error is reported to the consumer as an exception, is there some way to pass that along?
* What are the implications for an existing consumer which uses `civicrm_api3()` and looks for `API_Exception`?
* What are the implications for an existing consumer which uses `civicrm_api()` and looks for a `trace`?
* How does this fit into the lifecycle of API kernel (e.g. of events/listeners using `civi.api.exception`)?https://lab.civicrm.org/dev/core/-/issues/632Membership payment amount is NAN.N2021-05-06T05:50:24Zvakeesan26Membership payment amount is NAN.Nwhen minimum amount of membership type is greater than 999,
while editing membership and recording the payment the amount is being populated as "NAN.N" [ we have to delete any existing contribution related to this membership to record t...when minimum amount of membership type is greater than 999,
while editing membership and recording the payment the amount is being populated as "NAN.N" [ we have to delete any existing contribution related to this membership to record the payment again ]
![image](/uploads/da98229007fca7fa802dd00ac613b13b/image.png)https://lab.civicrm.org/dev/core/-/issues/591MyISAM warnings on temporary tables2019-05-09T08:52:17Zaydunsaidan.saunders@squiffle.ukMyISAM warnings on temporary tablesTemporary tables do not specify the engine to be used and so are created with the default engine (often MyISAM). This in turn causes the MyISAM check to complain. See https://civicrm.stackexchange.com/questions/27683/wordpress-myisam-d...Temporary tables do not specify the engine to be used and so are created with the default engine (often MyISAM). This in turn causes the MyISAM check to complain. See https://civicrm.stackexchange.com/questions/27683/wordpress-myisam-database-engine-error-after-update
This could be fixed either by specifying the engine when creating temporary tables, or excluding them from the MyISAM check.
See also https://lab.civicrm.org/dev/core/issues/183#note_103335.8.1https://lab.civicrm.org/dev/core/-/issues/587Permissions on GroupContact API calls seem wrong2023-09-24T16:09:28ZJonGoldPermissions on GroupContact API calls seem wrongI got a support request from a user who didn't have "Edit All Contacts" permissions stating that they couldn't remove someone from a group. Sure enough, [edit all contacts](https://lab.civicrm.org/dev/core/blob/master/CRM/Core/Permissio...I got a support request from a user who didn't have "Edit All Contacts" permissions stating that they couldn't remove someone from a group. Sure enough, [edit all contacts](https://lab.civicrm.org/dev/core/blob/master/CRM/Core/Permission.php#L1229) is the necessary permission. However, editing/removing tags just requires "access CiviCRM".
Does this seem correct to folks? Is it to prevent someone escalating their ACL permissions? If so, it feels like we need a different permission, and predates more nuanced solutions such as [Group Protect](https://github.com/CiviCooP/org.civicoop.groupprotect). The only other entity that needs such high permissions is Relationship - that also seems wrong.
I propose that we add both GroupContact and Relationship entities to the `_civicrm_api3_check_edit_permissions()` function. If you can edit the contact, you can edit their groups/relationships. If someone gives this a "Concept: Approved" I'll work on the PR.JonGoldJonGoldhttps://lab.civicrm.org/dev/core/-/issues/531Drop support for MySQL 5.1? Maybe more?2020-09-09T05:24:02ZJonGoldDrop support for MySQL 5.1? Maybe more?While reviewing some PRs on the sysadmin docs, it came to my attention that we're currently saying we support MySQL 5.1.3+. MySQL 5.1 has been [EOL since 2013](https://www.fromdual.com/support-for-mysql-from-oracle). 5.5 went EOL at th...While reviewing some PRs on the sysadmin docs, it came to my attention that we're currently saying we support MySQL 5.1.3+. MySQL 5.1 has been [EOL since 2013](https://www.fromdual.com/support-for-mysql-from-oracle). 5.5 went EOL at the end of 2015, with extended support ending this year.
While the impetus to drop support for MySQL isn't as strong as it is for PHP, I think we should consider dropping support before someone reports an issue on an untested configuration and points to the minimum requirements in the docs.
Whether this is just a matter of updating the docs or if we want to set up a check for `MIN_MYSQL_VERSION` and `MIN_RECOMMENDED_MYSQL_VERSION` is something we can discuss. Just updating the docs might be preferable so we don't need to navigate the MySQL/MariaDB/Percona business in code. That said, we should document whether MariaDB/Percona are supported, since we've certainly seen errors particular to one or another.https://lab.civicrm.org/dev/core/-/issues/510unserialize(): Error, When duplicating site, database caused by userFramework...2022-09-12T05:03:51ZMouathunserialize(): Error, When duplicating site, database caused by userFrameworkResourceURLBug error
`PHP Notice: unserialize(): Error at offset 60 of 66 bytes in /home/*****/******/wp-content/plugins/civicrm/civicrm/Civi/Core/SettingsBag.php on line 153`
Steps to reproduce the bug:
1. Have a stable production site running...Bug error
`PHP Notice: unserialize(): Error at offset 60 of 66 bytes in /home/*****/******/wp-content/plugins/civicrm/civicrm/Civi/Core/SettingsBag.php on line 153`
Steps to reproduce the bug:
1. Have a stable production site running CiviCRM 5.6.1 under WordPress 4.9.8 with url: https://*****.com
1. A defined variable for `userFrameworkResourceURL` in `wp-content/uploads/civicrm/civicrm.settings.php` and in the database under table `civicrm_setting` name: `userFrameworkResourceURL`
3. Create a duplicate/staging site (including new duplicated database) with a subdomain/url dev.*****.com and update `civicrm.settings.php` vars including `userFrameworkResourceURL`
1. Run upgrade database. everything is fine
1. On any page load
Receive error `unserialize(): Error at offset 60 of 66 bytes`
Workaround:
1. Delete the "value" from `userFrameworkResourceURL` in the database.
```SELECT * FROM `civicrm_setting` WHERE `name` = 'userFrameworkResourceURL' ```
1. Go to `Settings - Resource URLs` and hit save
1. Proper serialized value gets written in the database
Note: if `userFrameworkResourceURL` is defined in `civicrm.settings.php` (which is the default at least in WordPress install)
Saving through the web-end doesn't overwrite the database hence the "workaround"https://lab.civicrm.org/dev/core/-/issues/487Replace ancient menubar plugin with something responsive2023-09-19T00:35:47ZcolemanwReplace ancient menubar plugin with something responsiveThe current menubar jQuery plugin dates back to prehistoric times.
There have been some attempts to work around it with styling in Shoreditch and adding a hamburger menu for small screens with the [slicknav extension](https://github.com/...The current menubar jQuery plugin dates back to prehistoric times.
There have been some attempts to work around it with styling in Shoreditch and adding a hamburger menu for small screens with the [slicknav extension](https://github.com/aghstrategies/com.aghstrategies.slicknav) but IMO we need something better for core.
Plan o' action:
* [x] Create an extension implementing SmartMenus (thanks @ayduns!) https://github.com/aydun/uk.squiffle.kam
* [x] Migrate the [QuickSearch](https://civicrm.org/extensions/quicksearch) extension into core (see https://github.com/civicrm/civicrm-core/pull/13039).
* [x] Add `CRM.menubar` abstraction layer to provide a client-side api for adding/removing menu items, etc.
* [x] Fix click-to-open behavior (interaction is a bit confusing because the menubar opens on hover but closes on click)
* [x] Adjust icon spacing in the markup
* [x] Fix the CMS-specific placement issues (right margin for D7, admin region for Joomla)
* [x] Migrate the extension into Core.
* [ ] Consider bundling the extension into ESR (may not be possible due to core patches required).https://lab.civicrm.org/dev/core/-/issues/456Improve UX of scheduling mass SMS (in progress)2018-11-29T11:38:32ZJKingsnorthImprove UX of scheduling mass SMS (in progress)As an electronic marketer I want to be able to schedule SMS mailings. However the interface can cause unexpected results.
If I leave 'send immediately' ticked, then the 'schedule sms' date is overridden, and 'now' is chosen instead. ie:...As an electronic marketer I want to be able to schedule SMS mailings. However the interface can cause unexpected results.
If I leave 'send immediately' ticked, then the 'schedule sms' date is overridden, and 'now' is chosen instead. ie:
![schedule-err-1](/uploads/f865996febcb0370503c997d293128ca/schedule-err-1.png)
![scheudle-err-2](/uploads/f1e653951c5a88cb74410b68a6242f71/scheudle-err-2.png)
This is very poor UX. As the options should be 'distinct'.
The desired solution would be to use a form the same as when scheduling an email in the, which makes this kind of error impossible. ie: usign radio buttons like the email scheduling tool does.https://lab.civicrm.org/dev/core/-/issues/453Creating New Individual via quick add block fails if after adding you try to ...2022-09-04T05:03:41ZhfarooqCreating New Individual via quick add block fails if after adding you try to add a phone numberDrupal 7.59
CiviCRM 5.3.1
I was able to replicate on https://dmaster.demo.civicrm.org/ demo site. When contact is created through add individual contact block and at least one of the custom field is required, on the full individual crea...Drupal 7.59
CiviCRM 5.3.1
I was able to replicate on https://dmaster.demo.civicrm.org/ demo site. When contact is created through add individual contact block and at least one of the custom field is required, on the full individual create form if phone field is populated and form is submitted, it gives error saying "One Phone should be marked as primary".
There is already a JIRA issue created for this bug but no resolution yet.
Jira issue: https://issues.civicrm.org/jira/browse/CRM-5207
Thanks!https://lab.civicrm.org/dev/core/-/issues/450ReCaptcha submits empty value when CiviDiscount code is submitted2023-05-11T05:03:25ZtommyboboReCaptcha submits empty value when CiviDiscount code is submittedOn a contribution or event page with both ReCaptcha and CiviDiscount, when the discount code is submitted the page refreshes to an error that the ReCaptcha fails. This is very confusing to end users.
ReCaptcha should only be checked on...On a contribution or event page with both ReCaptcha and CiviDiscount, when the discount code is submitted the page refreshes to an error that the ReCaptcha fails. This is very confusing to end users.
ReCaptcha should only be checked on the final submission of the form, not on every submission/refresh of the page. At the very least there should be a message to end user that the two tools should not be live on the same page.https://lab.civicrm.org/dev/core/-/issues/4065.5.2: Import is not happy on PHP-7.2 (Countable)2019-01-08T02:47:10ZDmitry Smirnov5.5.2: Import is not happy on PHP-7.2 (Countable)~~~~
2018/09/25 18:15:04 [error] 33#33: *451 FastCGI sent in stderr: "PHP message: PHP Warning: count(): Parameter must be an array or an object that implements Countable in /usr/share/civicrm/CRM/Contact/Import/Parser.php on line 375
P...~~~~
2018/09/25 18:15:04 [error] 33#33: *451 FastCGI sent in stderr: "PHP message: PHP Warning: count(): Parameter must be an array or an object that implements Countable in /usr/share/civicrm/CRM/Contact/Import/Parser.php on line 375
PHP message: PHP Warning: count(): Parameter must be an array or an object that implements Countable in /usr/share/civicrm/CRM/Contact/Import/Parser.php on line 387
PHP message: PHP Warning: count(): Parameter must be an array or an object that implements Countable in /usr/share/civicrm/CRM/Contact/Import/Parser.php on line 396
PHP message: PHP Warning: count(): Parameter must be an array or an object that implements Countable in /usr/share/civicrm/CRM/Contact/Import/Parser.php on line 408
PHP message: PHP Warning: count(): Parameter must be an array or an object that implements Countable in /usr/share/civicrm/CRM/Contact/Import/Parser.php on line 417
PHP message: PHP Warning: count(): Parameter must be an array or an object that implements Countable in /usr/share/civicrm/CRM/Contact/Import/Parser.php on line 426
PHP message: PHP Warning: count(): Parameter must be an array or an object that implements Countable in /usr/share/civicrm/CRM/Contact/Import/Parser.php on line 435
PHP message: PHP Warning: count(): Parameter must be an array or an object that implements Countable in /usr/share/civicrm/CRM/Contact/Import/Parser.php on line 444
PHP message: PHP Warning: count(): Parameter must be an array or an object that implements Countable in /usr/share/civicrm/CRM/Contact/Import/Parser.php on line 455
PHP message: PHP Warning: count(): Parameter must be an array or an object that implements Countable in /usr/share/civicrm/CRM/Contact/Import/Parser.php on line 464
PHP message: PHP Warning: count(): Parameter must be an array or an object that implements Countable in /usr/share/civicrm/CRM/Contact/Import/Parser.php on line 476" while reading response header from upstream, client: 192.168.0.2, server: civicrm.local, request: "POST /wp-admin/admin.php?page=CiviCRM&q=civicrm/impor
~~~~5.8https://lab.civicrm.org/dev/core/-/issues/397Dedupe for Individual Birth Date Results in Error2019-02-13T20:28:31ZjasonobrownDedupe for Individual Birth Date Results in Error```
civicrm: $Fatal Error Details = Array
(
[callback] => Array
(
[0] => CRM_Core_Error
[1] => handle
)
[code] => -1
[message] => DB Error: unknown error
[mode] => 16
[debug_in...```
civicrm: $Fatal Error Details = Array
(
[callback] => Array
(
[0] => CRM_Core_Error
[1] => handle
)
[code] => -1
[message] => DB Error: unknown error
[mode] => 16
[debug_info] => INSERT INTO dedupe (id1, id2, weight) SELECT t1.id id1, t2.id id2, 5 weight FROM civicrm_contact t1 JOIN civicrm_contact t2 USING (birth_date) JOIN dedupe_copy ON dedupe_copy.id1 = t1.id AND dedupe_copy.id2 = t2.id WHERE t1.contact_type = 'Individual' AND t2.contact_type = 'Individual' AND t1.id < t2.id AND t1.birth_date IS NOT NULL AND t1.birth_date <> '' GROUP BY id1, id2, weight ON DUPLICATE KEY UPDATE weight = weight + VALUES(weight) [nativecode=1292 ** Incorrect date value: '' for column 'birth_date' at row 1]
[type] => DB_Error
[user_info] => INSERT INTO dedupe (id1, id2, weight) SELECT t1.id id1, t2.id id2, 5 weight FROM civicrm_contact t1 JOIN civicrm_contact t2 USING (birth_date) JOIN dedupe_copy ON dedupe_copy.id1 = t1.id AND dedupe_copy.id2 = t2.id WHERE t1.contact_type = 'Individual' AND t2.contact_type = 'Individual' AND t1.id < t2.id AND t1.birth_date IS NOT NULL AND t1.birth_date <> '' GROUP BY id1, id2, weight ON DUPLICATE KEY UPDATE weight = weight + VALUES(weight) [nativecode=1292 ** Incorrect date value: '' for column 'birth_date' at row 1]
[to_string] => [db_error: message="DB Error: unknown error" code=-1 mode=callback callback=CRM_Core_Error::handle prefix="" info="INSERT INTO dedupe (id1, id2, weight) SELECT t1.id id1, t2.id id2, 5 weight FROM civicrm_contact t1 JOIN civicrm_contact t2 USING (birth_date) JOIN dedupe_copy ON dedupe_copy.id1 = t1.id AND dedupe_copy.id2 = t2.id WHERE t1.contact_type = 'Individual' AND t2.contact_type = 'Individual' AND t1.id < t2.id AND t1.birth_date IS NOT NULL AND t1.birth_date <> '' GROUP BY id1, id2, weight ON DUPLICATE KEY UPDATE weight = weight + VALUES(weight) [nativecode=1292 ** Incorrect date value: '' for column 'birth_date' at row 1]"]
)
```5.12.0https://lab.civicrm.org/dev/core/-/issues/378Add a configuration setting for when to load custom CSS2020-01-28T02:57:05ZjensschuppeAdd a configuration setting for when to load custom CSSWhen debugging a [Shoreditch issue](https://github.com/civicrm/org.civicrm.shoreditch/issues/136) with overridden fonts, we began to wonder why CiviCRM's core and custom styles are being added to every page (at least whenever `civicrm_in...When debugging a [Shoreditch issue](https://github.com/civicrm/org.civicrm.shoreditch/issues/136) with overridden fonts, we began to wonder why CiviCRM's core and custom styles are being added to every page (at least whenever `civicrm_initialize()` gets called), instead of only on CiviCRM pages. A generic switch for that turned out to be non-trivial, as sometimes we do want CiviCRM styles on non-CiviCRM pages (e.g. when using profiles), sometimes we want them on public CiviCRM pages, and sometimes we don't.
This led to a POC for a configuration setting for when to load CiviCRM's custom CSS (in that special case Shoreditch's CSS), allowing administrators to choose between
- "always" (current and default behavior)
- "all CiviCRM pages"
- "all CiviCRM pages except public CiviCRM pages".
Simply adding all styles on every page may be useless on sites with more functionality than just CiviCRM. With shoreditch, that behaviour is just prone to destroying your CMS theme styles.
Patch: [customCSSMode.patch](/uploads/e66373a42af4e7f8f529e0dd18ab63bd/customCSSMode.patch)
Any thoughts?https://lab.civicrm.org/dev/core/-/issues/366Showing Line Items for Contributions with Default Price Sets2022-08-28T05:03:35ZCamilo RodrÃguezShowing Line Items for Contributions with Default Price Sets## Overview
In scenarios like data migration, multiple membership lines might be added to a contribution via the default priceset. The current mechanism prevents these lines from being shown when looking at a contributions detail view (C...## Overview
In scenarios like data migration, multiple membership lines might be added to a contribution via the default priceset. The current mechanism prevents these lines from being shown when looking at a contributions detail view (CRM_Contribute_Form_ContributionView). It makes sense that quick config priceset do not show up in the priceset configuration pages but there are more cons than pros to not show the lines on the actual contributions.
## How it Works Currently
To decide if line items should be shown for the contribution, line items are fetched, ordered by their price field's weight. Then, the price set for the first line item is checked. If the price set's `quick_config` flag is set, then the line items are NOT shown. If the falg is NOT set, the list of line items is shown.
## How it Should Work
List of line items should always be shown, especially if there is more than one of them, even if they're added using the default price set. Not sure what the logic is behind having the list of line items depend on the price set, but it could be better to have the contribution say if it should be shown with line items or not, by adding a new flag, `show_line_items` to the Contribution entity.guanhuanguanhuanhttps://lab.civicrm.org/dev/core/-/issues/365Unwanted mail blast sent by Scheduled Reminders2021-06-10T07:04:39Zmagnolia61Unwanted mail blast sent by Scheduled Reminders**BUG 1:**<br>
I enabled a scheduled reminder which was configured to sent 12 week before the start date of an event.
The start date was a month ago on july 21st.
* Expected behavior: no mail is being sent.
* Actual behaviour: 500 famil...**BUG 1:**<br>
I enabled a scheduled reminder which was configured to sent 12 week before the start date of an event.
The start date was a month ago on july 21st.
* Expected behavior: no mail is being sent.
* Actual behaviour: 500 families got an email with the last details on the event (that already happened).
Over the last few years we have had more incidents like these and it really hurts our reputation, and within our organization it also hurts the reputation of CiviCRM.
The scheduled reminders should be way more clear in configuration and unintentional mail blast should really be prevented by good tests and more solid code.
For this particular issue I would suggest to NOT send a reminder that is configured BEFORE an event, AFTER the event. This could be configured in Civi/ActionSchedule/RecipientBuilder.php although I lack the skills to figure out how.
**BUG 2**<br>
Also what happened is that the reminder was configured for specific participant statuses and it ignored that and sent it anyway to participants with any status. Should be solved but also a test should be introduced for this.
**BUG 3**<br>
The limit to group function seems (sometimes) to be ignored when sending to participants (selected by event type). Should be solved but also a test should be introduced for this.
**CONCLUSION**<BR>
I will further test on clean install, but to me this seems to be critical bugs as they
1) have a reputation impact<br>
2) might impact spam ratings<br>
3) cause a lot of work to follow up (send rectifications, responding to responses by mail)...
....5.39.0