From 3d8620854abc3ee69f73fcbc42ea4e38068dcbbc Mon Sep 17 00:00:00 2001 From: Carlos Castillo Date: Thu, 6 Jan 2022 13:49:54 -0500 Subject: [PATCH] MDL-73493 reportbuilder: Consider users without profile field defined Include users who haven't defined text/checkbox custom profile field in filter operators: 'Is not empty', 'Does not contain' and 'Is not equal to'. --- reportbuilder/classes/local/helpers/user_profile_fields.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/reportbuilder/classes/local/helpers/user_profile_fields.php b/reportbuilder/classes/local/helpers/user_profile_fields.php index 55a27337336..31d5b0d18c3 100644 --- a/reportbuilder/classes/local/helpers/user_profile_fields.php +++ b/reportbuilder/classes/local/helpers/user_profile_fields.php @@ -159,7 +159,7 @@ class user_profile_fields { switch ($profilefield->field->datatype) { case 'checkbox': $classname = boolean_select::class; - $field = $DB->sql_cast_char2int($field); + $field = $DB->sql_cast_char2int("COALESCE({$field}, 0)"); break; case 'datetime': $classname = date::class; @@ -167,11 +167,12 @@ class user_profile_fields { break; case 'menu': $classname = select::class; + $field = "COALESCE({$field}, '')"; break; case 'text': case 'textarea': default: - $field = $DB->sql_compare_text($field, 255); + $field = $DB->sql_compare_text("COALESCE({$field}, '')", 255); $classname = text::class; break; }