Add is_requirement column to validate sequence - refs BT#9893 #TMI

1.10.x
Angel Fernando Quiroz Campos 10 years ago
parent 8fc0de0be5
commit d5b25e94f2
  1. 6
      main/gradebook/gradebook_add_cat.php
  2. 7
      main/gradebook/gradebook_edit_cat.php
  3. 176
      main/gradebook/lib/be/category.class.php
  4. 13
      main/gradebook/lib/fe/catform.class.php
  5. 36
      src/Chamilo/CoreBundle/Entity/GradebookCategory.php
  6. 36
      src/Chamilo/CoreBundle/Migrations/Schema/V110/Version20150706135000.php

@ -134,6 +134,12 @@ if ($form->validate()) {
$cat->setGenerateCertificates(false);
}
if (isset($values['is_requirement'])) {
$cat->setIsRequirement(true);
} else {
$cat->setIsRequirement(false);
}
if (empty ($values['visible'])) {
$visible = 0;
} else {

@ -129,6 +129,13 @@ if ($form->validate()) {
}
$cat->set_visible($visible);
if (isset($values['is_requirement'])) {
$cat->setIsRequirement(true);
} else {
$cat->setIsRequirement(false);
}
$cat->save();
header('Location: '.Security::remove_XSS($_SESSION['gradebook_dest']).'?editcat=&selectcat=' . $cat->get_parent_id().'&'.api_get_cidreq());
exit;

@ -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,6 +500,7 @@ 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;
}
@ -483,70 +517,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;
}
}*/
$visible = intval($this->is_visible());
$em = Database::getManager();
$foo = new \Chamilo\CoreBundle\Entity\GradebookCategory();
$foo->setName($this->name);
$foo->setDescription($this->description);
$foo->setUserId($this->user_id);
$foo->setCourseCode($this->course_code);
$foo->setParentId($this->parent);
$foo->setWeight($this->weight);
$foo->setVisible($this->visible);
$foo->setCertifMinScore($this->certificate_min_score);
$foo->setSessionId($this->session_id);
$foo->setGenerateCertificates($this->generateCertificates);
$foo->setGradeModelId($this->grade_model_id);
$foo->setIsRequirement($this->isRequirement);
$foo->setLocked(false);
$em->persist($foo);
$em->flush();
$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 +585,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 +724,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);

@ -176,7 +176,8 @@ class CatForm extends FormValidator
'weight' => $this->category_object->get_weight(),
'visible' => $this->category_object->is_visible(),
'certif_min_score' => $this->category_object->get_certificate_min_score(),
'generate_certificates' => $this->category_object->getGenerateCertificates()
'generate_certificates' => $this->category_object->getGenerateCertificates(),
'is_requirement' => $this->category_object->getIsRequirement()
)
);
$this->addElement('hidden', 'hid_id', $this->category_object->get_id());
@ -370,6 +371,16 @@ class CatForm extends FormValidator
);
}
$isRequirementCheckbox = $this->addCheckBox(
'is_requirement',
null,
get_lang('IsRequirement')
);
if ($this->category_object->getIsRequirement()) {
$isRequirementCheckbox->setChecked(true);
}
if ($this->form_type == self :: TYPE_ADD) {
$this->addButtonCreate(get_lang('AddCategory'));
} else {

@ -12,6 +12,9 @@ use Doctrine\ORM\Mapping as ORM;
*/
class GradebookCategory
{
public function setId($f) {
$this->id = $f;
}
/**
* @var string
*
@ -110,6 +113,18 @@ class GradebookCategory
*/
private $gradeModelId;
/**
* @var boolean
*
* @ORM\Column(
* name="is_requirement",
* type="boolean",
* nullable=false,
* options={"default": 0 }
* )
*/
private $isRequirement;
/**
* @var integer
*
@ -443,6 +458,27 @@ class GradebookCategory
return $this->gradeModelId;
}
/**
* Set isRequirement
* @param boolean $isRequirement
* @return \Chamilo\CoreBundle\Entity\GradebookCategory
*/
public function setIsRequirement($isRequirement)
{
$this->isRequirement = $isRequirement;
return $this;
}
/**
* Get isRequirement
* @return boolean
*/
public function getIsRequirement()
{
return $this->isRequirement;
}
/**
* Get id
*

@ -0,0 +1,36 @@
<?php
/* For licensing terms, see /license.txt */
namespace Chamilo\CoreBundle\Migrations\Schema\V110;
use Chamilo\CoreBundle\Migrations\AbstractMigrationChamilo;
use Doctrine\DBAL\Schema\Schema;
/**
* GradebookCategory changes
*/
class Version20150706135000 extends AbstractMigrationChamilo
{
/**
* @param Schema $schema
*/
public function up(Schema $schema)
{
$gradebookCategory = $schema->getTable('gradebook_category');
$isRequirement = $gradebookCategory->addColumn(
'is_requirement',
\Doctrine\DBAL\Types\Type::BOOLEAN
);
$isRequirement->setNotnull(true)->setDefault(false);
}
/**
* @param Schema $schema
*/
public function down(Schema $schema)
{
$gradebookCategory = $schema->getTable('gradebook_category');
$gradebookCategory->dropColumn('is_requirement');
}
}
Loading…
Cancel
Save