<?php

/* For licensing terms, see /license.txt */

require_once __DIR__.'/../inc/global.inc.php';

api_block_anonymous_users();
GradebookUtils::block_students();
$edit_cat = isset($_REQUEST['editcat']) ? (int) $_REQUEST['editcat'] : 0;

$catedit = Category::load($edit_cat);
$form = new CatForm(
    CatForm::TYPE_EDIT,
    $catedit[0],
    'edit_cat_form',
    'post',
    api_get_self().'?'.api_get_cidreq().'&editcat='.$edit_cat
);

if ($form->validate()) {
    $values = $form->getSubmitValues();

    $cat = new Category();

    if (!empty($values['hid_id'])) {
        $cat = $cat->load($values['hid_id']);
        if (isset($cat[0])) {
            $cat = $cat[0];
        }
    }

    $cat->set_id($values['hid_id']);
    $cat->set_name($values['name']);

    if (empty($values['course_code'])) {
        $cat->setCourseId(null);
    } else {
        $cat->setCourseId(api_get_course_int_id($values['course_code']));
    }

    if (isset($values['grade_model_id'])) {
        $cat->set_grade_model_id($values['grade_model_id']);
    }

    $cat->set_description($values['description']);

    if (isset($values['skills'])) {
        $cat->set_skills($values['skills']);
    }

    $cat->set_user_id($values['hid_user_id']);
    $cat->set_parent_id($values['hid_parent_id']);
    $cat->set_weight($values['weight']);

    if (isset($values['generate_certificates'])) {
        $cat->setGenerateCertificates($values['generate_certificates']);
    } else {
        $cat->setGenerateCertificates(false);
    }

    if (0 == $values['hid_parent_id']) {
        $cat->set_certificate_min_score($values['certif_min_score']);
    }

    $visible = 1;
    if (empty($values['visible'])) {
        $visible = 0;
    }
    $cat->set_visible($visible);

    if (isset($values['is_requirement'])) {
        $cat->setIsRequirement(true);
    } else {
        $cat->setIsRequirement(false);
    }
    $cat->save();
    header('Location: '.Category::getUrl().'editcat=&selectcat='.$cat->get_parent_id());
    exit;
}
$selectcat = isset($_GET['selectcat']) ? (int) $_GET['selectcat'] : 0;

$action_details = '';
$current_id = 0;
if (isset($_GET['editcat'])) {
    $action_details = 'editcat';
    $current_id = (int) $_GET['editcat'];
}

$logInfo = [
    'tool' => TOOL_GRADEBOOK,
    'tool_id' => 0,
    'tool_id_detail' => 0,
    'action' => 'edit-cat',
    'action_details' => $action_details,
];
Event::registerLog($logInfo);

$interbreadcrumb[] = [
    'url' => Category::getUrl().'selectcat='.$selectcat,
    'name' => get_lang('Assessments'),
];
$this_section = SECTION_COURSES;
Display::display_header(get_lang('Edit this category'));
$form->display();
Display::display_footer();
