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'.
This commit is contained in:
Carlos Castillo
2022-01-19 08:47:26 -05:00
parent a01f1fa71c
commit 3d8620854a
@@ -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;
}