Passed
Push — master ( cfd449...e324b4 )
by Yannick
08:14
created

WorkflowsSettingsSchema   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 89
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 66
c 1
b 0
f 0
dl 0
loc 89
rs 10
wmc 2

2 Methods

Rating   Name   Duplication   Size   Complexity  
A buildForm() 0 58 1
A buildSettings() 0 26 1
1
<?php
2
3
declare(strict_types=1);
4
5
/* For licensing terms, see /license.txt */
6
7
namespace Chamilo\CoreBundle\Settings;
8
9
use Chamilo\CoreBundle\Form\Type\YesNoType;
10
use Sylius\Bundle\SettingsBundle\Schema\AbstractSettingsBuilder;
11
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
12
use Symfony\Component\Form\Extension\Core\Type\TextareaType;
13
use Symfony\Component\Form\Extension\Core\Type\TextType;
14
use Symfony\Component\Form\FormBuilderInterface;
15
16
class WorkflowsSettingsSchema extends AbstractSettingsSchema
17
{
18
    public function buildSettings(AbstractSettingsBuilder $builder): void
19
    {
20
        $builder->setDefaults([
21
            'plugin_redirection_enabled' => 'false',
22
            'usergroup_do_not_unsubscribe_users_from_course_nor_session_on_user_unsubscribe' => 'false',
23
            'usergroup_do_not_unsubscribe_users_from_course_on_course_unsubscribe' => 'false',
24
            'usergroup_do_not_unsubscribe_users_from_session_on_session_unsubscribe' => 'false',
25
            'drh_allow_access_to_all_students' => 'false',
26
            'send_all_emails_to' => '',
27
            'go_to_course_after_login' => 'false',
28
            'allow_users_to_create_courses' => 'false',
29
            'allow_user_course_subscription_by_course_admin' => 'true',
30
            'teacher_can_select_course_template' => 'true',
31
            'disabled_edit_session_coaches_course_editing_course' => 'false',
32
            'course_visibility_change_only_admin' => 'false',
33
            'multiple_url_hide_disabled_settings' => 'false',
34
            'gamification_mode' => '',
35
            'load_term_conditions_section' => 'login',
36
            'update_student_expiration_x_date' => '',
37
            'user_number_of_days_for_default_expiration_date_per_role' => '',
38
            'user_edition_extra_field_to_check' => 'ExtrafieldLabel',
39
            'allow_working_time_edition' => 'false',
40
            'disable_user_conditions_sender_id' => '0',
41
            'redirect_index_to_url_for_logged_users' => '',
42
            'default_menu_entry_for_course_or_session' => 'my_courses',
43
            'session_admin_user_subscription_search_extra_field_to_search' => '',
44
        ]);
45
    }
46
47
    public function buildForm(FormBuilderInterface $builder): void
48
    {
49
        // admin → workflows
50
        $builder
51
            ->add('plugin_redirection_enabled', YesNoType::class)
52
            ->add('usergroup_do_not_unsubscribe_users_from_course_nor_session_on_user_unsubscribe', YesNoType::class)
53
            ->add('usergroup_do_not_unsubscribe_users_from_course_on_course_unsubscribe', YesNoType::class)
54
            ->add('usergroup_do_not_unsubscribe_users_from_session_on_session_unsubscribe', YesNoType::class)
55
            ->add('drh_allow_access_to_all_students', YesNoType::class)
56
            ->add('send_all_emails_to', TextareaType::class, [
57
                'attr' => ['rows' => 5, 'style' => 'font-family: monospace;'],
58
            ])
59
            ->add('go_to_course_after_login', YesNoType::class)
60
            ->add('allow_users_to_create_courses', YesNoType::class)
61
            ->add('allow_user_course_subscription_by_course_admin', YesNoType::class)
62
            ->add('teacher_can_select_course_template', YesNoType::class)
63
            ->add('disabled_edit_session_coaches_course_editing_course', YesNoType::class)
64
            ->add('course_visibility_change_only_admin', YesNoType::class)
65
            ->add('multiple_url_hide_disabled_settings', YesNoType::class)
66
            ->add('gamification_mode', TextType::class)
67
            ->add(
68
                'load_term_conditions_section',
69
                ChoiceType::class,
70
                [
71
                    'choices' => [
72
                        'Login' => 'login',
73
                        'Course' => 'course',
74
                    ],
75
                ]
76
            )
77
            ->add('update_student_expiration_x_date', TextareaType::class)
78
            ->add('user_number_of_days_for_default_expiration_date_per_role', TextareaType::class)
79
            ->add('user_edition_extra_field_to_check', TextType::class)
80
            ->add('allow_working_time_edition', YesNoType::class)
81
            ->add('disable_user_conditions_sender_id', TextType::class)
82
            ->add('redirect_index_to_url_for_logged_users', TextType::class)
83
            ->add(
84
                'default_menu_entry_for_course_or_session',
85
                ChoiceType::class,
86
                [
87
                    'choices' => [
88
                        'My courses' => 'my_courses',
89
                        'My sessions' => 'my_sessions',
90
                    ],
91
                ]
92
            )
93
            ->add(
94
                'session_admin_user_subscription_search_extra_field_to_search',
95
                TextType::class,
96
                [
97
                    'required' => false,
98
                    'empty_data' => '',
99
                    'help' => 'User extra field key to use when searching and naming sessions from /admin-dashboard/register.',
100
                ]
101
            )
102
        ;
103
104
        $this->updateFormFieldsFromSettingsInfo($builder);
105
    }
106
}
107