Автор скрипта @OlegROA

Дисклеймер публикации

Я не против. Но не обещаю их поддерживать из-за недостатка свободного времени. На правах "as is".OlegROA

Не забывайте читать комментарии внутри скрипта!

Сам скрипт: Удаление расписания по классам

 

Удаление расписания заданного класса на заданную неделю

!!! Скрипт запрашивает поочередно название класса, номер недели и после дополнительного подтверждения выполняет удаление.
На любом из этих этапов можно прервать работу скрипта просто нажав на кнопку «Отменить».
Внимательно вводите все параметры!!!

Шаг 1:

1. ОБЯЗАТЕЛЬНО заходите в старую админку, на любую страницу.
2. Открываете в браузере панель инструментов разработчика. (Google Chrome — F12)
3. Переходите на закладку Консоль.
4. Открываете файл со скриптом и копируете блок «Подключение jQuery» в окно консоли (в ФайрФоксе возможно придется подтвердить вставку кода ручным вводом указанной фразы).
5. Жмете Enter.

// ==================================================================
// Подключение jQuery - НАЧАЛО.
// Выполняется ОДИН РАЗ после каждого обновления страницы.
//
// !!!
// Не запускайте этот скрипт подключения jQuery вместе с запуском
// основного скрипта - для выполнения подключения нужно некоторое
// время (порядка одной секунды), но движек JavaScript не ждет
// завершения операции и продолжает выполнение скрипта - на первом же
// вызове jQuery будет выдана ошибка, потому что jQuery еще не успел
// подключиться.
// !!!
// ==================================================================
var jq = document.createElement('script');
jq.src = "https://code.jquery.com/jquery-3.7.1.min.js";
document.head.appendChild(jq);
// Подключение jQuery - КОНЕЦ.

 

Шаг 2:

6. Копируете основной код скрипта в окно консоли (в ФайрФоксе возможно придется подтвердить вставку кода ручным вводом указанной фразы).
7. Проверяете начальные параметры — код учебного года.
8. Жмете Enter.

var year_id = 13; // Идентификатор учебного года (2025-2026)

var counter = 0;
var cls_name = prompt("Введите название класса (как в ЭЖД):");
if (cls_name){
cls_name = cls_name.trim().toUpperCase();
jQuery.getJSON("core/api/class_units?academic_year_id="+ year_id +
               "&with_home_based=true")
  .done(function(data){
    let cls = data.filter(function(cls){return cls.name.trim().toUpperCase() == cls_name});
    if (!cls || !cls.length){
       alert("Заданный класс \""+ cls_name +"\" не найден!");
       return
    };
    let week_num = prompt("Введите номер недели:");
    if (!week_num || (week_num == "0") || 
        !confirm("Вы действительно хотите удалить всё расписание класса "+ 
                 cls[0].name +" на "+ week_num +" неделе?!")){return};
    jQuery.getJSON("jersey/api/schedules/items?academic_year_id="+ year_id +
                   "&class_unit_id="+ cls[0].id +"&week_number="+ week_num)
      .done(function(data){
        data.forEach(function(item){
          let msg = "Класс - "+ item.class_unit_name +
                    "; Группа - "+ item.group_name +
                    "; Дата - "+ item.date +"; Урок - "+ item.study_ordinal;
          jQuery.ajax({url:"jersey/api/schedules/"+ item.schedule_id +
                           "/items/"+ item.id, method:"DELETE"
                      })
            .done(function(data){console.log(++counter +". "+ msg)})
        })
      })
  })
}

 


Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *