Proyectos de Subversion Moodle

Rev

Rev 1 | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

Rev 1 Rev 11
Línea 105... Línea 105...
105
            new lang_string('completed', 'completion'),
105
            new lang_string('completed', 'completion'),
106
            $this->get_entity_name()
106
            $this->get_entity_name()
107
        ))
107
        ))
108
            ->add_joins($this->get_joins())
108
            ->add_joins($this->get_joins())
109
            ->set_type(column::TYPE_BOOLEAN)
109
            ->set_type(column::TYPE_BOOLEAN)
-
 
110
            ->add_field("
-
 
111
                CASE
-
 
112
                    WHEN {$coursecompletion}.id IS NULL THEN NULL
110
            ->add_field("CASE WHEN {$coursecompletion}.timecompleted > 0 THEN 1 ELSE 0 END", 'completed')
113
                    WHEN {$coursecompletion}.timecompleted > 0 THEN 1
-
 
114
                    ELSE 0
111
            ->add_field("{$user}.id", 'userid')
115
                END", 'completed')
112
            ->set_is_sortable(true)
116
            ->set_is_sortable(true)
113
            ->add_callback(static function(bool $value, stdClass $row): string {
-
 
114
                if (!$row->userid) {
-
 
115
                    return '';
-
 
116
                }
-
 
117
                return format::boolean_as_text($value);
117
            ->add_callback([format::class, 'boolean_as_text']);
118
            });
-
 
Línea 119... Línea 118...
119
 
118
 
120
        // Completion criteria column.
119
        // Completion criteria column.
121
        $criterias = database::generate_alias();
120
        $criterias = database::generate_alias();
122
        $columns[] = (new column(
121
        $columns[] = (new column(
Línea 230... Línea 229...
230
        ))
229
        ))
231
            ->add_joins($this->get_joins())
230
            ->add_joins($this->get_joins())
232
            ->set_type(column::TYPE_INTEGER)
231
            ->set_type(column::TYPE_INTEGER)
233
            ->add_field("(
232
            ->add_field("(
234
                CASE
233
                CASE
-
 
234
                    WHEN {$coursecompletion}.id IS NULL THEN NULL
235
                    WHEN {$coursecompletion}.timecompleted > 0 THEN
235
                    ELSE (CASE WHEN {$coursecompletion}.timecompleted > 0 THEN
236
                        {$coursecompletion}.timecompleted
236
                        {$coursecompletion}.timecompleted
237
                    ELSE
237
                        ELSE
238
                        {$currenttime}
238
                        {$currenttime}
239
                END - {$course}.startdate) / " . DAYSECS, 'dayscourse')
239
                    END - {$course}.startdate) / " . DAYSECS . "
240
            ->add_field("{$user}.id", 'userid')
240
                END)", 'dayscourse')
241
            ->set_is_sortable(true)
241
            ->set_is_sortable(true);
242
            ->add_callback([completion_formatter::class, 'get_days']);
-
 
Línea 243... Línea 242...
243
 
242
 
244
        // Days since last completion (days since last enrolment date until completion or until current date if not completed).
243
        // Days since last completion (days since last enrolment date until completion or until current date if not completed).
245
        $columns[] = (new column(
244
        $columns[] = (new column(
246
            'daysuntilcompletion',
245
            'daysuntilcompletion',
Línea 249... Línea 248...
249
        ))
248
        ))
250
            ->add_joins($this->get_joins())
249
            ->add_joins($this->get_joins())
251
            ->set_type(column::TYPE_INTEGER)
250
            ->set_type(column::TYPE_INTEGER)
252
            ->add_field("(
251
            ->add_field("(
253
                CASE
252
                CASE
-
 
253
                    WHEN {$coursecompletion}.id IS NULL THEN NULL
254
                    WHEN {$coursecompletion}.timecompleted > 0 THEN
254
                    ELSE (CASE WHEN {$coursecompletion}.timecompleted > 0 THEN
255
                        {$coursecompletion}.timecompleted
255
                        {$coursecompletion}.timecompleted
256
                    ELSE
256
                        ELSE
257
                        {$currenttime}
257
                        {$currenttime}
258
                END - {$coursecompletion}.timeenrolled) / " . DAYSECS, 'daysuntilcompletion')
258
                    END - {$coursecompletion}.timeenrolled) / " . DAYSECS . "
259
            ->add_field("{$user}.id", 'userid')
259
                END)", 'daysuntilcompletion')
260
            ->set_is_sortable(true)
260
            ->set_is_sortable(true);
261
            ->add_callback([completion_formatter::class, 'get_days']);
-
 
Línea 262... Línea 261...
262
 
261
 
263
        // Student course grade.
262
        // Student course grade.
264
        $columns[] = (new column(
263
        $columns[] = (new column(
265
            'grade',
264
            'grade',