CiviCRM Core issueshttps://lab.civicrm.org/dev/core/-/issues2018-09-03T00:42:54Zhttps://lab.civicrm.org/dev/core/-/issues/368Scheduled Reminder edit form does not populate date criteria correctly when e...2018-09-03T00:42:54ZandrewcormickdockeryScheduled Reminder edit form does not populate date criteria correctly when editing old remindersWhen editing an old scheduled reminder as shown here (note, to be sent 30 days before membership end date):
![image](/uploads/186749b711bc60889055e8a84994584e/image.png)
the edit form populates incorrectly as shown:
![image](/uploads/24...When editing an old scheduled reminder as shown here (note, to be sent 30 days before membership end date):
![image](/uploads/186749b711bc60889055e8a84994584e/image.png)
the edit form populates incorrectly as shown:
![image](/uploads/24c30ad7f8b8004032b8de5f06aded6a/image.png)
This has caused our users to inadvertently render their reminder ineffective when editing unrelated items on the reminder (for example, the email text).
The log tables show what's happened here (extract from log_civicrm_action_schedule):
![image](/uploads/ae7d5c9d851d81bd7626317c87d1e908/image.png)
Apparently at some point, the coding for membership end date changed from "membership_end_date" to "end_date" but there was no accompanying database update performed to retrospectively change legacy reminders.
I should note that the reminders are actually still sent, but this bug with the edit form has caused grief for some users.5.5.0https://lab.civicrm.org/dev/core/-/issues/353As of 5.4.0, Activity Search gives an empty result set2018-09-03T01:56:12ZPradeep Nayakpradpnayak@gmail.comAs of 5.4.0, Activity Search gives an empty result setFrom SE: https://civicrm.stackexchange.com/questions/26208/as-of-5-4-0-activity-search-gives-an-empty-result-set-confirmation-anyone
Probably this might have caused regression https://github.com/civicrm/civicrm-core/commit/fd95406da80
...From SE: https://civicrm.stackexchange.com/questions/26208/as-of-5-4-0-activity-search-gives-an-empty-result-set-confirmation-anyone
Probably this might have caused regression https://github.com/civicrm/civicrm-core/commit/fd95406da80
PR: https://github.com/civicrm/civicrm-core/pull/127135.5.0https://lab.civicrm.org/dev/core/-/issues/350SMS immediate send not working in 5.4.02018-08-28T11:48:01ZAndy ClarkSMS immediate send not working in 5.4.0In 5.4.0 (Drupal) users couldn't send immediate SMS messages (using Twilio), with a message something like "recipients phone number invalid or they do not want to receive SMS delivery" BUT they could still send SMSs via batch. Similar pr...In 5.4.0 (Drupal) users couldn't send immediate SMS messages (using Twilio), with a message something like "recipients phone number invalid or they do not want to receive SMS delivery" BUT they could still send SMSs via batch. Similar problem was raised on Stackexchange at https://civicrm.stackexchange.com/questions/25478/clickatell-sms-recipient-phone-number-is-invalid-or-recipient-does-not-want-to but seems to be discussed as a Clickatell problem - but we're using Twilio. Problem is at line 1829 of activity.php where $doNotSms = TRUE; Changing this to $doNotSms = NULL; does temporarily fix the problem but ignores user preferences (I think). From discussions at https://github.com/veda-consulting/org.civicrm.sms.clickatell/issues/20 it also affects 5.3.0 and 5.3.15.5.0https://lab.civicrm.org/dev/core/-/issues/336Cannot activate extension on Memcache+WP configuration2019-02-12T14:49:37ZtottenCannot activate extension on Memcache+WP configurationThis issue was originally reported by @haystack on Mattermost and described further in the comments for a PR for #316. It is similar to #316 in that both involve a Memcache configuration, but otherwise it appears different. (I have not p...This issue was originally reported by @haystack on Mattermost and described further in the comments for a PR for #316. It is similar to #316 in that both involve a Memcache configuration, but otherwise it appears different. (I have not personally been able to reproduce it yet, and the solution for #316 doesn't address this.) Below, I'm copying over the details from Christian's previous report.
## Excerpt 1
(*From Christian*)
One further issue I've run into is that Extensions cannot be installed while Memcached is being used:
```
$Fatal Error Details = array(3) {
["message"]=>
string(19) "Unknown extension: "
["code"]=>
NULL
["exception"]=>
object(CRM_Extension_Exception_MissingException)#6982 (10) {
["errorData":"CRM_Core_Exception":private]=>
array(1) {
["error_code"]=>
int(0)
}
... lots more debugging ...
```
As you can see, `$key` is empty in `CRM_Extension_Container_Collection::getContainer()` - I presume this is as a result of `CRM_Extension_Container_Collection::getKeysToContainer()` grabbing the containers with:
```
$k2c = $this->cache->get($this->cacheKey);
```
FWIW, turning Memcached _off_ allows me to install Extensions.
## Excerpt 2
(From Christian)
Apologies in advance if there's too much debugging info below - I've tried to debug the Install Extension process but I get lost in the intricacies of `HTML_QuickForm` so I thought dumping everything I can see might help. The problem in `CRM_Extension_Container_Collection::getContainer()` is that `$key` is not defined:
```
Array
(
[method] => CRM_Extension_Container_Collection::getContainer
[key] =>
[k2c] => Array
(
[com.iatspayments.civicrm] => civiroot
[org.civicrm.shoreditch] => default
)
[backtrace] => #0 /path/to/wp-content/plugins/civicrm/civicrm/CRM/Extension/Container/Collection.php(111): CRM_Extension_Container_Collection->getContainer(NULL)
#1 /path/to/wp-content/plugins/civicrm/civicrm/CRM/Extension/Mapper.php(185): CRM_Extension_Container_Collection->getPath(NULL)
#2 /path/to/wp-content/plugins/civicrm/civicrm/CRM/Admin/Form/Extensions.php(85): CRM_Extension_Mapper->keyToInfo(NULL)
#3 /path/to/wp-content/plugins/civicrm/civicrm/CRM/Core/Form.php(585): CRM_Admin_Form_Extensions->preProcess()
#4 /path/to/wp-content/plugins/civicrm/civicrm/CRM/Core/StateMachine.php(136): CRM_Core_Form->buildForm()
#5 /path/to/wp-content/plugins/civicrm/civicrm/CRM/Core/QuickForm/Action/Next.php(61): CRM_Core_StateMachine->perform(Object(CRM_Admin_Form_Extensions), 'next', 'Next')
#6 /path/to/wp-content/plugins/civicrm/civicrm/packages/HTML/QuickForm/Controller.php(203): CRM_Core_QuickForm_Action_Next->perform(Object(CRM_Admin_Form_Extensions), 'next')
#7 /path/to/wp-content/plugins/civicrm/civicrm/packages/HTML/QuickForm/Page.php(103): HTML_QuickForm_Controller->handle(Object(CRM_Admin_Form_Extensions), 'next')
#8 /path/to/wp-content/plugins/civicrm/civicrm/CRM/Core/Controller.php(351): HTML_QuickForm_Page->handle('next')
#9 /path/to/wp-content/plugins/civicrm/civicrm/CRM/Core/Page/Basic.php(398): CRM_Core_Controller->run()
#10 /path/to/wp-content/plugins/civicrm/civicrm/CRM/Core/Page/Basic.php(156): CRM_Core_Page_Basic->edit(1, NULL)
#11 /path/to/wp-content/plugins/civicrm/civicrm/CRM/Admin/Page/Extensions.php(121): CRM_Core_Page_Basic->run()
#12 /path/to/wp-content/plugins/civicrm/civicrm/CRM/Core/Invoke.php(309): CRM_Admin_Page_Extensions->run(Array, NULL)
#13 /path/to/wp-content/plugins/civicrm/civicrm/CRM/Core/Invoke.php(84): CRM_Core_Invoke::runItem(Array)
#14 /path/to/wp-content/plugins/civicrm/civicrm/CRM/Core/Invoke.php(52): CRM_Core_Invoke::_invoke(Array)
#15 /path/to/wp-content/plugins/civicrm/civicrm.php(1246): CRM_Core_Invoke::invoke(Array)
#16 [internal function]: CiviCRM_For_WordPress->invoke('')
#17 /path/to/wp-includes/class-wp-hook.php(286): call_user_func_array(Array, Array)
#18 /path/to/wp-includes/class-wp-hook.php(310): WP_Hook->apply_filters('', Array)
#19 /path/to/wp-includes/plugin.php(453): WP_Hook->do_action(Array)
#20 /path/to/wp-admin/admin.php(224): do_action('toplevel_page_C...')
#21 {main}
)
```
Debugging further up the line in `CRM_Admin_Form_Extensions::preProcess()` shows the context, though it still doesn't show me exactly why `$key` is undefined:
```
Array
(
[method] => CRM_Admin_Form_Extensions::preProcess
[key] =>
[id] =>
[GET] => Array
(
[page] => CiviCRM
[q] => civicrm/admin/extensions
[noheader] => 1
)
[POST] => Array
(
[qfKey] => 926b1c386f5b9c64184e995104741f62_6496
[_qf_default] => Extensions:next
[_qf_Extensions_next] => Install
)
[REQUEST] => Array
(
[page] => CiviCRM
[q] => civicrm/admin/extensions
[noheader] => 1
[qfKey] => 926b1c386f5b9c64184e995104741f62_6496
[_qf_default] => Extensions:next
[_qf_Extensions_next] => Install
)
[backtrace] => #0 /path/to/wp-content/plugins/civicrm/civicrm/CRM/Core/Form.php(585): CRM_Admin_Form_Extensions->preProcess()
#1 /path/to/wp-content/plugins/civicrm/civicrm/CRM/Core/StateMachine.php(136): CRM_Core_Form->buildForm()
#2 /path/to/wp-content/plugins/civicrm/civicrm/CRM/Core/QuickForm/Action/Next.php(61): CRM_Core_StateMachine->perform(Object(CRM_Admin_Form_Extensions), 'next', 'Next')
#3 /path/to/wp-content/plugins/civicrm/civicrm/packages/HTML/QuickForm/Controller.php(203): CRM_Core_QuickForm_Action_Next->perform(Object(CRM_Admin_Form_Extensions), 'next')
#4 /path/to/wp-content/plugins/civicrm/civicrm/packages/HTML/QuickForm/Page.php(103): HTML_QuickForm_Controller->handle(Object(CRM_Admin_Form_Extensions), 'next')
#5 /path/to/wp-content/plugins/civicrm/civicrm/CRM/Core/Controller.php(351): HTML_QuickForm_Page->handle('next')
#6 /path/to/wp-content/plugins/civicrm/civicrm/CRM/Core/Page/Basic.php(398): CRM_Core_Controller->run()
#7 /path/to/wp-content/plugins/civicrm/civicrm/CRM/Core/Page/Basic.php(156): CRM_Core_Page_Basic->edit(1, NULL)
#8 /path/to/wp-content/plugins/civicrm/civicrm/CRM/Admin/Page/Extensions.php(121): CRM_Core_Page_Basic->run()
#9 /path/to/wp-content/plugins/civicrm/civicrm/CRM/Core/Invoke.php(309): CRM_Admin_Page_Extensions->run(Array, NULL)
#10 /path/to/wp-content/plugins/civicrm/civicrm/CRM/Core/Invoke.php(84): CRM_Core_Invoke::runItem(Array)
#11 /path/to/wp-content/plugins/civicrm/civicrm/CRM/Core/Invoke.php(52): CRM_Core_Invoke::_invoke(Array)
#12 /path/to/wp-content/plugins/civicrm/civicrm.php(1246): CRM_Core_Invoke::invoke(Array)
#13 [internal function]: CiviCRM_For_WordPress->invoke('')
#14 /path/to/wp-includes/class-wp-hook.php(286): call_user_func_array(Array, Array)
#15 /path/to/wp-includes/class-wp-hook.php(310): WP_Hook->apply_filters('', Array)
#16 /path/to/wp-includes/plugin.php(453): WP_Hook->do_action(Array)
#17 /path/to/wp-admin/admin.php(224): do_action('toplevel_page_C...')
#18 {main}
)
```
Here's what `CRM_Admin_Form_Extensions` looks like at the above moment:
```
[this] => CRM_Admin_Form_Extensions Object
(
[_id:protected] =>
[_values:protected] => Array
(
)
[_BAOName:protected] => CRM_Core_BAO_Extension
[_state:protected] =>
[_name:protected] => Extensions
[_title:protected] =>
[_defaults] => Array
(
)
[_options] =>
[_action] => 1
[_paymentProcessors:protected] =>
[_paymentProcessorIDs] =>
[_paymentProcessorID:protected] =>
[_is_pay_later_enabled:protected] =>
[_renderer:protected] =>
[_dateFields:protected] => Array
(
)
[unsavedChangesWarn:protected] =>
[ajaxResponse] => Array
(
)
[urlPath] => Array
(
[0] => civicrm
[1] => admin
[2] => extensions
)
[context:protected] =>
[controller] => CRM_Core_Controller_Simple Object
(
[_title:protected] => CRM_Admin_Form_Extensions
[_key] => 926b1c386f5b9c64184e995104741f62_6496
[_scope:protected] => CRM_Admin_Form_Extensions_926b1c386f5b9c64184e995104741f62_6496
[_stateMachine:protected] => CRM_Core_StateMachine Object
(
[_controller:protected] => CRM_Core_Controller_Simple Object
*RECURSION*
[_states:protected] => Array
(
[Extensions] => CRM_Core_State Object
(
[_name:protected] => Extensions
[_type:protected] => 3
[_back:protected] =>
[_next:protected] =>
[_stateMachine:protected] => CRM_Core_StateMachine Object
*RECURSION*
)
)
[_pages:protected] => Array
(
[CRM_Admin_Form_Extensions] =>
)
[_pageNames:protected] => Array
(
[0] => Extensions
)
[_action:protected] => 0
[_name:protected] =>
)
[_embedded:protected] => 1
[_skipRedirection:protected] =>
[_print] => 0
[_generateQFKey] => 1
[_QFResponseType] => html
[_parent:protected] =>
[_destination] =>
[_entryURL] =>
[_pages] => Array
(
[Extensions] => CRM_Admin_Form_Extensions Object
*RECURSION*
)
[_actions] => Array
(
[Extensions] => HTML_QuickForm_Action_Direct Object
(
)
[display] => CRM_Core_QuickForm_Action_Display Object
(
[_stateMachine:protected] => CRM_Core_StateMachine Object
(
[_controller:protected] => CRM_Core_Controller_Simple Object
*RECURSION*
[_states:protected] => Array
(
[Extensions] => CRM_Core_State Object
(
[_name:protected] => Extensions
[_type:protected] => 3
[_back:protected] =>
[_next:protected] =>
[_stateMachine:protected] => CRM_Core_StateMachine Object
*RECURSION*
)
)
[_pages:protected] => Array
(
[CRM_Admin_Form_Extensions] =>
)
[_pageNames:protected] => Array
(
[0] => Extensions
)
[_action:protected] => 0
[_name:protected] =>
)
)
[next] => CRM_Core_QuickForm_Action_Next Object
(
[_stateMachine:protected] => CRM_Core_StateMachine Object
(
[_controller:protected] => CRM_Core_Controller_Simple Object
*RECURSION*
[_states:protected] => Array
(
[Extensions] => CRM_Core_State Object
(
[_name:protected] => Extensions
[_type:protected] => 3
[_back:protected] =>
[_next:protected] =>
[_stateMachine:protected] => CRM_Core_StateMachine Object
*RECURSION*
)
)
[_pages:protected] => Array
(
[CRM_Admin_Form_Extensions] =>
)
[_pageNames:protected] => Array
(
[0] => Extensions
)
[_action:protected] => 0
[_name:protected] =>
)
)
[back] => CRM_Core_QuickForm_Action_Back Object
(
[_stateMachine:protected] => CRM_Core_StateMachine Object
(
[_controller:protected] => CRM_Core_Controller_Simple Object
*RECURSION*
[_states:protected] => Array
(
[Extensions] => CRM_Core_State Object
(
[_name:protected] => Extensions
[_type:protected] => 3
[_back:protected] =>
[_next:protected] =>
[_stateMachine:protected] => CRM_Core_StateMachine Object
*RECURSION*
)
)
[_pages:protected] => Array
(
[CRM_Admin_Form_Extensions] =>
)
[_pageNames:protected] => Array
(
[0] => Extensions
)
[_action:protected] => 0
[_name:protected] =>
)
)
[process] => CRM_Core_QuickForm_Action_Process Object
(
[_stateMachine:protected] => CRM_Core_StateMachine Object
(
[_controller:protected] => CRM_Core_Controller_Simple Object
*RECURSION*
[_states:protected] => Array
(
[Extensions] => CRM_Core_State Object
(
[_name:protected] => Extensions
[_type:protected] => 3
[_back:protected] =>
[_next:protected] =>
[_stateMachine:protected] => CRM_Core_StateMachine Object
*RECURSION*
)
)
[_pages:protected] => Array
(
[CRM_Admin_Form_Extensions] =>
)
[_pageNames:protected] => Array
(
[0] => Extensions
)
[_action:protected] => 0
[_name:protected] =>
)
)
[cancel] => CRM_Core_QuickForm_Action_Cancel Object
(
[_stateMachine:protected] => CRM_Core_StateMachine Object
(
[_controller:protected] => CRM_Core_Controller_Simple Object
*RECURSION*
[_states:protected] => Array
(
[Extensions] => CRM_Core_State Object
(
[_name:protected] => Extensions
[_type:protected] => 3
[_back:protected] =>
[_next:protected] =>
[_stateMachine:protected] => CRM_Core_StateMachine Object
*RECURSION*
)
)
[_pages:protected] => Array
(
[CRM_Admin_Form_Extensions] =>
)
[_pageNames:protected] => Array
(
[0] => Extensions
)
[_action:protected] => 0
[_name:protected] =>
)
)
[refresh] => CRM_Core_QuickForm_Action_Refresh Object
(
[_stateMachine:protected] => CRM_Core_StateMachine Object
(
[_controller:protected] => CRM_Core_Controller_Simple Object
*RECURSION*
[_states:protected] => Array
(
[Extensions] => CRM_Core_State Object
(
[_name:protected] => Extensions
[_type:protected] => 3
[_back:protected] =>
[_next:protected] =>
[_stateMachine:protected] => CRM_Core_StateMachine Object
*RECURSION*
)
)
[_pages:protected] => Array
(
[CRM_Admin_Form_Extensions] =>
)
[_pageNames:protected] => Array
(
[0] => Extensions
)
[_action:protected] => 0
[_name:protected] =>
)
)
[reload] => CRM_Core_QuickForm_Action_Reload Object
(
[_stateMachine:protected] => CRM_Core_StateMachine Object
(
[_controller:protected] => CRM_Core_Controller_Simple Object
*RECURSION*
[_states:protected] => Array
(
[Extensions] => CRM_Core_State Object
(
[_name:protected] => Extensions
[_type:protected] => 3
[_back:protected] =>
[_next:protected] =>
[_stateMachine:protected] => CRM_Core_StateMachine Object
*RECURSION*
)
)
[_pages:protected] => Array
(
[CRM_Admin_Form_Extensions] =>
)
[_pageNames:protected] => Array
(
[0] => Extensions
)
[_action:protected] => 0
[_name:protected] =>
)
)
[done] => CRM_Core_QuickForm_Action_Done Object
(
[_stateMachine:protected] => CRM_Core_StateMachine Object
(
[_controller:protected] => CRM_Core_Controller_Simple Object
*RECURSION*
[_states:protected] => Array
(
[Extensions] => CRM_Core_State Object
(
[_name:protected] => Extensions
[_type:protected] => 3
[_back:protected] =>
[_next:protected] =>
[_stateMachine:protected] => CRM_Core_StateMachine Object
*RECURSION*
)
)
[_pages:protected] => Array
(
[CRM_Admin_Form_Extensions] =>
)
[_pageNames:protected] => Array
(
[0] => Extensions
)
[_action:protected] => 0
[_name:protected] =>
)
)
[jump] => CRM_Core_QuickForm_Action_Jump Object
(
[_stateMachine:protected] => CRM_Core_StateMachine Object
(
[_controller:protected] => CRM_Core_Controller_Simple Object
*RECURSION*
[_states:protected] => Array
(
[Extensions] => CRM_Core_State Object
(
[_name:protected] => Extensions
[_type:protected] => 3
[_back:protected] =>
[_next:protected] =>
[_stateMachine:protected] => CRM_Core_StateMachine Object
*RECURSION*
)
)
[_pages:protected] => Array
(
[CRM_Admin_Form_Extensions] =>
)
[_pageNames:protected] => Array
(
[0] => Extensions
)
[_action:protected] => 0
[_name:protected] =>
)
)
[submit] => CRM_Core_QuickForm_Action_Submit Object
(
[_stateMachine:protected] => CRM_Core_StateMachine Object
(
[_controller:protected] => CRM_Core_Controller_Simple Object
*RECURSION*
[_states:protected] => Array
(
[Extensions] => CRM_Core_State Object
(
[_name:protected] => Extensions
[_type:protected] => 3
[_back:protected] =>
[_next:protected] =>
[_stateMachine:protected] => CRM_Core_StateMachine Object
*RECURSION*
)
)
[_pages:protected] => Array
(
[CRM_Admin_Form_Extensions] =>
)
[_pageNames:protected] => Array
(
[0] => Extensions
)
[_action:protected] => 0
[_name:protected] =>
)
)
[upload] => CRM_Core_QuickForm_Action_Upload Object
(
[_uploadNames:protected] => Array
(
[0] => attachFile_1
[1] => attachFile_2
[2] => attachFile_3
[3] => uploadFile
)
[_uploadDir:protected] => /path/to/wp-content/plugins/files/civicrm/upload/
[_stateMachine:protected] => CRM_Core_StateMachine Object
(
[_controller:protected] => CRM_Core_Controller_Simple Object
*RECURSION*
[_states:protected] => Array
(
[Extensions] => CRM_Core_State Object
(
[_name:protected] => Extensions
[_type:protected] => 3
[_back:protected] =>
[_next:protected] =>
[_stateMachine:protected] => CRM_Core_StateMachine Object
*RECURSION*
)
)
[_pages:protected] => Array
(
[CRM_Admin_Form_Extensions] =>
)
[_pageNames:protected] => Array
(
[0] => Extensions
)
[_action:protected] => 0
[_name:protected] =>
)
)
)
[_name] => CRM_Admin_Form_Extensions_926b1c386f5b9c64184e995104741f62_6496
[_modal] => 1
[_actionName] => Array
(
[0] => Extensions
[1] => next
)
)
[_chainSelectFields:CRM_Core_Form:private] => Array
(
)
[_actions] => Array
(
)
[_formBuilt] => 1
[_elements] => Array
(
)
[_elementIndex] => Array
(
)
[_duplicateIndex] => Array
(
)
[_required] => Array
(
)
[_jsPrefix] => Invalid information entered.
[_jsPostfix] => Please correct these fields.
[_datasource] =>
[_defaultValues] => Array
(
)
[_constantValues] => Array
(
)
[_submitValues] => Array
(
[qfKey] => 926b1c386f5b9c64184e995104741f62_6496
[_qf_default] => Extensions:next
[_qf_Extensions_next] => Install
)
[_submitFiles] => Array
(
)
[_maxFileSize] => 41943040
[_freezeAll] =>
[_rules] => Array
(
)
[_formRules] => Array
(
)
[_errors] => Array
(
)
[_requiredNote] => <span style="font-size:80%; color:#ff0000;">*</span><span style="font-size:80%;"> denotes required field</span>
[_flagSubmitted] => 1
[_attributes] => Array
(
[action] => https://domain.org/wp-admin/admin.php?page=CiviCRM&q=civicrm/admin/extensions
[method] => post
[name] => Extensions
[id] => Extensions
[class] => CRM_Admin_Form_Extensions
)
[_tabOffset] => 0
[_tab] =>
[_lineEnd] =>
[_comment] =>
[_key] =>
)
```
So, somewhere at some point, the `_key` property is not being set.
@totten Can you suggest how I might be able to pinpoint what's going on?
## Excerpt 3
(*From Christian*)
@totten A little more info: when Memcached is *not* being used, the URL sequence is as follows:
* The "Install" page is: https://domain.org/wp-admin/admin.php?page=CiviCRM&q=civicrm%2Fadmin%2Fextensions&action=add&id=org.civicrm.shoreditch&key=org.civicrm.shoreditch
* The resulting location is: https://domain.org/wp-admin/admin.php?page=CiviCRM&q=civicrm%2Fadmin%2Fextensions&reset=1&action=browse
When Memcached *is* being used:
* The "Install" page is: https://domain.org/wp-admin/admin.php?page=CiviCRM&q=civicrm%2Fadmin%2Fextensions&action=add&id=org.civicrm.shoreditch&key=org.civicrm.shoreditch
* The resulting location is: https://domain.org/wp-admin/admin.php?page=CiviCRM&q=civicrm%2Fadmin%2Fextensions
As I said, I'll happily test further given pointers as to where to keep digging.
------
## Excerpt 4
(*From totten via Mattermost*)
@haystack on a brief skim, it seems like the target extension-key should be passed through page arguments, but the pageflow there is a little tricky (so brief skim may be miselading). Maybe a quirk in session-mgmt could be the issue? (Ex: memcache prematurely purges session-state). Would be interesting to see:
1. With memcache active -- do the extensions install via CLI? (e.g. `wp civicrm-api extension.install key=org.civicrm.shoreditch` or `cv en shoreditch`)
2. With memcache active -- does the gui installer work when [if sessions are stored in sql - but otherwise the system uses memcache](https://gist.github.com/totten/1e90a48da78f518931f34c709df83c13) ?
If #2 works, I'd take that as a signal that memcache isn't reliably storing session state.
If #2 doesn't make a difference, then #1 might be interesting.5.5.0https://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/319Advanced search export: when location types' display names are different from...2018-08-27T01:41:01ZnoahAdvanced search export: when location types' display names are different from their machine names, empty columns are exportedEDITED to be more accurate following further investigation into the symptoms.
This is a regression in the last couple versions of Civi (I see it on 5.3.1 and 5.4.0, as well as 5.5-rc and master).
**Summary:** When exporting from advanc...EDITED to be more accurate following further investigation into the symptoms.
This is a regression in the last couple versions of Civi (I see it on 5.3.1 and 5.4.0, as well as 5.5-rc and master).
**Summary:** When exporting from advanced search, if you select email/phone/address fields to export _where the location type's display name is different from its machine name_, the headers for those columns will be included in the export, but the cells in those columns will be blank.
**To reproduce:**
1. Create a location type called "Field Office" with machine name "FieldOffice" or "FO"
1. Create a contact with a "Field Office" email.
1. Find that contact using advanced search and select the "export" task.
1. Select "Individual - Email - Field Office" as a field to export.
1. In the resulting CSV, there's a blank cell where the email address should be.
**Notes:** I also notice:
* the columns in the export are not in the same order as on the export column selection screen.
* exporting from Search Builder has a similar-but-different problem: if two location types are selected for export, only one of the columns will successfully be exported.
I see that quite a bit of work has gone into the Export code in recent releases and I suspect this regression happened as a result.
I'm interested in creating tests for this but I'd need someone to hold my hand through the process, as I have no recent experience doing that.5.5.0https://lab.civicrm.org/dev/core/-/issues/292Search builder stops working after 5.3.1 (due accents on custom set fields ti...2019-02-05T22:12:59ZfrancescbassasSearch builder stops working after 5.3.1 (due accents on custom set fields titles)After 5.3.1 upgrade Search Builder jQuery interaction stops working. I could find the reason, seems that custom set title with accents break the Search Builder form.
How to test?
On dmaster go to https://dmaster.demo.civicrm.org/civicrm...After 5.3.1 upgrade Search Builder jQuery interaction stops working. I could find the reason, seems that custom set title with accents break the Search Builder form.
How to test?
On dmaster go to https://dmaster.demo.civicrm.org/civicrm/admin/custom/group?reset=1 and edit a custom set title for example with "CancelaciĆ³n SuscripciĆ³n" and save it. Then go to https://dmaster.demo.civicrm.org/civicrm/contact/search/builder?reset=1 and select some -record type- you will notice that no type of operator related to the selected type is suggested.
On the browser console appears this error:
![search-builder-break](/uploads/705047a221ee4fce997ade35a44e645d/search-builder-break.png)5.5.0https://lab.civicrm.org/dev/core/-/issues/289CiviCase Dashboard link to edit an activity status broken2018-11-09T20:25:39ZGMCVO DatabasesCiviCase Dashboard link to edit an activity status brokenThere is a bug with the CiviCase dashboard
When you click to edit the case activity pencil it crashes with 'required params missing'
Also replicated on the demo site https://dmaster.demo.civicrm.org/civicrm/case?reset=1There is a bug with the CiviCase dashboard
When you click to edit the case activity pencil it crashes with 'required params missing'
Also replicated on the demo site https://dmaster.demo.civicrm.org/civicrm/case?reset=15.5.0https://lab.civicrm.org/dev/core/-/issues/277Recurring contribution tab shouldn't count test transactions2018-07-31T22:12:11ZPradeep Nayakpradpnayak@gmail.comRecurring contribution tab shouldn't count test transactions![Screenshot_from_2018-07-24_13-27-48](/uploads/4ec1bca56c36f0c71cf2b7694662bde6/Screenshot_from_2018-07-24_13-27-48.png)
PR at https://github.com/civicrm/civicrm-core/pull/12553![Screenshot_from_2018-07-24_13-27-48](/uploads/4ec1bca56c36f0c71cf2b7694662bde6/Screenshot_from_2018-07-24_13-27-48.png)
PR at https://github.com/civicrm/civicrm-core/pull/125535.5.0https://lab.civicrm.org/dev/core/-/issues/273"Recipient phone number is invalid or recipient does not want to receive SMS"...2018-08-18T21:44:11Zjyothi"Recipient phone number is invalid or recipient does not want to receive SMS" error and Contacts with DoNotSms preference failing to filter out during Mass Sms in 5.x"Recipient phone number is invalid or recipient does not want to receive SMS" error occurs during individual SMS. https://civicrm.stackexchange.com/questions/25478/clickatell-sms-recipient-phone-number-is-invalid-or-recipient-does-not-wa..."Recipient phone number is invalid or recipient does not want to receive SMS" error occurs during individual SMS. https://civicrm.stackexchange.com/questions/25478/clickatell-sms-recipient-phone-number-is-invalid-or-recipient-does-not-want-to.
Contacts marked as 'donotsms' is not filtered out during mass SMS.5.5.0https://lab.civicrm.org/dev/core/-/issues/259OptionGroup Admin UI workflow improvements2018-12-18T12:16:03Zmattwiremjw@mjwconsult.co.ukOptionGroup Admin UI workflow improvementsVarious improvements to the "flow" of the option groups admin pages.
Before
----------------------------------------
* No option to edit option group settings (eg. change the label).
* When clicking "Done" editing options, redirect to t...Various improvements to the "flow" of the option groups admin pages.
Before
----------------------------------------
* No option to edit option group settings (eg. change the label).
* When clicking "Done" editing options, redirect to the option groups list instead of the default admin page.
After
----------------------------------------
* Add option to edit option group settings (the code was already in place, but not exposed in UI).
* Display "is_reserved" status on option group settings.
* Don't allow changing data type on reserved option groups.
* On update optiongroup don't touch is_reserved.
![localhost_8000_civicrm_admin_options_action browse reset 1 4](https://user-images.githubusercontent.com/2052161/42726000-43ca3642-8785-11e8-9ea3-d0228ceb558e.png)
![localhost_8000_civicrm_admin_options_action browse reset 1 5](https://user-images.githubusercontent.com/2052161/42726002-48fc8520-8785-11e8-9ebc-9267444e510f.png)
* When clicking "Done" editing options, redirect to the option groups list instead of the default admin page.
![localhost_8000_civicrm_admin_options_action browse reset 1 6](https://user-images.githubusercontent.com/2052161/42726010-6995ac9e-8785-11e8-8823-111f71f52d07.png)
Technical Details
----------------------------------------
UI only changes that enable editing option groups parameters.
Comments
----------------------------------------
If you are working with multiple option groups, the UI has always been a bit difficult to navigate and various functions are not possible via the UI (such as changing the label of an option group).
PR: https://github.com/civicrm/civicrm-core/pull/124735.5.0https://lab.civicrm.org/dev/core/-/issues/255Changes to copied event location reflects in original event location2019-02-05T04:25:52ZyashodhaChanges to copied event location reflects in original event locationSteps to replicate:
1. Create an event X with location A.
2. Create copy of event X say Y and go to location tab for event Y (which will now show location A).
3. Click *Create new location* radio and then click *Use existing location*, ...Steps to replicate:
1. Create an event X with location A.
2. Create copy of event X say Y and go to location tab for event Y (which will now show location A).
3. Click *Create new location* radio and then click *Use existing location*, choose option B.
4. Check event X also has location B.5.5.0yashodhayashodhahttps://lab.civicrm.org/dev/core/-/issues/242Fix display of premiums on contribution pages2018-07-24T05:11:10Zmattwiremjw@mjwconsult.co.ukFix display of premiums on contribution pagesPR Ref: https://github.com/civicrm/civicrm-core/pull/12437
If a premium product is created with no financial type and then added to a contribution page it is not displayed because the contribution page is only selecting those with a fin...PR Ref: https://github.com/civicrm/civicrm-core/pull/12437
If a premium product is created with no financial type and then added to a contribution page it is not displayed because the contribution page is only selecting those with a financial type, but financial type is optional unless you have configured a cost for the product.
Furthermore, if you update the premium product to have a financial type that is not mirrored to the civicrm_premium_product table which contains the configuration for the premium products available on a contribution page.5.5.0https://lab.civicrm.org/dev/core/-/issues/241Fix Manage Premiums UI2018-07-12T23:12:09Zmattwiremjw@mjwconsult.co.ukFix Manage Premiums UIRef: https://github.com/civicrm/civicrm-core/pull/12436
Manage premiums UI was not displaying the financial type correctly (it was showing the ID). The PR does the following:
1. Enable pseudoconstant for financial_type_id.
2. Use pseud...Ref: https://github.com/civicrm/civicrm-core/pull/12436
Manage premiums UI was not displaying the financial type correctly (it was showing the ID). The PR does the following:
1. Enable pseudoconstant for financial_type_id.
2. Use pseudoconstant functions to get the financial_type label (name) for display.
3. Format the money fields using crmMoney.
4. Add the cost field to the UI (normally I'd do this as a separate PR but it would be more work to break out the template changes and given how flaky/old the premiums code seems to be I suspect it's not actually being used by very many people - also it's only affecting an admin screen by displaying existing information).5.5.0https://lab.civicrm.org/dev/core/-/issues/230Saved Search : Set Mapping id to null on mapping delete2018-11-18T20:56:51ZsunilSaved Search : Set Mapping id to null on mapping deletecivicrm_saved_search -> mapping_id is FOREIGN key REFERENCES of civicrm_mapping (id).
When mapping have reference with saved search table. while deleting the mapping get SQL Error.civicrm_saved_search -> mapping_id is FOREIGN key REFERENCES of civicrm_mapping (id).
When mapping have reference with saved search table. while deleting the mapping get SQL Error.5.5.0https://lab.civicrm.org/dev/core/-/issues/228Option group disabled on update2018-07-11T00:47:58ZajesamsonOption group disabled on updateWhen updating option group attributes (excluding `is_active`), the updated option group gets disabled. This is because option group was [defaulted](https://github.com/civicrm/civicrm-core/blob/master/CRM/Core/BAO/OptionGroup.php#L95) to ...When updating option group attributes (excluding `is_active`), the updated option group gets disabled. This is because option group was [defaulted](https://github.com/civicrm/civicrm-core/blob/master/CRM/Core/BAO/OptionGroup.php#L95) to `FALSE` when adding or updating record without specifying desired `is_active` status.
![option_group](/uploads/d8291f18e46149d5852335749ca473e3/option_group.gif)
The desired result would have been leaving the `is_active` status untouched, if not required to be updated during attributes update.5.5.0https://lab.civicrm.org/dev/core/-/issues/223Expose prefix and suffix in reports2018-07-24T00:24:18ZyashodhaExpose prefix and suffix in reportsAdd prefix and suffix to *getContactColumns* method.Add prefix and suffix to *getContactColumns* method.5.5.0yashodhayashodhahttps://lab.civicrm.org/dev/core/-/issues/219Improve consistency displaying "Test Transactions"2018-07-24T19:41:11Zmattwiremjw@mjwconsult.co.ukImprove consistency displaying "Test Transactions"There are currently a number of inconsistencies with displaying test transactions:
1. There is either no indication, or it is not obvious that you are viewing a test contribution/recur/membership when viewing the details.
2. Test members...There are currently a number of inconsistencies with displaying test transactions:
1. There is either no indication, or it is not obvious that you are viewing a test contribution/recur/membership when viewing the details.
2. Test memberships do not appear in the contact membership tab, but test contributions/recurring contributions do.
Proposal:
1. Add some "help" text that appears above the entity detail when viewing the entity if it is a test transaction.
2. Show test memberships in contact membership tab so it is consistent with other tabs.5.5.0https://lab.civicrm.org/dev/core/-/issues/218On Case Type listing page, for reserved ones the, 'More' link doesn't show an...2018-07-09T22:42:08ZMonish DebOn Case Type listing page, for reserved ones the, 'More' link doesn't show any optionsSteps to replicate:
1. Enable CiviCase component.
2. Go to Administer >> CiviCase >> Case Types
3. Click on 'More' action against any reserved Case type
![test-multiple-before](/uploads/c14d32b041c69c2b9c1941615214d1ac/test-multiple-befo...Steps to replicate:
1. Enable CiviCase component.
2. Go to Administer >> CiviCase >> Case Types
3. Click on 'More' action against any reserved Case type
![test-multiple-before](/uploads/c14d32b041c69c2b9c1941615214d1ac/test-multiple-before.gif)
**Proposal**:
Show the 'More' action only when
1. the case type is not reserved because then you have 'Delete' and Enable/Disable action OR
2. If case-type is reserved then show the more action only if the case-type is forked and/or disable, because then you got 'Revert' and/or 'Enable' option to show5.5.0Monish DebMonish Debhttps://lab.civicrm.org/dev/core/-/issues/210Regex filter broken in Search Builder2018-07-24T22:41:10ZMonish DebRegex filter broken in Search BuilderIt would appear that the Regular Expression option in Search builder is broken. This can be reproduced by doing a search builder with the regex expression of [A-Z]{2}$ for the first name. It will pull up any contact that has 2 letters. T...It would appear that the Regular Expression option in Search builder is broken. This can be reproduced by doing a search builder with the regex expression of [A-Z]{2}$ for the first name. It will pull up any contact that has 2 letters. This is because the regular expression gets transformed into lower case and also REGEXP / RLIKE isn't case sensitive by default unless used with the word BINARY
Original issue: https://issues.civicrm.org/jira/browse/CRM-216175.5.0Monish DebMonish Deb