В блоке "Пользователи на сайте" отображаются не только те, кто заходил в установленный период.

В блоке "Пользователи на сайте" отображаются не только те, кто заходил в установленный период.

от Вадим Лёвкин -
Количество ответов: 9

Как исправить такой баг?

В настройках блока "Пользователи на сайте" я выставляю, например, одни сутки (1440 минут). Но в блоке затем отображаются и пользователи заходившие на курс два года назад, и три месяца назад, и т.д. Изменение числа минут изменяет число пользователей на сайте, но среди них все равно могут оказаться (а в некоторые дни не оказываются) и пользователи реально не заходившие на курс. Без всякой системы, сайт может указать что было 245 пользователей на сайте за указанный период, но я захожу в "профиль" каждого и через "Отчеты\Все события" вижу, что пользователь не заходил под своим логином. Такое впечатление, что они попадают в список "Пользователи на сайте" случайным образом.

Этот баг я наблюдал уже раньше (см. этот пост), но ответа на нашел, поэтому задаю вопрос снова.

Используемая версия Moodle: 3.8+ (Build: 20200109)

Заранее благодарен за помощь!

В ответ на Вадим Лёвкин

Re: В блоке "Пользователи на сайте" отображаются не только те, кто заходил в установленный период.

от Вадим Лёвкин -
Прошу уважаемых знатоков обратить внимание на этот пост.

Проблема с корректным отображением "Пользователей на сайте" осталась. Несмотря на обновление до Moodle 3.9+ (Build: 20200618)

Для меня это является проблемой с версии Moodle 3.7, поскольку я с помощью Moodle фиксирую посещаемость занятий своих студентов.

Использую только дефолтную сборку Moodle, без сторонних плагинов.

Если решения нет, то как правильно сообщить разработчикам о баге?

Заранее благодарен за любую помощь!
В ответ на Вадим Лёвкин

Re: В блоке "Пользователи на сайте" отображаются не только те, кто заходил в установленный период.

от Виталий Лавров -
Изображение пользователя Эксперт по Moodle
Там не может быть бага. Там все просто как грабли. Проблема в вашей базе.
В ответ на Виталий Лавров

Re: В блоке "Пользователи на сайте" отображаются не только те, кто заходил в установленный период.

от Вадим Лёвкин -

Если это так, то как проблему в базе выявить и устранить?

В ответ на Вадим Лёвкин

Re: В блоке "Пользователи на сайте" отображаются не только те, кто заходил в установленный период.

от Виталий Лавров -
Изображение пользователя Эксперт по Moodle
Блок "Пользоватети на сайте" показывает lastaccess из таблицы user. Эту информацию можно посмотреть в списке пользователей.
Я не могу понять, как можно добиться такого эффекта. Есть только бредовое предположение, что в базе битый индекс для lastaccess.
Самый универсальный способ починки - dump/restore базы, но этот зависит от размеров базы.
Можно вручную удалить этот индекс и посмотреть на работу блока "Пользоватети на сайте", а потом его создать заново (если вы знакомы с sql)
В ответ на Виталий Лавров

Re: В блоке "Пользователи на сайте" отображаются не только те, кто заходил в установленный период.

от Вадим Лёвкин -

Виталий, большое Вам спасибо за поиск решения!

1. "dump/restore базы"
Это означает, что весь Moodle обнулится / удалится его содержимое? (Исчезнут курсы, переписка с пользователями, оценки...?)
Размер базы сейчас небольшой - 225 мб.

2. "вручную удалить этот индекс"
У меня есть доступ к phpMyAdmin, но я не знаю sql, к моему сожалению. Если Вы сможете подсказать мне нужные действия, то я их выполню (правильно ли понял, что процедура удаления/пересоздания индекса lastaccess не удалит историю посещений пользователями курсов на которые они записаны?).

В ответ на Вадим Лёвкин

Re: В блоке "Пользователи на сайте" отображаются не только те, кто заходил в установленный период.

от Виталий Лавров -
Изображение пользователя Эксперт по Moodle
225 Мб - это маленькая база и восстанавливаться она будет не долго IMHO.
"dump/restore базы" будет бедой, только если dump сделан неправильно.
Вы хоть раз делали бекап moodle? Там один из трех пунктов это как раз дамп базы.
Я не работаю с mysql/mariadb, но команды удаления и восстановления индекса можно подсмотреть в дампе базы данных.
В постгресе это делаетс так:
  DROP INDEX mdl_user_las2_ix;
  CREATE INDEX mdl_user_las2_ix ON mdl_user USING btree (lastaccess);
возможно в mysql имена индексов могут отличаться.
В ответ на Виталий Лавров

Re: В блоке "Пользователи на сайте" отображаются не только те, кто заходил в установленный период.

от Вадим Лёвкин -

На скриншоте у всех троих пользователей данные о входе не совпадают с теми, что указаны в их профиле на странице "Все события":

В ответ на Вадим Лёвкин

Re: В блоке "Пользователи на сайте" отображаются не только те, кто заходил в установленный период.

от Виталий Лавров -
Изображение пользователя Эксперт по Moodle
INHO доступ к курсу и пользователи на сайте - это разные вещи.
В ответ на Виталий Лавров

Re: В блоке "Пользователи на сайте" отображаются не только те, кто заходил в установленный период.

от Вадим Лёвкин -
"Вы хоть раз делали бекап moodle?"
Да, перед каждым обновлением делаю бекап базы данных командой экспорта из phpMyAdmin.

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

Наугад действовать не хочу (боюсь поломать), видимо надо для начала с базой данных разобраться и sql освоить ...