$sendMail = isset($values['send_mail']) ? $values['send_mail'] : null;
        switch ($values['action']) {
            case 'add':
                $announcement_id = SystemAnnouncementManager::add_announcement($values['title'], $values['content'], $values['range_start'], $values['range_end'], $values['visible_teacher'], $values['visible_student'], $values['visible_guest'], $values['lang'], $sendMail, empty($values['add_to_calendar']) ? false : true, empty($values['send_email_test']) ? false : true);
                if ($announcement_id !== false) {
                    SystemAnnouncementManager::announcement_for_groups($announcement_id, array($values['group']));
                    Display::display_confirmation_message(get_lang('AnnouncementAdded'));
                } else {
                    $show_announcement_list = false;
                    $form->display();
                }
                break;
            case 'edit':
                $sendMailTest = isset($values['send_email_test']) ? $values['send_email_test'] : null;
                if (SystemAnnouncementManager::update_announcement($values['id'], $values['title'], $values['content'], $values['range_start'], $values['range_end'], $values['visible_teacher'], $values['visible_student'], $values['visible_guest'], $values['lang'], $sendMail, $sendMailTest)) {
                    SystemAnnouncementManager::announcement_for_groups($values['id'], array($values['group']));
                    Display::display_confirmation_message(get_lang('AnnouncementUpdated'));
                } else {
                    $show_announcement_list = false;
                    $form->display();
                }
                break;
            default:
                break;
        }
        $show_announcement_list = true;
    } else {
        $form->display();
        $show_announcement_list = false;
    }
}