Разработка:Проект 090529

Материал из DOF
Версия от 21:10, 4 июня 2009; Alex (обсуждение | вклад) (Оформление заданий)
Перейти к: навигация, поиск

Проект 2009-05-29 (версия 2.1.0 => 2.2.0)

Цели и задачи проекта

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

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

Участники проекта

Используемые модули FDO

Справочники

План работ

Интерфейс "Школа"

Информация:

  • Куратор
  • Разработчик
  • Условных человеко-часов
  • Выдано задание
  • Работа сдана
  • Проверено
  • Работа принята

Описание задания:

Интерфейс "школьный журнал"

Информация:

  • Куратор
  • Разработчик
  • Условных человеко-часов
  • Выдано задание
  • Работа сдана
  • Проверено
  • Работа принята

Описание задания:

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

Таблица "оценки" в заголовках строк содержит ФИО слушателей, приписанных к данному предмето-классу записями в справочнике Разработка:storages/cpassed, отсортированные по алфавиту по полю peron->sortname. Заголовки колонок - даты событий из справочника Разработка:storages/schevents. Колонки отсортированы по возрастанию даты. С даты ведет внутренняя ссылка на соответствующую строку в таблице "тематическое планирование".

Второй строкой в таблице "оценки" является строка "редактировать", доступная только преподавателю данного курса или заменяющему преподавателю. Над каждой колонкой расположена ссылка "редактировать". При клике на нее страница перезагружается и в выбранной колонке располагается форма для редактирования оценок и отметок о посещении. Отметка об отсутствии выставляется галочкой, оценка выбирается из выпадающего меню. В режиме редактирования на заметном участке экрана отображается предупреждение: "внимание, до нажатия кнопки "сохранить" оценки не сохраняются". Преподавателю доступны три кнопки, действующие сразу на всю форму (все оценки): "сохранить и продолжить", "сохранить", "восстановить". Данные сохраняются в приказ (плагин Разработка:storages/orders), тут же подписываются от имени текущего преподавателя и исполняются, при исполнении приказа устанавливаются оценки в Разработка:storages/cpassed, а посещаемость в Разработка:storages/schpresences. При этом оценки привязываются к выбранной теме в тематическом планировании, а отметки посещаемости - к событию. Кнопка "восстановить" перезагружает форму и отображает оценки, сохраненные для данного события в БД или незаполненные поля.


Таблица "тематическое планирование". Содержит темы уроков, привязанные к учебным событиям. Таблица содержит графы: номер урока, дата урока, тема урока, домашнее задание, заметки о ведении журнала. В таблице отображаются все учебные события (уроки), в порядке возрастания даты, рядом с датой отображается иконка "редактировать". Нажав на иконку "редактировать", преподаватель может изменить дату события (если это разрешено в настройках), сопоставить каждому событию тему из тематического планирования. При этом ему отображается выпадающее меню со всеми темами в статусе "действует", первым пунктом меню является элемент с id=0 - "другая тема", под выпадающем меню отображается форма ввода. Преподаватель может либо выбрать тему из меню, либо ввести свою, тогда для данного урока создается новая тема в справочнике plans, привязанная только к текущему предмето-классу. Кроме того, отображается отдельное поле, где преподаватель может указать домашнее задание, которое сохраняется в отдельном справочнике. В колонке "зачемания по ведению журнала", отображаются заметки из справочника "замечания по ведению журнала", с датой и ссылкой, которая ведет на более подробный текст замечания на отдельной страница. Если заметка не указана, отображается только дата замечания и ссылка. При размещении замечания, оно привязывается к определенному событию, в строке которого и отображается.

Интерфейс "школьный дневник"

Информация:

  • Куратор
  • Разработчик
  • Условных человеко-часов
  • Выдано задание
  • Работа сдана
  • Проверено
  • Работа принята

Описание задания:

Интерфейс "администратор журналов"

Информация:

  • Куратор
  • Разработчик
  • Условных человеко-часов
  • Выдано задание
  • Работа сдана
  • Проверено
  • Работа принята

