-
-
Notifications
You must be signed in to change notification settings - Fork 825
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Case Activity: use select2 for Medium field #27879
Conversation
🤖 Thank you for contributing to CiviCRM! ❤️ We will need to test and review this PR. 👷 Introduction for new contributors...
Quick links for reviewers...
|
CRM/Case/Form/Activity.php
Outdated
@@ -203,6 +203,10 @@ public function setDefaultValues() { | |||
} | |||
$this->assign('targetContactValues', empty($targetContactValues) ? FALSE : $targetContactValues); | |||
|
|||
if ($this->_activityId) { | |||
$this->_encounterMedium = CRM_Core_DAO::getFieldValue('CRM_Activity_DAO_Activity', $this->_activityId, 'medium_id'); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is an undeclared property of the class so will cause warnings in php8. Why are we even setting it?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
hmm yep - previously the variable was being set from buildQuickForm()
and only used once in setDefaultValues()
, so I moved it to setDefaultValues
.
I updated my PR to simplify the code further. All these shenanigans around encounterMediums
were odd, there is nothing special about this field.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
shenanigans
Good word for it!
CRM/Case/Form/Activity.php
Outdated
if ($this->_activityId) { | ||
$this->_defaults['medium_id'] = CRM_Core_DAO::getFieldValue('CRM_Activity_DAO_Activity', $this->_activityId, 'medium_id'); | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't even know why this shenanigan still exists. Why wouldn't this value be set along with all the others by the call to parent::setDefaultValues()
above?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There is no medium on regular activities.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The field exists though so shouldn't it be populated?
civicrm-core/xml/schema/Activity/Activity.xml
Lines 250 to 264 in baffc20
<field> | |
<name>medium_id</name> | |
<uniqueName>activity_medium_id</uniqueName> | |
<title>Activity Medium</title> | |
<type>int unsigned</type> | |
<default>NULL</default> | |
<comment>Activity Medium, Implicit FK to civicrm_option_value where option_group = encounter_medium.</comment> | |
<pseudoconstant> | |
<optionGroupName>encounter_medium</optionGroupName> | |
</pseudoconstant> | |
<html> | |
<type>Select</type> | |
</html> | |
<add>2.2</add> | |
</field> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm just saying that's why it's not unexpected to see encounter_medium code here.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I tested on a site and it does seem to work without those lines of code ($this->_defaults['medium_id'] = ..
)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I checked the code and it certainly looks like the lines aren't needed. The setDefaultValues
function does a pretty standard DAO->find(TRUE)
and CRM_Core_DAO::storeValues()
which is basically like SELECT *
.
So it should work without it, and it does work without it. Let's remove it :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yep, I had a side-quest (joys of numeric custom fields), and now updated this PR to remove it.
jenkins retest this please |
Overview
Uses select2 for the "Medium" field on Case Activities. This makes it more consistent with other select fields.
Before
After
Comments
I did a bit of cleanup because it seemed weird.