course_poll.module in Course 3.x
File
modules/course_poll/course_poll.module
View source
<?php
use Drupal\Core\Form\FormStateInterface;
function course_poll_course_handlers() {
return array(
'object' => array(
'poll' => array(
'name' => t('Poll'),
'class' => 'Drupal\\course_poll\\Course\\Object\\CourseObjectPoll',
'fulfillment class' => 'Drupal\\course_poll\\Course\\Object\\CourseObjectPollFulfillment',
'description' => t('A poll to be used in a course workflow.'),
),
),
);
}
function course_poll_form_poll_view_form_alter(&$form, FormStateInterface $form_state) {
$form['actions']['vote']['#submit'][] = 'course_poll_fulfill';
unset($form['actions']['vote']['#ajax']);
}
function course_poll_fulfill($form, FormStateInterface $form_state) {
$account = \Drupal::currentUser();
if ($courseObject = course_get_course_object('poll', $form['#entity']
->id())) {
$courseObject
->getFulfillment($account)
->setOption('instance', $form_state
->getValue('choice'))
->setComplete()
->save();
}
}