Portfolio: Add course config portfolio_number_items and portfolio_number_comments - refs BT#18201

pull/4368/head
Angel Fernando Quiroz Campos 3 years ago
parent 10fba18ae9
commit 0583dc8952
  1. 6
      main/course_info/infocours.php
  2. 77
      main/inc/lib/PortfolioController.php
  3. 2
      main/inc/lib/course.lib.php

@ -1015,6 +1015,12 @@ if ($allowPortfolioTool) {
get_lang('MaxScore') => [ get_lang('MaxScore') => [
$form->createElement('number', 'portfolio_max_score', get_lang('MaxScore'), ['step' => 'any', 'min' => 0]), $form->createElement('number', 'portfolio_max_score', get_lang('MaxScore'), ['step' => 'any', 'min' => 0]),
], ],
get_lang('RequiredNumberOfItems') => [
$form->createElement('number', 'portfolio_number_items', '', ['step' => '1', 'min' => 0]),
],
get_lang('RequiredNumberOfComments') => [
$form->createElement('number', 'portfolio_number_comments', '', ['step' => '1', 'min' => 0]),
],
$form->addButtonSave(get_lang('SaveSettings'), 'submit_save', true), $form->addButtonSave(get_lang('SaveSettings'), 'submit_save', true),
]; ];

@ -1879,17 +1879,48 @@ class PortfolioController
$content .= $frmStudent->returnForm(); $content .= $frmStudent->returnForm();
} }
$content .= Display::page_subheader2(get_lang('PortfolioItems')).PHP_EOL; $totalNumberOfItems = $tblItems->get_total_number_of_items();
$totalNumberOfComments = $tblComments->get_total_number_of_items();
$requiredNumberOfItems = (int) api_get_course_setting('portfolio_number_items');
$requiredNumberOfComments = (int) api_get_course_setting('portfolio_number_comments');
if ($tblItems->get_total_number_of_items() > 0) { $itemsSubtitle = '';
if ($requiredNumberOfItems > 0) {
$itemsSubtitle = sprintf(
get_lang('XAddedYRequired'),
$totalNumberOfItems,
$requiredNumberOfItems
);
}
$content .= Display::page_subheader2(
get_lang('PortfolioItems'),
$itemsSubtitle
).PHP_EOL;
if ($totalNumberOfItems > 0) {
$content .= $tblItems->return_table().PHP_EOL; $content .= $tblItems->return_table().PHP_EOL;
} else { } else {
$content .= Display::return_message(get_lang('NoItemsInYourPortfolio'), 'warning'); $content .= Display::return_message(get_lang('NoItemsInYourPortfolio'), 'warning');
} }
$content .= Display::page_subheader2(get_lang('PortfolioCommentsMade')).PHP_EOL; $commentsSubtitle = '';
if ($tblComments->get_total_number_of_items() > 0) { if ($requiredNumberOfComments > 0) {
$commentsSubtitle = sprintf(
get_lang('XAddedYRequired'),
$totalNumberOfComments,
$requiredNumberOfComments
);
}
$content .= Display::page_subheader2(
get_lang('PortfolioCommentsMade'),
$commentsSubtitle
).PHP_EOL;
if ($totalNumberOfComments > 0) {
$content .= $tblComments->return_table().PHP_EOL; $content .= $tblComments->return_table().PHP_EOL;
} else { } else {
$content .= Display::return_message(get_lang('YouHaveNotCommented'), 'warning'); $content .= Display::return_message(get_lang('YouHaveNotCommented'), 'warning');
@ -1953,17 +1984,47 @@ class PortfolioController
$itemsHtml = $this->getItemsInHtmlFormatted($items); $itemsHtml = $this->getItemsInHtmlFormatted($items);
$commentsHtml = $this->getCommentsInHtmlFormatted($comments); $commentsHtml = $this->getCommentsInHtmlFormatted($comments);
$pdfContent .= Display::page_subheader2(get_lang('PortfolioItems')); $totalNumberOfItems = count($itemsHtml);
$totalNumberOfComments = count($commentsHtml);
$requiredNumberOfItems = (int) api_get_course_setting('portfolio_number_items');
$requiredNumberOfComments = (int) api_get_course_setting('portfolio_number_comments');
$itemsSubtitle = '';
$commentsSubtitle = '';
if (count($itemsHtml) > 0) { if ($requiredNumberOfItems > 0) {
$itemsSubtitle = sprintf(
get_lang('XAddedYRequired'),
$totalNumberOfItems,
$requiredNumberOfItems
);
}
if ($requiredNumberOfComments > 0) {
$commentsSubtitle = sprintf(
get_lang('XAddedYRequired'),
$totalNumberOfComments,
$requiredNumberOfComments
);
}
$pdfContent .= Display::page_subheader2(
get_lang('PortfolioItems'),
$itemsSubtitle
);
if ($totalNumberOfItems > 0) {
$pdfContent .= implode(PHP_EOL, $itemsHtml); $pdfContent .= implode(PHP_EOL, $itemsHtml);
} else { } else {
$pdfContent .= Display::return_message(get_lang('NoItemsInYourPortfolio'), 'warning'); $pdfContent .= Display::return_message(get_lang('NoItemsInYourPortfolio'), 'warning');
} }
$pdfContent .= Display::page_subheader2(get_lang('PortfolioCommentsMade')); $pdfContent .= Display::page_subheader2(
get_lang('PortfolioCommentsMade'),
$commentsSubtitle
);
if (count($commentsHtml) > 0) { if ($totalNumberOfComments > 0) {
$pdfContent .= implode(PHP_EOL, $commentsHtml); $pdfContent .= implode(PHP_EOL, $commentsHtml);
} else { } else {
$pdfContent .= Display::return_message(get_lang('YouHaveNotCommented'), 'warning'); $pdfContent .= Display::return_message(get_lang('YouHaveNotCommented'), 'warning');

@ -5843,6 +5843,8 @@ class CourseManager
$courseSettings[] = 'qualify_portfolio_item'; $courseSettings[] = 'qualify_portfolio_item';
$courseSettings[] = 'qualify_portfolio_comment'; $courseSettings[] = 'qualify_portfolio_comment';
$courseSettings[] = 'portfolio_max_score'; $courseSettings[] = 'portfolio_max_score';
$courseSettings[] = 'portfolio_number_items';
$courseSettings[] = 'portfolio_number_comments';
} }
if (api_get_configuration_value('lp_show_max_progress_or_average_enable_course_level_redefinition')) { if (api_get_configuration_value('lp_show_max_progress_or_average_enable_course_level_redefinition')) {

Loading…
Cancel
Save