diff --git a/badges/competency.php b/badges/alignment.php similarity index 83% rename from badges/competency.php rename to badges/alignment.php index 1eae429f2d250..f67a3045b92bf 100644 --- a/badges/competency.php +++ b/badges/alignment.php @@ -14,7 +14,7 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . /** - * List competencies, skills, or standards are targeted by a BadgeClass. + * List alignments, skills, or standards are targeted by a BadgeClass. * * @package core * @subpackage badges @@ -24,7 +24,7 @@ */ require_once(__DIR__ . '/../config.php'); require_once($CFG->libdir . '/badgeslib.php'); -require_once($CFG->dirroot . '/badges/competency_form.php'); +require_once($CFG->dirroot . '/badges/alignment_form.php'); $badgeid = required_param('id', PARAM_INT); $alignmentid = optional_param('alignmentid', 0, PARAM_INT); @@ -53,7 +53,7 @@ navigation_node::override_active_url($navurl, true); } -$currenturl = new moodle_url('/badges/competency.php', array('id' => $badge->id)); +$currenturl = new moodle_url('/badges/alignment.php', array('id' => $badge->id)); $PAGE->set_context($context); $PAGE->set_url($currenturl); $PAGE->set_heading($badge->name); @@ -63,8 +63,8 @@ $output = $PAGE->get_renderer('core', 'badges'); $msg = optional_param('msg', '', PARAM_TEXT); $emsg = optional_param('emsg', '', PARAM_TEXT); -$url = new moodle_url('/badges/competency.php', array('id' => $badge->id, 'action' => $action, 'alignmentid' => $alignmentid)); -$mform = new competency_alignment_form($url, array('badge' => $badge, 'action' => $action, 'alignmentid' => $alignmentid)); +$url = new moodle_url('/badges/alignment.php', array('id' => $badge->id, 'action' => $action, 'alignmentid' => $alignmentid)); +$mform = new alignment_form($url, array('badge' => $badge, 'action' => $action, 'alignmentid' => $alignmentid)); if ($mform->is_cancelled()) { redirect($currenturl); } else if ($mform->is_submitted() && $mform->is_validated() && ($data = $mform->get_data())) { @@ -94,12 +94,12 @@ $mform->display(); } else if (empty($action)) { if (!$badge->is_active() && !$badge->is_locked()) { - $urlbutton = new moodle_url('/badges/competency.php', array('id' => $badge->id, 'action' => 'add')); + $urlbutton = new moodle_url('/badges/alignment.php', array('id' => $badge->id, 'action' => 'add')); echo $OUTPUT->box($OUTPUT->single_button($urlbutton, get_string('addalignment', 'badges')), 'clearfix mdl-align'); } - $alignment = $badge->get_alignment(); - if (count($alignment) > 0) { - $renderrelated = new badge_competencies_alignment($alignment, $badgeid); + $alignments = $badge->get_alignments(); + if (count($alignments) > 0) { + $renderrelated = new badge_alignments($alignments, $badgeid); echo $output->render($renderrelated); } else { echo $output->notification(get_string('noalignment', 'badges')); diff --git a/badges/competency_action.php b/badges/alignment_action.php similarity index 90% rename from badges/competency_action.php rename to badges/alignment_action.php index f56da92fbe57a..a3815469f3ddd 100644 --- a/badges/competency_action.php +++ b/badges/alignment_action.php @@ -14,7 +14,7 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . /** - * Processing actions with competencies alignment. + * Processing actions with alignments. * * @package core * @subpackage badges @@ -30,7 +30,7 @@ $action = optional_param('action', 'remove', PARAM_TEXT); // Remove. require_login(); -$return = new moodle_url('/badges/competency.php', array('id' => $badgeid)); +$return = new moodle_url('/badges/alignment.php', array('id' => $badgeid)); $badge = new badge($badgeid); $context = $badge->get_context(); require_capability('moodle/badges:configuredetails', $context); @@ -38,4 +38,4 @@ if ($action == 'remove') { $badge->delete_alignment($alignmentid); } -redirect($return); \ No newline at end of file +redirect($return); diff --git a/badges/competency_form.php b/badges/alignment_form.php similarity index 94% rename from badges/competency_form.php rename to badges/alignment_form.php index 64557fa39b1c9..9de0bf77fc180 100644 --- a/badges/competency_form.php +++ b/badges/alignment_form.php @@ -14,7 +14,7 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . /** - * Form competency for editing. + * Form alignment for editing. * * @package core * @subpackage badges @@ -27,13 +27,13 @@ require_once($CFG->libdir . '/badgeslib.php'); /** - * Form to edit competency alignment. + * Form to edit alignment. * * @copyright 2018 Tung Thai * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @author Tung Thai */ -class competency_alignment_form extends moodleform { +class alignment_form extends moodleform { /** * Defines the form. @@ -68,7 +68,7 @@ public function definition() { $this->add_action_buttons(); if ($action == 'edit' || $alignmentid) { $alignment = new stdClass(); - $alignment = $DB->get_record_select('badge_competencies', 'id = ?', array($alignmentid)); + $alignment = $DB->get_record_select('badge_alignment', 'id = ?', array($alignmentid)); $this->set_data($alignment); // Freeze all elements if badge is active or locked. if ($badge->is_active() || $badge->is_locked()) { @@ -91,4 +91,4 @@ public function validation($data, $files) { } return $errors; } -} \ No newline at end of file +} diff --git a/badges/badge_json.php b/badges/badge_json.php index 907f0f10dc95b..2362bade70ded 100644 --- a/badges/badge_json.php +++ b/badges/badge_json.php @@ -95,9 +95,9 @@ $json['endorsement'] = $endorsementurl->out(false); } - $competencies = $badge->get_alignment(); - if (!empty($competencies)) { - foreach ($competencies as $item) { + $alignments = $badge->get_alignments(); + if (!empty($alignments)) { + foreach ($alignments as $item) { $alignment = array('targetName' => $item->targetname, 'targetUrl' => $item->targeturl); if ($item->targetdescription) { $alignment['targetDescription'] = $item->targetdescription; @@ -123,4 +123,4 @@ $json['error'] = get_string('error:relatedbadgedoesntexist', 'badges'); } echo $OUTPUT->header(); -echo json_encode($json); \ No newline at end of file +echo json_encode($json); diff --git a/badges/classes/assertion.php b/badges/classes/assertion.php index 417594d5243d0..e1e0451906d87 100644 --- a/badges/classes/assertion.php +++ b/badges/classes/assertion.php @@ -223,15 +223,15 @@ public function get_criteria_badge_class() { } /** - * Get competencies alignment of the badge. + * Get alignment of the badge. * - * @return array competencies information. + * @return array information. */ - public function get_competencies_alignment() { + public function get_alignments() { global $DB; $badgeid = $this->_data->id; $alignments = array(); - $items = $DB->get_records_select('badge_competencies', 'badgeid = ?', array($badgeid)); + $items = $DB->get_records_select('badge_alignment', 'badgeid = ?', array($badgeid)); foreach ($items as $item) { $alignment = array('targetName' => $item->targetname, 'targetUrl' => $item->targeturl); if ($item->targetdescription) { @@ -301,8 +301,8 @@ protected function embed_data_badge_version2 (&$json, $type = OPEN_BADGES_V2_TYP $endorsementurl = new moodle_url('/badges/endorsement_json.php', array('id' => $this->_data->id)); $json['endorsement'] = $endorsementurl->out(false); } - if ($competencies = $this->get_competencies_alignment()) { - $json['alignment'] = $competencies; + if ($alignments = $this->get_alignments()) { + $json['alignment'] = $alignments; } if ($this->_data->imageauthorname || $this->_data->imageauthoremail || diff --git a/badges/classes/external.php b/badges/classes/external.php index 15437d09c2f50..8ef4b6ecb7f7f 100644 --- a/badges/classes/external.php +++ b/badges/classes/external.php @@ -150,17 +150,17 @@ public static function get_user_badges($userid = 0, $courseid = 0, $page = 0, $p // Create a badge instance to be able to get the endorsement and other info. $badgeinstance = new badge($badge->id); $endorsement = $badgeinstance->get_endorsement(); - $competencies = $badgeinstance->get_alignment(); + $alignments = $badgeinstance->get_alignments(); $relatedbadges = $badgeinstance->get_related_badges(); if (!$canconfiguredetails) { // Return only the properties visible by the user. - if (!empty($competencies)) { - foreach ($competencies as $competency) { - unset($competency->targetdescription); - unset($competency->targetframework); - unset($competency->targetcode); + if (!empty($alignments)) { + foreach ($alignments as $alignment) { + unset($alignment->targetdescription); + unset($alignment->targetframework); + unset($alignment->targetcode); } } @@ -176,7 +176,7 @@ public static function get_user_badges($userid = 0, $courseid = 0, $page = 0, $p $related = array( 'context' => $context, 'endorsement' => $endorsement ? $endorsement : null, - 'competencies' => $competencies, + 'alignments' => $alignments, 'relatedbadges' => $relatedbadges, ); diff --git a/badges/classes/external/competency_exporter.php b/badges/classes/external/alignment_exporter.php similarity index 92% rename from badges/classes/external/competency_exporter.php rename to badges/classes/external/alignment_exporter.php index 3eca46a2027ff..91a431c2527ea 100644 --- a/badges/classes/external/competency_exporter.php +++ b/badges/classes/external/alignment_exporter.php @@ -15,7 +15,7 @@ // along with Moodle. If not, see . /** - * Contains competency class for displaying a badge competency. + * Contains alignment class for displaying a badge alignment. * * @package core_badges * @copyright 2018 Dani Palou @@ -29,13 +29,13 @@ use core\external\exporter; /** - * Class for displaying a badge competency. + * Class for displaying a badge alignment. * * @package core_badges * @copyright 2018 Dani Palou * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class competency_exporter extends exporter { +class alignment_exporter extends exporter { /** * Return the list of properties. @@ -46,7 +46,7 @@ protected static function define_properties() { return [ 'id' => [ 'type' => PARAM_INT, - 'description' => 'Competency id', + 'description' => 'Alignment id', ], 'badgeid' => [ 'type' => PARAM_INT, diff --git a/badges/classes/external/user_badge_exporter.php b/badges/classes/external/user_badge_exporter.php index 0cc7269da3e6b..cf07bd6c46bc4 100644 --- a/badges/classes/external/user_badge_exporter.php +++ b/badges/classes/external/user_badge_exporter.php @@ -30,7 +30,7 @@ use renderer_base; use moodle_url; use core_badges\external\endorsement_exporter; -use core_badges\external\competency_exporter; +use core_badges\external\alignment_exporter; use core_badges\external\related_info_exporter; /** @@ -234,7 +234,7 @@ protected static function define_related() { return array( 'context' => 'context', 'endorsement' => 'stdClass?', - 'competencies' => 'stdClass[]', + 'alignments' => 'stdClass[]', 'relatedbadges' => 'stdClass[]', ); } @@ -255,9 +255,9 @@ protected static function define_other_properties() { 'description' => 'Badge endorsement', 'optional' => true, ], - 'competencies' => [ - 'type' => competency_exporter::read_properties_definition(), - 'description' => 'Badge competencies (alignment)', + 'alignments' => [ + 'type' => alignment_exporter::read_properties_definition(), + 'description' => 'Badge alignments', 'multiple' => true, ], 'relatedbadges' => [ @@ -277,13 +277,13 @@ protected static function define_other_properties() { protected function get_other_values(renderer_base $output) { $context = $this->related['context']; $endorsement = $this->related['endorsement']; - $competencies = $this->related['competencies']; + $alignments = $this->related['alignments']; $relatedbadges = $this->related['relatedbadges']; $values = array( 'badgeurl' => moodle_url::make_webservice_pluginfile_url($context->id, 'badges', 'badgeimage', $this->data->id, '/', 'f1')->out(false), - 'competencies' => array(), + 'alignments' => array(), 'relatedbadges' => array(), ); @@ -292,10 +292,10 @@ protected function get_other_values(renderer_base $output) { $values['endorsement'] = $endorsementexporter->export($output); } - if (!empty($competencies)) { - foreach ($competencies as $competency) { - $competencyexporter = new competency_exporter($competency, array('context' => $context)); - $values['competencies'][] = $competencyexporter->export($output); + if (!empty($alignments)) { + foreach ($alignments as $alignment) { + $alignmentexporter = new alignment_exporter($alignment, array('context' => $context)); + $values['alignments'][] = $alignmentexporter->export($output); } } diff --git a/badges/renderer.php b/badges/renderer.php index 98d846666fec7..a401c950cc39a 100644 --- a/badges/renderer.php +++ b/badges/renderer.php @@ -222,7 +222,7 @@ public function print_badge_overview($badge, $context) { $display .= self::print_badge_endorsement($badge); $display .= self::print_badge_related($badge); - $display .= self::print_badge_competencies($badge); + $display .= self::print_badge_alignments($badge); return html_writer::div($display, null, array('id' => 'badge-overview')); } @@ -431,12 +431,12 @@ protected function render_issued_badge(issued_badge $ibadge) { $output .= html_writer::alist($items, array(), 'ul'); } - $competencies = $badge->get_alignment(); - if (!empty($competencies)) { + $alignments = $badge->get_alignments(); + if (!empty($alignments)) { $output .= $this->heading(get_string('alignment', 'badges'), 3); $items = array(); - foreach ($competencies as $competency) { - $items[] = html_writer::link($competency->targeturl, $competency->targetname, array('target' => '_blank')); + foreach ($alignments as $alignment) { + $items[] = html_writer::link($alignment->targeturl, $alignment->targetname, array('target' => '_blank')); } $output .= html_writer::alist($items, array(), 'ul'); } @@ -748,11 +748,11 @@ public function print_badge_tabs($badgeid, $context, $current = 'overview') { } if (has_capability('moodle/badges:configuredetails', $context)) { - $competencies = $DB->count_records_sql("SELECT COUNT(bc.id) - FROM {badge_competencies} bc WHERE bc.badgeid = :badgeid", array('badgeid' => $badgeid)); + $alignments = $DB->count_records_sql("SELECT COUNT(bc.id) + FROM {badge_alignment} bc WHERE bc.badgeid = :badgeid", array('badgeid' => $badgeid)); $row[] = new tabobject('balignment', - new moodle_url('/badges/competency.php', array('id' => $badgeid)), - get_string('balignment', 'badges', $competencies) + new moodle_url('/badges/alignment.php', array('id' => $badgeid)), + get_string('balignment', 'badges', $alignments) ); } @@ -1101,22 +1101,22 @@ protected function print_badge_related(badge $badge) { } /** - * Print list badge competencies. + * Print list badge alignments. * * @param badge $badge Badge objects. - * @return string $output List competencies to output. + * @return string $output List alignments to output. */ - protected function print_badge_competencies(badge $badge) { + protected function print_badge_alignments(badge $badge) { $output = ''; $output .= $this->heading(get_string('alignment', 'badges'), 3); - $competencies = $badge->get_alignment(); - if (!empty($competencies)) { + $alignments = $badge->get_alignments(); + if (!empty($alignments)) { $items = array(); - foreach ($competencies as $competency) { - $urlaligment = new moodle_url('competency.php', - array('id' => $badge->id, 'alignmentid' => $competency->id) + foreach ($alignments as $alignment) { + $urlaligment = new moodle_url('alignment.php', + array('id' => $badge->id, 'alignmentid' => $alignment->id) ); - $items[] = html_writer::link($urlaligment, $competency->targetname, array('target' => '_blank')); + $items[] = html_writer::link($urlaligment, $alignment->targetname, array('target' => '_blank')); } $output .= html_writer::alist($items, array(), 'ul'); } else { @@ -1186,21 +1186,21 @@ protected function render_badge_related(badge_related $related) { } /** - * Renders a table with competencies alignment. + * Renders a table with alignment. * - * @param badge_competencies_alignment $alignment List competencies alignment. - * @return string List competencies aligment to output. + * @param badge_alignments $alignments List alignments. + * @return string List alignment to output. */ - protected function render_badge_competencies_alignment(badge_competencies_alignment $alignment) { - $currentbadge = new badge($alignment->currentbadgeid); - $paging = new paging_bar($alignment->totalcount, $alignment->page, $alignment->perpage, $this->page->url, 'page'); + protected function render_badge_alignments(badge_alignments $alignments) { + $currentbadge = new badge($alignments->currentbadgeid); + $paging = new paging_bar($alignments->totalcount, $alignments->page, $alignments->perpage, $this->page->url, 'page'); $htmlpagingbar = $this->render($paging); $table = new html_table(); $table->attributes['class'] = 'generaltable boxaligncenter boxwidthwide'; $table->head = array('Name', 'URL', ''); - foreach ($alignment->alignments as $item) { - $urlaligment = new moodle_url('competency.php', + foreach ($alignments->alignments as $item) { + $urlaligment = new moodle_url('alignment.php', array( 'id' => $currentbadge->id, 'alignmentid' => $item->id, @@ -1212,7 +1212,7 @@ protected function render_badge_competencies_alignment(badge_competencies_alignm ); if (!$currentbadge->is_active() && !$currentbadge->is_locked()) { $delete = $this->output->action_icon( - new moodle_url('competency_action.php', + new moodle_url('alignment_action.php', array( 'id' => $currentbadge->id, 'alignmentid' => $item->id, @@ -1220,7 +1220,7 @@ protected function render_badge_competencies_alignment(badge_competencies_alignm ) ), new pix_icon('t/delete', get_string('delete'))); $edit = $this->output->action_icon( - new moodle_url('competency.php', + new moodle_url('alignment.php', array( 'id' => $currentbadge->id, 'alignmentid' => $item->id, @@ -1480,13 +1480,13 @@ public function __construct($badges, $currentbadgeid) { } /** - * Collection of all competencies. + * Collection of all alignments. * * @copyright 2018 Tung Thai * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @author Tung Thai */ -class badge_competencies_alignment implements renderable +class badge_alignments implements renderable { /** @var string how are the data sorted. */ public $sort = 'name'; @@ -1510,9 +1510,9 @@ class badge_competencies_alignment implements renderable public $currentbadgeid = 0; /** - * Initializes the list of competencies to display. + * Initializes the list of alignments to display. * - * @param array $alignments List competencies alignment to render. + * @param array $alignments List alignments to render. * @param int $currentbadgeid ID current badge. */ public function __construct($alignments, $currentbadgeid) { diff --git a/badges/tests/badgeslib_test.php b/badges/tests/badgeslib_test.php index d577c7871553c..d37e417c28c4f 100644 --- a/badges/tests/badgeslib_test.php +++ b/badges/tests/badgeslib_test.php @@ -119,15 +119,15 @@ protected function setUp() { $relatebadge->relatedbadgeid = $clonedid; $relatebadge->relatedid = $DB->insert_record('badge_related', $relatebadge, true); - // Insert a competency aligment. - $competency = new stdClass(); - $competency->badgeid = $this->coursebadge; - $competency->targetname = 'CCSS.ELA-Literacy.RST.11-12.3'; - $competency->targeturl = 'http://www.corestandards.org/ELA-Literacy/RST/11-12/3'; - $competency->targetdescription = 'Test target description'; - $competency->targetframework = 'CCSS.RST.11-12.3'; - $competency->targetcode = 'CCSS.RST.11-12.3'; - $DB->insert_record('badge_competencies', $competency, true); + // Insert a aligment. + $alignment = new stdClass(); + $alignment->badgeid = $this->coursebadge; + $alignment->targetname = 'CCSS.ELA-Literacy.RST.11-12.3'; + $alignment->targeturl = 'http://www.corestandards.org/ELA-Literacy/RST/11-12/3'; + $alignment->targetdescription = 'Test target description'; + $alignment->targetframework = 'CCSS.RST.11-12.3'; + $alignment->targetcode = 'CCSS.RST.11-12.3'; + $DB->insert_record('badge_alignment', $alignment, true); $this->assertion = new stdClass(); $this->assertion->badge = '{"uid":"%s","recipient":{"identity":"%s","type":"email","hashed":true,"salt":"%s"},"badge":"%s","verify":{"type":"hosted","url":"%s"},"issuedOn":"%d","evidence":"%s"}'; @@ -797,41 +797,41 @@ public function test_badge_related() { } /** - * Test insert, update, delete competencies alignment with a site badge. + * Test insert, update, delete alignment with a site badge. */ - public function test_competencies_alignment() { + public function test_alignments() { $badge = new badge($this->badgeid); - // Insert a competency alignment. - $competency1 = new stdClass(); - $competency1->badgeid = $this->badgeid; - $competency1->targetname = 'CCSS.ELA-Literacy.RST.11-12.3'; - $competency1->targeturl = 'http://www.corestandards.org/ELA-Literacy/RST/11-12/3'; - $competency1->targetdescription = 'Test target description'; - $competency1->targetframework = 'CCSS.RST.11-12.3'; - $competency1->targetcode = 'CCSS.RST.11-12.3'; - $competency2 = clone $competency1; - $newid1 = $badge->save_alignment($competency1); - $newid2 = $badge->save_alignment($competency2); - $competencies1 = $badge->get_alignment(); - $this->assertCount(2, $competencies1); - - $this->assertEquals($competency1->badgeid, $competencies1[$newid1]->badgeid); - $this->assertEquals($competency1->targetname, $competencies1[$newid1]->targetname); - $this->assertEquals($competency1->targeturl, $competencies1[$newid1]->targeturl); - $this->assertEquals($competency1->targetdescription, $competencies1[$newid1]->targetdescription); - $this->assertEquals($competency1->targetframework, $competencies1[$newid1]->targetframework); - $this->assertEquals($competency1->targetcode, $competencies1[$newid1]->targetcode); - - // Update competency aligment. - $competencies1[$newid1]->targetname = 'CCSS.ELA-Literacy.RST.11-12.3 update'; - $badge->save_alignment($competencies1[$newid1], $competencies1[$newid1]->id); - $competencies2 = $badge->get_alignment(); - $this->assertEquals($competencies1[$newid1]->id, $competencies2[$newid1]->id); - $this->assertEquals($competencies1[$newid1]->targetname, $competencies2[$newid1]->targetname); - - // Delete competency alignment. - $badge->delete_alignment($competencies1[$newid2]->id); - $this->assertCount(1, $badge->get_alignment()); + // Insert a alignment. + $alignment1 = new stdClass(); + $alignment1->badgeid = $this->badgeid; + $alignment1->targetname = 'CCSS.ELA-Literacy.RST.11-12.3'; + $alignment1->targeturl = 'http://www.corestandards.org/ELA-Literacy/RST/11-12/3'; + $alignment1->targetdescription = 'Test target description'; + $alignment1->targetframework = 'CCSS.RST.11-12.3'; + $alignment1->targetcode = 'CCSS.RST.11-12.3'; + $alignment2 = clone $alignment1; + $newid1 = $badge->save_alignment($alignment1); + $newid2 = $badge->save_alignment($alignment2); + $alignments1 = $badge->get_alignments(); + $this->assertCount(2, $alignments1); + + $this->assertEquals($alignment1->badgeid, $alignments1[$newid1]->badgeid); + $this->assertEquals($alignment1->targetname, $alignments1[$newid1]->targetname); + $this->assertEquals($alignment1->targeturl, $alignments1[$newid1]->targeturl); + $this->assertEquals($alignment1->targetdescription, $alignments1[$newid1]->targetdescription); + $this->assertEquals($alignment1->targetframework, $alignments1[$newid1]->targetframework); + $this->assertEquals($alignment1->targetcode, $alignments1[$newid1]->targetcode); + + // Update aligment. + $alignments1[$newid1]->targetname = 'CCSS.ELA-Literacy.RST.11-12.3 update'; + $badge->save_alignment($alignments1[$newid1], $alignments1[$newid1]->id); + $alignments2 = $badge->get_alignments(); + $this->assertEquals($alignments1[$newid1]->id, $alignments2[$newid1]->id); + $this->assertEquals($alignments1[$newid1]->targetname, $alignments2[$newid1]->targetname); + + // Delete alignment. + $badge->delete_alignment($alignments1[$newid2]->id); + $this->assertCount(1, $badge->get_alignments()); } } diff --git a/badges/tests/behat/add_badge.feature b/badges/tests/behat/add_badge.feature index 7c03084f64cd6..235fdd0bfd374 100644 --- a/badges/tests/behat/add_badge.feature +++ b/badges/tests/behat/add_badge.feature @@ -46,7 +46,7 @@ Feature: Add badges to the system And I should see "Test badge with 'apostrophe' and other friends (&@#)" And I should see "Endorsement" And I should see "Related badges (0)" - And I should see "Competencies (0)" + And I should see "External alignments (0)" And I should not see "Create badge" And I follow "Manage badges" And I should see "Number of badges available: 1" @@ -118,7 +118,7 @@ Feature: Add badges to the system Then I should see "Changes saved" @javascript @_file_upload - Scenario: Competencies alignment for Badge + Scenario: External alignments for Badge Given I navigate to "Badges > Add a new badge" in site administration And I set the following fields to these values: | Name | Test Badge | @@ -133,18 +133,15 @@ Feature: Add badges to the system When I press "Create badge" Then I should see "Test Badge" And I should see "Endorsement" - And I follow "Competencies (0)" - And I should see "This badge does not have any competencies specified." - And I press "Add competency" - And I follow "Competency" - And I wait until the page is ready - And I follow "Competency" + And I follow "External alignments (0)" + And I should see "This badge does not have any external alignments specified." + And I press "Add external alignment" And I set the following fields to these values: - | Competency name | Test Badge Competencies | - | URL | https://competencies.example.com | - | Description | Test Badge Competencies description | + | External alignment name | Test Badge Alignments | + | URL | https://alignments.example.com | + | Description | Test Badge Alignments description | When I press "Save changes" - And I should see "Competencies (1)" + And I should see "External alignments (1)" @javascript @_file_upload Scenario: Add a badge from Site badges section diff --git a/badges/tests/external_test.php b/badges/tests/external_test.php index 9ebf174980a42..7bbd982d48570 100644 --- a/badges/tests/external_test.php +++ b/badges/tests/external_test.php @@ -110,22 +110,22 @@ public function setUp() { $endorsement->dateissued = $now; $badge->save_endorsement($endorsement); - // Add 2 competencies. - $competency = new stdClass(); - $competency->badgeid = $badgeid; - $competency->targetname = 'Competency 1'; - $competency->targeturl = 'http://c1-target-url.domain.co.nz'; - $competency->targetdescription = 'C1 target description'; - $competency->targetframework = 'C1 framework'; - $competency->targetcode = 'C1 code'; - $badge->save_alignment($competency); - - $competency->targetname = 'Competency 2'; - $competency->targeturl = 'http://c2-target-url.domain.co.nz'; - $competency->targetdescription = 'C2 target description'; - $competency->targetframework = 'C2 framework'; - $competency->targetcode = 'C2 code'; - $badge->save_alignment($competency); + // Add 2 alignments. + $alignment = new stdClass(); + $alignment->badgeid = $badgeid; + $alignment->targetname = 'Alignment 1'; + $alignment->targeturl = 'http://a1-target-url.domain.co.nz'; + $alignment->targetdescription = 'A1 target description'; + $alignment->targetframework = 'A1 framework'; + $alignment->targetcode = 'A1 code'; + $badge->save_alignment($alignment); + + $alignment->targetname = 'Alignment 2'; + $alignment->targeturl = 'http://a2-target-url.domain.co.nz'; + $alignment->targetdescription = 'A2 target description'; + $alignment->targetframework = 'A2 framework'; + $alignment->targetcode = 'A2 code'; + $badge->save_alignment($alignment); // Now a course badge. $badge->id = null; @@ -162,26 +162,26 @@ public function test_get_my_user_badges() { $badge->badgeurl = moodle_url::make_webservice_pluginfile_url($context->id, 'badges', 'badgeimage', $badge->id, '/', 'f1')->out(false); - // Get the endorsement, competencies and related badges. + // Get the endorsement, alignments and related badges. $badgeinstance = new badge($badge->id); $endorsement = $badgeinstance->get_endorsement(); - $competencies = $badgeinstance->get_alignment(); + $alignments = $badgeinstance->get_alignments(); $relatedbadges = $badgeinstance->get_related_badges(); - $badge->competencies = array(); + $badge->alignments = array(); $badge->relatedbadges = array(); if ($endorsement) { $badge->endorsement = (array) $endorsement; } - if (!empty($competencies)) { - foreach ($competencies as $competency) { - // Students cannot see some fields of the competencies. - unset($competency->targetdescription); - unset($competency->targetframework); - unset($competency->targetcode); + if (!empty($alignments)) { + foreach ($alignments as $alignment) { + // Students cannot see some fields of the alignments. + unset($alignment->targetdescription); + unset($alignment->targetframework); + unset($alignment->targetcode); - $badge->competencies[] = (array) $competency; + $badge->alignments[] = (array) $alignment; } } @@ -231,9 +231,9 @@ public function test_get_other_user_badges() { if (isset($badge['type']) and $badge['type'] == BADGE_TYPE_COURSE) { $this->assertTrue(isset($badge['message'])); - // Check that we have permissions to see all the data in competencies and related badges. - foreach ($badge['competencies'] as $competency) { - $this->assertTrue(isset($competency['targetdescription'])); + // Check that we have permissions to see all the data in alignments and related badges. + foreach ($badge['alignments'] as $alignment) { + $this->assertTrue(isset($alignment['targetdescription'])); } foreach ($badge['relatedbadges'] as $relatedbadge) { diff --git a/badges/upgrade.txt b/badges/upgrade.txt index 8b2039407c3ee..407fcdaf0813b 100644 --- a/badges/upgrade.txt +++ b/badges/upgrade.txt @@ -1,5 +1,7 @@ This files describes API changes in /badges/*, information provided here is intended especially for developers. +=== 3.7 === +* Incorrect term "badge competencies" has been refactored to "alignments" everywhere. === 3.6 === diff --git a/lib/badgeslib.php b/lib/badgeslib.php index d0c1931c428db..98c1b9e3746dd 100644 --- a/lib/badgeslib.php +++ b/lib/badgeslib.php @@ -714,7 +714,7 @@ public function delete($archive = true) { $badgecontext = $this->get_context(); $fs->delete_area_files($badgecontext->id, 'badges', 'badgeimage', $this->id); - // Delete endorsements, competencies and related badges. + // Delete endorsements, alignments and related badges. $DB->delete_records('badge_endorsement', array('badgeid' => $this->id)); $relatedsql = 'badgeid = :badgeid OR relatedbadgeid = :relatedbadgeid'; $relatedparams = array( @@ -722,7 +722,7 @@ public function delete($archive = true) { 'relatedbadgeid' => $this->id ); $DB->delete_records_select('badge_related', $relatedsql, $relatedparams); - $DB->delete_records('badge_competencies', array('badgeid' => $this->id)); + $DB->delete_records('badge_alignment', array('badgeid' => $this->id)); // Finally, remove badge itself. $DB->delete_records('badge', array('id' => $this->id)); @@ -804,43 +804,43 @@ public function get_related_badges(bool $activeonly = false) { } /** - * Insert/update competency alignment information of badge. + * Insert/update alignment information of badge. * - * @param stdClass $alignment Data of a competency alignment. - * @param int $alignmentid ID competency alignment. + * @param stdClass $alignment Data of a alignment. + * @param int $alignmentid ID alignment. * @return bool|int A status/ID when insert or update data. */ public function save_alignment($alignment, $alignmentid = 0) { global $DB; - $record = $DB->record_exists('badge_competencies', array('id' => $alignmentid)); + $record = $DB->record_exists('badge_alignment', array('id' => $alignmentid)); if ($record) { $alignment->id = $alignmentid; - return $DB->update_record('badge_competencies', $alignment); + return $DB->update_record('badge_alignment', $alignment); } else { - return $DB->insert_record('badge_competencies', $alignment, true); + return $DB->insert_record('badge_alignment', $alignment, true); } } /** - * Delete a competency alignment of badge. + * Delete a alignment of badge. * - * @param int $alignmentid ID competency alignment. - * @return bool A status for delete a competency alignment. + * @param int $alignmentid ID alignment. + * @return bool A status for delete a alignment. */ public function delete_alignment($alignmentid) { global $DB; - return $DB->delete_records('badge_competencies', array('badgeid' => $this->id, 'id' => $alignmentid)); + return $DB->delete_records('badge_alignment', array('badgeid' => $this->id, 'id' => $alignmentid)); } /** - * Get competencies of badge. + * Get alignments of badge. * - * @return array List content competencies. + * @return array List content alignments. */ public function get_alignment() { global $DB; - return $DB->get_records('badge_competencies', array('badgeid' => $this->id)); + return $DB->get_records('badge_alignment', array('badgeid' => $this->id)); } /** diff --git a/lib/db/install.xml b/lib/db/install.xml index fd1548f8797f0..9c127a4edce2d 100644 --- a/lib/db/install.xml +++ b/lib/db/install.xml @@ -3200,7 +3200,7 @@ - +
@@ -3212,7 +3212,7 @@ - +
diff --git a/lib/db/upgrade.php b/lib/db/upgrade.php index 7d28a63155100..0b0e59dacd299 100644 --- a/lib/db/upgrade.php +++ b/lib/db/upgrade.php @@ -2923,5 +2923,29 @@ function xmldb_main_upgrade($oldversion) { upgrade_main_savepoint(true, 2019032200.02); } + if ($oldversion < 2019032900.00) { + + // Define table badge_competencies to be renamed to badge_alignment. + $table = new xmldb_table('badge_competencies'); + + // Be careful if this step gets run twice. + if ($dbman->table_exists($table)) { + $key = new xmldb_key('competenciesbadge', XMLDB_KEY_FOREIGN, ['badgeid'], 'badge', ['id']); + + // Launch drop key competenciesbadge. + $dbman->drop_key($table, $key); + + $key = new xmldb_key('alignmentsbadge', XMLDB_KEY_FOREIGN, ['badgeid'], 'badge', ['id']); + + // Launch add key alignmentsbadge. + $dbman->add_key($table, $key); + + // Launch rename table for badge_alignment. + $dbman->rename_table($table, 'badge_alignment'); + } + + upgrade_main_savepoint(true, 2019032900.00); + } + return true; } diff --git a/lib/setuplib.php b/lib/setuplib.php index 76a4fea3ead9e..98a8666ada1a9 100644 --- a/lib/setuplib.php +++ b/lib/setuplib.php @@ -1407,7 +1407,7 @@ function disable_output_buffering() { */ function is_major_upgrade_required() { global $CFG; - $lastmajordbchanges = 2019011801.00; + $lastmajordbchanges = 2019032900.00; $required = empty($CFG->version); $required = $required || (float)$CFG->version < $lastmajordbchanges; diff --git a/version.php b/version.php index eeaaa852057cd..eb1f55bf886d7 100644 --- a/version.php +++ b/version.php @@ -29,7 +29,7 @@ defined('MOODLE_INTERNAL') || die(); -$version = 2019032800.00; // YYYYMMDD = weekly release date of this DEV branch. +$version = 2019032900.00; // YYYYMMDD = weekly release date of this DEV branch. // RR = release increments - 00 in DEV branches. // .XX = incremental changes.