Portfolio: Add course setting to allow qualify - refs BT#18201

pull/3766/head^2
Angel Fernando Quiroz Campos 5 years ago
parent 9a6e05da37
commit fe40faba12
  1. 23
      main/course_info/infocours.php
  2. 14
      main/inc/lib/PortfolioController.php
  3. 6
      main/inc/lib/course.lib.php
  4. 8
      main/portfolio/index.php
  5. 4
      main/template/default/portfolio/view.html.twig

@ -922,6 +922,29 @@ $form->addPanelOption(
$globalGroup $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 // Plugin course settings
$appPlugin = new AppPlugin(); $appPlugin = new AppPlugin();
$appPlugin->add_course_settings_form($form); $appPlugin->add_course_settings_form($form);

@ -670,9 +670,9 @@ class PortfolioController
); );
} }
if ($this->course) { if ($this->course && '1' === api_get_course_setting('qualify_portfolio_comment')) {
$commentActions .= Display::url( $commentActions .= Display::url(
Display::return_icon('evaluation.png', get_lang('Qualify')), Display::return_icon('evaluation.png', get_lang('QualifyThisPortfolioComment')),
$this->baseUrl.http_build_query( $this->baseUrl.http_build_query(
[ [
'action' => 'qualify', 'action' => 'qualify',
@ -1823,7 +1823,10 @@ class PortfolioController
$itemContent = $this->generateItemContent($item); $itemContent = $this->generateItemContent($item);
$form->addLabel(get_lang('Content'), $itemContent); $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')); $form->addButtonSave(get_lang('QualifyThisPortfolioItem'));
if ($form->validate()) { if ($form->validate()) {
@ -1889,7 +1892,10 @@ class PortfolioController
$form->addHtml($commentContext); $form->addHtml($commentContext);
$form->addUserAvatar('user', get_lang('Author')); $form->addUserAvatar('user', get_lang('Author'));
$form->addLabel(get_lang('Comment'), $comment->getContent()); $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')); $form->addButtonSave(get_lang('QualifyThisPortfolioComment'));
if ($form->validate()) { if ($form->validate()) {

@ -5882,6 +5882,12 @@ class CourseManager
$courseSettings[] = 'lp_return_link'; $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)) { if (!empty($pluginCourseSettings)) {
$courseSettings = array_merge( $courseSettings = array_merge(
$courseSettings, $courseSettings,

@ -193,6 +193,10 @@ switch ($action) {
} }
if ($httpRequest->query->has('item')) { if ($httpRequest->query->has('item')) {
if ('1' !== api_get_course_setting('qualify_portfolio_item')) {
api_not_allowed(true);
}
/** @var Portfolio $item */ /** @var Portfolio $item */
$item = $em->find( $item = $em->find(
Portfolio::class, Portfolio::class,
@ -205,6 +209,10 @@ switch ($action) {
$controller->qualifyItem($item); $controller->qualifyItem($item);
} elseif ($httpRequest->query->has('comment')) { } elseif ($httpRequest->query->has('comment')) {
if ('1' !== api_get_course_setting('qualify_portfolio_comment')) {
api_not_allowed(true);
}
/** @var Portfolio $item */ /** @var Portfolio $item */
$comment = $em->find( $comment = $em->find(
PortfolioComment::class, PortfolioComment::class,

@ -30,9 +30,9 @@
{{ 'copy.png'|img(22, 'CopyToStudentPortfolio'|get_lang) }} {{ 'copy.png'|img(22, 'CopyToStudentPortfolio'|get_lang) }}
</a> </a>
{% if item.course %} {% if item.course and '1' == 'qualify_portfolio_item'|api_get_course_setting %}
<a href="{{ baseurl ~ {'action':'qualify', 'item':item.id}|url_encode }}"> <a href="{{ baseurl ~ {'action':'qualify', 'item':item.id}|url_encode }}">
{{ 'new_portfolio_evaluation.png'|img(22, 'Qualify'|get_lang) }} {{ 'new_portfolio_evaluation.png'|img(22, 'QualifyThisPortfolioItem'|get_lang) }}
</a> </a>
{% endif %} {% endif %}
{% endif %} {% endif %}

Loading…
Cancel
Save