|
@@ -21,12 +21,26 @@ class Category implements GradebookItem
|
|
|
private $skills = array();
|
|
|
private $grade_model_id;
|
|
|
private $generateCertificates;
|
|
|
+ private $isRequirement;
|
|
|
|
|
|
/**
|
|
|
* Consctructor
|
|
|
*/
|
|
|
public function __construct()
|
|
|
{
|
|
|
+ $this->id = 0;
|
|
|
+ $this->name = null;
|
|
|
+ $this->description = null;
|
|
|
+ $this->user_id = 0;
|
|
|
+ $this->course_code = null;
|
|
|
+ $this->parent = 0;
|
|
|
+ $this->weight = 0;
|
|
|
+ $this->visible = false;
|
|
|
+ $this->certificate_min_score = 0;
|
|
|
+ $this->session_id = 0;
|
|
|
+ $this->grade_model_id = 0;
|
|
|
+ $this->generateCertificates = false;
|
|
|
+ $this->isRequirement = false;
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -113,6 +127,15 @@ class Category implements GradebookItem
|
|
|
return $this->visible;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * Get $isRequirement
|
|
|
+ * @return int
|
|
|
+ */
|
|
|
+ public function getIsRequirement()
|
|
|
+ {
|
|
|
+ return $this->isRequirement;
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* @param int $id
|
|
|
*/
|
|
@@ -210,6 +233,15 @@ class Category implements GradebookItem
|
|
|
$this->locked = $locked;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * Set $isRequirement
|
|
|
+ * @param int $isRequirement
|
|
|
+ */
|
|
|
+ public function setIsRequirement($isRequirement)
|
|
|
+ {
|
|
|
+ $this->isRequirement = $isRequirement;
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* @return int
|
|
|
*/
|
|
@@ -440,6 +472,7 @@ class Category implements GradebookItem
|
|
|
$cat->set_weight(0);
|
|
|
$cat->set_visible(1);
|
|
|
$cat->setGenerateCertificates(0);
|
|
|
+ $cat->setIsRequirement(false);
|
|
|
|
|
|
return $cat;
|
|
|
}
|
|
@@ -467,12 +500,46 @@ class Category implements GradebookItem
|
|
|
$cat->set_grade_model_id($data['grade_model_id']);
|
|
|
$cat->set_locked($data['locked']);
|
|
|
$cat->setGenerateCertificates($data['generate_certificates']);
|
|
|
+ $cat->setIsRequirement($data['is_requirement']);
|
|
|
$categories[] = $cat;
|
|
|
}
|
|
|
|
|
|
return $categories;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * Create a category object from a GradebookCategory entity
|
|
|
+ * @param Chamilo\CoreBundle\Entity\GradebookCategory $gradebookCategory
|
|
|
+ * The entity
|
|
|
+ * @return \Category
|
|
|
+ */
|
|
|
+ public static function createCategoryObjectFromEntity(
|
|
|
+ Chamilo\CoreBundle\Entity\GradebookCategory $gradebookCategory
|
|
|
+ )
|
|
|
+ {
|
|
|
+ $category = new Category();
|
|
|
+ $category->set_id($gradebookCategory->getId());
|
|
|
+ $category->set_name($gradebookCategory->getName());
|
|
|
+ $category->set_description($gradebookCategory->getDescription());
|
|
|
+ $category->set_user_id($gradebookCategory->getUserId());
|
|
|
+ $category->set_course_code($gradebookCategory->getCourseCode());
|
|
|
+ $category->set_parent_id($gradebookCategory->getParentId());
|
|
|
+ $category->set_weight($gradebookCategory->getWeight());
|
|
|
+ $category->set_visible($gradebookCategory->getVisible());
|
|
|
+ $category->set_session_id($gradebookCategory->getSessionId());
|
|
|
+ $category->set_certificate_min_score(
|
|
|
+ $gradebookCategory->getCertifMinScore()
|
|
|
+ );
|
|
|
+ $category->set_grade_model_id($gradebookCategory->getGradeModelId());
|
|
|
+ $category->set_locked($gradebookCategory->getLocked());
|
|
|
+ $category->setGenerateCertificates(
|
|
|
+ $gradebookCategory->getGenerateCertificates()
|
|
|
+ );
|
|
|
+ $category->setIsRequirement($gradebookCategory->getIsRequirement());
|
|
|
+
|
|
|
+ return $category;
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* Insert this category into the database
|
|
|
*/
|
|
@@ -483,70 +550,26 @@ class Category implements GradebookItem
|
|
|
}
|
|
|
|
|
|
if (isset($this->name) && isset($this->user_id)) {
|
|
|
- $tbl_grade_categories = Database :: get_main_table(TABLE_MAIN_GRADEBOOK_CATEGORY);
|
|
|
- $sql = 'INSERT INTO '.$tbl_grade_categories.' (name,user_id,weight,visible';
|
|
|
- if (isset($this->description)) {
|
|
|
- $sql .= ',description';
|
|
|
- }
|
|
|
- if (isset($this->course_code)) {
|
|
|
- $sql .= ',course_code';
|
|
|
- }
|
|
|
- if (isset($this->parent)) {
|
|
|
- $sql .= ',parent_id';
|
|
|
- }
|
|
|
- if (!empty($this->session_id)) {
|
|
|
- $sql .= ', session_id';
|
|
|
- }
|
|
|
-
|
|
|
- if (isset($this->grade_model_id)) {
|
|
|
- $sql .= ', grade_model_id ';
|
|
|
- }
|
|
|
- if (isset($this->certificate_min_score) && !empty($this->certificate_min_score)) {
|
|
|
- $sql .= ', certif_min_score ';
|
|
|
- }
|
|
|
-
|
|
|
- if (isset($this->generateCertificates)) {
|
|
|
- $sql .= ', generate_certificates ';
|
|
|
- }
|
|
|
-
|
|
|
- /*
|
|
|
- $setting = api_get_setting('tool_visible_by_default_at_creation');
|
|
|
- $visible = 1;
|
|
|
- if (isset($setting['gradebook'])) {
|
|
|
- if ($setting['gradebook'] == 'false') {
|
|
|
- $visible = 0;
|
|
|
- }
|
|
|
- }*/
|
|
|
+ $em = Database::getManager();
|
|
|
+
|
|
|
+ $category = new \Chamilo\CoreBundle\Entity\GradebookCategory();
|
|
|
+ $category->setName($this->name);
|
|
|
+ $category->setDescription($this->description);
|
|
|
+ $category->setUserId($this->user_id);
|
|
|
+ $category->setCourseCode($this->course_code);
|
|
|
+ $category->setParentId($this->parent);
|
|
|
+ $category->setWeight($this->weight);
|
|
|
+ $category->setVisible($this->visible);
|
|
|
+ $category->setCertifMinScore($this->certificate_min_score);
|
|
|
+ $category->setSessionId($this->session_id);
|
|
|
+ $category->setGenerateCertificates($this->generateCertificates);
|
|
|
+ $category->setGradeModelId($this->grade_model_id);
|
|
|
+ $category->setIsRequirement($this->isRequirement);
|
|
|
+ $category->setLocked(false);
|
|
|
+
|
|
|
+ $em->persist($category);
|
|
|
+ $em->flush();
|
|
|
|
|
|
- $visible = intval($this->is_visible());
|
|
|
-
|
|
|
- $sql .= ") VALUES ('".Database::escape_string($this->get_name())."'"
|
|
|
- .','.intval($this->get_user_id())
|
|
|
- .','.Database::escape_string($this->get_weight())
|
|
|
- .','.$visible;
|
|
|
- if (isset($this->description)) {
|
|
|
- $sql .= ",'".Database::escape_string($this->get_description())."'";
|
|
|
- }
|
|
|
- if (isset($this->course_code)) {
|
|
|
- $sql .= ",'".Database::escape_string($this->get_course_code())."'";
|
|
|
- }
|
|
|
- if (isset($this->parent)) {
|
|
|
- $sql .= ','.intval($this->get_parent_id());
|
|
|
- }
|
|
|
- if (!empty($this->session_id)) {
|
|
|
- $sql .= ', '.intval($this->get_session_id());
|
|
|
- }
|
|
|
- if (isset($this->grade_model_id)) {
|
|
|
- $sql .= ', '.intval($this->get_grade_model_id());
|
|
|
- }
|
|
|
- if (isset($this->certificate_min_score) && !empty($this->certificate_min_score)) {
|
|
|
- $sql .= ', '.intval($this->get_certificate_min_score());
|
|
|
- }
|
|
|
- if (isset($this->generateCertificates)) {
|
|
|
- $sql .= ', ' . intval($this->generateCertificates);
|
|
|
- }
|
|
|
- $sql .= ')';
|
|
|
- Database::query($sql);
|
|
|
$id = Database::insert_id();
|
|
|
$this->set_id($id);
|
|
|
|
|
@@ -595,44 +618,32 @@ class Category implements GradebookItem
|
|
|
*/
|
|
|
public function save()
|
|
|
{
|
|
|
- $tbl_grade_categories = Database :: get_main_table(TABLE_MAIN_GRADEBOOK_CATEGORY);
|
|
|
+ $em = Database::getManager();
|
|
|
|
|
|
- $sql = 'UPDATE '.$tbl_grade_categories." SET
|
|
|
- name = '".Database::escape_string($this->get_name())."'".',
|
|
|
- description = ';
|
|
|
- if (isset($this->description)) {
|
|
|
- $sql .= "'".Database::escape_string($this->get_description())."'";
|
|
|
- } else {
|
|
|
- $sql .= 'null';
|
|
|
- }
|
|
|
- $sql .= ', user_id = '.intval($this->get_user_id())
|
|
|
- .', course_code = ';
|
|
|
- if (isset($this->course_code)) {
|
|
|
- $sql .= "'".Database::escape_string($this->get_course_code())."'";
|
|
|
- } else {
|
|
|
- $sql .= 'null';
|
|
|
- }
|
|
|
- $sql .= ', parent_id = ';
|
|
|
- if (isset($this->parent)) {
|
|
|
- $sql .= intval($this->get_parent_id());
|
|
|
- } else {
|
|
|
- $sql .= 'null';
|
|
|
- }
|
|
|
- $sql .= ', certif_min_score = ';
|
|
|
- if (isset($this->certificate_min_score) && !empty($this->certificate_min_score)) {
|
|
|
- $sql .= intval($this->get_certificate_min_score());
|
|
|
- } else {
|
|
|
- $sql .= 'null';
|
|
|
- }
|
|
|
- if (isset($this->grade_model_id)) {
|
|
|
- $sql .= ', grade_model_id = '.intval($this->get_grade_model_id());
|
|
|
+ $gradebookCategory = $em
|
|
|
+ ->getRepository('ChamiloCoreBundle:GradebookCategory')
|
|
|
+ ->find($this->id);
|
|
|
+
|
|
|
+ if (empty($gradebookCategory)) {
|
|
|
+ return false;
|
|
|
}
|
|
|
- $sql .= ', weight = "'.Database::escape_string($this->get_weight())
|
|
|
- .'", visible = '.intval($this->is_visible())
|
|
|
- . ', generate_certificates = ' . intval($this->generateCertificates)
|
|
|
- .' WHERE id = '.intval($this->id);
|
|
|
|
|
|
- Database::query($sql);
|
|
|
+ $gradebookCategory->setName($this->name);
|
|
|
+ $gradebookCategory->setDescription($this->description);
|
|
|
+ $gradebookCategory->setUserId($this->user_id);
|
|
|
+ $gradebookCategory->setCourseCode($this->course_code);
|
|
|
+ $gradebookCategory->setParentId($this->parent);
|
|
|
+ $gradebookCategory->setWeight($this->weight);
|
|
|
+ $gradebookCategory->setVisible($this->visible);
|
|
|
+ $gradebookCategory->setCertifMinScore($this->certificate_min_score);
|
|
|
+ $gradebookCategory->setGenerateCertificates(
|
|
|
+ $this->generateCertificates
|
|
|
+ );
|
|
|
+ $gradebookCategory->setGradeModelId($this->grade_model_id);
|
|
|
+ $gradebookCategory->setIsRequirement($this->isRequirement);
|
|
|
+
|
|
|
+ $em->persist($gradebookCategory);
|
|
|
+ $em->flush();
|
|
|
|
|
|
if (!empty($this->id)) {
|
|
|
$parent_id = $this->get_parent_id();
|
|
@@ -746,7 +757,7 @@ class Category implements GradebookItem
|
|
|
return null;
|
|
|
} else {
|
|
|
$tbl_category = Database :: get_main_table(TABLE_MAIN_GRADEBOOK_CATEGORY);
|
|
|
- $sql = 'SELECT name,description,user_id,course_code,parent_id,weight,visible,certif_min_score,session_id, generate_certificates
|
|
|
+ $sql = 'SELECT name,description,user_id,course_code,parent_id,weight,visible,certif_min_score,session_id, generate_certificates, is_requirement
|
|
|
FROM '.$tbl_category.' c
|
|
|
WHERE c.id='.intval($selectcat);
|
|
|
$result = Database::query($sql);
|