CiviCRM Core issueshttps://lab.civicrm.org/dev/core/-/issues2019-08-08T01:27:17Zhttps://lab.civicrm.org/dev/core/-/issues/1171unreleased regression2019-08-08T01:27:17Zeileenunreleased regressionnew enotices on importing with an import mapping (not to be confused with the pre-existing ones)
https://github.com/civicrm/civicrm-core/pull/14978new enotices on importing with an import mapping (not to be confused with the pre-existing ones)
https://github.com/civicrm/civicrm-core/pull/149785.17.0https://lab.civicrm.org/dev/core/-/issues/1135Participants having multiple roles affects maximum event registration count2019-08-05T19:47:12ZDon WijesooriyaParticipants having multiple roles affects maximum event registration countIf you add multiple participant roles for a participant entry, it affects the event full count.
### Steps to reproduce
1. On dmaster, create a new event
2. Enable online registration and set "Max Number of Participants" to 1
3. Go to l...If you add multiple participant roles for a participant entry, it affects the event full count.
### Steps to reproduce
1. On dmaster, create a new event
2. Enable online registration and set "Max Number of Participants" to 1
3. Go to live event registration page. You should be able to register
4. Now add a new registration to a different contact from backend.
5. Once again go to live event registration page. Now it should show the event full message.
6. Go back to the other contact's events. Edit the event participant entry and add another role such as "Host".
7. Now go to the event registration page and you will be able to register for the maxed out event
### Issue
After inspecting `CRM_Event_BAO_Participant::eventFull()` the following line assumes there will only be one value in the field
````php
$where[] = " participant.role_id IN ( '" . implode("', '", $escapedRoles) . "' ) ";
````
Therefore when you have multiple values it won't work properly.
### Solution
I used regular expression code that's used in `CRM_Event_BAO_Query::whereClauseSingle()` under `case 'participant_role_id'`. This is a simple workaround I could think of. Haven't tested in all other scenarios.
````php
$regexp = "([[:cntrl:]]|^)" . implode('([[:cntrl:]]|$)|([[:cntrl:]]|^)', $escapedRoles) . "([[:cntrl:]]|$)";
$where[] = " participant.role_id REGEXP '{$regexp}'";
````5.17.0https://lab.civicrm.org/dev/core/-/issues/285Scheduled Reminders for Membership not being sent2019-07-12T03:35:58ZMickCScheduled Reminders for Membership not being sentMembership reminders are not being sent - 2 probable causes found:
1. civicrm_action_log records for the same reminder 1 year ago
2. Status Override is checked
When either of the above conditions exist, the reminder is not sent.
Whe...Membership reminders are not being sent - 2 probable causes found:
1. civicrm_action_log records for the same reminder 1 year ago
2. Status Override is checked
When either of the above conditions exist, the reminder is not sent.
When neither of the above conditions exist, the reminder is sent.
When corrective action is taken to remove past civicrm_action_log records and remove any override, the reminder is sent.
Environment:
* CiviCRM 4.7.29
* Extension 'Transactional Email' is installed5.17.0https://lab.civicrm.org/dev/core/-/issues/337QuickForm Error on Contact Search Form when using select custom field of type...2021-01-06T22:42:24ZPradeep Nayakpradpnayak@gmail.comQuickForm Error on Contact Search Form when using select custom field of type IntegerTo Replicate:
Create a 'Select' custom field of type Integer or Number with 'Is this Field Searchable?' checked.
The Advance search form throws fatal error
```
Aug 17 10:16:57 [info] $Fatal Error Details = Array
(
[callback] => Ar...To Replicate:
Create a 'Select' custom field of type Integer or Number with 'Is this Field Searchable?' checked.
The Advance search form throws fatal error
```
Aug 17 10:16:57 [info] $Fatal Error Details = Array
(
[callback] => Array
(
[0] => CRM_Core_Error
[1] => handle
)
[code] => -3
[message] => QuickForm Error: nonexistent html element
[mode] => 16
[debug_info] => Element 'custom_8_from' does not exist in HTML_QuickForm::addRule()
[type] => HTML_QuickForm_Error
[user_info] => Element 'custom_8_from' does not exist in HTML_QuickForm::addRule()
[to_string] => [html_quickform_error: message="nonexistent html element" code=-3 mode=callback callback=CRM_Core_Error::handle prefix="QuickForm Error: " info="Element 'custom_8_from' does not exist in HTML_QuickForm::addRule()"]
)
Aug 17 10:16:57 [info] $backTrace = #0 /var/www/html/civicrm-master/sites/all/modules/civicrm/CRM/Core/Error.php(232): CRM_Core_Error::backtrace("backTrace", TRUE)
#1 [internal function](): CRM_Core_Error::handle(Object(HTML_QuickForm_Error))
#2 /var/www/html/civicrm-master/sites/all/modules/civicrm/packages/PEAR.php(921): call_user_func((Array:2), Object(HTML_QuickForm_Error))
#3 /var/www/html/civicrm-master/sites/all/modules/civicrm/packages/HTML/QuickForm.php(2084): PEAR_Error->__construct("nonexistent html element", -3, 16, (Array:2), "Element 'custom_8_from' does not exist in HTML_QuickForm::addRule()")
#4 /var/www/html/civicrm-master/sites/all/modules/civicrm/packages/PEAR.php(575): HTML_QuickForm_Error->__construct(-3, 16, (Array:2), "Element 'custom_8_from' does not exist in HTML_QuickForm::addRule()")
#5 [internal function](): PEAR::_raiseError(NULL, NULL, -3, NULL, 512, "Element 'custom_8_from' does not exist in HTML_QuickForm::addRule()", "HTML_QuickForm_Error", TRUE)
#6 /var/www/html/civicrm-master/sites/all/modules/civicrm/packages/PEAR.php(237): call_user_func_array((Array:2), (Array:8))
#7 /var/www/html/civicrm-master/sites/all/modules/civicrm/packages/HTML/QuickForm.php(1076): PEAR::__callStatic("raiseError", (Array:7))
#8 /var/www/html/civicrm-master/sites/all/modules/civicrm/packages/HTML/QuickForm.php(1076): PEAR::raiseError(NULL, -3, NULL, 512, "Element 'custom_8_from' does not exist in HTML_QuickForm::addRule()", "HTML_QuickForm_Error", TRUE)
#9 /var/www/html/civicrm-master/sites/all/modules/civicrm/CRM/Core/BAO/CustomField.php(1103): HTML_QuickForm->addRule("custom_8_from", "number-select From must be a number (with or without decimal point).", "numeric")
#10 /var/www/html/civicrm-master/sites/all/modules/civicrm/CRM/Contact/Form/Search/Criteria.php(567): CRM_Core_BAO_CustomField::addQuickFormElement(Object(CRM_Contact_Form_Search_Advanced), "custom_8", "8", FALSE, TRUE)
#11 /var/www/html/civicrm-master/sites/all/modules/civicrm/CRM/Contact/Form/Search/Advanced.php(150): CRM_Contact_Form_Search_Criteria::custom(Object(CRM_Contact_Form_Search_Advanced))
#12 /var/www/html/civicrm-master/sites/all/modules/civicrm/CRM/Core/Form.php(606): CRM_Contact_Form_Search_Advanced->buildQuickForm()
#13 /var/www/html/civicrm-master/sites/all/modules/civicrm/CRM/Core/QuickForm/Action/Display.php(92): CRM_Core_Form->buildForm()
#14 /var/www/html/civicrm-master/sites/all/modules/civicrm/packages/HTML/QuickForm/Controller.php(203): CRM_Core_QuickForm_Action_Display->perform(Object(CRM_Contact_Form_Search_Advanced), "display")
#15 /var/www/html/civicrm-master/sites/all/modules/civicrm/packages/HTML/QuickForm/Page.php(103): HTML_QuickForm_Controller->handle(Object(CRM_Contact_Form_Search_Advanced), "display")
#16 /var/www/html/civicrm-master/sites/all/modules/civicrm/CRM/Core/Controller.php(351): HTML_QuickForm_Page->handle("display")
#17 /var/www/html/civicrm-master/sites/all/modules/civicrm/CRM/Core/Invoke.php(309): CRM_Core_Controller->run((Array:4), (Array:0))
#18 /var/www/html/civicrm-master/sites/all/modules/civicrm/CRM/Core/Invoke.php(84): CRM_Core_Invoke::runItem((Array:13))
#19 /var/www/html/civicrm-master/sites/all/modules/civicrm/CRM/Core/Invoke.php(52): CRM_Core_Invoke::_invoke((Array:4))
#20 /var/www/html/civicrm-master/sites/all/modules/civicrm/drupal/civicrm.module(445): CRM_Core_Invoke::invoke((Array:4))
#21 [internal function](): civicrm_invoke("contact", "search", "advanced")
#22 /var/www/html/civicrm-master/includes/menu.inc(527): call_user_func_array("civicrm_invoke", (Array:3))
#23 /var/www/html/civicrm-master/index.php(21): menu_execute_active_handler()
#24 {main}
```
When i checked the field through database i found that this field has 'is_search_range' set to TRUE which should be only incase of text or date field i believe.5.9https://lab.civicrm.org/dev/core/-/issues/325Fatal error 'DB Error: no such field' on Contribution detail report2018-08-28T21:55:40ZPradeep Nayakpradpnayak@gmail.comFatal error 'DB Error: no such field' on Contribution detail report![before-patch](/uploads/a1f168c003724bf724eb8e4c0998e54c/before-patch.gif)
PR: https://github.com/civicrm/civicrm-core/pull/12660![before-patch](/uploads/a1f168c003724bf724eb8e4c0998e54c/before-patch.gif)
PR: https://github.com/civicrm/civicrm-core/pull/126605.6https://lab.civicrm.org/dev/core/-/issues/91Prevent un-workable searches in search builder (was search builder improvements)2018-05-03T23:37:58ZMonish DebPrevent un-workable searches in search builder (was search builder improvements)Earlier there was a requirement where we need to remove specific MySQL operators which are not valid for specific data type e.g. String type doesn't work with >, <, <= and >= operators. And here's the fix https://github.com/civicrm/civic...Earlier there was a requirement where we need to remove specific MySQL operators which are not valid for specific data type e.g. String type doesn't work with >, <, <= and >= operators. And here's the fix https://github.com/civicrm/civicrm-core/commit/759094bdfa40531e4ec0cf0a644d9edd6b9247cf done earlier as per which it is fetching all columns which are String type and passing them into a separate JSON string identified as ```stringFields``` and another formatted list of valid string operators as ```stringOperators```. Similarly to identify date fields and to do a specific operation on such fields we are passing another variable ```dateFields```. These JSON object in JS are later used to specific operations. Now on the other hand, recently, I encountered another issue where the Boolean type columns don't work with IS EMPTY/IS NOT EMPTY operator and eventually leads to DB syntax error. So if I follow the same approach I need to assign another JSON string, which won't be an ideal fix. This lead me to do following 3 changes to improve the code:
1. Assign a single list of all data columns which are either Boolean, String or Date (as currently, these are the only kind that needs attention)
2. Use this list (as ```fieldTypes```) in JS to filter the operator or do field specific operations like covert a input search field to datepicker if the chosen search field is date kind.
3. Reduce list of variable assignment.5.2.0Monish DebMonish Debhttps://lab.civicrm.org/dev/core/-/issues/3553Preview as HTML doesn't open window at all2022-06-11T14:50:54ZscardiniusPreview as HTML doesn't open window at allCRM_Mailing_BAO_TrackableURL::getTrackerURL() requires id of mailing but after https://lab.civicrm.org/dev/mail/issues/20 mailing_id is removed from params to Mailing.preview
https://github.com/civicrm/civicrm-core/commit/0075b0cb75e542...CRM_Mailing_BAO_TrackableURL::getTrackerURL() requires id of mailing but after https://lab.civicrm.org/dev/mail/issues/20 mailing_id is removed from params to Mailing.preview
https://github.com/civicrm/civicrm-core/commit/0075b0cb75e5422660366acf280538167369d8ba#diff-d08e5d3ceca1972df6d467b2824ffab5R279
errors from api rest
```
{"error_code":"unknown error","sql":"INSERT INTO civicrm_mailing_trackable_url (url ) VALUES ('https:\/\/onet.pl' )
[nativecode=1364 ** Field 'mailing_id' doesn't have a default value]",
"tip":"add debug=1 to your API call to have more info about the error",
"is_error":1,
"error_message":"DB Error: unknown error",
"debug_information":"INSERT INTO civicrm_mailing_trackable_url (url ) VALUES ('https:\/\/onet.pl' ) [nativecode=1364 ** Field 'mailing_id' doesn't have a default value]"}
```5.12.3https://lab.civicrm.org/dev/core/-/issues/695Custom Search results selection failure2019-02-05T04:27:09Zaydunsaidan.saunders@squiffle.ukCustom Search results selection failureSymptom: When viewing custom search results, it is possible to select all records, but individual selections do not change the count and enable action dropdowns. This does not occur for all custom searches.
Analysis: The selections are...Symptom: When viewing custom search results, it is possible to select all records, but individual selections do not change the count and enable action dropdowns. This does not occur for all custom searches.
Analysis: The selections are saved by `CRM_Core_PrevNextCache_Sql::markSelection()` which updates the prevnext cache. However, if the results are not already in the prevnext cache, the selections are not saved. The cache is filled by `CRM_Contact_Selector::fillupPrevNextCache()` which it does by taking the result of the custom search's `contactIDs()` method and doing a string replace to form the query used for the cache and if the string replace fails, no results are saved in the cache and therefore individual results cannot be selected.
The string replacement method is case sensitive, so if the custom search specifies `contact_a.id as contact_id` then the replacement works, but specifying `contact_a.id AS contact_id` fails.
The whole approach seems rather fragile but making the string replacement case insensitive reduces that slightly, and hopefully saves developer frustration trying to track down why an innocuous select statement case change results in UI failures.5.10aydunsaidan.saunders@squiffle.ukaydunsaidan.saunders@squiffle.ukhttps://lab.civicrm.org/dev/core/-/issues/326Fatal error 'DB Error: no such field' on Contribution detail report when sect...2018-11-09T22:11:38ZPradeep Nayakpradpnayak@gmail.comFatal error 'DB Error: no such field' on Contribution detail report when section header enabledError code : Database Error Code: Unknown column 'civicrm_contribution_total_amount' in 'field list', 1054
![Peek_2018-08-14_16-19](/uploads/519bfa9483886f0ef2df276e76d1eb80/Peek_2018-08-14_16-19.gif)
Issue filed on stackexchange : ht...Error code : Database Error Code: Unknown column 'civicrm_contribution_total_amount' in 'field list', 1054
![Peek_2018-08-14_16-19](/uploads/519bfa9483886f0ef2df276e76d1eb80/Peek_2018-08-14_16-19.gif)
Issue filed on stackexchange : https://civicrm.stackexchange.com/questions/26124/db-error-missing-field-in-contribution-reports-after-upgrade-to-5-4-0-drupal/261265.5.0https://lab.civicrm.org/dev/core/-/issues/4954Upgrade to Smarty4....2024-03-15T21:05:34ZeileenUpgrade to Smarty4....Now that we have upgraded many sites to Smarty3 & seem close to ironing out the issues I had a go at Smarty4 and was able to get it working. The extra fixes were entirely in our core compatibility layer so the challenges of moving a site...Now that we have upgraded many sites to Smarty3 & seem close to ironing out the issues I had a go at Smarty4 and was able to get it working. The extra fixes were entirely in our core compatibility layer so the challenges of moving a site from Smarty2 to Smarty4 are now equivalent to moving to Smarty3.
https://smarty-php.github.io/smarty/5.x/upgrading/#removed-php-constants
One annoying thing we did was name our Smarty mixin & the define in a version specific way. In fact there is nothing v2 specific about our mixin and the methodology of defining ` CIVICRM_SMARTY3_AUTOLOAD_PATH` works for Smarty4 as well as it does for Smarty3. If it wasn't for those naming issues I would recommend we simply replace the contents of packages/smarty3 with the Smarty 4 library.
However, given where we are I recommend we
1) merge Smarty4 into packages here https://github.com/civicrm/civicrm-packages/pull/380
2) add a new define `CIVICRM_SMARTY_AUTOLOAD_PATH` - respect it but fall back to `CIVICRM_SMARTY3_AUTOLOAD_PATH` if present
3) update our demo sites / build sites etc to Smarty4
4) update all our messaging to encourage people to use Smarty4 not 3 (but if they have already switched to 3 don't further message as being off Smarty2 is enough to flush out any extension or issues that would impede our medium term plans to put Smarty4 in vendor & stop shipping Smarty3
Note that Smarty4 hard-fails on `{php}` tags in tpls whereas Smarty3 has a backwards compatibility layer that would have supported it, had we chosen to enable it, which we didn't.5.72.0https://lab.civicrm.org/dev/core/-/issues/4714Civi-Import change the description2023-10-26T07:16:29ZjaapjansmaCivi-Import change the descriptionI just installed a CiviCRM version 5.66 fresh for a client and saw a core extension Civi-Import.
The description line reads:
`Core extension for us to start moving import logic into, has more functionalit`
My question is what is this ...I just installed a CiviCRM version 5.66 fresh for a client and saw a core extension Civi-Import.
The description line reads:
`Core extension for us to start moving import logic into, has more functionalit`
My question is what is this extension? And who is the us?
I am bit afraid that the wording us also creates a not me and thus a we vs them mentality. I am not sure whether that is intededed.
So my proposal would be: `This is an extension in development to move core import functionality into an extension. This extension helps people who do development work on CiviCRM core. Feel free to contribute.`5.68.0https://lab.civicrm.org/dev/core/-/issues/4164CiviMail send mails only to certain location type2023-03-13T11:54:35ZjmargrafCiviMail send mails only to certain location typeI have the following Usecase:
A big organization is using CiviCRM for mailing marketing of different departments. Their Contacts can have several email addresses (with different location types).
A Contact has an email address that is use...I have the following Usecase:
A big organization is using CiviCRM for mailing marketing of different departments. Their Contacts can have several email addresses (with different location types).
A Contact has an email address that is used by department A for the communication with the customer via mass mailing.
But department B wants to communicate with the customer via another email address via mass mailing.
Currently there seems to be no possibility to select which email address location type should be preferred for an specific mass mailing (of department A - while department B creates another mass mailing and wants to select their preferred location type for another mass mailing).
Possibilities in CiviCRM:
I can create different location types for the different purposes.
I can add email addresses with the corresponding location type.
I can select one email address as the primary email address.
I can select one email address for mass mailing.
Problem:
But I can not select different email addresses for different mass mailings
Possible Workaround:
I could keep the two contacts as duplicates in the system. But the customer still still want to have an overall overview over their communication with this contact - so simply having duplicates is not an attractive option.
Feature Request:
What I would need is the feature of selecting the preferred location type to be used for a specific mailing.
If the contact has no email address of this communication type the fallback option could be the primary / bulk-e-mail-address
What effort would it take to create such a feature? I guess it would make most sense to implement it into the civicrm core - do you aggree?https://lab.civicrm.org/dev/core/-/issues/4142Add Activity Target consistently2023-04-24T19:25:30ZSandor SemseyAdd Activity Target consistentlyOverview
----------------------------------------
When creating related activities for other entities (e.g. Contribution, Participant (event registration), Membership) source and target contact IDs holds different contacts and have diffe...Overview
----------------------------------------
When creating related activities for other entities (e.g. Contribution, Participant (event registration), Membership) source and target contact IDs holds different contacts and have different meanings if a logged-in user added the entity or an anonymous user (through an online form).
This creates inconsistency and makes any downstream processing harder: searching, creating extensions & automations based on these activities.
Example use-case
----------------------------------------
If a contact get registered for an event by a logged-in user (someone showed interest in email and a backoffice user adding the registration to Civi) "Event Registration" activity's source (Added by) would be the CRM user and target (With) is the contact who wants to attend the event. This makes sense and the roles match the label: registration was *added by* the user and the *target* is the contact. Also works well as audit trails.
However, if the contact is using the online registration form source will be the contact and target will be empty.
Proposed behaviour
----------------------------------------
In my opinion best case would be: if there's no logged in user then source is the system user and target is the contact. This presents exactly what happened: a contact has registered and registration was added by the system, not by a real user manually.
If that's too much of a change or system user determination is hard across all CMS then just add contact to target (in this case source and target would be the same contact_id). This way also has the benefits of the same results for consumers.
In the latter case the downside is there would be redundancy in `civicrm_activity_contact` table (https://lab.civicrm.org/dev/core/-/issues/2450#note_55527). Regarding this, I argue that consistency worths more than disk space.
Comments
----------------------------------------
I've found some issues that mention this, but not as the main topic (https://lab.civicrm.org/dev/core/-/issues/2450) or hasn't any progress (https://lab.civicrm.org/dev/core/-/issues/2669). As it would be nice to change this through all of Civi.
PR at https://github.com/civicrm/civicrm-core/pull/256505.60.0https://lab.civicrm.org/dev/core/-/issues/3984Proposal: Enable OAUTH client extension by default now that microsoft has dis...2023-01-09T14:50:43ZDaveDProposal: Enable OAUTH client extension by default now that microsoft has discontinued username/password authenticationWhat the subject says. For new installs only, but with maybe an upgrade message if it detects you have a microsoft email account enabled.What the subject says. For new installs only, but with maybe an upgrade message if it detects you have a microsoft email account enabled.https://lab.civicrm.org/dev/core/-/issues/3920Update backend footer2023-05-27T17:14:31ZlarsssandergreenUpdate backend footerThe footer shown to backend users seems like it could be improved a bit:
![image](/uploads/3c4361fd529cf3ec27872a3a10660f81/image.png)
I think that bottom line could just be:
[Support](https://civicrm.org/help) [Documentation](http...The footer shown to backend users seems like it could be improved a bit:
![image](/uploads/3c4361fd529cf3ec27872a3a10660f81/image.png)
I think that bottom line could just be:
[Support](https://civicrm.org/help) [Documentation](https://docs.civicrm.org/)
Download is covered in the version number, which is also a download link. Support is a much more useful link that leads to options: Stack Exchange, chat, Gitlab, etc. rather than just Gitlab, which is probably not the right first stop for someone with a problem, in most cases.
Alternatively, support and documentation are covered in the top menu. Maybe there is no need for a second line at all?
Minor detail: Add a space between the status box and the word CiviCRM.5.63.0https://lab.civicrm.org/dev/core/-/issues/3855Add membership status as a filter for scheduled reminders2023-11-23T19:06:27Zpallavi_compucoAdd membership status as a filter for scheduled reminders**Current Behaviour** : At the moment, Under Schedule Reminders(Administer->Communication->Schedule Reminders) for Memberships, there is an option to filter the memberships by the type (as shown in the screenshot attached).
![Screenshot...**Current Behaviour** : At the moment, Under Schedule Reminders(Administer->Communication->Schedule Reminders) for Memberships, there is an option to filter the memberships by the type (as shown in the screenshot attached).
![Screenshot_2022-09-19_at_7.41.00_PM](/uploads/4298414cd4f52fb03b8c1dafb0d356c5/Screenshot_2022-09-19_at_7.41.00_PM.png)
**Proposal for addition** : We would like to add another filter "Membership Status" next to membership type which will allow the Civi Admin to schedule the reminders for memberships with selected status so only the memberships having the selected status will be applicable for the scheduled reminders and will be sent an email.
The status filter will allow multiple status selection
![Screenshot_2022-09-19_at_7.41.39_PM](/uploads/b4ade89c0b04328ddbb6059447b89892/Screenshot_2022-09-19_at_7.41.39_PM.png)https://lab.civicrm.org/dev/core/-/issues/3844Dummy payment processor should be flagged as such on LIVE page2023-01-31T09:53:32ZyashodhaDummy payment processor should be flagged as such on LIVE pageWhen dummy payment processor is configured for contribution pages/ event, there is no indication that is NOT a real transaction. This could be confusing and we should flag any LIVE page that is configured with dummy processor.
![dummy](...When dummy payment processor is configured for contribution pages/ event, there is no indication that is NOT a real transaction. This could be confusing and we should flag any LIVE page that is configured with dummy processor.
![dummy](/uploads/7cbf8624f40a97ab1c89d123ab4b4941/dummy.png)
![con_page](/uploads/1ea201d5b3c96e90e5385b5f82596996/con_page.png)
No indication that this is a Dummy payment processor
![contr+page](/uploads/456a92cbdafa407721c1ac4545cbb22e/contr+page.png)
This would similar to what we already do for TEST transactions.5.59.0yashodhayashodhahttps://lab.civicrm.org/dev/core/-/issues/3806Contribution Pages: Spread the Word show on Live Page from start if Enabled.2024-03-28T05:03:24ZBarijohnContribution Pages: Spread the Word show on Live Page from start if Enabled.Overview
----------------------------------------
Currently the Spread the Word Social Media footer on Contribution Pages ONLY appears when you have completed the transaction. This means that it isn't easy to share the page from the dona...Overview
----------------------------------------
Currently the Spread the Word Social Media footer on Contribution Pages ONLY appears when you have completed the transaction. This means that it isn't easy to share the page from the donation page, as you might have missed the opportunity when you complete it.
On Events this is showing as soon as you land on the Event Information Page and I suggest this would be a good improvement on Contribution Pages as well.
Example use-case
----------------------------------------
1. Click on Contribution Link - See Spread the Word. Can share directly from this page to Social Media.
May increase sharing of the page and increase donations. Also it will be shown to users when creating page and they can test it easily.
Current behaviour
----------------------------------------
Currently this ONLY appears when you have completed the full transaction and appears at the confirmation stage. Easy to skip past it as well.
![Contribution_Completed](/uploads/f1a68833823dec4ccd78bb4d12ab4cb8/Contribution_Completed.png)
Proposed behaviour
----------------------------------------
Show the Spread the Word on the main contribution page. As Per the Events Page.
![Screenshot_2022-08-16_at_12.31.16](/uploads/acaa5bedff273314189446561ca8c8be/Screenshot_2022-08-16_at_12.31.16.png)
Comments
----------------------------------------
Thoughts?https://lab.civicrm.org/dev/core/-/issues/3775Disable Deadlock retries for Mailing Jobs2024-03-24T05:03:28ZseamusleeDisable Deadlock retries for Mailing JobsSo CiviCRM added a feature which re-tries the same query x number of times by default that is 3 when either a deadlock or a lock wait timeout is hit which is useful, but in the concept of mailing job processing it is not so useful becaus...So CiviCRM added a feature which re-tries the same query x number of times by default that is 3 when either a deadlock or a lock wait timeout is hit which is useful, but in the concept of mailing job processing it is not so useful because it means it can get tied up on get_lock queries re-trying them a silly number of times when it should be moving onto the next thingseamusleeseamusleehttps://lab.civicrm.org/dev/core/-/issues/3753Proposal: Allow negative rules for ACLs2023-09-08T10:52:34ZTobias Voigttobias.voigt@civiservice.deProposal: Allow negative rules for ACLs**PROBLEM:**
When defining ACL rules, it is only possible to 'allow' certain behaviour but not to 'disallow' it. This makes it tedious to define a set of rules that restricts access to e.g. groups of contacts or sets of custom fields - ...**PROBLEM:**
When defining ACL rules, it is only possible to 'allow' certain behaviour but not to 'disallow' it. This makes it tedious to define a set of rules that restricts access to e.g. groups of contacts or sets of custom fields - especially if you have many (groups or sets of custom fields).
**USE CASE:**
In one of our client's system, we have many groups and many sets of custom fields. What I want to achieve is:
1. define a privileged group / role that has exclusive access to **one** set of custom fields
2. allow access to all other sets of custom fields for all users
3. prevent 'normal' users from giving themselves access to the exclusive information by adding themselves to the privileged group
Because I can only define 'positive' ACL rules, here's what I have to do:
- turn off the WP permission for custom fields for the relevant roles (to be able to define my rules via CiviCRM ACLs)
- allow access to all sets of custom fields for 'everyone' (excluding the one I want to restrict access for) - **by creating a rule for each set of custom fields**
- define a rule to allow access to the restricted set of custom fields to the privileged role
Depending on the number of sets of custom fields, this can be a tedious process. Not only that - if I create a new set of custom fields at a later time, I have to remember to create a new ACL rule for that as well.
Now for the third task (preventing users from adding themselves to the privileged group). To achive this I furthermore have to:
- turn off the WP permissions for viewing and editing all contacts for the relevant roles
- allow access to all groups for 'everyone' (excluding the one I want to restrict access for) - **by creating a rule for each contact group**
- define a rule to allow access to the restricted contact group only for the privileged role
Again: With about 50+ groups, that's a tedious task. And again: I have to remember to create a new ACL rule each time I add a new group.
All in all I could end up with a multitude of rules (in our case 70+) that are really hard to maintain.
**PROPOSAL:**
This task could be so much easier, if it was possible to define 'negative' ACL rules. If this was possible, I could:
- turn off the relevant WP permissions
- allow access to all sets of custom fields for everyone (1 rule)
- allow access to all contact groups for everyone (1 rule)
- disallow access to the restricted set of custom fields for everyone (1 rule)
- disallow access to the restricted contact group for everyone (1 rule)
- allow access to the restricted set of custom fields for the privileged role (1 rule)
- allow access to the restricted contact group for the privileged role (1 rule)
As is implied above, **there would have to be some form of priorisation** of rules to make this work.
This way I would end up with only 6 rules and would not have to remember to create new rules whenever I create a new set of custom fields or a new contact group.5.64.0