Элемент База данных - изменить группу у записи, восстановить запись

Элемент База данных - изменить группу у записи, восстановить запись

от Людмила Татарникова -
Количество ответов: 11

Уважаемые коллеги!

Подскажите, пожалуйста, можно ли:

1. изменить принадлежность записи к группе;

2. восстановить удалённую запись.

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

В этом году объединили две кафедры (История и Философия) в одну (ФиИ), соответственно, у каждого преподавателя появилась вторая группа, но при создании новой записи многие забыли выбрать группу, и теперь их записи находятся в старой группе-кафедре. Можно ли как-то у имеющейся записи изменить группу, в которой она отображается?

Пробовала экспортировать-импортировать запись - запись импортируется вообще без группы, то есть видна всем и мешается в других кафедрах.

В продолжение этой же истории - заведующая объединённой кафедрой удалила прошлогодние планы. Можно ли их восстановить?

С уважением, Людмила

В ответ на Людмила Татарникова

Re: Элемент База данных - изменить группу у записи, восстановить запись

от Alexandre Scherbyna -

В курсе, содержащем эту базу данных, уже созданы группы и преподаватели в них уже (надеюсь, правильно?) записаны . Кроме того, в самой базе данных есть поле "Группа", которое часть преподавателей заполнили неверно. Я правильно понимаю?

На мой взгляд, чтобы отнести преподавателя к группе было бы достаточно чего-то одного. Но раз сделали и то, и другое, причем второе - неправильно, то исправить можно так. Записать преподавателя в группу ФиИ. Если включен режим "Изолированные группы", а разрешение moodle/site:accessallgroups выключено, то он увидит там только записи преподавателей этой кафедры и во всех этих записях в поле "Группа" пропишет правильное значение.

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

В ответ на Alexandre Scherbyna

Re: Элемент База данных - изменить группу у записи, восстановить запись

от Людмила Татарникова -
В курсе, содержащем эту базу данных, уже созданы группы и преподаватели в них уже (надеюсь, правильно?) записаны . Кроме того, в самой базе данных есть поле "Группа", которое часть преподавателей заполнили неверно. Я правильно понимаю?

 Не совсем. Изменить нужно не значение поля в БД, а имя группы в списке доступных групп:

- если в режиме просмотра БД в этом списке выбрать группу, то отобразятся все записи соответствующей группы;

- если зайти в режим редактирования записи и выбрать в этом списке другую группу, то страница перегружается и поля в записи очищаются - то есть вместо редактирования мы создаём новую запись.

В Базе данных (уже в глобальной, в phpmyadmin) в таблице data_records нашла записи по идентификатору элемента БД (dataid) и по идентификатору группы (groupid):

2132 - это идентификатор локальной группы "Философия". Могу ли я прямо здесь, в phpmyadmin, заменить 2132 на 7604 (это идентификатор группы "Философия и история")? Не поломаю ли я этим что-то в БД?

 

В ответ на Людмила Татарникова

Re: Элемент База данных - изменить группу у записи, восстановить запись

от Alexandre Scherbyna -

Но в курсе любой пользователь может быть членом любого количества групп (от 0 - ни в какую группу не записан, до N - записан во все существующие в курсе группы). Что вам мешает стандартными средствами Moodle дописать в группу "Философия и история" нужных людей, а ненужные группы "Философия" и "История" удалить? Неужели там такое большое число преподавателей работает, что процесс нуждается в какой-то автоматизиции?

В ответ на Alexandre Scherbyna

Re: Элемент База данных - изменить группу у записи, восстановить запись

от Людмила Татарникова -

Если я удалю группу История, то планы, созданные в этой группе, станут недоступными преподавателю и зав. кафедрой.

Если я запишу нынешнего зав. кафедрой (объединённой) во все три группы (История, Философия, Философия и история), то он, конечно, увидит все планы преподавателей, но на трёх разных страницах, соответственно, составить единый отчёт не сможет.

Автоматизировать здесь ничего не требуется, я могла бы это (изменить группу у записи) и ручками сделать (не каждый день кафедры объединяют), знать бы только, как это сделать.

Поэтому актуальный сейчас вопрос: насколько опасно напрямую изменять значения groupid в базе в phpmyadmin?

 

Если этот вопрос решится, то я смогу и восстановить удалённые записи (восстановлю курс из бэкапа, экспортирую из него нужные записи, импортирую их в рабочую базу и установлю идентификатор группы). Сейчас же записи импортируются без группы - они доступны всем, что для индивидуальных планов недопустимо.

