Passed
Push — master ( 702f24...55adc1 )
by Yannick
09:28
created

GradebookSettingsSchema::buildForm()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 48
Code Lines 43

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 43
nc 1
nop 1
dl 0
loc 48
rs 9.232
c 0
b 0
f 0
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 GradebookSettingsSchema extends AbstractSettingsSchema
17
{
18
    public function buildSettings(AbstractSettingsBuilder $builder): void
19
    {
20
        $builder->setDefaults([
21
            'gradebook_enable' => 'true',
22
            'gradebook_score_display_custom' => 'false',
23
            'gradebook_score_display_colorsplit' => '50',
24
            'gradebook_score_display_upperlimit' => 'false',
25
            'gradebook_number_decimals' => '0',
26
            'teachers_can_change_score_settings' => 'true',
27
            'teachers_can_change_grade_model_settings' => 'true',
28
            'gradebook_enable_grade_model' => 'false',
29
            'gradebook_default_weight' => '100',
30
            'gradebook_locking_enabled' => 'false',
31
            'gradebook_default_grade_model_id' => '',
32
            'my_display_coloring' => 'false',
33
            'student_publication_to_take_in_gradebook' => 'first',
34
            'gradebook_detailed_admin_view' => 'false',
35
            'openbadges_backpack' => 'https://backpack.openbadges.org/',
36
            'hide_certificate_export_link' => 'false',
37
            'add_gradebook_certificates_cron_task_enabled' => 'false',
38
            'certificate_filter_by_official_code' => 'false',
39
            'hide_certificate_export_link_students' => 'false',
40
            'gradebook_hide_graph' => 'false',
41
            'gradebook_hide_pdf_report_button' => 'false',
42
            'hide_gradebook_percentage_user_result' => 'true',
43
            'gradebook_use_exercise_score_settings_in_categories' => 'true',
44
            'gradebook_use_apcu_cache' => 'true',
45
            'gradebook_report_score_style' => '1',
46
            'gradebook_score_display_custom_standalone' => 'false',
47
            'gradebook_use_exercise_score_settings_in_total' => 'false',
48
            'gradebook_dependency' => 'false',
49
            'gradebook_dependency_mandatory_courses' => '',
50
            'gradebook_badge_sidebar' => '',
51
            'gradebook_multiple_evaluation_attempts' => 'false',
52
            'allow_gradebook_stats' => 'false',
53
            'gradebook_flatview_extrafields_columns' => '',
54
            'gradebook_pdf_export_settings' => '',
55
            'allow_gradebook_comments' => 'false',
56
            'gradebook_display_extra_stats' => '',
57
            'gradebook_hide_table' => 'false',
58
            'gradebook_hide_link_to_item_for_student' => 'false',
59
            'gradebook_enable_subcategory_skills_independant_assignement' => 'false',
60
        ]);
61
62
        $allowedTypes = [
63
            'gradebook_enable' => ['string'],
64
            'gradebook_number_decimals' => ['string'],
65
            'gradebook_default_weight' => ['string'],
66
            'student_publication_to_take_in_gradebook' => ['string'],
67
            'gradebook_detailed_admin_view' => ['string'],
68
            'certificate_filter_by_official_code' => ['string'],
69
        ];
70
71
        $this->setMultipleAllowedTypes($allowedTypes, $builder);
72
    }
73
74
    public function buildForm(FormBuilderInterface $builder): void
75
    {
76
        $builder
77
            ->add('gradebook_enable', YesNoType::class)
78
            ->add('gradebook_score_display_custom', YesNoType::class)
79
            ->add('gradebook_score_display_colorsplit')
80
            ->add('gradebook_score_display_upperlimit', YesNoType::class)
81
            ->add('gradebook_number_decimals')
82
            ->add('teachers_can_change_score_settings', YesNoType::class)
83
            ->add('gradebook_enable_grade_model', YesNoType::class)
84
            ->add('teachers_can_change_grade_model_settings', YesNoType::class)
85
            ->add('gradebook_default_weight')
86
            ->add('gradebook_locking_enabled', YesNoType::class)
87
            ->add('gradebook_default_grade_model_id')
88
            ->add('my_display_coloring', YesNoType::class)
89
            ->add('student_publication_to_take_in_gradebook', ChoiceType::class, [
90
                'choices' => [
91
                    'First' => 'first',
92
                    'Last' => 'last',
93
                ],
94
            ])
95
            ->add('gradebook_detailed_admin_view', YesNoType::class)
96
            ->add('openbadges_backpack')
97
            ->add('hide_certificate_export_link', YesNoType::class)
98
            ->add('add_gradebook_certificates_cron_task_enabled', YesNoType::class)
99
            ->add('certificate_filter_by_official_code', YesNoType::class)
100
            ->add('hide_certificate_export_link_students', YesNoType::class)
101
            ->add('gradebook_hide_pdf_report_button', YesNoType::class)
102
            ->add('hide_gradebook_percentage_user_result', YesNoType::class)
103
            ->add('gradebook_use_exercise_score_settings_in_categories', YesNoType::class)
104
            ->add('gradebook_use_apcu_cache', YesNoType::class)
105
            ->add('gradebook_report_score_style', TextType::class)
106
            ->add('gradebook_score_display_custom_standalone', YesNoType::class)
107
            ->add('gradebook_use_exercise_score_settings_in_total', YesNoType::class)
108
            ->add('gradebook_dependency', YesNoType::class)
109
            ->add('gradebook_dependency_mandatory_courses', TextareaType::class)
110
            ->add('gradebook_badge_sidebar', TextareaType::class)
111
            ->add('gradebook_multiple_evaluation_attempts', YesNoType::class)
112
            ->add('allow_gradebook_stats', YesNoType::class)
113
            ->add('gradebook_flatview_extrafields_columns', TextareaType::class)
114
            ->add('gradebook_pdf_export_settings', TextareaType::class)
115
            ->add('allow_gradebook_comments', YesNoType::class)
116
            ->add('gradebook_display_extra_stats', TextareaType::class)
117
            ->add('gradebook_hide_table', YesNoType::class)
118
            ->add('gradebook_hide_link_to_item_for_student', YesNoType::class)
119
            ->add('gradebook_enable_subcategory_skills_independant_assignement', YesNoType::class);
120
121
        $this->updateFormFieldsFromSettingsInfo($builder);
122
    }
123
}
124