Расписание занятий студенческой группы
Введение
В статье рассмотрен пример, как можно использовать FossDoc для автоматизации отдельных аспектов учебного процесса, в частности составления расписаний занятий и доведения этих расписаний до сведения учащихся, дистанционного взаимодействия преподавателей со студентами посредством отправки им заданий, сообщений и пр.
Предполагается, что сервер платформы FossDoc установлен в некотором учебном заведении (назовем его Университетом), состоящим из подразделений (факультетов), внутри которых действуют кафедры с преподавательским составом. Также будем считать, что в системе заведены в качестве пользователей преподаватели и студенты Университета, которые имеют к ней доступ с помощью клиентских приложений платформы.
Предложенное в статье решение, конечно, не исчерпывает всех вопросов автоматизации учебного заведения, но является примером использования FossDoc для администрования учебной деятельности.
Рассмотрим следующие задачи, которые нам необходимо выполнить в рамках создания нашего решения:
- Тип документа "Занятие"
- Расписание занятий на базе виртуальных папок
- Права доступа для студентов и преподавателей
- Напоминания для студентов
Тип документа "Занятие"
Прежде всего, создадим собственную библиотеку "Учебный процесс" и тип документа "Занятие", который будет использоваться для хранения данных об учебных занятиях (парах). Данный документ будет содержать следующие поля:
- Группа
- День недели
- Предмет
- Аудитория
- Время занятий
- Тип занятия
- Преподаватель
Здесь и далее используем программу FossDoc Администратор:

Отметим также функцию "Периодические задачи", назначение которой будет рассмотрено позже.
Здесь все поля кроме "Преподаватель" являются обычными справочными полями и связаны с соответствующими справочниками:

Поле "Преподаватель" является ссылкой на группу пользователей "Преподаватели", которая должна быть предварительно создана. Установим связь следующим образом:
Сначала скопируем в иерархию справочников ссылку на "Преподаватели":

Далее в настройках поля "Преподаватель" установим его связь со справочником "Преподаватели":

Сохраним изменения.
Расписание занятий на базе виртуальных папок
Теперь с помощью фильтров настроим расписание занятий для выбранной студенческой группы. Выберем иерархию "Папки" в "Занятие" и создадим подпапку, например, "Гр. 101 Расписание занятий".

В диалоге создания данной папки настроим фильтр (виртуальную папку FossDoc) для отбора документов по полю "Группа" из папки "Занятие" в текущую. Предположим, сюда будут попадать занятия для группы 101:

После заполнения папки "Занятие" тестовыми данными в виртуальную папка "Гр. 101 Расписание занятий" также попадут документы:

Следующим шагом будет создание виртуальных подпапок, соответствующим дням недели. Т.е. источником данных для виртуальной папки, например, "Понедельник" станет вирутальная папка "Гр. 101 Расписание занятий", а условием для фильтра - "День недели = Понедельник":

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

Аналогичным образом с помощью "copy-past" и соответствующей настройки фильтров можно создать несколько виртуальных папок, например, для другой студенческой группы или преподавателя или для конкретной аудитории (если мы собираемся следить за тем, чтобы не было "накладок" - разных занятий в одно и тоже время в одной аудитории).

Права доступа для студентов и преподавателей
Пришло время предоставить доступ студентам к расписанию занятий. Сначала создадим для примера тестовую студенческую группу №101 и поместим в нее пользователей системы - студентов Университета. На практике можно было бы создать одного пользователя, представляющего студенческую группу и выдать его логин/пароль всем студентам, участникам группы.

Далее настроим доступ уровня "Читатель" к папке "Гр. 101 Расписание занятий" для студентов гр. 101. Выключаем наследование прав доступа от корневой папки "Занятия" и добавляем группу "Сотрудники Группа 101":

По умолчанию студентам будет представлен доступ к папке с расписанием уровня "Читатель" - этого достаточно:

Если зайти в программу FossDoc Клиент от имени некоторого студента, входящего в выбранную группу, его рабочее место будет иметь вид:

Аналогичным образом можно дать права доступа преподавателю на виртуальную папку с его личным расписанием. Тогда рабочее место преподавателя будет выглядеть примерно так:

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

В иерархии папок "Периодические задачи" создадим папку "Напоминания":

Теперь надо сделать так, чтобы данная папка была у каждого преподавателя Университета для создания разного рода напоминаний студентам. Каждый преподаватель должен видеть только те записи, которые он ввел лично. Для решения этой задачи создадим шаблон пользователя "Преподаватель" с помощью программы для расширенного администрирования:

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

Наконец у нашего тестового преподавателя стала доступна папка "Напоминания", и мы можем создать в ней документ. Выберем в качестве адресатов сообщения студентов из группы 101 и "напомним" им, например, о зачете:

В назначенный срок сообщение придет адресатам в их почтовые папки:

Как было отменчено ранее, при проектировании документа "Занятие" была включена функция "Периодические задачи", а это означает, что создавать данные задачи можно также непосредственно из интерфейса карточки занятия. Предоставим право создания периодической задачи (напоминания) на занятии только преподавателям. Для этого выберем папку "Занятия" в иерархии библиотек документов и вызовем на ней из контекстного меню диалог "Разрешения":

В результате данной настройки преподаватель сможет из своего расписания выбрать занятие и создать связанную с данным занятием задачу (напоминание) для студентов:

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