Действия над несколькими пользователями

Re: Действия над несколькими пользователями

от Vadim Tabunshchik -
Количество ответов: 5
Изображение пользователя Developers
Копать будете долго и безрезультатно. улыбаюсь
Нет уже давно того курса или модуля, откуда Мудл пытается удалить результаты деятельности удаляемого пользователя. В таких случаях я просто захожу в БД и вручную ставлю в таблице пользователей пометку удаления: deleted=1
При желании можно ещё вручную почистить таблицы оценок, логов, записей в курсы и т. п. для этого пользователя.
В ответ на Vadim Tabunshchik

Re: Действия над несколькими пользователями

от Павел Иванов -

А ведь точно же, буквально вчера удалил эти курсы, значит надо было сделать это в обратном порядке, сначала пользователей, затем курсы... Спасибо за ответ!

В ответ на Vadim Tabunshchik

Re: Действия над несколькими пользователями

от Павел Иванов -
Хотя вот что, у меня есть пользователи, курсы которых я не удалял, попробовал удалять этих пользователей, они тоже не удаляются с первого раза, сначала отобразится эта ошибка, а на второй раз удаляются...
В ответ на Павел Иванов

Re: Действия над несколькими пользователями

от Vadim Tabunshchik -
Изображение пользователя Developers
Отладку включите на разработчик и попробуйте удалить пользователя, нужны подробности по ошибке. У меня, во всяком случае, такое бывает при удалении оценок (или переносе их в историю) удаляемого пользователя, отсутствует grade_items, т. е. оцениваемый элемент.
Если удаляется со второго-третьего раза, то зачем что-то делать? Ведь не будете вы из-за этого восстанавливать удаленный курс (ещё нужно узнать, какой), записи пользователей в курсы и т. д. и т. п., только для того, чтобы опять это всё удалить, но без ошибок?
В ответ на Vadim Tabunshchik

Re: Действия над несколькими пользователями

от Павел Иванов -
Всё верно, похожие строки есть. Наверно когда-то удалил пройденный тест или лекцию в которые они заглядывали, это и мешает удалению, верно?
А это в базе после удаления пользователя остаётся мёртвым грузом, если да, то можно как-то очистить базу, или это автоматически происходит?

Не удается найти данную запись в таблице course базы данных.

Подробнее об этой ошибке
Debug info: SELECT id,category FROM {course} WHERE id IS NULL
[array (
)]
Error code: invalidrecord
Stack trace:

line 1546 of \lib\dml\moodle_database.php: dml_missing_record_exception thrown
line 1522 of \lib\dml\moodle_database.php: call to moodle_database->get_record_select()
line 6625 of \lib\accesslib.php: call to moodle_database->get_record()
line 70 of \lib\classes\event\grade_deleted.php: call to context_course::instance()
line 1039 of \lib\grade\grade_grade.php: call to core\event\grade_deleted::create_from_grade()
line 1516 of \lib\gradelib.php: call to grade_grade->delete()
line 4096 of \lib\moodlelib.php: call to grade_user_delete()
line 87 of \admin\user.php: call to delete_user()
В ответ на Павел Иванов

Re: Действия над несколькими пользователями

от Vadim Tabunshchik -
Изображение пользователя Developers
/admin/tool/xmldb/index.php?action=check_foreign_keys - вот инструмент для чистки в таких случаях. Ну, или можно вручную в БД искать/удалять, если знаете что, где, когда улыбаюсь