Merge branch 'MDL-40481_25' of git://github.com/timhunt/moodle into MOODLE_25_STABLE

This commit is contained in:
Eloy Lafuente (stronk7)
2013-11-12 00:41:38 +01:00
2 changed files with 26 additions and 5 deletions
+2
View File
@@ -218,6 +218,8 @@ class flexible_table {
/**
* Use text sorting functions for this column (required for text columns with Oracle).
* Be warned that you cannot use this with column aliases. You can only do this
* with real columns. See MDL-40481 for an example.
* @param string column name
*/
function text_sorting($column) {
+24 -5
View File
@@ -91,10 +91,16 @@ class quiz_responses_table extends quiz_attempts_report_table {
$stepdata = $this->lateststeps[$attempt->usageid][$slot];
if (is_null($stepdata->$field)) {
if (property_exists($stepdata, $field . 'full')) {
$value = $stepdata->{$field . 'full'};
} else {
$value = $stepdata->$field;
}
if (is_null($value)) {
$summary = '-';
} else {
$summary = trim($stepdata->$field);
$summary = trim($value);
}
if ($this->is_downloading() && $this->is_downloading() != 'xhtml') {
@@ -141,8 +147,21 @@ class quiz_responses_table extends quiz_attempts_report_table {
* @param string $alias the table alias for latest state information relating to that slot.
*/
protected function get_required_latest_state_fields($slot, $alias) {
return "$alias.questionsummary AS question$slot,
$alias.rightanswer AS right$slot,
$alias.responsesummary AS response$slot";
global $DB;
$sortableresponse = $DB->sql_order_by_text("{$alias}.questionsummary");
if ($sortableresponse === "{$alias}.questionsummary") {
// Can just order by text columns. No complexity needed.
return "{$alias}.questionsummary AS question{$slot},
{$alias}.rightanswer AS right{$slot},
{$alias}.responsesummary AS response{$slot}";
} else {
// Work-around required.
return $DB->sql_order_by_text("{$alias}.questionsummary") . " AS question{$slot},
{$alias}.questionsummary AS question{$slot}full,
" . $DB->sql_order_by_text("{$alias}.rightanswer") . " AS right{$slot},
{$alias}.rightanswer AS right{$slot}full,
" . $DB->sql_order_by_text("{$alias}.responsesummary") . " AS response{$slot},
{$alias}.responsesummary AS response{$slot}full";
}
}
}