Описание задания:

Типовой интерфейс редактирования

Информация:

  • Куратор
  • Разработчик
  • Условных человеко-часов
  • Выдано задание
  • Работа сдана
  • Проверено
  • Работа принята

Описание задания:

Эта задача реализуется совместно с одним из интерфейсов редактирования, который будет образцом для реализации остальных интерфейсов редактирования. Код тщательно документируется, для использования в качестве примера. Интерфейс является плагином im, содержащим следующие дополнительные файлы:

  • form.php - объявление класса формы, на основе класса формы из плагина modlib/widgets. Подключается из init.php.
  • lib.php - библиотека, для вызова из веб-страниц, подключает DOF.
  • edit.php - страница, отображающая форму добавления и редактирования. Если передан параметр id, то отображается редактирование, если не передан - добавление.
  • list.php - отображение списка объектов. Если соответствующие поля есть в справочнике, страница принимает параметры departmentid, status, по необходимости, могут быть другие, специфичные для справочника, если они переданы, то выводится не весь список, а только его часть, удовлетворяющая условию. Параметры limitfrom и limitnum предназначены для ограничения количества выводимых записей. Если limitnum задан, то внизу выводится указатель страниц. Сам указатель страниц должен быть реализован в виде метода в плагине modlib widgets, которой передаются значения $code (код плагина im для ссылки), $adds, $vars, $limitfrom, $limitnum и $count, на основании которых возвращается html-код указателя. Ссылки генерируются с помощью $DOF->url_im(). Если для этого типа записей предусмотрен поиск, то форма поиска отображается над списком. Для результатов поиска действуют те же фильтры, что и для вывода списка.
  • view.php - отображение одной записи по ее id.

Все страницы контроллируют права доступа через переопределенный метод в init.php, используя ключевые слова для соответствующих операций: viewobj (с $id объекта), editobj (с $id объекта), addobj, getlist, getdepartmentlist (с $id отдела), setstatus:код_статуса (с $id объекта). В функции is_access() запросы к этим привилегиям конвертируются в запросы к стандартным полномочиям. На начальном этапе id игнорируются.

