Skip to content

Commit

Permalink
Fix table filters on exercises results - refs #7953
Browse files Browse the repository at this point in the history
  • Loading branch information
AngelFQC committed Nov 12, 2015
1 parent bea2164 commit 5166be6
Showing 1 changed file with 48 additions and 49 deletions.
97 changes: 48 additions & 49 deletions main/inc/ajax/model.ajax.php
Expand Up @@ -117,63 +117,62 @@ function getWhereClause($col, $oper, $val)
}
$filters = isset($_REQUEST['filters']) && !is_array($_REQUEST['filters']) ? json_decode($_REQUEST['filters']) : false;

/*if (!empty($filters) && !empty($filters->rules)) {
$whereCondition .= ' AND ( ';
$counter = 0;
foreach ($filters->rules as $key => $rule) {
$whereCondition .= getWhereClause($rule->field, $rule->op, $rule->data);
if ($counter < count($filters->rules) -1) {
$whereCondition .= $filters->groupOp;
if (!empty($filters)) {
if (in_array($action, ['get_questions', 'get_sessions'])) {
switch ($action) {
case 'get_questions':
$type = 'question';
break;
case 'get_sessions':
$type = 'session';
break;
}
$counter++;
}
$whereCondition .= ' ) ';
}*/

// for now
switch ($action) {
case 'get_questions':
$type = 'question';
break;
case 'get_sessions':
$type = 'session';
break;
}

if (!empty($type) && !empty($filters)) {

// Extra field.

$extraField = new ExtraField($type);
$result = $extraField->getExtraFieldRules($filters, 'extra_');
$extra_fields = $result['extra_fields'];
$condition_array = $result['condition_array'];
if (!empty($type)) {
// Extra field.
$extraField = new ExtraField($type);
$result = $extraField->getExtraFieldRules($filters, 'extra_');
$extra_fields = $result['extra_fields'];
$condition_array = $result['condition_array'];

$extraCondition = '';
if (!empty($condition_array)) {
$extraCondition = ' AND ( ';
$extraCondition .= implode($filters->groupOp, $condition_array);
$extraCondition .= ' ) ';
}

$extraCondition = '';
if (!empty($condition_array)) {
$extraCondition = ' AND ( ';
$extraCondition .= implode($filters->groupOp, $condition_array);
$extraCondition .= ' ) ';
}
$whereCondition .= $extraCondition;

$whereCondition .= $extraCondition;
// Question field

// Question field
$resultQuestion = $extraField->getExtraFieldRules($filters, 'question_');
$questionFields = $resultQuestion['extra_fields'];
$condition_array = $resultQuestion['condition_array'];

$resultQuestion = $extraField->getExtraFieldRules($filters, 'question_');
$questionFields = $resultQuestion['extra_fields'];
$condition_array = $resultQuestion['condition_array'];
if (!empty($condition_array)) {
$extraQuestionCondition = ' AND ( ';
$extraQuestionCondition .= implode($filters->groupOp, $condition_array);
$extraQuestionCondition .= ' ) ';
// Remove conditions already added
$extraQuestionCondition = str_replace($extraCondition, '', $extraQuestionCondition);
}

if (!empty($condition_array)) {
$extraQuestionCondition = ' AND ( ';
$extraQuestionCondition .= implode($filters->groupOp, $condition_array);
$extraQuestionCondition .= ' ) ';
// Remove conditions already added
$extraQuestionCondition = str_replace($extraCondition, '', $extraQuestionCondition);
$whereCondition .= $extraQuestionCondition;
}
} elseif (!empty($filters->rules)) {
$whereCondition .= ' AND ( ';
$counter = 0;
foreach ($filters->rules as $key => $rule) {
$whereCondition .= getWhereClause($rule->field, $rule->op, $rule->data);

if ($counter < count($filters->rules) -1) {
$whereCondition .= $filters->groupOp;
}
$counter++;
}
$whereCondition .= ' ) ';
}

$whereCondition .= $extraQuestionCondition;
}
}

Expand Down

0 comments on commit 5166be6

Please sign in to comment.