CiviCRM Core issueshttps://lab.civicrm.org/dev/core/-/issues2020-09-22T22:47:09Zhttps://lab.civicrm.org/dev/core/-/issues/2030Dropdown for country seems to have reverted to a regular select instead of se...2020-09-22T22:47:09ZDaveDDropdown for country seems to have reverted to a regular select instead of select2Meant to record this earlier and forgot. For example on a contribution page the country dropdown is a regular select. It all works though.
I think it reverted around 5.27-ish.Meant to record this earlier and forgot. For example on a contribution page the country dropdown is a regular select. It all works though.
I think it reverted around 5.27-ish.5.31.0https://lab.civicrm.org/dev/core/-/issues/1980Add Line Item v4 API2020-09-10T19:29:08ZeileenAdd Line Item v4 APIIn order to do this there is some preliminary work to do as the v3 api has handling that needs to be unpacked first. In general there are 2 parts
1) Get & Delete - the goal here is to use a more conventional hook to do this in financial...In order to do this there is some preliminary work to do as the v3 api has handling that needs to be unpacked first. In general there are 2 parts
1) Get & Delete - the goal here is to use a more conventional hook to do this in financialacls core extension
2) Create - not too sure what this stuff is doing yet....5.31.0https://lab.civicrm.org/dev/core/-/issues/1973Email & Phone storage issues in event location2020-09-18T01:07:09ZjitendraEmail & Phone storage issues in event location**Email** - Second field value cannot be saved on form submit.
To replicate -
- Navigate to Event -> Location tab - https://dmaster.demo.civicrm.org/civicrm/event/manage/location?reset=1&action=update&id=3
- Enter a value for the secon...**Email** - Second field value cannot be saved on form submit.
To replicate -
- Navigate to Event -> Location tab - https://dmaster.demo.civicrm.org/civicrm/event/manage/location?reset=1&action=update&id=3
- Enter a value for the second email field and save. The second field is empty after the form is submitted. And Email2 value is displayed on the first email field
**Phone**: Every time the Location form is submitted, a new row is inserted in phone table even if it already exist.
To replicate -
- Navigate to Event -> Location tab - https://dmaster.demo.civicrm.org/civicrm/event/manage/location?reset=1&action=update&id=3
- Fill both the phone numbers and save.
- Re-save the form without changing any value. 2 new duplicate rows have been inserted in `civicrm_phone` table.
- This happens on every submission of the Location form.
Reverting https://github.com/civicrm/civicrm-core/pull/13534/files fixes both the above issues.5.31.0https://lab.civicrm.org/dev/core/-/issues/3336Membership status does not get updated during membership import when status o...2022-04-22T16:17:36ZandrewcormickdockeryMembership status does not get updated during membership import when status override is setMembership statuses are not updated during import to a non-rule based status even when status override is set.
To reproduce:
1. Use Memberships/Import Memberships to import a CSV file (example below)
2. Choose Contact Type individual, ...Membership statuses are not updated during import to a non-rule based status even when status override is set.
To reproduce:
1. Use Memberships/Import Memberships to import a CSV file (example below)
2. Choose Contact Type individual, Update existing memberships
3. When choosing a field mapping, make sure to match on Membership ID, Membership Type and Membership Start Date
4. Import file should contain columns for Membership Status and Membership Status Override (in the example below, I chose a non-rule based status "Deceased" plus Membership Status Override of 1)
5. Start import. Import indicates success on the screen.
6. Check records. Note that Membership Status Override is set correctly, however the Membership Status remains at the rule-based status and is not changed to the indicated non-rule status.
Example CSV:
```
Membership ID,Member Since,Membership Start Date,Membership Type,Membership Status,Status Override,First Name,Last Name
1,2016-09-11,2016-09-11,General,Deceased,1,Iris,Lee
3,2016-09-09,2016-09-09,General,Deceased,1,Lincoln,Zope
7,2016-09-05,2016-09-05,General,Deceased,1,Ray,Jones
9,2016-09-03,2016-09-03,General,Deceased,1,Nicole,Ivanov
```
We have noticed this regression in the following Civi versions 5.28.3, 5.29.1 and 5.31.beta1. It was working as expected in Civi version 5.24.3.5.31.0https://lab.civicrm.org/dev/core/-/issues/2167Fulltext search drupal block has Go button on the wrong side2020-11-05T22:15:39ZDaveDFulltext search drupal block has Go button on the wrong sideThis is technically a regression from the button changes in 5.31, but everything still works.
Civi makes a drupal block available that you can place in any block region to access the fulltext search no matter what screen you're on. It h...This is technically a regression from the button changes in 5.31, but everything still works.
Civi makes a drupal block available that you can place in any block region to access the fulltext search no matter what screen you're on. It has a "Go" button that is now floating left.
I debated whether to try to fix the float or just move it to the bottom into its own buttons row. I'm leaning to moving because I believe the word "Go" was chosen to save space to fit it all on one line, but this doesn't work in all languages anyway.5.31.0https://lab.civicrm.org/dev/core/-/issues/2154Fulltext search warning about deprecated attributes to CRM_Core_Form::add()2020-10-31T01:11:48ZDaveDFulltext search warning about deprecated attributes to CRM_Core_Form::add()Search - Custom Searches - Full Text Search
The deprecated part is from the CRM_Core_Form::add() change in 5.31, but is also surfacing a bug where the intention seems to have been to make the field required but was passing it in the wro...Search - Custom Searches - Full Text Search
The deprecated part is from the CRM_Core_Form::add() change in 5.31, but is also surfacing a bug where the intention seems to have been to make the field required but was passing it in the wrong parameter.
Also the styling on the form is weird. I think it's probably from something in 5.31.5.31.0https://lab.civicrm.org/dev/core/-/issues/2149For countries without a province N/A is not accepted as a state in a profile2020-11-01T21:07:07ZStoobFor countries without a province N/A is not accepted as a state in a profileTake for example Singapore or Monaco.
A form can be submitted for the Billing Block with these Countries without a State (N/A is selected) but the same is not true for a Profile.
The attachment will illustrate.
[singapore-profile.pdf]...Take for example Singapore or Monaco.
A form can be submitted for the Billing Block with these Countries without a State (N/A is selected) but the same is not true for a Profile.
The attachment will illustrate.
[singapore-profile.pdf](/uploads/5c0f195c42c2df4329ff9a05f9559728/singapore-profile.pdf)
![singapore](/uploads/5c06891671559b82319a663823794802/singapore.png)5.31.0https://lab.civicrm.org/dev/core/-/issues/2147IN operator not working in Search2020-11-02T05:46:11ZedvanleeuwenIN operator not working in SearchOverview
----------------------------------------
When selecting multiple groups in contact search, I should get all the contacts of the groups combined. Now, only the contacts of the first group are displayed.
_If you have already post...Overview
----------------------------------------
When selecting multiple groups in contact search, I should get all the contacts of the groups combined. Now, only the contacts of the first group are displayed.
_If you have already posted on https://civicrm.stackexchange.com or https://chat.civicrm.org, please include the link to that conversation._
Reproduction steps
----------------------------------------
1. Click on **Contacts -> Search**.
1. Select **in** and choose more than one group.
1. Only the contacts of the first group chosen are displayed.
Current behaviour
----------------------------------------
_What happens currently. Please provide error messages, screenshots or gifs ([LICEcap](http://www.cockos.com/licecap/), [SilentCast](https://github.com/colinkeenan/silentcast)) where appropriate._
When selecting multiple groups in contact search, I get only the contacts of the first group.
Expected behaviour
----------------------------------------
When selecting multiple groups in contact search, I should get all the contacts of the groups combined.
Environment information
----------------------------------------
<!-- Some of the items below may not be relevant for every bug - if in doubt please include more information than you think is neccessary. -->
* __Browser:__ _Edge_
* __CiviCRM:__ _5.30_ <!-- If this problem relates to an upgrade, then specify both old and new versions -->
* __PHP:__ _7.4__
* __CMS:__ _Drupal 7_
* __Database:__ _MariaDB 10.4_
* __Web Server:__ _Apache 2.4_
Comments
----------------------------------------
I have verified and recreated the problem on the demo site.5.31.0https://lab.civicrm.org/dev/core/-/issues/2143Custom Searches in events fail after 5.30.x upgrade2020-10-27T02:46:00ZspalmstromCustom Searches in events fail after 5.30.x upgradeOverview
----------------------------------------
_Please describe your problem or bug in detail._
After upgrading to CiviCRM 5.30 under Joomla, event based custom searches fail with: *DB Error: value count on row* and a stack trace. I...Overview
----------------------------------------
_Please describe your problem or bug in detail._
After upgrading to CiviCRM 5.30 under Joomla, event based custom searches fail with: *DB Error: value count on row* and a stack trace. I have a development Drupal instance, but that failed to run CiviCRM after the update and I haven't managed to resolve that issue.
It is running under IIS, but we also see it under Linux.
Reproduction steps
----------------------------------------
1. Click on **Search** and select **Custom Searches**
1. Click on **Event Aggregate**
1. Select an event
1. Click **Search**
Current behaviour
----------------------------------------
_What happens currently. Please provide error messages, screenshots or gifs ([LICEcap](http://www.cockos.com/licecap/), [SilentCast](https://github.com/colinkeenan/silentcast)) where appropriate._
Stack trace:
```
#0 <Joomla directory>\administrator\components\com_civicrm\civicrm\CRM\Core\Error.php(148): CRM_Core_Error::backtrace()
#1 <Joomla directory>\administrator\components\com_civicrm\civicrm\vendor\pear\pear-core-minimal\src\PEAR.php(922): CRM_Core_Error::handle(Object(DB_Error))
#2 <Joomla directory>\administrator\components\com_civicrm\civicrm\packages\DB.php(997): PEAR_Error->__construct("DB Error: value count on row", -22, 16, (Array:2), "\nINSERT INTO civicrm_prevnext_cache (cachekey, entity_id1, data)\n\n ...")
#3 <Joomla directory>\administrator\components\com_civicrm\civicrm\vendor\pear\pear-core-minimal\src\PEAR.php(575): DB_Error->__construct(-22, 16, (Array:2), "\nINSERT INTO civicrm_prevnext_cache (cachekey, entity_id1, data)\n\n ...")
#4 <Joomla directory>\administrator\components\com_civicrm\civicrm\vendor\pear\pear-core-minimal\src\PEAR.php(223): PEAR::_raiseError(Object(DB_mysqli), NULL, -22, 16, (Array:2), "\nINSERT INTO civicrm_prevnext_cache (cachekey, entity_id1, data)\n\n ...", "DB_Error", TRUE)
#5 <Joomla directory>\administrator\components\com_civicrm\civicrm\packages\DB\common.php(1920): PEAR->__call("raiseError", (Array:7))
#6 <Joomla directory>\administrator\components\com_civicrm\civicrm\packages\DB\mysqli.php(936): DB_common->raiseError(-22, NULL, NULL, "\nINSERT INTO civicrm_prevnext_cache (cachekey, entity_id1, data)\n\n ...", "1136 ** Column count doesn't match value count at row 1")
#7 <Joomla directory>\administrator\components\com_civicrm\civicrm\packages\DB\mysqli.php(406): DB_mysqli->mysqliRaiseError()
#8 <Joomla directory>\administrator\components\com_civicrm\civicrm\packages\DB\common.php(1229): DB_mysqli->simpleQuery("\nINSERT INTO civicrm_prevnext_cache (cachekey, entity_id1, data)\n\n ...")
#9 <Joomla directory>\administrator\components\com_civicrm\civicrm\packages\DB\DataObject.php(2696): DB_common->query("\nINSERT INTO civicrm_prevnext_cache (cachekey, entity_id1, data)\n\n ...")
#10 <Joomla directory>\administrator\components\com_civicrm\civicrm\packages\DB\DataObject.php(1829): DB_DataObject->_query("\nINSERT INTO civicrm_prevnext_cache (cachekey, entity_id1, data)\n\n ...")
#11 <Joomla directory>\administrator\components\com_civicrm\civicrm\CRM\Core\DAO.php(445): DB_DataObject->query("\nINSERT INTO civicrm_prevnext_cache (cachekey, entity_id1, data)\n\n ...")
#12 <Joomla directory>\administrator\components\com_civicrm\civicrm\CRM\Core\DAO.php(1551): CRM_Core_DAO->query("\nINSERT INTO civicrm_prevnext_cache (cachekey, entity_id1, data)\n\n ...", TRUE)
#13 <Joomla directory>\administrator\components\com_civicrm\civicrm\CRM\Core\PrevNextCache\Sql.php(43): CRM_Core_DAO::executeQuery("\nINSERT INTO civicrm_prevnext_cache (cachekey, entity_id1, data)\n\n ...", (Array:0), FALSE)
#14 <Joomla directory>\administrator\components\com_civicrm\civicrm\CRM\Contact\Selector.php(1047): CRM_Core_PrevNextCache_Sql->fillWithSql("civicrm search f34df2377021b9d0d51da884d5a36bf1372d6d1cf25a00d692664ad719aadc...", "\n SELECT civicrm_participant.event_id as event_id,\n COUNT(civ...")
#15 <Joomla directory>\administrator\components\com_civicrm\civicrm\CRM\Contact\Selector.php(909): CRM_Contact_Selector->fillupPrevNextCache(Object(CRM_Utils_Sort), "civicrm search f34df2377021b9d0d51da884d5a36bf1372d6d1cf25a00d692664ad719aadc...", 0, 500)
#16 <Joomla directory>\administrator\components\com_civicrm\civicrm\CRM\Contact\Selector\Custom.php(358): CRM_Contact_Selector->buildPrevNextCache(Object(CRM_Utils_Sort))
#17 <Joomla directory>\administrator\components\com_civicrm\civicrm\CRM\Core\Selector\Controller.php(402): CRM_Contact_Selector_Custom->getRows(4, 0, 50, Object(CRM_Utils_Sort), 1, NULL)
#18 <Joomla directory>\administrator\components\com_civicrm\civicrm\CRM\Core\Selector\Controller.php(324): CRM_Core_Selector_Controller->getRows(Object(CRM_Contact_Selector_Controller))
#19 <Joomla directory>\administrator\components\com_civicrm\civicrm\CRM\Contact\Form\Search.php(867): CRM_Core_Selector_Controller->run()
#20 <Joomla directory>\administrator\components\com_civicrm\civicrm\CRM\Contact\Form\Search\Custom.php(157): CRM_Contact_Form_Search->postProcess()
#21 <Joomla directory>\administrator\components\com_civicrm\civicrm\CRM\Core\Form.php(507): CRM_Contact_Form_Search_Custom->postProcess()
#22 <Joomla directory>\administrator\components\com_civicrm\civicrm\CRM\Core\QuickForm\Action\Refresh.php(57): CRM_Core_Form->mainProcess()
#23 <Joomla directory>\administrator\components\com_civicrm\civicrm\packages\HTML\QuickForm\Controller.php(203): CRM_Core_QuickForm_Action_Refresh->perform(Object(CRM_Contact_Form_Search_Custom), "refresh")
#24 <Joomla directory>\administrator\components\com_civicrm\civicrm\packages\HTML\QuickForm\Page.php(103): HTML_QuickForm_Controller->handle(Object(CRM_Contact_Form_Search_Custom), "refresh")
#25 <Joomla directory>\administrator\components\com_civicrm\civicrm\CRM\Core\Controller.php(347): HTML_QuickForm_Page->handle("refresh")
#26 <Joomla directory>\administrator\components\com_civicrm\civicrm\CRM\Core\Invoke.php(312): CRM_Core_Controller->run((Array:4), (Array:0))
#27 <Joomla directory>\administrator\components\com_civicrm\civicrm\CRM\Core\Invoke.php(68): CRM_Core_Invoke::runItem((Array:12))
#28 <Joomla directory>\administrator\components\com_civicrm\civicrm\CRM\Core\Invoke.php(36): CRM_Core_Invoke::_invoke((Array:4))
#29 <Joomla directory>\administrator\components\com_civicrm\civicrm.php(121): CRM_Core_Invoke::invoke((Array:4))
#30 <Joomla directory>\administrator\components\com_civicrm\civicrm.php(40): civicrm_invoke()
#31 <Joomla directory>\libraries\src\Component\ComponentHelper.php(402): require_once("<Joomla directory>\administrator\components\com_civicrm\civicrm.php")
#32 <Joomla directory>\libraries\src\Component\ComponentHelper.php(377): Joomla\CMS\Component\ComponentHelper::executeComponent("<Joomla directory>\administrator/components/com_civicrm/civicrm.php")
#33 <Joomla directory>\libraries\src\Application\AdministratorApplication.php(101): Joomla\CMS\Component\ComponentHelper::renderComponent("com_civicrm")
#34 <Joomla directory>\libraries\src\Application\AdministratorApplication.php(159): Joomla\CMS\Application\AdministratorApplication->dispatch()
#35 <Joomla directory>\libraries\src\Application\CMSApplication.php(196): Joomla\CMS\Application\AdministratorApplication->doExecute()
#36 <Joomla directory>\administrator\index.php(51): Joomla\CMS\Application\CMSApplication->execute()
#37 {main}
```
![image](/uploads/9ddf7a4a28592eaa4e0a986960497142/image.png)
Expected behaviour
----------------------------------------
_What should happen._
Something like:
![image](/uploads/e9361b8bcdcc782ac1398f32cb7adb50/image.png)
Environment information
----------------------------------------
<!-- Some of the items below may not be relevant for every bug - if in doubt please include more information than you think is necessary. -->
* __Browser:__ _Edge_, but probably irrelevant_
* __CiviCRM:__ _5.30.x..._ Upgrading from _5.29.1_ <!-- If this problem relates to an upgrade, then specify both old and new versions -->
* __PHP:__ _7.3.23/7.4.11_ but probably irrelevant
* __CMS:__ _Joomla 3.9.22_ but may be irrelevant
* __Database:__ _MySQL 5.6.40-84.0-log/MySQL 5.7.31-log..._ but probably irrelevant
* __Web Server:__ _Apache/IIS_ but probably irrelevant.
Comments
----------------------------------------
_Anything else you would like the reviewer to note._
I have been attempting to research this, and it appears to be related to how CiviCRM is trying to populate civicrm_prevnext_cache where for the event based searches it is trying to add the wrong number of values. I am reporting it in case someone has a quick fix for the issue.5.31.0https://lab.civicrm.org/dev/core/-/issues/2136Drupal 7 + 9 Groups dont show in edit with version 5.30.12020-10-22T23:29:16ZRar9Drupal 7 + 9 Groups dont show in edit with version 5.30.1![Screenshot_10](/uploads/891ee92f4baa04a58639b60eddc4a7f4/Screenshot_10.jpg)
On from 5.29. to 5.30.0 groups where showing with extra SPAN https://lab.civicrm.org/dev/core/-/issues/2105
Now with last 5.30.1 version the Group keep load...![Screenshot_10](/uploads/891ee92f4baa04a58639b60eddc4a7f4/Screenshot_10.jpg)
On from 5.29. to 5.30.0 groups where showing with extra SPAN https://lab.civicrm.org/dev/core/-/issues/2105
Now with last 5.30.1 version the Group keep loading and dont display at all anymore.
This is valid for druapl 7 php 7.3x and drupal 9 php 7.4x5.31.0https://lab.civicrm.org/dev/core/-/issues/2118All my newly created contacts are from Afghanistan2020-10-15T19:10:45ZDaveDAll my newly created contacts are from AfghanistanSeems unlikely to be a coincidence.
Must be something recent in 5.31/master with the country dropdown. Can confirm it does not happen in 5.30.
It only happens if you have no default country set at civicrm/admin/setting/localization?res...Seems unlikely to be a coincidence.
Must be something recent in 5.31/master with the country dropdown. Can confirm it does not happen in 5.30.
It only happens if you have no default country set at civicrm/admin/setting/localization?reset=1
Simply go to create a contact and expand the address section. Afghanistan is now selected and the country field is required.5.31.0https://lab.civicrm.org/dev/core/-/issues/2108Deprecation warnings when making thank-you letters2020-10-13T23:10:13ZDaveDDeprecation warnings when making thank-you lettersIn 5.31 and master only:
In a [recent commit](https://github.com/civicrm/civicrm-core/pull/17675/files#diff-f9397c2b103c68ffb588679b5d4784a2R377) you can no longer pass attributes to CRM_Core_Form::add() as a string. The PDF letters sti...In 5.31 and master only:
In a [recent commit](https://github.com/civicrm/civicrm-core/pull/17675/files#diff-f9397c2b103c68ffb588679b5d4784a2R377) you can no longer pass attributes to CRM_Core_Form::add() as a string. The PDF letters still do this though, so you get warnings like `User deprecated function: Attributes passed to CRM_Core_Form::add() are not an array. Array ( [civi.tag] => deprecated ) in CRM_Core_Error_Log->log() (line 58 of .../sites/all/modules/civicrm/CRM/Core/Error/Log.php)`.
These lines:
* CRM\Core\Form\Task\PDFLetterCommon.php(55)
* CRM\Core\Form\Task\PDFLetterCommon.php(71)
* CRM\Contribute\Form\Task\PDFLetter.php(100)
Also, I understand why it's a warning, just since it swallows the backtrace you then need to edit [the line in CRM_Core_Form](https://github.com/civicrm/civicrm-core/blob/8e499926de4a31182f3e8007789c325647417a16/CRM/Core/Form.php#L377) to log a backtrace instead to find the actual problem (in case others are also seeing similar warnings now and trying to track it down).5.31.0https://lab.civicrm.org/dev/core/-/issues/2096Creating new event without email fails2020-10-08T19:41:38Zaydunsaidan.saunders@squiffle.ukCreating new event without email failsOverview
----------------------------------------
Creating a new event without an email produces `Mandatory values missing from Api4 Email::save: email` failure
Reproduction steps
----------------------------------------
1. Click on **E...Overview
----------------------------------------
Creating a new event without an email produces `Mandatory values missing from Api4 Email::save: email` failure
Reproduction steps
----------------------------------------
1. Click on **Events -> New Event**.
1. Enter mandatory fields **Event Type**, **Default Role**, **Event Title** and **Start** and click **Continue**.
1. Observe Email is not required
1. Click **Save and Done**
Current behaviour
----------------------------------------
Error: `Mandatory values missing from Api4 Email::save: email`
Expected behaviour
----------------------------------------
No error!
Environment information
----------------------------------------
* __CiviCRM:__ _Master_
Comments
----------------------------------------
Verified on dmaster5.31.0https://lab.civicrm.org/dev/core/-/issues/2093Undefined index 'class' on new individual form2020-10-06T23:51:30ZDaveDUndefined index 'class' on new individual formIt's probably not limited to new individual, but [this recent commit](https://github.com/civicrm/civicrm-core/commit/4367e9641356b13764aceb289c46b6023c6c6bb8#diff-bdea9a3ec62827e6c90a70202ea9f7ccR797) added a line that generates the noti...It's probably not limited to new individual, but [this recent commit](https://github.com/civicrm/civicrm-core/commit/4367e9641356b13764aceb289c46b6023c6c6bb8#diff-bdea9a3ec62827e6c90a70202ea9f7ccR797) added a line that generates the notice:
`$fieldAttributes['class'] .= ltrim($fieldAttributes['class'] ?? '' . ' crm-select2');`
You can't use `.=` if the variable isn't set yet, so this gives a red error box on the form. I thought I had written a test to catch generic red boxes on New Individual but maybe it's not a complete test.
Also while it ends up not mattering here, on the right-hand-side personally I think it's best to use brackets to be clear when using `??` and `.` at the same time, since the `.` ends up winning and can sometimes be a sneaky bug.5.31.0https://lab.civicrm.org/dev/core/-/issues/2040Multiple email activity cc recipients get scrunched together in recorded acti...2020-09-23T00:47:08ZDaveDMultiple email activity cc recipients get scrunched together in recorded activity details fieldRecently refactored and the comma separator went missing: https://github.com/civicrm/civicrm-core/commit/a01fb99f56574eae7b6ade7cbb4f3292c505fe7d#diff-e604b19bd1979412f2455096459e761bR411-L439
https://github.com/civicrm/civicrm-core/blo...Recently refactored and the comma separator went missing: https://github.com/civicrm/civicrm-core/commit/a01fb99f56574eae7b6ade7cbb4f3292c505fe7d#diff-e604b19bd1979412f2455096459e761bR411-L439
https://github.com/civicrm/civicrm-core/blob/b3925388349a3d356b8852ead72361123e3ed196/CRM/Contact/Form/Task/EmailTrait.php#L564
Also the contact link url contains force=1 which seems unnecessary.
1. Send an outbound email in civi to multiple cc recipients.
1. Look at the details field on the recorded activity.
I can do a PR - came up while reviewing https://github.com/civicrm/civicrm-core/pull/182995.31.0https://lab.civicrm.org/dev/core/-/issues/1920Help text bubble is empty and smarty errors when .hlp file is missing for set...2021-02-17T20:06:07ZDaveDHelp text bubble is empty and smarty errors when .hlp file is missing for settings formsFor example Administer - CiviMail - Mailer Settings.
I think this is related to the move towards generic settings in https://lab.civicrm.org/dev/core/-/issues/495, but at the moment looking at the related code it looks like help_text st...For example Administer - CiviMail - Mailer Settings.
I think this is related to the move towards generic settings in https://lab.civicrm.org/dev/core/-/issues/495, but at the moment looking at the related code it looks like help_text still depends on there being a corresponding .hlp file in the templates folder.
Even when there is help_text in the definition, it comes out like `<a class="helpicon" title=" Help" aria-label=" Help" href="#" onclick="CRM.help("", {"id":"civimail-sync-interval-id","file":"CRM\/Admin\/Form\/Setting\/Mail"}); return false;"> </a>`5.31.0https://lab.civicrm.org/dev/core/-/issues/3581Email to activity processing: New feature to skip emails which do not have a ...2022-06-11T14:54:48ZJamie Novick - CompucoEmail to activity processing: New feature to skip emails which do not have a Case ID or Case token- As a CiviCRM administrator
- I would like to configure whether CiviCRM will process emails without a case ID (or case “token”) in the subject line
- so that I can ensure that emails which do not have a case ID are not filed on the con...- As a CiviCRM administrator
- I would like to configure whether CiviCRM will process emails without a case ID (or case “token”) in the subject line
- so that I can ensure that emails which do not have a case ID are not filed on the contact record outside the case by accident.
**How it works currently**
For those a little less familiar with email to activity processing:
CiviCRM will connect to a users MS exchange mailbox and create the following folder structure:
- Inbox
- /CiviCRM
- //CiviMail
- ///ignored
- ///processed
Notes:
- Users simply copy or move emails into the /civicrm folder in their inbox. CiviCRM has a scheduled job that can be configured to run periodically (say every hour) and poll the mailbox folder (Civimail) by IMAP in order to read and process the emails.
- By default CiviCRM will match any email from, to, cc fields to contacts in the CRM and file the email as an activity against those contacts (including recording any attachments as files).
- If however there is a case ID in the subject line (or a case ID "token"*) then CiviCRM will instead file the email straight onto the case itself. The format is: [case #1234] (see: https://issues.civicrm.org/jira/browse/CRM-21446)
- If the email is processed successfully it will be moved to the processed folder.
- If for any reason CiviCRM cannot file the email it will be moved to the ignored folder. This normally happens if the email address is invalid for some reason (please note: emails that are sent internally between staff on exchange server can sometimes have this problem as exchange doesn't always use the external email address but instead uses some local username/domain combination - this maybe something to test and see if it maybe a problem for NEU).
- Note: *When sending out emails from CiviCRM from CiviCase it appends a case ID token - which is a string of characters and not the exact Case ID. This is done to obscure the case ID number in the email. In effect you can have either this token or the case id in the subject line and CiviCRM will file the email correctly.
- More background: https://docs.civicrm.org/sysadmin/en/latest/setup/civimail/inbound/#autofiling-email-activities-via-emailprocessor
**Problem**
For multiple clients they want to use email to activity processing for their casework teams. However sometimes they forget to add the case ID to the subject line of the email and the system incorrectly files the email outside the case - which is a "security" risk as the emails can be sensitive.
As such they would like to be able to specify that the emails being filed from the casework team inbox will only be filed if there is a valid Case ID in the subject line and are skipped if not, and hence there is no risk of the email being filed outside of the case.
**Proposed improvement**
Approach:
When "Used For?" = Email to activity processing
Show an additional option:
- Skip emails which do not have a Case ID or Case token:
- Checkbox
- Help text:
- CiviCRM has functionality to file emails which contain the Case ID or Case Hash in the subject line in the format [case #1234] against a case record.
- Where the Case ID or Case Hash is not included CiviCRM will file the email against the contact record, by matching the email addresses on the email with any email addresses of Contact records in CiviCRM.
- Enabling this option will have CiviCRM skip any emails that do not have the Case ID or Case Hash so that the system will only process emails that can be placed on case records.
- Any emails that are not processed will be moved the ignored folder.
- Default null
- If checked:
- Emails which do not have a valid case ID or case token should be moved into the “ignored” folder. (See folders above) after processing and no Activity should be created.
Would be great to know if we can get the magical "concept approved" flag.
We need to work on this quite urgently so if there are no great concerns that would be much appreciated...5.31.0https://lab.civicrm.org/dev/core/-/issues/3550Email to activity processing: New feature to make the creation of new contact...2022-06-11T14:50:44ZJamie Novick - CompucoEmail to activity processing: New feature to make the creation of new contacts "optional"**User story:**
- As an administrator
- When filing inbound emails
- I would like to configure whether CiviCRM will create a new contact where a contact does not already exist within the system
- So that I can ensure that new contacts a...**User story:**
- As an administrator
- When filing inbound emails
- I would like to configure whether CiviCRM will create a new contact where a contact does not already exist within the system
- So that I can ensure that new contacts are not created in the system when filing an email.
- In the situation of a case email where the email has a valid Case ID or Case token in the subject line the email should still be filed to a case, even if no contacts are matched.
**How it works currently:**
Currently, when CiviCRM performs email to activity processing, Civi will search CiviCRM for a contact with the relevant email address in the From / To / CC fields and then assign the created activity accordingly.
When CiviCRM cannot find a contact with a relevant email address, it simply creates a new "stub" contact with the email address.
**The problem**
For multiple reasons this is might not be desirable behaviour:
This is a security risk, as in most cases CiviCRM email-activity processing works off a mailbox, that might need to be public. As such it is possible that an unscrupulous third party may chose to spam your mailbox and thus spam your CRM with unwanted emails and content. Whilst this can be mitigated by having your automated filing on a separate mailbox, it might be preferable to simply only file the emails for contacts who already exist in your system, and to selectively add the rest.
Also, from a GDPR perspective it may not be desirable to hold the details of the persons who sent an email, whilst the contents of the email might be important (i.e. the attachments) especially in a casework context.
**Proposed solution:**
Add an additional option to the email to activity processing configurations (civicrm/admin/mailSettings?action=add&reset=1)
- When "Used For?" = Email to activity processing
- Show an additional option:
- "Do not create new contacts when filing emails"
- Checkbox
- Default null
- Help:
- If this option is enabled, CiviCRM will not create new contacts when filing emails.
- The email should also always be filed as an activity.
If checked:
- When CiviCRM checks for a matching contact, if no matching contact is found it will not create one and the email is skipped
- unless the email has a valid Case ID or Case token in the subject line, in which it will still be filed against the case, but no contacts will be linked to the email.5.31.0https://lab.civicrm.org/dev/core/-/issues/3335Proposal on Membership Renewal form re 'fixMembershipBeforeRenew'2022-04-22T16:17:33ZeileenProposal on Membership Renewal form re 'fixMembershipBeforeRenew'When a membership is renewed via the backoffice form one step in the process is to call
CRM_Member_BAO_Membership::fixMembershipStatusBeforeRenew
This does a couple of things
1) it checks what the correct status is as of the current d...When a membership is renewed via the backoffice form one step in the process is to call
CRM_Member_BAO_Membership::fixMembershipStatusBeforeRenew
This does a couple of things
1) it checks what the correct status is as of the current date
2) if it is not 'correct' it
- changes the status
- adds a membership log
- adds an activity
- updates a parameter which tells the calling function if the membership is now current.
My belief is that this last parameter is useful to the calling function and the other steps are byproducts of shared code that may not be that relevant.
I propose we either
1) say that it is not necessary/ helpful to change the status & add the various entries in this flow OR
2) if it is useful (probably because the scheduled job didn't run) then we do it in the preProcess function rather than the post process
@andrewhunt @justinfreeman @mattwire @KarinG any opinions on ^^
(note there are some related issues that might come up - please try to add separate issues if you want to raise points outside this specific proposal)5.31.0https://lab.civicrm.org/dev/core/-/issues/3329Inherited memberships not created correctly when contact count changes.2022-04-22T16:17:19Zsamknelson@gmail.comInherited memberships not created correctly when contact count changes.(Migrating this issue from https://issues.civicrm.org/jira/browse/CRM-21463, since it's been idle there for over a year.)
Suppose you have an organization membership. Suppose the organization has 4 related contacts, each of whom inheri...(Migrating this issue from https://issues.civicrm.org/jira/browse/CRM-21463, since it's been idle there for over a year.)
Suppose you have an organization membership. Suppose the organization has 4 related contacts, each of whom inherits the membership.
Suppose you then add a related contact.
Suppose you then renew the membership.
The newly related contact does not receive the inherited membership. In fact, each time you save / update the membership, an apparently random set of 4 related contacts receives the inherited membership.
============
This turns out to be a bug in Member/BAO/Membership.php. At line 1445, we see
if ($relMembership->find(TRUE)) {
$params['id'] = $relMemIds['membership'] = $relMembership->id;
}
However, params['id'] is never initialized, so if some related memberships are not found, they are assigned the ID from the last iteration through the loop – meaning the previous contact loses their membership.
The solution is to add $params['id'] = NULL right before. (It would probably be better to set $params = NULL at the beginning of the loop, but I haven't tested that.)
I haven't submitted a patch, but it should be straightforward.5.31.0