Add field to check whether generate certificates - refs #7525

1.10.x
Angel Fernando Quiroz Campos 11 years ago
parent fddc3f43ac
commit c044bdcc7c
  1. 1
      main/gradebook/gradebook_add_cat.php
  2. 1
      main/gradebook/gradebook_edit_cat.php
  3. 28
      main/gradebook/lib/be/category.class.php
  4. 15
      main/gradebook/lib/fe/catform.class.php
  5. 3
      main/install/db_main.sql
  6. 2
      main/install/migrate-db-1.9.0-1.10.0-pre.sql

@ -131,6 +131,7 @@ if ($form->validate()) {
$cat->set_user_id($values['hid_user_id']);
$cat->set_parent_id($values['hid_parent_id']);
$cat->set_weight($values['weight']);
$cat->setGenerateCertificates($values['generate_certificates']);
if (empty ($values['visible'])) {
$visible = 0;

@ -109,6 +109,7 @@ if ($form->validate()) {
$cat->set_user_id($values['hid_user_id']);
$cat->set_parent_id($values['hid_parent_id']);
$cat->set_weight($values['weight']);
$cat->setGenerateCertificates($values['generate_certificates']);
if ($values['hid_parent_id'] == 0 ) {
$cat->set_certificate_min_score($values['certif_min_score']);

@ -24,6 +24,7 @@ class Category implements GradebookItem
private $session_id;
private $skills = array();
private $grade_model_id;
private $generateCertificates;
public function __construct()
{
@ -186,6 +187,16 @@ class Category implements GradebookItem
return $skill_select;
}
public function setGenerateCertificates($generateCertificates)
{
$this->generateCertificates = $generateCertificates;
}
public function getGenerateCetificates()
{
return $this->generateCertificates;
}
/**
* @param int $id
* @param int $session_id
@ -350,6 +361,7 @@ class Category implements GradebookItem
$cat->set_parent_id(null);
$cat->set_weight(0);
$cat->set_visible(1);
$cat->setGenerateCertificates(false);
return $cat;
}
@ -375,6 +387,7 @@ class Category implements GradebookItem
$cat->set_certificate_min_score($data['certif_min_score']);
$cat->set_grade_model_id($data['grade_model_id']);
$cat->set_locked($data['locked']);
$cat->setGenerateCertificates($data['generate_certificates']);
$allcat[] = $cat;
}
@ -413,6 +426,10 @@ class Category implements GradebookItem
$sql .= ', certif_min_score ';
}
if (isset($this->generateCertificates)) {
$sql .= ', generate_certificates ';
}
/*
$setting = api_get_setting('tool_visible_by_default_at_creation');
$visible = 1;
@ -446,6 +463,9 @@ class Category implements GradebookItem
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();
@ -528,6 +548,7 @@ class Category implements GradebookItem
}
$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);
@ -643,7 +664,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 FROM '.$tbl_category.' c WHERE c.id='.intval($selectcat);
$sql='SELECT name,description,user_id,course_code,parent_id,weight,visible,certif_min_score,session_id, generate_certificates FROM '.$tbl_category.' c WHERE c.id='.intval($selectcat);
$result = Database::query($sql);
$row = Database::fetch_array($result, 'ASSOC');
@ -1592,6 +1613,11 @@ class Category implements GradebookItem
);
/** @var Category $category */
$category = $cats_course[0];
if (!$category->getGenerateCetificates()) {
return false;
}
$alleval_course = $category->get_evaluations($user_id, true);
$alllink_course = $category->get_links($user_id, true);
$evals_links = array_merge($alleval_course, $alllink_course);

@ -179,6 +179,7 @@ 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->getGenerateCetificates()
)
);
$this->addElement('hidden', 'hid_id', $this->category_object->get_id());
@ -350,6 +351,20 @@ class CatForm extends FormValidator
$this->freeze('grade_model_id');
}
}
$generateCertificatesParams = array();
if ($this->category_object->getGenerateCetificates()) {
$generateCertificatesParams['checked'] = 'checked';
}
$this->addElement(
'checkbox',
'generate_certificates',
null,
get_lang('GenerateCertificates'),
$generateCertificatesParams
);
}
if ($this->form_type == self :: TYPE_ADD) {

@ -1370,7 +1370,8 @@ CREATE TABLE IF NOT EXISTS gradebook_category (
document_id int unsigned DEFAULT NULL,
locked int NOT NULL DEFAULT 0,
default_lowest_eval_exclude TINYINT default null,
PRIMARY KEY (id)
generate_certificates TINYINT NOT NULL DEFAULT 0,
PRIMARY KEY (id)
);
DROP TABLE IF EXISTS gradebook_evaluation;
CREATE TABLE IF NOT EXISTS gradebook_evaluation (

@ -34,6 +34,8 @@ CREATE TABLE session_field_options (id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
ALTER TABLE skill ADD COLUMN criteria text DEFAULT '';
ALTER TABLE gradebook_category ADD COLUMN generate_certificates TINYINT NOT NULL DEFAULT 0;
-- Do not move this query
UPDATE settings_current SET selected_value = '1.10.0.7' WHERE variable = 'chamilo_database_version';

Loading…
Cancel
Save