mirror of
https://github.com/moodle/moodle.git
synced 2025-04-21 16:32:18 +02:00
MDL-65562 analytics: New get_prediction_actions API
This commit is contained in:
parent
4de032eba3
commit
1d5cb38292
@ -1348,6 +1348,30 @@ class model {
|
||||
return [$current, $predictions];
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the actions executed by users on the predictions.
|
||||
*
|
||||
* @param \context|null $context
|
||||
* @return \moodle_recordset
|
||||
*/
|
||||
public function get_prediction_actions(?\context $context): \moodle_recordset {
|
||||
global $DB;
|
||||
|
||||
$sql = "SELECT apa.id, apa.predictionid, apa.userid, apa.actionname, apa.timecreated,
|
||||
ap.contextid, ap.sampleid, ap.rangeindex, ap.prediction, ap.predictionscore
|
||||
FROM {analytics_prediction_actions} apa
|
||||
JOIN {analytics_predictions} ap ON ap.id = apa.predictionid
|
||||
WHERE ap.modelid = :modelid";
|
||||
$params = ['modelid' => $this->model->id];
|
||||
|
||||
if ($context) {
|
||||
$sql .= " AND ap.contextid = :contextid";
|
||||
$params['contextid'] = $context->id;
|
||||
}
|
||||
|
||||
return $DB->get_recordset_sql($sql, $params);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the sample data of a prediction.
|
||||
*
|
||||
|
@ -96,11 +96,17 @@ class analytics_prediction_actions_testcase extends advanced_testcase {
|
||||
$prediction = reset($predictions);
|
||||
$prediction->action_executed(\core_analytics\prediction::ACTION_FIXED, $this->model->get_target());
|
||||
|
||||
$recordset = $this->model->get_prediction_actions($this->context);
|
||||
$this->assertCount(1, $recordset);
|
||||
$recordset->close();
|
||||
$this->assertEquals(1, $DB->count_records('analytics_prediction_actions'));
|
||||
$action = $DB->get_record('analytics_prediction_actions', array('userid' => $this->teacher2->id));
|
||||
$this->assertEquals(\core_analytics\prediction::ACTION_FIXED, $action->actionname);
|
||||
|
||||
$prediction->action_executed(\core_analytics\prediction::ACTION_NOT_USEFUL, $this->model->get_target());
|
||||
$recordset = $this->model->get_prediction_actions($this->context);
|
||||
$this->assertCount(2, $recordset);
|
||||
$recordset->close();
|
||||
$this->assertEquals(2, $DB->count_records('analytics_prediction_actions'));
|
||||
}
|
||||
|
||||
@ -125,6 +131,10 @@ class analytics_prediction_actions_testcase extends advanced_testcase {
|
||||
$prediction = reset($predictions);
|
||||
$prediction->action_executed(\core_analytics\prediction::ACTION_FIXED, $this->model->get_target());
|
||||
|
||||
$recordset = $this->model->get_prediction_actions($this->context);
|
||||
$this->assertCount(1, $recordset);
|
||||
$recordset->close();
|
||||
|
||||
list($ignored, $predictions) = $this->model->get_predictions($this->context, true);
|
||||
$this->assertCount(1, $predictions);
|
||||
list($ignored, $predictions) = $this->model->get_predictions($this->context, false);
|
||||
@ -136,5 +146,9 @@ class analytics_prediction_actions_testcase extends advanced_testcase {
|
||||
$this->assertCount(2, $predictions);
|
||||
list($ignored, $predictions) = $this->model->get_predictions($this->context, false);
|
||||
$this->assertCount(2, $predictions);
|
||||
|
||||
$recordset = $this->model->get_prediction_actions($this->context);
|
||||
$this->assertCount(1, $recordset);
|
||||
$recordset->close();
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user