| Línea 298... | 
            Línea 298... | 
          
          
            | 298 | 
                    $dbman->change_field_default($table, $field);
  | 
            298 | 
                    $dbman->change_field_default($table, $field);
  | 
          
          
            | Línea 299... | 
            Línea 299... | 
          
          
            | 299 | 
             
  | 
            299 | 
             
  | 
          
          
            | 300 | 
                    // We need to find all ordering question configurations that currently store the unsupported "0" (all) option
  | 
            300 | 
                    // We need to find all ordering question configurations that currently store the unsupported "0" (all) option
  | 
          
          
            | 301 | 
                    // for the 'selectcount' setting and the total number of answers that are related to each of these ordering
  | 
            301 | 
                    // for the 'selectcount' setting and the total number of answers that are related to each of these ordering
  | 
          
          
            | 302 | 
                    // questions.
  | 
            302 | 
                    // questions.
  | 
          
          
            | 303 | 
                    $sql = "SELECT qoo.*, COUNT(DISTINCT(qa.id)) AS answerscount
  | 
            303 | 
                    $sql = "SELECT qoo.id, COUNT(DISTINCT(qa.id)) AS answerscount
  | 
          
          
            | 304 | 
                            FROM {qtype_ordering_options} qoo
  | 
            304 | 
                            FROM {qtype_ordering_options} qoo
  | 
          
          
            | 305 | 
                            JOIN {question_answers} qa ON qa.question = qoo.questionid
  | 
            305 | 
                            JOIN {question_answers} qa ON qa.question = qoo.questionid
  | 
          
          
            | 306 | 
                            WHERE selectcount = :selectcount
  | 
            306 | 
                            WHERE selectcount = :selectcount
  | 
          
          
            | 307 | 
                            GROUP BY qoo.id";
  | 
            307 | 
                            GROUP BY qoo.id";
  | 
          
          
            | 308 | 
                    $questionoptions = $DB->get_recordset_sql($sql, ['selectcount' => 0]);
  | 
            308 | 
                    $questionoptions = $DB->get_recordset_sql($sql, ['selectcount' => 0]);
  | 
          
          
            | 309 | 
                    foreach ($questionoptions as $questionoption) {
  | 
            309 | 
                    foreach ($questionoptions as $questionoption) {
  | 
          
          
            | 310 | 
                        // Update the value of the 'selectcount' configuration option for the current ordering question and set it
  | 
            310 | 
                        // Update the value of the 'selectcount' configuration option for the current ordering question and set it
  | 
          
          
            | 311 | 
                        // to the total number of answers related to this question. This way, we are making sure that the original
  | 
            311 | 
                        // to the total number of answers related to this question. This way, we are making sure that the original
  | 
          
          
            | 312 | 
                        // behavior is preserved and all existing items (answers) related to the question will be included in the
  | 
            312 | 
                        // behavior is preserved and all existing items (answers) related to the question will be included in the
  | 
          
          
            | 313 | 
                        // subset.
  | 
            313 | 
                        // subset.
  | 
          
          
            | 314 | 
                        $questionoption->selectcount = $questionoption->answerscount;
  | 
            314 | 
                        $DB->set_field('qtype_ordering_options', 'selectcount', $questionoption->answerscount,
  | 
          
          
            | 315 | 
                        unset($questionoption->answerscount);
  | 
            - | 
               | 
          
          
            | 316 | 
                        $DB->update_record('qtype_ordering_options', $questionoption);
  | 
            315 | 
                            ['id' => $questionoption->id]);
  | 
          
          
            | 317 | 
                    }
  | 
            316 | 
                    }
  | 
          
          
            | Línea 318... | 
            Línea 317... | 
          
          
            | 318 | 
                    $questionoptions->close();
  | 
            317 | 
                    $questionoptions->close();
  | 
          
          
            | 319 | 
             
  | 
            318 | 
             
  | 
          
          
            | 320 | 
                    // Currently, a 'qtype_ordering_selectcount' user preference is set (or updated, if it already exists) each time
  | 
            319 | 
                    // Currently, a 'qtype_ordering_selectcount' user preference is set (or updated, if it already exists) each time
  | 
          
          
            | 321 | 
                    // a new ordering question is created. If there are user preferences that store the removed "0" (all) option, they
  | 
            320 | 
                    // a new ordering question is created. If there are user preferences that store the removed "0" (all) option, they
  | 
          
          
            | 322 | 
                    // need to be updated. In this case, replace it with "2" (minimum number of items required to create a subset).
  | 
            321 | 
                    // need to be updated. In this case, replace it with "2" (minimum number of items required to create a subset).
  | 
          
          
            | - | 
               | 
            322 | 
                    $wheresql = 'name = ? AND ' . $DB->sql_compare_text('value') . ' = ?';
  | 
          
          
            | Línea 323... | 
            Línea 323... | 
          
          
            | 323 | 
                    $DB->set_field('user_preferences', 'value', 2,
  | 
            323 | 
                    $params = ['qtype_ordering_selectcount', '0'];
  | 
          
          
            | 324 | 
                        ['name' => 'qtype_ordering_selectcount', 'value' => 0]);
  | 
            324 | 
                    $DB->set_field_select('user_preferences', 'value', 2, $wheresql, $params);
  | 
          
          
            | Línea 325... | 
            Línea 325... | 
          
          
            | 325 | 
             
  | 
            325 | 
             
  | 
          
          
            | Línea 339... | 
            Línea 339... | 
          
          
            | 339 | 
                    $dbman->change_field_default($table, $field);
  | 
            339 | 
                    $dbman->change_field_default($table, $field);
  | 
          
          
            | Línea 340... | 
            Línea 340... | 
          
          
            | 340 | 
             
  | 
            340 | 
             
  | 
          
          
            | 341 | 
                    // We need to find all ordering question configurations that currently store the unsupported "0" (all) option
  | 
            341 | 
                    // We need to find all ordering question configurations that currently store the unsupported "0" (all) option
  | 
          
          
            | 342 | 
                    // for the 'selectcount' setting and the total number of answers that are related to each of these ordering
  | 
            342 | 
                    // for the 'selectcount' setting and the total number of answers that are related to each of these ordering
  | 
          
          
            | 343 | 
                    // questions.
  | 
            343 | 
                    // questions.
  | 
          
          
            | 344 | 
                    $sql = "SELECT qoo.*, COUNT(DISTINCT(qa.id)) AS answerscount
  | 
            344 | 
                    $sql = "SELECT qoo.id, COUNT(DISTINCT(qa.id)) AS answerscount
  | 
          
          
            | 345 | 
                            FROM {qtype_ordering_options} qoo
  | 
            345 | 
                            FROM {qtype_ordering_options} qoo
  | 
          
          
            | 346 | 
                            JOIN {question_answers} qa ON qa.question = qoo.questionid
  | 
            346 | 
                            JOIN {question_answers} qa ON qa.question = qoo.questionid
  | 
          
          
            | 347 | 
                            WHERE selectcount = :selectcount
  | 
            347 | 
                            WHERE selectcount = :selectcount
  | 
          
          
            | 348 | 
                            GROUP BY qoo.id";
  | 
            348 | 
                            GROUP BY qoo.id";
  | 
          
          
            | 349 | 
                    $questionoptions = $DB->get_recordset_sql($sql, ['selectcount' => 0]);
  | 
            349 | 
                    $questionoptions = $DB->get_recordset_sql($sql, ['selectcount' => 0]);
  | 
          
          
            | 350 | 
                    foreach ($questionoptions as $questionoption) {
  | 
            350 | 
                    foreach ($questionoptions as $questionoption) {
  | 
          
          
            | 351 | 
                        // Update the value of the 'selectcount' configuration option for the current ordering question and set it
  | 
            351 | 
                        // Update the value of the 'selectcount' configuration option for the current ordering question and set it
  | 
          
          
            | 352 | 
                        // to the total number of answers related to this question. This way, we are making sure that the original
  | 
            352 | 
                        // to the total number of answers related to this question. This way, we are making sure that the original
  | 
          
          
            | 353 | 
                        // behavior is preserved and all existing items (answers) related to the question will be included in the
  | 
            353 | 
                        // behavior is preserved and all existing items (answers) related to the question will be included in the
  | 
          
          
            | 354 | 
                        // subset.
  | 
            354 | 
                        // subset.
  | 
          
          
            | 355 | 
                        $questionoption->selectcount = $questionoption->answerscount;
  | 
            355 | 
                        $DB->set_field('qtype_ordering_options', 'selectcount', $questionoption->answerscount,
  | 
          
          
            | 356 | 
                        unset($questionoption->answerscount);
  | 
            - | 
               | 
          
          
            | 357 | 
                        $DB->update_record('qtype_ordering_options', $questionoption);
  | 
            356 | 
                            ['id' => $questionoption->id]);
  | 
          
          
            | 358 | 
                    }
  | 
            357 | 
                    }
  | 
          
          
            | Línea 359... | 
            Línea 358... | 
          
          
            | 359 | 
                    $questionoptions->close();
  | 
            358 | 
                    $questionoptions->close();
  | 
          
          
            | 360 | 
             
  | 
            359 | 
             
  | 
          
          
            | 361 | 
                    // Currently, a 'qtype_ordering_selectcount' user preference is set (or updated, if it already exists) each time
  | 
            360 | 
                    // Currently, a 'qtype_ordering_selectcount' user preference is set (or updated, if it already exists) each time
  | 
          
          
            | 362 | 
                    // a new ordering question is created. If there are user preferences that store the removed "0" (all) option, they
  | 
            361 | 
                    // a new ordering question is created. If there are user preferences that store the removed "0" (all) option, they
  | 
          
          
            | 363 | 
                    // need to be updated. In this case, replace it with "2" (minimum number of items required to create a subset).
  | 
            362 | 
                    // need to be updated. In this case, replace it with "2" (minimum number of items required to create a subset).
  | 
          
          
            | - | 
               | 
            363 | 
                    $wheresql = 'name = ? AND ' . $DB->sql_compare_text('value') . ' = ?';
  | 
          
          
            | Línea 364... | 
            Línea 364... | 
          
          
            | 364 | 
                    $DB->set_field('user_preferences', 'value', 2,
  | 
            364 | 
                    $params = ['qtype_ordering_selectcount', '0'];
  | 
          
          
            | 365 | 
                        ['name' => 'qtype_ordering_selectcount', 'value' => 0]);
  | 
            365 | 
                    $DB->set_field_select('user_preferences', 'value', 2, $wheresql, $params);
  | 
          
          
            | Línea 366... | 
            Línea 366... | 
          
          
            | 366 | 
             
  | 
            366 | 
             
  | 
          
          
            | 367 | 
                    upgrade_plugin_savepoint(true, 2024040401, 'qtype', 'ordering');
  | 
            367 | 
                    upgrade_plugin_savepoint(true, 2024040401, 'qtype', 'ordering');
  | 
          
          
            | Línea -... | 
            Línea 368... | 
          
          
            | - | 
               | 
            368 | 
                }
  | 
          
          
            | - | 
               | 
            369 | 
             
  | 
          
          
            | - | 
               | 
            370 | 
                // Automatically generated Moodle v4.4.0 release upgrade line.
  | 
          
          
            | - | 
               | 
            371 | 
                // Put any upgrade step following this.
  | 
          
          
            | - | 
               | 
            372 | 
             
  | 
          
          
            | - | 
               | 
            373 | 
                // Automatically generated Moodle v4.5.0 release upgrade line.
  | 
          
          
            | 368 | 
                }
  | 
            374 | 
                // Put any upgrade step following this.
  | 
          
          
            | 369 | 
             
  | 
            375 | 
             
  |