В ответ на Людмила Татарникова

Re: Элемент База данных - изменить группу у записи, восстановить запись

от Alexandre Scherbyna -

По-моему результаты работы пользователя во всех видах деятельности (в том числе и в базе данных) привязаны к учетным записям создавших их пользователей, а не к их группам. Принадлежность пользователя к группе влияет только на результаты фильтрации: какие записи в базе данных (планы) видны, а какие нет. Нужно, чтобы на момент просмотра все нужные вам пользователи входили в состав общей группы "Философия и история". Не важно, что сделали сначала, а что потом: заполнили базу данных планами или включили преподавателей в состав новой объединенной группы.

Так что не изменяйте старых записей и групп, а создавайте новую объединенную группу "Философия и история", добавляйте в нее людей, не удаляя их из старых групп, и смотрите, какие планы будут видны в новой группе. Когда убедитесь, что все в порядке, старые группы "Философия" и "История" можете удалить, а можете и оставить, если надо.

В ответ на Alexandre Scherbyna

Re: Элемент База данных - изменить группу у записи, восстановить запись

от Людмила Татарникова -

К сожалению, нет. Сейчас ещё раз проверила: добавила себя в объединённую группу и удалила из Философии. Теперь не вижу ни одного плана (а у меня их было 3 штуки) грущу

В ответ на Людмила Татарникова

Re: Элемент База данных - изменить группу у записи, восстановить запись

от Alexandre Scherbyna -

Странно. Кэш чистили или в другом браузере смотрели? 

Ну тогда (когда разберетесь) расскажите и нам как на самом деле работает с группами деятельность база данных .

В ответ на Alexandre Scherbyna

Re: Элемент База данных - изменить группу у записи, восстановить запись

от Людмила Татарникова -

Кэш чистила, смотрю в Crome, FireFox, Opera, и даже в Vivaldi. Более того, подобных элементов БД у меня довольно много, и во всех групповая политика именно так и работает.

Описываю:

В настройках курса или в настройках элемента БД задаю Групповой режим: Изолированные группы.

После этого если студент зачислен в одну локальную группу, то при создании записи у него нет выбора группы, но запись "привязывается" к его группе (в примере - web_05.17):

 Если студент зачислен в несколько групп, то перед созданием записи можно выбрать группу:

И тогда запись будет видна только в этой группе, а в других группах этого же студента - не будет видна:

Если студента удалить из локальной группы, для которой у него были в БД созданы записи, то доступа к этим записям у него не будет:

Преподаватель будет видеть запись в группе web_05.17, то есть запись не удаляется. Если студента опять зачислить в ту же группу, то и доступ к записям восстановится.

Все скрины сделала прямо сейчас, выполняя описанные действия. Под одним и тем же пользователем.

В "глобальной" базе данных в таблице data-records у каждой записи есть поле groupid (сопоставленная группа), но изменить эту группу в курсе в самой базе нельзя (по крайней мере я не нашла, как).

В ответ на Людмила Татарникова

Re: Элемент База данных - изменить группу у записи, восстановить запись

от Людмила Татарникова -

Уважаемые коллеги, вопрос всё ещё актуален:

В Базе данных (уже в глобальной, в phpmyadmin) в таблице data_records нашла записи по идентификатору элемента БД (dataid) и по идентификатору группы (groupid):

2132 - это идентификатор локальной группы "Философия". Могу ли я прямо здесь, в phpmyadmin, заменить 2132 на 7604 (это идентификатор группы "Философия и история")? Не поломаю ли я этим что-то в БД?
В ответ на Людмила Татарникова

Re: Элемент База данных - изменить группу у записи, восстановить запись

от Alexandre Scherbyna -

Да, из этой таблицы видно, что каждая запись в безе данных привязана не только к пользователю, но и к одной из групп. Т.е. сам пользователь может быть членом многих групп, но запись в базе данных связана только с одной из них. Теперь всё, что вы писали, по крайней мере, объяснимо.

Думаю, что ничего плохого не должно произойти если вы поменяете 2132 на 7604. Сделайте это хотя бы с одной записью и посмотрите на результат. Но сохранить перед этим резервную копию базы данных, разумеется, никогда не будет лишним.

В ответ на Alexandre Scherbyna

Re: Элемент База данных - изменить группу у записи, восстановить запись

от Людмила Татарникова -

Александр, спасибо за ответ. Если гарантии нет, попробую на тестовом сервере, когда его восстановим.