Автор скрипта @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)})
})
})
})
}
