You are here

function opigno_assessment_form_course_node_form_alter in Opigno 7.0

Implements hook_form_course_node_form_alter()

File

modules/opigno_assessment/opigno_assessment.module, line 122
Contains all hook_implementations and module specific API.

Code

function opigno_assessment_form_course_node_form_alter(&$form, $form_state) {
  if (user_access('edit course assessment options')) {
    $node = $form['#node'];
    $form['opigno_assessment'] = array(
      '#type' => 'fieldset',
      '#title' => t("Course assessment"),
      '#weight' => 10,
      '#collapsible' => TRUE,
      '#collapsed' => TRUE,
      '#group' => 'additional_settings',
      '#attached' => array(
        'js' => array(
          drupal_get_path('module', 'opigno_assessment') . '/js/opigno_assessment.js',
        ),
      ),
      '#attributes' => array(
        'class' => array(
          'opigno-assessment-form',
        ),
      ),
      '#tree' => TRUE,
    );
    $form['opigno_assessment']['option'] = array(
      '#type' => 'radios',
      '#title' => t("Assessment options"),
      '#options' => array(
        'no' => t("No assessment for this course"),
        'all' => t("Student must accomplish all assignments"),
        'some' => t("Student must accomplish certain assignments"),
      ),
      '#default_value' => isset($node->opigno_assessment['option']) ? $node->opigno_assessment['option'] : 'no',
    );
    $quizzes = opigno_assessment_get_quizzes($node);
    $form['opigno_assessment']['quizzes'] = array(
      '#type' => 'select',
      '#title' => t("Select assignments to complete"),
      '#description' => t("A student must accomplish all selected assignments in order to finish the course."),
      '#options' => $quizzes,
      '#multiple' => TRUE,
      '#default_value' => isset($node->opigno_assessment['quizzes']) ? $node->opigno_assessment['quizzes'] : array(),
    );
    if (empty($quizzes)) {
      $form['opigno_assessment']['quizzes'] = array_merge($form['opigno_assessment']['quizzes'], array(
        '#options' => array(
          t("This course has no assignments yet."),
        ),
        '#multiple' => FALSE,
        '#attributes' => array(
          'disabled' => 'disabled',
        ),
      ));
    }
    $form['opigno_assessment']['rule'] = array(
      '#type' => 'radios',
      '#title' => t("Success rule"),
      '#description' => t("A student successfully accomplishes this course if the following rule(s) is(are) met."),
      '#options' => array(
        'average' => t("The average grade is higher than X"),
        'average_neg' => t("The average grade is higher than X AND no grade is lower than Y"),
      ),
      '#default_value' => isset($node->opigno_assessment['rule']) ? $node->opigno_assessment['rule'] : 'average',
    );
    $form['opigno_assessment']['average'] = array(
      '#type' => 'select',
      '#title' => t("Minimum grade"),
      '#options' => opigno_assessment_get_scale(),
      '#default_value' => isset($node->opigno_assessment['average']) ? $node->opigno_assessment['average'] : round(variable_get('opigno_assessment_grade_scale', 10) / 2),
    );
    $form['opigno_assessment']['min'] = array(
      '#type' => 'select',
      '#title' => t("No grade lower than"),
      '#options' => opigno_assessment_get_scale(),
      '#default_value' => isset($node->opigno_assessment['min']) ? $node->opigno_assessment['min'] : round(variable_get('opigno_assessment_grade_scale', 10) / 2),
    );
  }
}