В объект в init.php добавляются следующие дополнительные методы, которые используются, в том числе, и при реализации соответствующих веб-страниц:

  • show($obj) - отобразить объект на веб-странице (возвращает html-код
  • show_id($id) - отобразить объект по id
  • showlist($list) - отобразить список объектов из массива
  • form($id=null) - возвращает форму для редактирования, если передан $id - данные из этого объект устанавливается по-умолчанию

В соответствующий справочник, добавляются методы (если они отсутствуют), возвращающие количество записей (отдельный метод) и их список (другой метод), на основе данных, обрабатываемых файлом list.php (использование sql-запросов к таблицам справочников везде, кроме справочников, запрещено, использование универсальных фильтров - нежелательно).

При необходимости, в интерфейсы, реализуемые по данному образцу могут добавляться страницы, методы объекта в init.php и другие изменения.


Учебные года

Информация:

  • Куратор
  • Разработчик
  • Условных человеко-часов
  • Выдано задание
  • Работа сдана
  • Проверено
  • Работа принята

Описание задания:

Интерфейс реализует по образцу, заданному в задаче "Типовой интерфейс редактирования"

Адреса

Информация:

  • Куратор
  • Разработчик
  • Условных человеко-часов
  • Выдано задание
  • Работа сдана
  • Проверено
  • Работа принята

Описание задания:

Интерфейс реализует по образцу, заданному в задаче "Типовой интерфейс редактирования". Без списка и поиска.

Отделы

Информация:

  • Куратор
  • Разработчик
  • Условных человеко-часов
  • Выдано задание
  • Работа сдана
  • Проверено
  • Работа принята

Описание задания:

Интерфейс реализует по образцу, заданному в задаче "Типовой интерфейс редактирования" В список добавляется дополнительный параметр фильтрации - родительский отдел.


Учебные программы

Информация:

  • Куратор
  • Разработчик
  • Условных человеко-часов
  • Выдано задание
  • Работа сдана
  • Проверено
  • Работа принята

Описание задания:

Интерфейс реализует по образцу, заданному в задаче "Типовой интерфейс редактирования" Поиск по названию или коду.

Предметы

Информация:

  • Куратор
  • Разработчик
  • Условных человеко-часов
  • Выдано задание
  • Работа сдана
  • Проверено
  • Работа принята

Описание задания:

Интерфейс реализует по образцу, заданному в задаче "Типовой интерфейс редактирования". В список добавляется дополнительный параметр фильтрации - id программы. Поиск по названию или коду (в том числе в источнике/стандарте) - одним полем ввода.

Учебно-тематическое планирование

Информация:

  • Куратор
  • Разработчик
  • Условных человеко-часов
  • Выдано задание
  • Работа сдана
  • Проверено
  • Работа принята

Описание задания:

Интерфейс реализует по образцу, заданному в задаче "Типовой интерфейс редактирования". В список добавляется дополнительный параметр фильтрации - id элемента учебной программы.

Классы

Информация:

  • Куратор
  • Разработчик
  • Условных человеко-часов
  • Выдано задание
  • Работа сдана
  • Проверено
  • Работа принята

Описание задания:

Интерфейс реализует по образцу, заданному в задаче "Типовой интерфейс редактирования" В список добавляется дополнительный параметр фильтрации - id учебной программы. Поиск по названию и коду (поле ввода одно, введенное значение проверяется как начало название или код)

Предмето-классы

Информация:

  • Куратор
  • Разработчик
  • Условных человеко-часов
  • Выдано задание
  • Работа сдана
  • Проверено
  • Работа принята

Описание задания:

Интерфейс реализует по образцу, заданному в задаче "Типовой интерфейс редактирования". Дополнительные экраны для редактирования привязки к академическим группам к нему групп (вместе с типом привязки)

Подписка на учебные потоки

Информация:

  • Куратор
  • Разработчик
  • Условных человеко-часов
  • Выдано задание
  • Работа сдана
  • Проверено
  • Работа принята

Описание задания:

Интерфейс реализует по образцу, заданному в задаче "Типовой интерфейс редактирования" Дополнительный параметр фильтрации - id предмето-класса и соответствующее имя полномочия с параметром - id предмето-класса.

Оценки

Информация:

  • Куратор
  • Разработчик
  • Условных человеко-часов
  • Выдано задание
  • Работа сдана
  • Проверено
  • Работа принята

Описание задания:

Интерфейс реализует по образцу, заданному в задаче "Типовой интерфейс редактирования" Дополнительный параметр фильтрации - id предмето-класса и соответствующее имя полномочия с параметром - id предмето-класса.

История изменения статусов.

Информация:

  • Куратор
  • Разработчик
  • Условных человеко-часов
  • Выдано задание
  • Работа сдана
  • Проверено
  • Работа принята

Описание задания:

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

Приказы

Информация:

  • Куратор
  • Разработчик
  • Условных человеко-часов
  • Выдано задание
  • Работа сдана
  • Проверено
  • Работа принята

Описание задания:

Интерфейс реализует по образцу, заданному в задаче "Типовой интерфейс редактирования". Дополнительные параметры фильтрации - тип плагина, код плагина, код типа приказа, владелец, редактор. Редактирования нет. Функция исполнения уже подписанного приказа.

Дополнительные материалы

"Замороженные" задачи (не будут реализованы в данном проекте)

Интерфейс "Организации и сотрудники"

Информация:

  • Куратор
  • Разработчик
  • Условных человеко-часов
  • Выдано задание
  • Работа сдана
  • Проверено
  • Работа принята

Описание задания:

Интерфейс реализует по образцу, заданному в задаче "Типовой интерфейс редактирования". Так же должна быть предусмотрена страницы для отображения списка сотрудников организации, просмотра параметров (должность, телефон, статус, дата принятия и увольнения) одного сотрудника, добавления сотрудника и изменения его параметров.