public function get_current_instance($raterid, $itemid, $idonly = false) {
global $DB;
$params = array(
- 'formid' => $this->definition->id,
+ 'definitionid' => $this->definition->id,
'itemid' => $itemid,
'status1' => gradingform_instance::INSTANCE_STATUS_ACTIVE,
'status2' => gradingform_instance::INSTANCE_STATUS_NEEDUPDATE);
- $select = 'formid=:formid and itemid=:itemid and (status=:status1 or status=:status2)';
+ $select = 'definitionid=:definitionid and itemid=:itemid and (status=:status1 or status=:status2)';
if (false /* TODO $manager->allow_multiple_raters() */) {
$select .= ' and raterid=:raterid';
$params['raterid'] = $raterid;
*/
public function get_active_instances($itemid) {
global $DB;
- $conditions = array('formid' => $this->definition->id,
+ $conditions = array('definitionid' => $this->definition->id,
'itemid' => $itemid,
'status' => gradingform_instance::INSTANCE_STATUS_ACTIVE);
$records = $DB->get_recordset('grading_instances', $conditions);
return false;
}
if ($this->hasactiveinstances === null) {
- $conditions = array('formid' => $this->definition->id,
+ $conditions = array('definitionid' => $this->definition->id,
'status' => gradingform_instance::INSTANCE_STATUS_ACTIVE);
$this->hasactiveinstances = $DB->record_exists('grading_instances', $conditions);
}
// firstly, let the plugin delete everything from their own tables
$this->delete_plugin_definition();
// then, delete all instances left
- $DB->delete_records('grading_instances', array('formid' => $this->definition->id));
+ $DB->delete_records('grading_instances', array('definitionid' => $this->definition->id));
// finally, delete the main definition record
$DB->delete_records('grading_definitions', array('id' => $this->definition->id));
/**
* Creates a new empty instance in DB and mark its status as INCOMPLETE
*
- * @param int $formid
+ * @param int $definitionid
* @param int $raterid
* @param int $itemid
* @return int id of the created instance
*/
- public static function create_new($formid, $raterid, $itemid) {
+ public static function create_new($definitionid, $raterid, $itemid) {
global $DB;
$instance = new stdClass();
- $instance->formid = $formid;
+ $instance->definitionid = $definitionid;
$instance->raterid = $raterid;
$instance->itemid = $itemid;
$instance->status = self::INSTANCE_STATUS_INCOMPLETE;
// Set sources to populate the data
$criterion->set_source_table('gradingform_rubric_criteria',
- array('formid' => backup::VAR_PARENTID));
+ array('definitionid' => backup::VAR_PARENTID));
$level->set_source_table('gradingform_rubric_levels',
array('criterionid' => backup::VAR_PARENTID));
$data = (object)$data;
$oldid = $data->id;
- $data->formid = $this->get_new_parentid('grading_definition');
+ $data->definitionid = $this->get_new_parentid('grading_definition');
$newid = $DB->insert_record('gradingform_rubric_criteria', $data);
$this->set_mapping('gradingform_rubric_criterion', $oldid, $newid);
<TABLES>
<TABLE NAME="gradingform_rubric_criteria" COMMENT="Stores the rows of the rubric grid." NEXT="gradingform_rubric_levels">
<FIELDS>
- <FIELD NAME="id" TYPE="int" LENGTH="10" NOTNULL="true" UNSIGNED="true" SEQUENCE="true" NEXT="formid"/>
- <FIELD NAME="formid" TYPE="int" LENGTH="10" NOTNULL="true" UNSIGNED="true" SEQUENCE="false" COMMENT="The ID of the form definition this criterion is part of" PREVIOUS="id" NEXT="sortorder"/>
- <FIELD NAME="sortorder" TYPE="int" LENGTH="10" NOTNULL="true" UNSIGNED="true" SEQUENCE="false" COMMENT="Defines the order of the criterion in the rubric" PREVIOUS="formid" NEXT="description"/>
+ <FIELD NAME="id" TYPE="int" LENGTH="10" NOTNULL="true" UNSIGNED="true" SEQUENCE="true" NEXT="definitionid"/>
+ <FIELD NAME="definitionid" TYPE="int" LENGTH="10" NOTNULL="true" UNSIGNED="true" SEQUENCE="false" COMMENT="The ID of the form definition this criterion is part of" PREVIOUS="id" NEXT="sortorder"/>
+ <FIELD NAME="sortorder" TYPE="int" LENGTH="10" NOTNULL="true" UNSIGNED="true" SEQUENCE="false" COMMENT="Defines the order of the criterion in the rubric" PREVIOUS="definitionid" NEXT="description"/>
<FIELD NAME="description" TYPE="text" LENGTH="big" NOTNULL="false" SEQUENCE="false" COMMENT="The criterion description" PREVIOUS="sortorder" NEXT="descriptionformat"/>
<FIELD NAME="descriptionformat" TYPE="int" LENGTH="2" NOTNULL="false" UNSIGNED="true" SEQUENCE="false" COMMENT="The format of the description field" PREVIOUS="description"/>
</FIELDS>
<KEYS>
- <KEY NAME="primary" TYPE="primary" FIELDS="id" NEXT="fk_formid"/>
- <KEY NAME="fk_formid" TYPE="foreign" FIELDS="formid" REFTABLE="grading_definitions" REFFIELDS="id" PREVIOUS="primary"/>
+ <KEY NAME="primary" TYPE="primary" FIELDS="id" NEXT="fk_definitionid"/>
+ <KEY NAME="fk_definitionid" TYPE="foreign" FIELDS="definitionid" REFTABLE="grading_definitions" REFFIELDS="id" PREVIOUS="primary"/>
</KEYS>
</TABLE>
<TABLE NAME="gradingform_rubric_levels" COMMENT="Stores the columns of the rubric grid." PREVIOUS="gradingform_rubric_criteria" NEXT="gradingform_rubric_fillings">
$criterionmaxscore = null;
if (preg_match('/^NEWID\d+$/', $id)) {
// insert criterion into DB
- $data = array('formid' => $this->definition->id, 'descriptionformat' => FORMAT_MOODLE); // TODO format is not supported yet
+ $data = array('definitionid' => $this->definition->id, 'descriptionformat' => FORMAT_MOODLE); // TODO format is not supported yet
foreach ($criteriafields as $key) {
if (array_key_exists($key, $criterion)) {
$data[$key] = $criterion[$key];
public function mark_for_regrade() {
global $DB;
if ($this->has_active_instances()) {
- $conditions = array('formid' => $this->definition->id,
+ $conditions = array('definitionid' => $this->definition->id,
'status' => gradingform_instance::INSTANCE_STATUS_ACTIVE);
$DB->set_field('grading_instances', 'status', gradingform_instance::INSTANCE_STATUS_NEEDUPDATE, $conditions);
}
rc.id AS rcid, rc.sortorder AS rcsortorder, rc.description AS rcdescription, rc.descriptionformat AS rcdescriptionformat,
rl.id AS rlid, rl.score AS rlscore, rl.definition AS rldefinition, rl.definitionformat AS rldefinitionformat
FROM {grading_definitions} gd
- LEFT JOIN {gradingform_rubric_criteria} rc ON (rc.formid = gd.id)
+ LEFT JOIN {gradingform_rubric_criteria} rc ON (rc.definitionid = gd.id)
LEFT JOIN {gradingform_rubric_levels} rl ON (rl.criterionid = rc.id)
WHERE gd.areaid = :areaid AND gd.method = :method
ORDER BY rc.sortorder,rl.score";
global $DB;
// get the list of instances
- $instances = array_keys($DB->get_records('grading_instances', array('formid' => $this->definition->id), '', 'id'));
+ $instances = array_keys($DB->get_records('grading_instances', array('definitionid' => $this->definition->id), '', 'id'));
// delete all fillings
$DB->delete_records_list('gradingform_rubric_fillings', 'forminstanceid', $instances);
// delete instances
$DB->delete_records_list('grading_instances', 'id', $instances);
// get the list of criteria records
- $criteria = array_keys($DB->get_records('gradingform_rubric_criteria', array('formid' => $this->definition->id), '', 'id'));
+ $criteria = array_keys($DB->get_records('gradingform_rubric_criteria', array('definitionid' => $this->definition->id), '', 'id'));
// delete levels
$DB->delete_records_list('gradingform_rubric_levels', 'criterionid', $criteria);
// delete critera
* @return string
*/
public static function sql_search_from_tables($gdid) {
- return " LEFT JOIN {gradingform_rubric_criteria} rc ON (rc.formid = $gdid)
+ return " LEFT JOIN {gradingform_rubric_criteria} rc ON (rc.definitionid = $gdid)
LEFT JOIN {gradingform_rubric_levels} rl ON (rl.criterionid = rc.id)";
}
</TABLE>
<TABLE NAME="grading_instances" COMMENT="Grading form instance is an assessment record for one gradable item assessed by one rater" PREVIOUS="grading_definitions">
<FIELDS>
- <FIELD NAME="id" TYPE="int" LENGTH="10" NOTNULL="true" UNSIGNED="true" SEQUENCE="true" NEXT="formid"/>
- <FIELD NAME="formid" TYPE="int" LENGTH="10" NOTNULL="true" UNSIGNED="true" SEQUENCE="false" COMMENT="The ID of the form definition this is instance of" PREVIOUS="id" NEXT="raterid"/>
- <FIELD NAME="raterid" TYPE="int" LENGTH="10" NOTNULL="true" UNSIGNED="true" SEQUENCE="false" COMMENT="The ID of the user who did the assessment" PREVIOUS="formid" NEXT="itemid"/>
+ <FIELD NAME="id" TYPE="int" LENGTH="10" NOTNULL="true" UNSIGNED="true" SEQUENCE="true" NEXT="definitionid"/>
+ <FIELD NAME="definitionid" TYPE="int" LENGTH="10" NOTNULL="true" UNSIGNED="true" SEQUENCE="false" COMMENT="The ID of the form definition this is instance of" PREVIOUS="id" NEXT="raterid"/>
+ <FIELD NAME="raterid" TYPE="int" LENGTH="10" NOTNULL="true" UNSIGNED="true" SEQUENCE="false" COMMENT="The ID of the user who did the assessment" PREVIOUS="definitionid" NEXT="itemid"/>
<FIELD NAME="itemid" TYPE="int" LENGTH="10" NOTNULL="false" UNSIGNED="true" SEQUENCE="false" COMMENT="This identifies the graded item within the grabable area" PREVIOUS="raterid" NEXT="rawgrade"/>
<FIELD NAME="rawgrade" TYPE="number" LENGTH="10" NOTNULL="false" UNSIGNED="true" SEQUENCE="false" DECIMALS="5" COMMENT="The raw normalized grade 0.00000 - 100.00000 as a result of the most recent assessment" PREVIOUS="itemid" NEXT="status"/>
<FIELD NAME="status" TYPE="int" LENGTH="10" NOTNULL="true" UNSIGNED="true" DEFAULT="0" SEQUENCE="false" COMMENT="The status of the assessment. By default the instance is under-assessment state" PREVIOUS="rawgrade" NEXT="feedback"/>
<FIELD NAME="timemodified" TYPE="int" LENGTH="10" NOTNULL="true" UNSIGNED="true" SEQUENCE="false" COMMENT="The timestamp of when the assessment was most recently modified" PREVIOUS="feedbackformat"/>
</FIELDS>
<KEYS>
- <KEY NAME="primary" TYPE="primary" FIELDS="id" NEXT="fk_formid"/>
- <KEY NAME="fk_formid" TYPE="foreign" FIELDS="formid" REFTABLE="grading_definitions" REFFIELDS="id" PREVIOUS="primary" NEXT="fk_raterid"/>
- <KEY NAME="fk_raterid" TYPE="foreign" FIELDS="raterid" REFTABLE="user" REFFIELDS="id" PREVIOUS="fk_formid"/>
+ <KEY NAME="primary" TYPE="primary" FIELDS="id" NEXT="fk_definitionid"/>
+ <KEY NAME="fk_definitionid" TYPE="foreign" FIELDS="definitionid" REFTABLE="grading_definitions" REFFIELDS="id" PREVIOUS="primary" NEXT="fk_raterid"/>
+ <KEY NAME="fk_raterid" TYPE="foreign" FIELDS="raterid" REFTABLE="user" REFFIELDS="id" PREVIOUS="fk_definitionid"/>
</KEYS>
</TABLE>
</TABLES>
// grading_instances table
$table = new xmldb_table('grading_instances');
$table->add_field('id', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, XMLDB_SEQUENCE, null);
- $table->add_field('formid', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null);
+ $table->add_field('definitionid', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null);
$table->add_field('raterid', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null);
$table->add_field('itemid', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, null, null, null);
$table->add_field('rawgrade', XMLDB_TYPE_NUMBER, '10, 5', XMLDB_UNSIGNED, null, null, null);
$table->add_field('feedbackformat', XMLDB_TYPE_INTEGER, '2', XMLDB_UNSIGNED, null, null, null);
$table->add_field('timemodified', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null);
$table->add_key('primary', XMLDB_KEY_PRIMARY, array('id'));
- $table->add_key('fk_formid', XMLDB_KEY_FOREIGN, array('formid'), 'grading_definitions', array('id'));
+ $table->add_key('fk_definitionid', XMLDB_KEY_FOREIGN, array('definitionid'), 'grading_definitions', array('id'));
$table->add_key('fk_raterid', XMLDB_KEY_FOREIGN, array('raterid'), 'user', array('id'));
if (!$dbman->table_exists($table)) {