From 7eb3f2d916fc34d47a23ebaf774c8fe1d2ad33b0 Mon Sep 17 00:00:00 2001 From: Angel Fernando Quiroz Campos Date: Wed, 24 Oct 2018 18:21:03 -0500 Subject: [PATCH] WIP lti add link to register tool in gradebook - refs BT#13469 --- plugin/ims_lti/add.php | 9 +++++++++ plugin/ims_lti/gradebook/add_eval.php | 14 +++++++++++++- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/plugin/ims_lti/add.php b/plugin/ims_lti/add.php index 52ed271eec..d210a8161b 100644 --- a/plugin/ims_lti/add.php +++ b/plugin/ims_lti/add.php @@ -99,6 +99,8 @@ if ($form->validate()) { exit; } +$categories = Category::load(null, null, $course->getCode()); + $template = new Template($plugin->get_lang('AddExternalTool')); $template->assign('type', $baseTool ? $baseTool->getId() : null); $template->assign('tools', $globalTools); @@ -111,6 +113,13 @@ $actions = Display::url( api_get_self().'?'.api_get_cidreq() ); +if (!empty($categories)) { + $actions .= Display::url( + Display::return_icon('gradebook.png', $plugin->get_lang('AddToolToGradebook'), [], ICON_SIZE_MEDIUM), + './gradebook/add_eval.php?selectcat='.$categories[0]->get_id().'&'.api_get_cidreq() + ); +} + $template->assign('actions', Display::toolbarAction('lti_toolbar', [$actions])); $template->assign('content', $content); $template->display_one_col_template(); diff --git a/plugin/ims_lti/gradebook/add_eval.php b/plugin/ims_lti/gradebook/add_eval.php index c75a2a0e5d..4f8e4bf260 100644 --- a/plugin/ims_lti/gradebook/add_eval.php +++ b/plugin/ims_lti/gradebook/add_eval.php @@ -20,9 +20,21 @@ $select_cat = isset($_GET['selectcat']) ? (int) $_GET['selectcat'] : 0; $is_allowedToEdit = $is_courseAdmin; $em = Database::getManager(); +/** @var \Chamilo\CoreBundle\Entity\Course $course */ $course = $em->find('ChamiloCoreBundle:Course', api_get_course_int_id()); $ltiToolRepo = $em->getRepository('ChamiloPluginBundle:ImsLti\ImsLtiTool'); +$categories = Category::load(null, null, $course->getCode()); + +if (empty($categories)) { + $message = Display::return_message( + get_plugin_lang('GradebookNotSetWarning', 'ImsLtiPlugin'), + 'warning' + ); + + api_not_allowed(true, $message); +} + $evaladd = new Evaluation(); $evaladd->set_user_id($_user['user_id']); @@ -48,7 +60,7 @@ $slcLtiTools = $form->createElement('select', 'name', get_lang('Tool')); $form->insertElementBefore($slcLtiTools, 'hid_category_id'); $form->addRule('name', get_lang('ThisFieldIsRequired'), 'required'); -$ltiTools = $ltiToolRepo->findByCourse($course); +$ltiTools = $ltiToolRepo->findBy(['course' => $course, 'gradebookEval' => null]); /** @var ImsLtiTool $ltiTool */ foreach ($ltiTools as $ltiTool) {