Новичку нужна помощь

Новичку нужна помощь

от Сергей Больной -
Количество ответов: 12

Доброго дня! Мне дали небольшое задание по moodle, которое даже выглядит смешно, но так как я не сталкивался раньше с moodle (от слова СОВСЕМ), то я в полном ступоре! Задание звучит так:

Написать модуль "Отправить работу на модерацию":
1. У всех пользователей с глобальной ролью "студент" (выставляется в админке) в личном кабинете появляется кнопка "отправить работу на модерацию"
2. У всех пользователей с глобальной ролью "администратор" в личном кабинете появляется кнопка "модерация работ"
3. При клике на кнопку "отправить работу на модерацию " у студента появляется форма с полями: название (текстовое поле), файл (загрузка файла).  После отправки формы появляется сообщение "работа отправлена". Студент может отправлять сколько угодно работ. Обратной связи нет.
4. При клике на кнопку "модерация работ" у администратора открывается список отправленных работ с информацией: фио пользователя, название работы, файл (ссылка на скачивание), кнопка "принять" и кнопка "отклонить" (они не рабочие)

Честно говоря я не понял где именно должна быть кнопка. Или это должен быть блок?
Возникли вопросы по разграничению ролей.
Вопрос по созданию формы.
Собственно где сохранять отправленные работы с файлами.
Ну и как Администратор увидит присланные работы?

На другом фреймворке я это за пол часа реализовал бы, а тут голова вообще отказывается думать (((

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

В ответ на Сергей Больной

Re: Новичку нужна помощь

от Alex Djachenko -
Изображение пользователя Developers Изображение пользователя Майнтейнер перевода Изображение пользователя ООО "Открытые Технологии" Изображение пользователя Тестер Moodle Изображение пользователя Эксперт по Moodle

Moodle - это не фреймворк. Это модульная среда электронного обучения.

Поэтому сама задача спроектирована некорректно.

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

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

Написавший такое задание либо торопился задать вам абы-что, либо привык мыслить в концепции гугл-формы и пытается упростить систему, вместо понимание того, как она работает. В этом случае ему не нужен Moodle, а нужно простейшее приложение, написанное на любом фреймворке или сконструированное в том же друпале. Это будет быстрее и проще. Потому что для всего должен быть свой инструмент.

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

Документация по разработке плагинов-блоков находится тут: https://docs.moodle.org/dev/Blocks

В ответ на Alex Djachenko

Re: Новичку нужна помощь

от Сергей Больной -

Мне кажется вы просто придираетесь к словам. Даже я понимаю, что все это есть в moodle, хотя увидел эту систему несколько часов назад. Задача видимо должна была звучать немного по-другому "в ЛК студента, должна быть кнопка, по нажатию которой появляется форма отправки фала + комментарий, а в ЛК администратора (препода, не важно) должна быть кнопка, по которой открывается список присланных фалов + комментарий + кем прислан"

Я последнюю строку задания не скопировал, там было условие сделать все это средствами встроенных компонентов moodle.

И да, задание определенно имеет какой-то смысл, т.к. эта контора специализируется именно на moodle, и среди их клиентов Тюменские колледжи, Тюменский нефтегазовый университет, Тюменская строительная академия, и институты из СПб...

В ответ на Сергей Больной

Re: Новичку нужна помощь

от Alexandre Scherbyna -
Я тоже считаю, что для решения описанной вами задачи нужно создавать не плагин, а курс, где всё это будет делаться с помощью обычного Задания. Поэтому уточняйте постановку задачи.
В ответ на Сергей Больной

Re: Новичку нужна помощь

от Vadim Tabunshchik -
Изображение пользователя Developers

Вам уже пробовали объяснить неверную постановку задачи в рамках Мудл, но вы продолжаете упорствовать улыбаюсь

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

Задача отправки файла на проверку и его проверка преподавателем в Мудл решена в элементе курса «Задание». Кроме того, есть другие нестандартные модули, то же портфолио, например.

А то, что вам предлагают сделать - это костыль, ломающий всю логику СДО и абсолютно не нужный ни преподавателю, ни, тем более, администратору системы.

В ответ на Сергей Больной

Re: Новичку нужна помощь

от Alex Djachenko -
Изображение пользователя Developers Изображение пользователя Майнтейнер перевода Изображение пользователя ООО "Открытые Технологии" Изображение пользователя Тестер Moodle Изображение пользователя Эксперт по Moodle

Логотип у  этой конторы из Питера случайно не такой? улыбаюсь

Велосипед на костылях


В ответ на Сергей Больной

Re: Новичку нужна помощь

от Виталий Лавров -
Изображение пользователя Эксперт по Moodle
Дык тут ничего разрабатывать/программировать не нужно.
IMHO Задача на сообразительность и знания по администрированию moodle.
В ответ на Виталий Лавров

Re: Новичку нужна помощь

от Сергей Больной -

Вы наверное просмотрели два ключевых слова "Написать модуль", которые означают явно не "администрирование moodle".

Тем не менее я разобрался как создать блок, как вывести форму, как получить данные из формы, как создать таблицу в ДБ, как записать туда данные из формы, как прочитать данные из ДБ и вывести их "красиво"... Все это работает, но остался "затык" в том, как сохранить полученный из формы файл в файловом хранилище moodle....

Но всё равно спасибо за оставленный "информативный" ответ.

В ответ на Сергей Больной

Re: Новичку нужна помощь

от Виталий Лавров -
Изображение пользователя Эксперт по Moodle
В https://docs.moodle.org/dev/File_API вроде все написано.
Или создайте в CFG->dataroot свой каталог и пишите туда что хотите, чтоб не заморачиваться с API,
как это делает фильтр tex.
В ответ на Сергей Больной

Re: Новичку нужна помощь

от Vadim Dvorovenko -
Изображение пользователя Developers Изображение пользователя Майнтейнер перевода
Ну раз вы пошли путем разработки нового функционала, а не использования существующего, и при этом за два дня смогли ответить на большинство вопросов, которые поставили в первом сообщении, вы, наверное, неплохой программист, который умеет разбираться по чужому коду и документации. Поэтому могу предложить вам помощь по ревью вашего кода.
Если ваш код не подразумевает извлечения прибыли, можете разместить его на гитхабе, прислать ссылку сюда, и я постараюсь дать какие-то комментарии. Если код не публичный, можете прислать архив лично.
В ответ на Сергей Больной

Re: Новичку нужна помощь

от Алексей Буренко -
Я думаю если без программирования то можно решить задачу такулыбаюсь)
Включаем режим редактирования, на главной странице добавляем блок под названием ОСНОВНОЕ МЕНЮ
В него добавляем элемент ЗАДАНИЕ, редактируем назначаем роли студентов и преподавателей,
И все, студенты отправляют, преподаватели проверяют))
Так же в настройках блока, нужно выбрать показывать на всех страницах, что бы он появлялся в личном кабинете
В ответ на Алексей Буренко

Re: Новичку нужна помощь

от Алексей Буренко -
Кнопки отправить работу и модерация можно сделать в виде ссылок в этом же блоке, даже картинками, а основное задание скрыть, но сделать доступным,
Роли которые могут просматривать блок назначаются в настройках блока