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

pull/4219/head
Christian 3 years ago
parent ee58d64660
commit ebfdcc9f86
  1. 6
      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; return false;
} }
$enableGradeSubCategorySkills = (true === api_get_configuration_value('gradebook_enable_subcategory_skills_independant_assignement'));
// Load subcategories // Load subcategories
if (empty($category->get_parent_id())) { if (empty($category->get_parent_id())) {
$subCategories = $category->get_subcategories( $subCategories = $category->get_subcategories(
@ -1210,15 +1211,16 @@ class Skill extends Model
$skill_gradebooks = $skill_gradebook->get_all(['where' => ['gradebook_id = ?' => $gradebookId]]); $skill_gradebooks = $skill_gradebook->get_all(['where' => ['gradebook_id = ?' => $gradebookId]]);
// It checks if gradebook is passed to add the skill // It checks if gradebook is passed to add the skill
if ($enableGradeSubCategorySkills) {
$userFinished = Category::userFinishedCourse( $userFinished = Category::userFinishedCourse(
$userId, $userId,
$category, $category,
true true
); );
if (!$userFinished) { if (!$userFinished) {
return false; return false;
} }
}
if (!empty($skill_gradebooks)) { if (!empty($skill_gradebooks)) {
foreach ($skill_gradebooks as $skill_gradebook) { foreach ($skill_gradebooks as $skill_gradebook) {
@ -1271,7 +1273,7 @@ class Skill extends Model
foreach ($gradeResult as $data) { foreach ($gradeResult as $data) {
/** @var AbstractLink $item */ /** @var AbstractLink $item */
$item = $data[0]; $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()]['min_score'] = $item->getCertificateMinScore();
$scoreSubCategories[$item->get_id()]['user_score'] = round($data['result_score'][0]); $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 // Enable skills in subcategory to work independant on assignement
// Require DB changes: // Require DB changes:
// ALTER TABLE gradebook_category ADD allow_skills_by_subcategory tinyint(1) NOT NULL DEFAULT '1'; // 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; //$_configuration['gradebook_enable_subcategory_skills_independant_assignement'] = false;
// KEEP THIS AT THE END // KEEP THIS AT THE END

@ -120,6 +120,15 @@ class GradebookCategory
*/ */
protected $gradeModelId; 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 * @var bool
* *
@ -501,4 +510,24 @@ class GradebookCategory
{ {
return $this->id; 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