Skills : Fix reecalculate results for skills - refs BT#19823

pull/4219/head
Christian 3 years ago
parent ee58d64660
commit ebfdcc9f86
  1. 20
      main/inc/lib/skill.lib.php
  2. 2
      main/install/configuration.dist.php
  3. 29
      src/Chamilo/CoreBundle/Entity/GradebookCategory.php

@ -1183,6 +1183,7 @@ class Skill extends Model
return false;
}
$enableGradeSubCategorySkills = (true === api_get_configuration_value('gradebook_enable_subcategory_skills_independant_assignement'));
// Load subcategories
if (empty($category->get_parent_id())) {
$subCategories = $category->get_subcategories(
@ -1210,14 +1211,15 @@ class Skill extends Model
$skill_gradebooks = $skill_gradebook->get_all(['where' => ['gradebook_id = ?' => $gradebookId]]);
// It checks if gradebook is passed to add the skill
$userFinished = Category::userFinishedCourse(
$userId,
$category,
true
);
if (!$userFinished) {
return false;
if ($enableGradeSubCategorySkills) {
$userFinished = Category::userFinishedCourse(
$userId,
$category,
true
);
if (!$userFinished) {
return false;
}
}
if (!empty($skill_gradebooks)) {
@ -1271,7 +1273,7 @@ class Skill extends Model
foreach ($gradeResult as $data) {
/** @var AbstractLink $item */
$item = $data[0];
if ('Category' === get_class($item)) {
if (Category::class === get_class($item)) {
$scoreSubCategories[$item->get_id()]['min_score'] = $item->getCertificateMinScore();
$scoreSubCategories[$item->get_id()]['user_score'] = round($data['result_score'][0]);
}

@ -2159,6 +2159,8 @@ INSERT INTO `extra_field` (`extra_field_type`, `field_type`, `variable`, `displa
// Enable skills in subcategory to work independant on assignement
// Require DB changes:
// ALTER TABLE gradebook_category ADD allow_skills_by_subcategory tinyint(1) NOT NULL DEFAULT '1';
// Requires edit Entity GradebookCategory: src/Chamilo/CoreBundle/Entity/GradebookCategory.php uncomment "allowSkillsBySubcategory" variable.
// Requires uncomment the allowSkillsBySubcategory get and set
//$_configuration['gradebook_enable_subcategory_skills_independant_assignement'] = false;
// KEEP THIS AT THE END

@ -120,6 +120,15 @@ class GradebookCategory
*/
protected $gradeModelId;
/**
* Enable skills in subcategory to work independant on assignement.
*
* @var int
*
* @ORM\Column(name="allow_skills_by_subcategory", type="integer", nullable=false)
*/
//protected $allowSkillsBySubcategory;
/**
* @var bool
*
@ -501,4 +510,24 @@ class GradebookCategory
{
return $this->id;
}
/**
* @return int
*/
/*public function getAllowSkillsBySubcategory()
{
return $this->allowSkillsBySubcategory;
}*/
/**
* @param int $allowSkillsBySubcategory
*
* @return GradebookCategory
*/
/*public function setAllowSkillsBySubcategory($allowSkillsBySubcategory)
{
$this->allowSkillsBySubcategory = $allowSkillsBySubcategory;
return $this;
}*/
}

Loading…
Cancel
Save