From fe40faba12552f1c89c511d0d3e65f4e1464718c Mon Sep 17 00:00:00 2001 From: Angel Fernando Quiroz Campos Date: Wed, 3 Feb 2021 19:08:08 -0500 Subject: [PATCH] Portfolio: Add course setting to allow qualify - refs BT#18201 --- main/course_info/infocours.php | 23 +++++++++++++++++++ main/inc/lib/PortfolioController.php | 14 +++++++---- main/inc/lib/course.lib.php | 6 +++++ main/portfolio/index.php | 8 +++++++ .../template/default/portfolio/view.html.twig | 4 ++-- 5 files changed, 49 insertions(+), 6 deletions(-) diff --git a/main/course_info/infocours.php b/main/course_info/infocours.php index 0ede027a62..141b3f6757 100755 --- a/main/course_info/infocours.php +++ b/main/course_info/infocours.php @@ -922,6 +922,29 @@ $form->addPanelOption( $globalGroup ); +if (api_get_configuration_value('allow_portfolio_tool')) { + $globalGroup = [ + get_lang('QualifyPortfolioItems') => [ + $form->createElement('radio', 'qualify_portfolio_item', null, get_lang('Yes'), 1), + $form->createElement('radio', 'qualify_portfolio_item', null, get_lang('No'), 2), + ], + get_lang('QualifyPortfolioComments') => [ + $form->createElement('radio', 'qualify_portfolio_comment', null, get_lang('Yes'), 1), + $form->createElement('radio', 'qualify_portfolio_comment', null, get_lang('No'), 2), + ], + get_lang('MaxScore') => [ + $form->createElement('number', 'portfolio_max_score', get_lang('MaxScore'), ['step' => 'any', 'min' => 0]), + ], + $form->addButtonSave(get_lang('SaveSettings'), 'submit_save', true), + ]; + + $form->addPanelOption( + 'portfolio', + Display::return_icon('wiki_task.png', get_lang('Portfolio')).PHP_EOL.get_lang('Portfolio'), + $globalGroup + ); +} + // Plugin course settings $appPlugin = new AppPlugin(); $appPlugin->add_course_settings_form($form); diff --git a/main/inc/lib/PortfolioController.php b/main/inc/lib/PortfolioController.php index 69a6a13425..b13c08c764 100644 --- a/main/inc/lib/PortfolioController.php +++ b/main/inc/lib/PortfolioController.php @@ -670,9 +670,9 @@ class PortfolioController ); } - if ($this->course) { + if ($this->course && '1' === api_get_course_setting('qualify_portfolio_comment')) { $commentActions .= Display::url( - Display::return_icon('evaluation.png', get_lang('Qualify')), + Display::return_icon('evaluation.png', get_lang('QualifyThisPortfolioComment')), $this->baseUrl.http_build_query( [ 'action' => 'qualify', @@ -1823,7 +1823,10 @@ class PortfolioController $itemContent = $this->generateItemContent($item); $form->addLabel(get_lang('Content'), $itemContent); - $form->addNumeric('score', get_lang('QualifyNumeric')); + $form->addNumeric( + 'score', + [get_lang('QualifyNumeric'), null, ' / '.api_get_course_setting('portfolio_max_score')] + ); $form->addButtonSave(get_lang('QualifyThisPortfolioItem')); if ($form->validate()) { @@ -1889,7 +1892,10 @@ class PortfolioController $form->addHtml($commentContext); $form->addUserAvatar('user', get_lang('Author')); $form->addLabel(get_lang('Comment'), $comment->getContent()); - $form->addNumeric('score', get_lang('QualifyNumeric')); + $form->addNumeric( + 'score', + [get_lang('QualifyNumeric'), null, '/ '.api_get_course_setting('portfolio_max_score')] + ); $form->addButtonSave(get_lang('QualifyThisPortfolioComment')); if ($form->validate()) { diff --git a/main/inc/lib/course.lib.php b/main/inc/lib/course.lib.php index 737192d22a..a8a6aeb000 100755 --- a/main/inc/lib/course.lib.php +++ b/main/inc/lib/course.lib.php @@ -5882,6 +5882,12 @@ class CourseManager $courseSettings[] = 'lp_return_link'; } + if (api_get_configuration_value('allow_portfolio_tool')) { + $courseSettings[] = 'qualify_portfolio_item'; + $courseSettings[] = 'qualify_portfolio_comment'; + $courseSettings[] = 'portfolio_max_score'; + } + if (!empty($pluginCourseSettings)) { $courseSettings = array_merge( $courseSettings, diff --git a/main/portfolio/index.php b/main/portfolio/index.php index 5c9a6c5833..2aed80a824 100755 --- a/main/portfolio/index.php +++ b/main/portfolio/index.php @@ -193,6 +193,10 @@ switch ($action) { } if ($httpRequest->query->has('item')) { + if ('1' !== api_get_course_setting('qualify_portfolio_item')) { + api_not_allowed(true); + } + /** @var Portfolio $item */ $item = $em->find( Portfolio::class, @@ -205,6 +209,10 @@ switch ($action) { $controller->qualifyItem($item); } elseif ($httpRequest->query->has('comment')) { + if ('1' !== api_get_course_setting('qualify_portfolio_comment')) { + api_not_allowed(true); + } + /** @var Portfolio $item */ $comment = $em->find( PortfolioComment::class, diff --git a/main/template/default/portfolio/view.html.twig b/main/template/default/portfolio/view.html.twig index 251a199860..da09156a7d 100644 --- a/main/template/default/portfolio/view.html.twig +++ b/main/template/default/portfolio/view.html.twig @@ -30,9 +30,9 @@ {{ 'copy.png'|img(22, 'CopyToStudentPortfolio'|get_lang) }} - {% if item.course %} + {% if item.course and '1' == 'qualify_portfolio_item'|api_get_course_setting %} - {{ 'new_portfolio_evaluation.png'|img(22, 'Qualify'|get_lang) }} + {{ 'new_portfolio_evaluation.png'|img(22, 'QualifyThisPortfolioItem'|get_lang) }} {% endif %} {% endif %}