Разработка:Проект 090529 — различия между версиями
Johnleft (обсуждение | вклад) м (→Интерфейс "школьный журнал": добавлено описание функций, которые нужны для работы) |
Alex (обсуждение | вклад) (→Справочники: learninghistory) |
||
(не показано 46 промежуточных версий 4 участников) | |||
Строка 10: | Строка 10: | ||
* [[Участник:Ilya|Илья Смирнов]] - разработчик. | * [[Участник:Ilya|Илья Смирнов]] - разработчик. | ||
* [[Участник:Johnleft|Евгений Цыганцов]] - куратор, разработчик. | * [[Участник:Johnleft|Евгений Цыганцов]] - куратор, разработчик. | ||
+ | |||
+ | ===Организации, поддерживающие проект=== | ||
+ | [http://www.home-edu.ru ГОУ Центр образования "Технологии обучения"] | ||
===Используемые модули FDO === | ===Используемые модули FDO === | ||
====Справочники ==== | ====Справочники ==== | ||
− | * [[Разработка:storages/persons]] - учителя, ученики, родители | + | * '''++''' [[Разработка:storages/persons]] - учителя, ученики, родители |
− | * [[Разработка:storages/contracts]] - заявления на поступления в школу | + | * '''<font color="#e80505">+</font>++''' [[Разработка:storages/contracts]] - заявления на поступления в школу |
− | * [[Разработка:storages/ | + | * '''+''' [[Разработка:storages/addreses]] - адреса |
− | * [[Разработка:storages/departments]] - структурные подразделения | + | * '''<font color="#e80505">+</font>++''' [[Разработка:storages/departments]] - структурные подразделения |
− | * [[Разработка:storages/ages]] - учебные года | + | * '''+''' [[Разработка:storages/ages]] - учебные года |
− | * [[Разработка:storages/programms]] - учебные программы (начальная школа, средняя школа, старшая школа) | + | * '''+''' [[Разработка:storages/programms]] - учебные программы (начальная школа, средняя школа, старшая школа) |
− | * [[Разработка:storages/programmsbcs]] - подписка учеников на учебные программы | + | * '''+''' [[Разработка:storages/programmsbcs]] - подписка учеников на учебные программы |
− | * [[Разработка:storages/programmitems]] - школьные предметы (математика 7 класс, математика 8 класс...) | + | * '''<font color="#e80505">+</font>+++''' [[Разработка:storages/programmitems]] - школьные предметы (математика 7 класс, математика 8 класс...) |
− | * [[Разработка:storages/plans]] - учебно-тематическое планирование, четверти и экзамены (контрольные точки), темы фактически-данных уроков | + | * '''<font color="#e80505">+</font>+++''' [[Разработка:storages/plans]] - учебно-тематическое планирование, четверти и экзамены (контрольные точки), темы фактически-данных уроков |
− | * [[Разработка:storages/agroups]] - классы (при переходе класса на следующий год обучения, если он не был расформирован, запись в БД остается той же, меняется только номер текущего периода, если требуется статус, название и код (но не желательно) | + | * '''<font color="#e80505">+</font>+++''' [[Разработка:storages/agroups]] - классы (при переходе класса на следующий год обучения, если он не был расформирован, запись в БД остается той же, меняется только номер текущего периода, если требуется статус, название и код (но не желательно) |
− | * [[Разработка:storages/cstreams]] - предмето-классы (процесс изучения данным классом данного предмета в данном учебном году) | + | * '''<font color="#e80505">+</font>++''' [[Разработка:storages/cstreams]] - предмето-классы (процесс изучения данным классом данного предмета в данном учебном году) |
− | * [[Разработка:storages/cstreamlinks]] - связь предмето-классов и классов (отдельная таблица, поскольку могут быть разделения по группам и интегральные курсы) | + | * '''<font color="#e80505">+</font>+++''' [[Разработка:storages/cstreamlinks]] - связь предмето-классов и классов (отдельная таблица, поскольку могут быть разделения по группам и интегральные курсы) |
− | * [[Разработка:storages/schevents]] - проведенные уроки | + | * '''++''' [[Разработка:storages/schevents]] - проведенные уроки |
− | * [[Разработка:storages/schpresences]] - присутствие учеников на проведенных уроках | + | * '''<font color="#e80505">+</font>++''' [[Разработка:storages/schpresences]] - присутствие учеников на проведенных уроках |
− | * [[Разработка:storages/cpgrades]] - оценки учеников | + | * '''<font color="#e80505">+</font>++''' [[Разработка:storages/cpgrades]] - оценки учеников |
− | * [[Разработка:storages/cpassed]] - подписка студентов на предмето-классы, итоговые оценки по предмету в году | + | * '''<font color="#e80505">+</font>+++''' [[Разработка:storages/cpassed]] - подписка студентов на предмето-классы, итоговые оценки по предмету в году |
− | * [[Разработка:storages/orders]] - приказы | + | * '''+''' [[Разработка:storages/orders]] - приказы |
− | * [[Разработка:storages/statushistory]] - история изменения статусов объектов | + | * '''<font color="#e80505">+</font>+++''' [[Разработка:storages/statushistory]] - история изменения статусов объектов |
+ | * [[Разработка:storages/organizations]] - организации | ||
* [[Разработка:storages/scheventscheck]] - замечания по ведению журналов | * [[Разработка:storages/scheventscheck]] - замечания по ведению журналов | ||
+ | * [[Разработка:storages/learninghistory]] - история обучения ученика по семестрам | ||
===План работ=== | ===План работ=== | ||
Строка 52: | Строка 57: | ||
====Интерфейс "школьный журнал"==== | ====Интерфейс "школьный журнал"==== | ||
Информация: | Информация: | ||
− | * Куратор | + | * Куратор [[Участник:Johnleft|Евгений Цыганцов]] |
* Разработчик | * Разработчик | ||
* Условных человеко-часов | * Условных человеко-часов | ||
Строка 89: | Строка 94: | ||
Если пользователь имеет право проверять журнал, то отображаются так же ссылки для добавления замечания и отметки о проверки журнала. Само замечания или заметка набираются в отдельном окне. | Если пользователь имеет право проверять журнал, то отображаются так же ссылки для добавления замечания и отметки о проверки журнала. Само замечания или заметка набираются в отдельном окне. | ||
===== Дополнительные методы и функции ===== | ===== Дополнительные методы и функции ===== | ||
− | # | + | # '''+'''Надо добавить метод get_fullname($id) в хранилище persons. Он возвращает полное имя пользователя в формате ФИО. |
− | + | # '''+'''Надо в хранилище cpassed добавить метод, возвращающий всех студентов, которые приписаны к одному предмето-потоку. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | # Надо в хранилище cpassed добавить метод, возвращающий всех студентов, которые приписаны к одному предмето-потоку. | ||
====Интерфейс "школьный дневник" ==== | ====Интерфейс "школьный дневник" ==== | ||
Информация: | Информация: | ||
− | * Куратор | + | * Куратор [[Участник:Johnleft|Евгений Цыганцов]] |
* Разработчик | * Разработчик | ||
* Условных человеко-часов | * Условных человеко-часов | ||
Строка 113: | Строка 112: | ||
* На первой странице плагина отображается древовидное меню, на первом уровне которого перечислены фамилии учеников и номера договоров, по которым возможно просмотреть информацию. | * На первой странице плагина отображается древовидное меню, на первом уровне которого перечислены фамилии учеников и номера договоров, по которым возможно просмотреть информацию. | ||
** Первыми в списке идут договора, по которым текущий пользователь проходит в качестве ученика, далее - в качестве законного представителя. | ** Первыми в списке идут договора, по которым текущий пользователь проходит в качестве ученика, далее - в качестве законного представителя. | ||
− | ** На втором уровне отображаются подписки на учебные программы, в рамках договора (например "общее среднее образование", "факультатив по английскому языку"). Название учебной программы является ссылкой на экран "учебная программа", описанный в | + | ** На втором уровне отображаются подписки на учебные программы, в рамках договора (например "общее среднее образование", "факультатив по английскому языку"). Название учебной программы является ссылкой на экран "учебная программа", описанный в плагине и отображающий состав учебной программы на весь срок обучения и итоговые отметки по предметам, пройденным в прошлые учебные годы. |
** На третьем уровне отображается меню со ссылками "Дневник учащегося", "Предметы", ссылающиеся на экраны "Дневник учащегося" (ранее - успеваемость, отображает страницу, максимально приближенную к виду школьного дневника за текущую неделю, с возможностью навигации на предыдущую и последующую неделю, а так же перехода к любой неделе в текущем учебном году через выпадающее меню) и "Предметы" (ранее - учебные процессы, отображает список предмето-классов, в которых обучается ученик в текущем учебном году) соответственно. | ** На третьем уровне отображается меню со ссылками "Дневник учащегося", "Предметы", ссылающиеся на экраны "Дневник учащегося" (ранее - успеваемость, отображает страницу, максимально приближенную к виду школьного дневника за текущую неделю, с возможностью навигации на предыдущую и последующую неделю, а так же перехода к любой неделе в текущем учебном году через выпадающее меню) и "Предметы" (ранее - учебные процессы, отображает список предмето-классов, в которых обучается ученик в текущем учебном году) соответственно. | ||
Строка 119: | Строка 118: | ||
Одновременно с разработкой данного плагина, добавляются недостающие методы в используемые справочники. | Одновременно с разработкой данного плагина, добавляются недостающие методы в используемые справочники. | ||
− | |||
− | |||
==== Типовой интерфейс редактирования==== | ==== Типовой интерфейс редактирования==== | ||
Информация: | Информация: | ||
− | * Куратор | + | * Куратор - [[Участник:Alex|Алексей Дьяченко]] |
− | * Разработчик | + | * Разработчик - [[Участник:Johnleft|Евгений Цыганцов]], Илья Смирнов, Мария Рожайская |
− | * Условных человеко-часов | + | * Условных человеко-часов - 16 |
− | * Выдано задание | + | * Выдано задание 01.09.09 |
− | * Работа сдана | + | * Работа сдана 21.09.09 |
* Проверено | * Проверено | ||
* Работа принята | * Работа принята | ||
Строка 136: | Строка 133: | ||
Эта задача реализуется совместно с одним из интерфейсов редактирования, который будет образцом для реализации остальных интерфейсов редактирования. Код тщательно документируется, для использования в качестве примера. | Эта задача реализуется совместно с одним из интерфейсов редактирования, который будет образцом для реализации остальных интерфейсов редактирования. Код тщательно документируется, для использования в качестве примера. | ||
Интерфейс является плагином im, содержащим следующие дополнительные файлы: | Интерфейс является плагином im, содержащим следующие дополнительные файлы: | ||
− | * form.php - объявление класса формы, на основе класса формы из плагина modlib/widgets. Подключается из init.php. | + | * '''+''' form.php - объявление класса формы, на основе класса формы из плагина modlib/widgets. Подключается из init.php. |
− | * lib.php - библиотека, для вызова из веб-страниц, подключает DOF. | + | * '''+''' lib.php - библиотека, для вызова из веб-страниц, подключает DOF. |
− | * edit.php - страница, отображающая форму добавления и редактирования. Если передан параметр id, то отображается редактирование, если не передан - добавление. | + | * '''+''' edit.php - страница, отображающая форму добавления и редактирования. Если передан параметр id, то отображается редактирование, если не передан - добавление. |
− | * list.php - отображение списка объектов. Если соответствующие поля есть в справочнике, страница принимает параметры departmentid, status, по необходимости, могут быть другие, специфичные для справочника, если они переданы, то выводится не весь список, а только его часть, удовлетворяющая условию. Параметры limitfrom и limitnum предназначены для ограничения количества выводимых записей. Если limitnum задан, то внизу выводится указатель страниц. Сам указатель страниц должен быть реализован в виде метода в плагине modlib widgets, которой передаются значения $code (код плагина im для ссылки), $adds, $vars, $limitfrom, $limitnum и $count, на основании которых возвращается html-код указателя. Ссылки генерируются с помощью $DOF->url_im(). Если для этого типа записей предусмотрен поиск, то форма поиска отображается над списком. Для результатов поиска действуют те же фильтры, что и для вывода списка. | + | * '''+''' list.php - отображение списка объектов. Если соответствующие поля есть в справочнике, страница принимает параметры departmentid, status, по необходимости, могут быть другие, специфичные для справочника, если они переданы, то выводится не весь список, а только его часть, удовлетворяющая условию. Параметры limitfrom и limitnum предназначены для ограничения количества выводимых записей. Если limitnum задан, то внизу выводится указатель страниц. Сам указатель страниц должен быть реализован в виде метода в плагине modlib widgets, которой передаются значения $code (код плагина im для ссылки), $adds, $vars, $limitfrom, $limitnum и $count, на основании которых возвращается html-код указателя. Ссылки генерируются с помощью $DOF->url_im(). Если для этого типа записей предусмотрен поиск, то форма поиска отображается над списком. Для результатов поиска действуют те же фильтры, что и для вывода списка. |
− | * view.php - отображение одной записи по ее id. | + | * '''+''' view.php - отображение одной записи по ее id. |
− | Все страницы контроллируют права доступа через переопределенный метод в init.php, используя ключевые слова для соответствующих операций: viewobj (с $id объекта), editobj (с $id объекта), addobj, getlist, getdepartmentlist (с $id отдела), setstatus:код_статуса (с $id объекта). В функции is_access() запросы к этим привилегиям конвертируются в запросы к стандартным полномочиям. На начальном этапе id игнорируются. | + | '''+''' Все страницы контроллируют права доступа через переопределенный метод в init.php, используя ключевые слова для соответствующих операций: viewobj (с $id объекта), editobj (с $id объекта), addobj, getlist, getdepartmentlist (с $id отдела), setstatus:код_статуса (с $id объекта). В функции is_access() запросы к этим привилегиям конвертируются в запросы к стандартным полномочиям manage. На начальном этапе id игнорируются. |
В объект в init.php добавляются следующие дополнительные методы, которые используются, в том числе, и при реализации соответствующих веб-страниц: | В объект в init.php добавляются следующие дополнительные методы, которые используются, в том числе, и при реализации соответствующих веб-страниц: | ||
− | * show($obj) - отобразить объект на веб-странице (возвращает html-код | + | * '''+'''show($obj) - отобразить объект на веб-странице (возвращает html-код |
− | * show_id($id) - отобразить объект по id | + | * '''+'''show_id($id) - отобразить объект по id |
− | * showlist($list) - отобразить список объектов из массива | + | * '''+'''showlist($list) - отобразить список объектов из массива |
− | * form($id=null) - возвращает форму для редактирования, если передан $id - данные из этого объект устанавливается по-умолчанию | + | * '''+''' form($id=null) - возвращает форму для редактирования, если передан $id - данные из этого объект устанавливается по-умолчанию |
− | * добавляется метод, возвращающий блок навигации по данному модулю (в данном проекте для навигации используется плагин im/school, а данный блок предназначен для донастройки интерфейса администраторами серверов) | + | * '''+''' добавляется метод, возвращающий блок навигации по данному модулю (в данном проекте для навигации используется плагин im/school, а данный блок предназначен для донастройки интерфейса администраторами серверов) |
− | В соответствующий справочник, добавляются методы (если они отсутствуют), возвращающие количество записей (отдельный метод) и их список (другой метод), на основе данных, обрабатываемых файлом list.php (использование sql-запросов к таблицам справочников везде, кроме справочников, запрещено, использование универсальных фильтров - нежелательно). | + | '''+''' В соответствующий справочник, добавляются методы (если они отсутствуют), возвращающие количество записей (отдельный метод) и их список (другой метод), на основе данных, обрабатываемых файлом list.php (использование sql-запросов к таблицам справочников везде, кроме справочников, запрещено, использование универсальных фильтров - нежелательно). |
При необходимости, в интерфейсы, реализуемые по данному образцу могут добавляться страницы, методы объекта в init.php и другие изменения. | При необходимости, в интерфейсы, реализуемые по данному образцу могут добавляться страницы, методы объекта в init.php и другие изменения. | ||
+ | ===== Работы ===== | ||
+ | (реализуется совместно с одним из интерфейсов редактирования) | ||
+ | * '''+''' Подготовка структуры плагина (папки, файлы, подключения, переименования методов в init.php, языковой файл, размещение на страницах вызовов соответсвующих методов) - 2 | ||
+ | ** Доработка метода управления доступом в соответствии с описанными выше привелегиями. Все экраны и обработчик формы проверяют разрешения и выводят соответствующие сообщения об ошибке - 1 | ||
+ | * '''+''' Разработка и отладка метода - указателя страниц в widgets - 2 | ||
+ | * Методы init.php | ||
+ | ** '''+''' show($obj),show_id($id) - 2 | ||
+ | ** '''+''' showlist($list) - 2 | ||
+ | ** '''+''' form($id=null) | ||
+ | *** '''+''' Разработка формы на базе modlibs/widgets/form - 2 | ||
+ | *** '''+''' Загрузка и сохранение данных формы в справочник - 2 | ||
+ | ** '''+''' Страница отображения списка объектов, в зависимости от переданных параметров, форма ввода дополнительных параметров фильтрации - 2 | ||
+ | ** '''+''' Блок навигации по страницам плагина (новый, список). | ||
+ | ** Настройка ссылок и переходов между экранами плагина (список, просмотр одного, редактирование, новый), крошки - 1 | ||
==== Учебные года ==== | ==== Учебные года ==== | ||
Информация: | Информация: | ||
− | * Куратор | + | * Куратор - [[Участник:Alex|Алексей Дьяченко]] |
* Разработчик | * Разработчик | ||
− | * Условных человеко-часов | + | * Условных человеко-часов 8 |
* Выдано задание | * Выдано задание | ||
* Работа сдана | * Работа сдана | ||
Строка 168: | Строка 179: | ||
Интерфейс реализует по образцу, заданному в задаче "Типовой интерфейс редактирования" | Интерфейс реализует по образцу, заданному в задаче "Типовой интерфейс редактирования" | ||
+ | |||
+ | ===== Работы ===== | ||
+ | ** Копирование структуры плагина, изменение настроек плагина в init.php - 1 | ||
+ | ** Правка языковых файлов и надписей в интерфейсе - 1 | ||
+ | ** Правка отображения одного объекта и списка (шаблон, связь со справочником) - 1 | ||
+ | ** Связь формы с новым справочником (загрузка и сохранение данных) - 1 | ||
+ | ** Настройка параметров фильтрации данных в списке, редактирование формы поиска - 1 | ||
+ | ** Разработка метода выбора списка объектов по заданным параметрам фильтрации - 1 | ||
+ | ** Правка формы редактирования объекта в соответствии со структурой объекта - 1 | ||
+ | ** Настройка проверки данных формы - 1 | ||
+ | |||
==== Адреса ==== | ==== Адреса ==== | ||
Информация: | Информация: | ||
− | * Куратор | + | * Куратор - [[Участник:Alex|Алексей Дьяченко]] |
* Разработчик | * Разработчик | ||
− | * Условных человеко-часов | + | * Условных человеко-часов - 6 |
* Выдано задание | * Выдано задание | ||
* Работа сдана | * Работа сдана | ||
Строка 183: | Строка 205: | ||
Интерфейс реализует по образцу, заданному в задаче "Типовой интерфейс редактирования". | Интерфейс реализует по образцу, заданному в задаче "Типовой интерфейс редактирования". | ||
Без списка и поиска. | Без списка и поиска. | ||
+ | |||
+ | ===== Работы ===== | ||
+ | ** Копирование структуры плагина, изменение настроек плагина в init.php - 1 | ||
+ | ** Правка языковых файлов и надписей в интерфейсе - 1 | ||
+ | ** Правка отображения одного объекта и списка (шаблон, связь со справочником) - 1 | ||
+ | ** Связь формы с новым справочником (загрузка и сохранение данных) - 1 | ||
+ | ** Правка формы редактироования объекта в соответствии с объектом - 1 | ||
+ | ** Настройка проверки данных формы - 1 | ||
==== Отделы ==== | ==== Отделы ==== | ||
Информация: | Информация: | ||
− | * Куратор | + | * Куратор - [[Участник:Alex|Алексей Дьяченко]] |
− | * Разработчик | + | * Разработчик - Мария Рожайская |
− | * Условных человеко-часов | + | * Условных человеко-часов - 8 |
− | * Выдано задание | + | * Выдано задание 11.09.09 |
* Работа сдана | * Работа сдана | ||
* Проверено | * Проверено | ||
Строка 199: | Строка 229: | ||
В список добавляется дополнительный параметр фильтрации - родительский отдел. | В список добавляется дополнительный параметр фильтрации - родительский отдел. | ||
+ | ===== Работы ===== | ||
+ | ** Копирование структуры плагина, изменение настроек плагина в init.php - 1 | ||
+ | ** Правка языковых файлов и надписей в интерфейсе - 1 | ||
+ | ** Правка отображения одного объекта и списка (шаблон, связь со справочником) - 1 | ||
+ | ** Связь формы с новым справочником (загрузка и сохранение данных) - 1 | ||
+ | ** Настройка параметров фильтрации данных в списке, редактирование формы поиска - 1 | ||
+ | ** Разработка метода выбора списка объектов по заданным параметрам фильтрации - 1 | ||
+ | ** Правка формы редактирования объекта в соответствии со структурой объекта - 1 | ||
+ | ** Настройка проверки данных формы - 1 | ||
==== Учебные программы ==== | ==== Учебные программы ==== | ||
Информация: | Информация: | ||
− | * Куратор | + | * Куратор - [[Участник:Alex|Алексей Дьяченко]] |
− | * Разработчик | + | * Разработчик - Илья Смирнов |
− | * Условных человеко-часов | + | * Условных человеко-часов - 8 |
− | * Выдано задание | + | * Выдано задание 21.09.09 |
* Работа сдана | * Работа сдана | ||
* Проверено | * Проверено | ||
Строка 214: | Строка 253: | ||
Интерфейс реализует по образцу, заданному в задаче "Типовой интерфейс редактирования" | Интерфейс реализует по образцу, заданному в задаче "Типовой интерфейс редактирования" | ||
Поиск по названию или коду. | Поиск по названию или коду. | ||
+ | |||
+ | ===== Работы ===== | ||
+ | ** Копирование структуры плагина, изменение настроек плагина в init.php - 1 | ||
+ | ** Правка языковых файлов и надписей в интерфейсе - 1 | ||
+ | ** Правка отображения одного объекта и списка (шаблон, связь со справочником) - 1 | ||
+ | ** Связь формы с новым справочником (загрузка и сохранение данных) - 1 | ||
+ | ** Настройка параметров фильтрации данных в списке, редактирование формы поиска - 1 | ||
+ | ** Разработка метода выбора списка объектов по заданным параметрам фильтрации - 1 | ||
+ | ** Правка формы редактирования объекта в соответствии со структурой объекта - 1 | ||
+ | ** Настройка проверки данных формы - 1 | ||
==== Предметы ==== | ==== Предметы ==== | ||
Строка 234: | Строка 283: | ||
Информация: | Информация: | ||
* Куратор | * Куратор | ||
− | * Разработчик | + | * Разработчик - [[Участник:Alex|Алексей Дьяченко]] |
− | * Условных человеко-часов | + | * Условных человеко-часов - 8 |
* Выдано задание | * Выдано задание | ||
* Работа сдана | * Работа сдана | ||
Строка 244: | Строка 293: | ||
Интерфейс реализует по образцу, заданному в задаче "Типовой интерфейс редактирования". | Интерфейс реализует по образцу, заданному в задаче "Типовой интерфейс редактирования". | ||
− | В список добавляется дополнительный параметр фильтрации - id | + | В список добавляется дополнительный параметр фильтрации - объект привязки (тип связи: ages, programmitems, cstreams и id объекта привязки), отображать только напрямую связанные контрольные точки или все актуальный для учебного процесса контрольные точки. Для выборки используются соответствующие методы справочника с сохраненнием принятых там методов сортировки. |
+ | |||
+ | ===== Работы ===== | ||
+ | ** Копирование структуры плагина, изменение настроек плагина в init.php - 1 | ||
+ | ** Правка языковых файлов и надписей в интерфейсе - 1 | ||
+ | ** Правка отображения одного объекта и списка (шаблон, связь со справочником) - 1 | ||
+ | ** Связь формы с новым справочником (загрузка и сохранение данных) - 1 | ||
+ | ** Настройка параметров фильтрации данных в списке, редактирование формы поиска - 1 | ||
+ | ** Разработка метода выбора списка объектов по заданным параметрам фильтрации - 1 | ||
+ | ** Правка формы редактирования объекта в соответствии со структурой объекта - 1 | ||
+ | ** Настройка проверки данных формы - 1 | ||
==== Классы ==== | ==== Классы ==== | ||
Информация: | Информация: | ||
− | * Куратор | + | * Куратор - [[Участник:Alex|Алексей Дьяченко]] |
* Разработчик | * Разработчик | ||
− | * Условных человеко-часов | + | * Условных человеко-часов - 8 |
* Выдано задание | * Выдано задание | ||
* Работа сдана | * Работа сдана | ||
Строка 259: | Строка 318: | ||
Интерфейс реализует по образцу, заданному в задаче "Типовой интерфейс редактирования" | Интерфейс реализует по образцу, заданному в задаче "Типовой интерфейс редактирования" | ||
− | В список добавляется дополнительный параметр фильтрации - id учебной программы. | + | Интерфейс реализует по образцу, заданному в задаче "Типовой интерфейс редактирования" В список добавляется дополнительный параметр фильтрации - id учебной программы. Поиск по названию и коду (поле ввода одно, введенное значение проверяется как начало название или код) |
− | Поиск по названию и коду (поле ввода одно, введенное значение проверяется как начало название или код) | ||
− | ==== Предмето-классы ==== | + | ===== Работы ===== |
+ | ** Копирование структуры плагина, изменение настроек плагина в init.php - 1 | ||
+ | ** Правка языковых файлов и надписей в интерфейсе - 1 | ||
+ | ** Правка отображения одного объекта и списка (шаблон, связь со справочником) - 1 | ||
+ | ** Связь формы с новым справочником (загрузка и сохранение данных) - 1 | ||
+ | ** Настройка параметров фильтрации данных в списке, редактирование формы поиска - 1 | ||
+ | ** Разработка метода выбора списка объектов по заданным параметрам фильтрации - 1 | ||
+ | ** Правка формы редактирования объекта в соответствии со структурой объекта - 1 | ||
+ | ** Настройка проверки данных формы - 1 | ||
+ | |||
+ | ==== Предмето-классы (учебные потоки) ==== | ||
Информация: | Информация: | ||
− | * Куратор | + | * Куратор - [[Участник:Alex|Алексей Дьяченко]] |
* Разработчик | * Разработчик | ||
− | * Условных человеко-часов | + | * Условных человеко-часов - 12 |
* Выдано задание | * Выдано задание | ||
* Работа сдана | * Работа сдана | ||
Строка 277: | Строка 345: | ||
Дополнительные экраны для редактирования привязки к академическим группам к нему групп (вместе с типом привязки) | Дополнительные экраны для редактирования привязки к академическим группам к нему групп (вместе с типом привязки) | ||
− | ==== Подписка на учебные потоки ==== | + | ===== Работы ===== |
+ | ** Копирование структуры плагина, изменение настроек плагина в init.php - 1 | ||
+ | ** Правка языковых файлов и надписей в интерфейсе - 1 | ||
+ | ** Правка отображения одного объекта и списка (шаблон, связь со справочником) - 1 | ||
+ | ** Связь формы с новым справочником (загрузка и сохранение данных) - 1 | ||
+ | ** Настройка параметров фильтрации данных в списке, редактирование формы поиска - 1 | ||
+ | ** Разработка метода выбора списка объектов по заданным параметрам фильтрации - 1 | ||
+ | ** Правка формы редактирования объекта в соответствии со структурой объекта - 1 | ||
+ | ** Настройка проверки данных формы - 1 | ||
+ | ** Добавление интерфейса редактирования привязки к классам (академическим группам) - 4 | ||
+ | |||
+ | ==== Подписка на предмето-классы (учебные потоки) ==== | ||
Информация: | Информация: | ||
− | * Куратор | + | * Куратор - [[Участник:Alex|Алексей Дьяченко]] |
* Разработчик | * Разработчик | ||
− | * Условных человеко-часов | + | * Условных человеко-часов - 15 |
* Выдано задание | * Выдано задание | ||
* Работа сдана | * Работа сдана | ||
Строка 290: | Строка 369: | ||
Интерфейс реализует по образцу, заданному в задаче "Типовой интерфейс редактирования" | Интерфейс реализует по образцу, заданному в задаче "Типовой интерфейс редактирования" | ||
− | Дополнительный параметр фильтрации - id предмето-класса и | + | Дополнительный параметр фильтрации - id предмето-класса (учебного протока). Если данный параметр передан, подписка и отписка со стандартными параметрами может выполняться по клику на соответствующие кнопки на странице списка. |
+ | Дополнительные полномочия viewcpassedbycstream, editcpassedbycstream с параметром $id предмето-класса с регрессом на manage. Просмотр и редактирование одиночных подписок проверяются регрессом к viewcpassedbycstream и editcpassedbycstream для соответствующих предмето-классов. | ||
+ | |||
+ | ===== Работы ===== | ||
+ | ** Копирование структуры плагина, изменение настроек плагина в init.php - 1 | ||
+ | ** Правка языковых файлов и надписей в интерфейсе - 1 | ||
+ | ** Правка отображения одного объекта и списка (шаблон, связь со справочником) - 1 | ||
+ | ** Связь формы с новым справочником (загрузка и сохранение данных) - 1 | ||
+ | ** Настройка параметров фильтрации данных в списке, редактирование формы поиска - 1 | ||
+ | ** Разработка метода выбора списка объектов по заданным параметрам фильтрации - 1 | ||
+ | ** Правка формы редактирования объекта в соответствии со структурой объекта - 1 | ||
+ | ** Настройка проверки данных формы - 1 | ||
+ | ** Редактирование полномочий - 1 | ||
+ | ** Интерфейс подписки и отписки в один клик - 2 | ||
+ | ** Методы в справочнике cpassed для получения параметров по умолчанию подписки на данный учебный поток (должен использоваться при инициализации формы добавления подписки) и подписки и отписки с параметрами по умолчанию. - 2 | ||
+ | ** Форма поиска слушателя для подписки в один клик - 2 | ||
==== Оценки ==== | ==== Оценки ==== | ||
Информация: | Информация: | ||
− | * Куратор | + | * Куратор - [[Участник:Alex|Алексей Дьяченко]] |
* Разработчик | * Разработчик | ||
− | * Условных человеко-часов | + | * Условных человеко-часов - 9 |
* Выдано задание | * Выдано задание | ||
* Работа сдана | * Работа сдана | ||
Строка 305: | Строка 399: | ||
Интерфейс реализует по образцу, заданному в задаче "Типовой интерфейс редактирования" | Интерфейс реализует по образцу, заданному в задаче "Типовой интерфейс редактирования" | ||
− | Дополнительный параметр фильтрации - id предмето-класса | + | Дополнительный параметр фильтрации - id предмето-класса. |
+ | Полномочия viewcpgradesbycstream, editcpgradesbycstream с параметром - id предмето-класса. Регрес к manage. | ||
+ | |||
+ | ===== Работы ===== | ||
+ | ** Копирование структуры плагина, изменение настроек плагина в init.php - 1 | ||
+ | ** Правка языковых файлов и надписей в интерфейсе - 1 | ||
+ | ** Правка отображения одного объекта и списка (шаблон, связь со справочником) - 1 | ||
+ | ** Связь формы с новым справочником (загрузка и сохранение данных) - 1 | ||
+ | ** Настройка параметров фильтрации данных в списке, редактирование формы поиска - 1 | ||
+ | ** Разработка метода выбора списка объектов по заданным параметрам фильтрации - 1 | ||
+ | ** Правка формы редактирования объекта в соответствии со структурой объекта - 1 | ||
+ | ** Настройка проверки данных формы - 1 | ||
+ | ** Добавление полномочий - 1 | ||
==== История изменения статусов. ==== | ==== История изменения статусов. ==== | ||
Информация: | Информация: | ||
− | * Куратор | + | * Куратор - [[Участник:Alex|Алексей Дьяченко]] |
* Разработчик | * Разработчик | ||
− | * Условных человеко-часов | + | * Условных человеко-часов - 6 |
* Выдано задание | * Выдано задание | ||
* Работа сдана | * Работа сдана | ||
Строка 322: | Строка 428: | ||
Дополнительные параметры фильтрации по справочнику и объекту. | Дополнительные параметры фильтрации по справочнику и объекту. | ||
Без редактирования. | Без редактирования. | ||
+ | |||
+ | ===== Работы ===== | ||
+ | ** Копирование структуры плагина, изменение настроек плагина в init.php - 1 | ||
+ | ** Правка языковых файлов и надписей в интерфейсе - 1 | ||
+ | ** Правка отображения одного объекта и списка (шаблон, связь со справочником) - 1 | ||
+ | ** Настройка параметров фильтрации данных в списке, редактирование формы поиска - 1 | ||
+ | ** Разработка метода выбора списка объектов по заданным параметрам фильтрации - 1 | ||
+ | ** Связь формы с новым справочником (загрузка данных) - 0.5 | ||
+ | ** Удаление инструментов, связанных с редактированием - 0.5 | ||
====Приказы ==== | ====Приказы ==== | ||
Информация: | Информация: | ||
− | * Куратор | + | * Куратор - [[Участник:Alex|Алексей Дьяченко]] |
* Разработчик | * Разработчик | ||
− | * Условных человеко-часов | + | * Условных человеко-часов - 7 |
* Выдано задание | * Выдано задание | ||
* Работа сдана | * Работа сдана | ||
Строка 338: | Строка 453: | ||
Дополнительные параметры фильтрации - тип плагина, код плагина, код типа приказа, владелец, редактор. | Дополнительные параметры фильтрации - тип плагина, код плагина, код типа приказа, владелец, редактор. | ||
Редактирования нет. Функция исполнения уже подписанного приказа. | Редактирования нет. Функция исполнения уже подписанного приказа. | ||
+ | |||
+ | ===== Работы ===== | ||
+ | ** Копирование структуры плагина, изменение настроек плагина в init.php - 1 | ||
+ | ** Правка языковых файлов и надписей в интерфейсе - 1 | ||
+ | ** Правка отображения одного объекта и списка (шаблон, связь со справочником) - 1 | ||
+ | ** Связь формы с новым справочником - 0.5 | ||
+ | ** Настройка параметров фильтрации данных в списке, редактирование формы поиска - 1 | ||
+ | ** Разработка метода выбора списка объектов по заданным параметрам фильтрации - 1 | ||
+ | ** Удаление инструментов, связанных с редактированием. Добавление интерфейса исполнения приказов - 1.5 | ||
===Дополнительные материалы=== | ===Дополнительные материалы=== | ||
Строка 368: | Строка 492: | ||
Описание задания: | Описание задания: | ||
+ | |||
+ | [[Категория:Разработка]] |
Текущая версия на 18:31, 12 октября 2009
Содержание
- 1 Проект 2009-05-29 (версия 2.1.0 => 2.2.0)
- 1.1 Цели и задачи проекта
- 1.2 Участники проекта
- 1.3 Организации, поддерживающие проект
- 1.4 Используемые модули FDO
- 1.5 План работ
- 1.5.1 Интерфейс "Школа"
- 1.5.2 Интерфейс "школьный журнал"
- 1.5.3 Интерфейс "школьный дневник"
- 1.5.4 Типовой интерфейс редактирования
- 1.5.5 Учебные года
- 1.5.6 Адреса
- 1.5.7 Отделы
- 1.5.8 Учебные программы
- 1.5.9 Предметы
- 1.5.10 Учебно-тематическое планирование
- 1.5.11 Классы
- 1.5.12 Предмето-классы (учебные потоки)
- 1.5.13 Подписка на предмето-классы (учебные потоки)
- 1.5.14 Оценки
- 1.5.15 История изменения статусов.
- 1.5.16 Приказы
- 1.6 Дополнительные материалы
- 1.7 "Замороженные" задачи (не будут реализованы в данном проекте)
Проект 2009-05-29 (версия 2.1.0 => 2.2.0)
Цели и задачи проекта
Целью проекта является создание удобного инструмента для автоматизации школьного документооборота в части полной замены классных журналов и дополнения школьных дневников. Прежде всего в школах, входящих в проект "школа информатизации".
Исходя из целей, продукт должен отражать всю информацию, хранящуюся в классном журнале (тематическое планирование, даты и темы уроков, список учеников класса или подгруппы, оценки, посещаемость, отметки завуча о ведении журнала, возможность хранения сведений об учащихся со строгим ограничением доступа к данной информации), иметь удобный интерфейс, для просмотра и внесения информации учителем непосредственно во время урока, весь необходимый набор инструментов для проверки журналов и формирования предусмотренных законом отчетов, включая бумажный след и возможность оставлять электронный аудиторский след. Так же должен иметься интерфейс для просмотра информации в электронном виде самими учениками, родителями и законными представителями.
Участники проекта
- Алексей Дьяченко - проектировщик, куратор, разработчик.
- Мария Рожайская - разработчик.
- Илья Смирнов - разработчик.
- Евгений Цыганцов - куратор, разработчик.
Организации, поддерживающие проект
ГОУ Центр образования "Технологии обучения"
Используемые модули FDO
Справочники
- ++ Разработка:storages/persons - учителя, ученики, родители
- +++ Разработка:storages/contracts - заявления на поступления в школу
- + Разработка:storages/addreses - адреса
- +++ Разработка:storages/departments - структурные подразделения
- + Разработка:storages/ages - учебные года
- + Разработка:storages/programms - учебные программы (начальная школа, средняя школа, старшая школа)
- + Разработка:storages/programmsbcs - подписка учеников на учебные программы
- ++++ Разработка:storages/programmitems - школьные предметы (математика 7 класс, математика 8 класс...)
- ++++ Разработка:storages/plans - учебно-тематическое планирование, четверти и экзамены (контрольные точки), темы фактически-данных уроков
- ++++ Разработка:storages/agroups - классы (при переходе класса на следующий год обучения, если он не был расформирован, запись в БД остается той же, меняется только номер текущего периода, если требуется статус, название и код (но не желательно)
- +++ Разработка:storages/cstreams - предмето-классы (процесс изучения данным классом данного предмета в данном учебном году)
- ++++ Разработка:storages/cstreamlinks - связь предмето-классов и классов (отдельная таблица, поскольку могут быть разделения по группам и интегральные курсы)
- ++ Разработка:storages/schevents - проведенные уроки
- +++ Разработка:storages/schpresences - присутствие учеников на проведенных уроках
- +++ Разработка:storages/cpgrades - оценки учеников
- ++++ Разработка:storages/cpassed - подписка студентов на предмето-классы, итоговые оценки по предмету в году
- + Разработка:storages/orders - приказы
- ++++ Разработка:storages/statushistory - история изменения статусов объектов
- Разработка:storages/organizations - организации
- Разработка:storages/scheventscheck - замечания по ведению журналов
- Разработка:storages/learninghistory - история обучения ученика по семестрам
План работ
Интерфейс "Школа"
Информация:
- Куратор
- Разработчик
- Условных человеко-часов
- Выдано задание
- Работа сдана
- Проверено
- Работа принята
Описание задания: Данный интерфейс является "входным" для остальных функций и интерфейсов, используемых в школах, организовывая их таким образом, чтобы ими было удобно пользоваться школам.
Пользователи данного плагина делятся на категории "ученик", "преподаватель", "администратор", в качестве числового параметра, для отображения секции, передается $personid. В объекте в init.php должна быть реализованы функции, определяющие доступ данного пользователя: is_student($personid), is_teacher($personid), is_manager($personid), возвращающие true или false. Вид первой страницы отображает секции, соответствующие его категории, возможно отображение сразу нескольких секций.
Интерфейс "школьный журнал"
Информация:
- Куратор Евгений Цыганцов
- Разработчик
- Условных человеко-часов
- Выдано задание
- Работа сдана
- Проверено
- Работа принята
Описание задания:
Первый экран плагина отображает список учебных процессов, в котором текущий пользователь является преподавателем.
Для контроля доступа, в is_access() реализуются следующие дополнительные привелегии, которые проверяются в соответствующих случаях:
- Видеть заданный журнал, в качестве параметра передается id предмето-класса (разрешено имеющим глобальную привелегию "manager" и учителям курса)
- Редактировать заданный урок, как учителю (посещаемость, оценки), в качестве параметра - id события или 0, если событие будет создаваться (разрешено учителям курса)
- Видеть все предмето-классы
- Видеть предмето-классы, приписанные к заданному структурному подразделению, в качестве параметра - структурное подразделение.
- Проверять журнал по данному предмето-класса, в качестве параметра передается id предмето-класса (разрешено имеющим глобальную привелению "manager")
Экран "Список журналов", если в качестве параметра departmentid передан id подразделения, отображаются только предмето-классы данного подразделения, если нет - все. Предмето-классы группируются в виде древовидного списока, сперва по учебным программам, затем по годам обучения (текущим учебным периодам), к которым они относятся, а внутри них - по академическим группам, к которым они приписаны, не приписанные ни к одной академической группе идут в отдельной ветке.
Экран "Журнал"
Внешний вид экрана должен быть приближен к внешнему виду школьного журнала. С целью оптимизации использования экранного пространства, таблицы, соответствующие левой (оценки) и правой (тематическое планирование) страницам бумажного журнала располагаются друг над другом. Интерфейс возможно открыть, только сопоставив его одному из предмето-классов. Инструменты редактирования доступны только если предмето-класс находится в статусе "идет". Вверху страницы отображается название учебной программы и учебного предмета, а так же название класса (или классов), входящих в данный предмето-класс. Далее отображается ФИО учителя, прикрепленного к данному предмето-классу или заменяющему преподавателю. Только данный учитель может добавлять и редактировать темы уроков и выставленные оценки.
Таблица "оценки" в заголовках строк содержит ФИО слушателей, приписанных к данному предмето-классу записями в справочнике Разработка:storages/cpassed, отсортированные по алфавиту по полю peron->sortname. Заголовки колонок - даты событий из справочника Разработка:storages/schevents. Колонки отсортированы по возрастанию даты. С даты ведет внутренняя ссылка на соответствующую строку в таблице "тематическое планирование".
Второй строкой в таблице "оценки" является строка "редактировать", доступная только преподавателю данного курса или заменяющему преподавателю (доступ проверяется через is_access(), логика работы заменяющих преподавателей будет добавлена позже). Над каждой колонкой расположена ссылка "редактировать". При клике на нее страница перезагружается и в выбранной колонке располагается форма для редактирования оценок и отметок о посещении. Отметка об отсутствии выставляется галочкой, оценка выбирается из выпадающего меню. В режиме редактирования на заметном участке экрана отображается предупреждение: "внимание, до нажатия кнопки "сохранить" оценки не сохраняются". Преподавателю доступны три кнопки, действующие сразу на всю форму (все оценки): "сохранить и продолжить", "сохранить", "восстановить". Данные сохраняются в приказ (плагин Разработка:storages/orders), тут же подписываются от имени текущего преподавателя и исполняются, при исполнении приказа устанавливаются оценки в Разработка:storages/cpassed, а посещаемость в Разработка:storages/schpresences. При этом оценки привязываются к выбранной теме в тематическом планировании, а отметки посещаемости - к событию. Кнопка "восстановить" перезагружает форму и отображает оценки, сохраненные для данного события в БД или незаполненные поля.
Таблица "тематическое планирование". Содержит темы уроков, привязанные к учебным событиям. Таблица содержит графы: номер урока, дата урока, тема урока, домашнее задание, заметки о ведении журнала. В таблице отображаются все учебные события (уроки), в порядке возрастания даты, рядом с датой отображается иконка "редактировать". Нажав на иконку "редактировать", преподаватель может изменить дату события (если это разрешено в настройках), сопоставить каждому событию тему из тематического планирования. При этом ему отображается выпадающее меню со всеми темами в статусе "действует", первым пунктом меню является элемент с id=0 - "другая тема", под выпадающем меню отображается форма ввода. Преподаватель может либо выбрать тему из меню, либо ввести свою, тогда для данного урока создается новая тема в справочнике plans, привязанная только к текущему предмето-классу. Кроме того, отображается отдельное поле, где преподаватель может указать домашнее задание, которое сохраняется в отдельном справочнике. В колонке "зачемания по ведению журнала", отображаются заметки из справочника "замечания по ведению журнала", с датой и ссылкой, которая ведет на более подробный текст замечания на отдельной страница. Если заметка не указана, отображается только дата замечания и ссылка. При размещении замечания, оно привязывается к определенному событию, в строке которого и отображается.
Если пользователь имеет право проверять журнал, то отображаются так же ссылки для добавления замечания и отметки о проверки журнала. Само замечания или заметка набираются в отдельном окне.
Дополнительные методы и функции
- +Надо добавить метод get_fullname($id) в хранилище persons. Он возвращает полное имя пользователя в формате ФИО.
- +Надо в хранилище cpassed добавить метод, возвращающий всех студентов, которые приписаны к одному предмето-потоку.
Интерфейс "школьный дневник"
Информация:
- Куратор Евгений Цыганцов
- Разработчик
- Условных человеко-часов
- Выдано задание
- Работа сдана
- Проверено
- Работа принята
Описание задания: в рамках данного задания, разрабатывается плагин, описанный в Разработка:im/recordbook со следующими изменениями и дополнениями:
- На первой странице плагина отображается древовидное меню, на первом уровне которого перечислены фамилии учеников и номера договоров, по которым возможно просмотреть информацию.
- Первыми в списке идут договора, по которым текущий пользователь проходит в качестве ученика, далее - в качестве законного представителя.
- На втором уровне отображаются подписки на учебные программы, в рамках договора (например "общее среднее образование", "факультатив по английскому языку"). Название учебной программы является ссылкой на экран "учебная программа", описанный в плагине и отображающий состав учебной программы на весь срок обучения и итоговые отметки по предметам, пройденным в прошлые учебные годы.
- На третьем уровне отображается меню со ссылками "Дневник учащегося", "Предметы", ссылающиеся на экраны "Дневник учащегося" (ранее - успеваемость, отображает страницу, максимально приближенную к виду школьного дневника за текущую неделю, с возможностью навигации на предыдущую и последующую неделю, а так же перехода к любой неделе в текущем учебном году через выпадающее меню) и "Предметы" (ранее - учебные процессы, отображает список предмето-классов, в которых обучается ученик в текущем учебном году) соответственно.
Названия предметов на экранах "Дневник учащегося" и "Предметы", являются ссылкой на страницу "Предмет", содержащий информацию о предмето-классе и обущении в нем ученика: название предмета, преподаватель, список проведенных уроков (дата, тема, присутствовал/отсутствовал, оценка), список одноклассников. Рядом с ФИО преподавателей и одноклассников есть ссылка для отправки данному пользователю личного сообщения через встроенную почту Moodle.
Одновременно с разработкой данного плагина, добавляются недостающие методы в используемые справочники.
Типовой интерфейс редактирования
Информация:
- Куратор - Алексей Дьяченко
- Разработчик - Евгений Цыганцов, Илья Смирнов, Мария Рожайская
- Условных человеко-часов - 16
- Выдано задание 01.09.09
- Работа сдана 21.09.09
- Проверено
- Работа принята
Описание задания:
Эта задача реализуется совместно с одним из интерфейсов редактирования, который будет образцом для реализации остальных интерфейсов редактирования. Код тщательно документируется, для использования в качестве примера. Интерфейс является плагином 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() запросы к этим привилегиям конвертируются в запросы к стандартным полномочиям manage. На начальном этапе id игнорируются.
В объект в init.php добавляются следующие дополнительные методы, которые используются, в том числе, и при реализации соответствующих веб-страниц:
- +show($obj) - отобразить объект на веб-странице (возвращает html-код
- +show_id($id) - отобразить объект по id
- +showlist($list) - отобразить список объектов из массива
- + form($id=null) - возвращает форму для редактирования, если передан $id - данные из этого объект устанавливается по-умолчанию
- + добавляется метод, возвращающий блок навигации по данному модулю (в данном проекте для навигации используется плагин im/school, а данный блок предназначен для донастройки интерфейса администраторами серверов)
+ В соответствующий справочник, добавляются методы (если они отсутствуют), возвращающие количество записей (отдельный метод) и их список (другой метод), на основе данных, обрабатываемых файлом list.php (использование sql-запросов к таблицам справочников везде, кроме справочников, запрещено, использование универсальных фильтров - нежелательно).
При необходимости, в интерфейсы, реализуемые по данному образцу могут добавляться страницы, методы объекта в init.php и другие изменения.
Работы
(реализуется совместно с одним из интерфейсов редактирования)
- + Подготовка структуры плагина (папки, файлы, подключения, переименования методов в init.php, языковой файл, размещение на страницах вызовов соответсвующих методов) - 2
- Доработка метода управления доступом в соответствии с описанными выше привелегиями. Все экраны и обработчик формы проверяют разрешения и выводят соответствующие сообщения об ошибке - 1
- + Разработка и отладка метода - указателя страниц в widgets - 2
- Методы init.php
- + show($obj),show_id($id) - 2
- + showlist($list) - 2
- + form($id=null)
- + Разработка формы на базе modlibs/widgets/form - 2
- + Загрузка и сохранение данных формы в справочник - 2
- + Страница отображения списка объектов, в зависимости от переданных параметров, форма ввода дополнительных параметров фильтрации - 2
- + Блок навигации по страницам плагина (новый, список).
- Настройка ссылок и переходов между экранами плагина (список, просмотр одного, редактирование, новый), крошки - 1
Учебные года
Информация:
- Куратор - Алексей Дьяченко
- Разработчик
- Условных человеко-часов 8
- Выдано задание
- Работа сдана
- Проверено
- Работа принята
Описание задания:
Интерфейс реализует по образцу, заданному в задаче "Типовой интерфейс редактирования"
Работы
- Копирование структуры плагина, изменение настроек плагина в init.php - 1
- Правка языковых файлов и надписей в интерфейсе - 1
- Правка отображения одного объекта и списка (шаблон, связь со справочником) - 1
- Связь формы с новым справочником (загрузка и сохранение данных) - 1
- Настройка параметров фильтрации данных в списке, редактирование формы поиска - 1
- Разработка метода выбора списка объектов по заданным параметрам фильтрации - 1
- Правка формы редактирования объекта в соответствии со структурой объекта - 1
- Настройка проверки данных формы - 1
Адреса
Информация:
- Куратор - Алексей Дьяченко
- Разработчик
- Условных человеко-часов - 6
- Выдано задание
- Работа сдана
- Проверено
- Работа принята
Описание задания:
Интерфейс реализует по образцу, заданному в задаче "Типовой интерфейс редактирования". Без списка и поиска.
Работы
- Копирование структуры плагина, изменение настроек плагина в init.php - 1
- Правка языковых файлов и надписей в интерфейсе - 1
- Правка отображения одного объекта и списка (шаблон, связь со справочником) - 1
- Связь формы с новым справочником (загрузка и сохранение данных) - 1
- Правка формы редактироования объекта в соответствии с объектом - 1
- Настройка проверки данных формы - 1
Отделы
Информация:
- Куратор - Алексей Дьяченко
- Разработчик - Мария Рожайская
- Условных человеко-часов - 8
- Выдано задание 11.09.09
- Работа сдана
- Проверено
- Работа принята
Описание задания:
Интерфейс реализует по образцу, заданному в задаче "Типовой интерфейс редактирования" В список добавляется дополнительный параметр фильтрации - родительский отдел.
Работы
- Копирование структуры плагина, изменение настроек плагина в init.php - 1
- Правка языковых файлов и надписей в интерфейсе - 1
- Правка отображения одного объекта и списка (шаблон, связь со справочником) - 1
- Связь формы с новым справочником (загрузка и сохранение данных) - 1
- Настройка параметров фильтрации данных в списке, редактирование формы поиска - 1
- Разработка метода выбора списка объектов по заданным параметрам фильтрации - 1
- Правка формы редактирования объекта в соответствии со структурой объекта - 1
- Настройка проверки данных формы - 1
Учебные программы
Информация:
- Куратор - Алексей Дьяченко
- Разработчик - Илья Смирнов
- Условных человеко-часов - 8
- Выдано задание 21.09.09
- Работа сдана
- Проверено
- Работа принята
Описание задания:
Интерфейс реализует по образцу, заданному в задаче "Типовой интерфейс редактирования" Поиск по названию или коду.
Работы
- Копирование структуры плагина, изменение настроек плагина в init.php - 1
- Правка языковых файлов и надписей в интерфейсе - 1
- Правка отображения одного объекта и списка (шаблон, связь со справочником) - 1
- Связь формы с новым справочником (загрузка и сохранение данных) - 1
- Настройка параметров фильтрации данных в списке, редактирование формы поиска - 1
- Разработка метода выбора списка объектов по заданным параметрам фильтрации - 1
- Правка формы редактирования объекта в соответствии со структурой объекта - 1
- Настройка проверки данных формы - 1
Предметы
Информация:
- Куратор
- Разработчик
- Условных человеко-часов
- Выдано задание
- Работа сдана
- Проверено
- Работа принята
Описание задания:
Интерфейс реализует по образцу, заданному в задаче "Типовой интерфейс редактирования". В список добавляется дополнительный параметр фильтрации - id программы. Поиск по названию или коду (в том числе в источнике/стандарте) - одним полем ввода.
Учебно-тематическое планирование
Информация:
- Куратор
- Разработчик - Алексей Дьяченко
- Условных человеко-часов - 8
- Выдано задание
- Работа сдана
- Проверено
- Работа принята
Описание задания:
Интерфейс реализует по образцу, заданному в задаче "Типовой интерфейс редактирования". В список добавляется дополнительный параметр фильтрации - объект привязки (тип связи: ages, programmitems, cstreams и id объекта привязки), отображать только напрямую связанные контрольные точки или все актуальный для учебного процесса контрольные точки. Для выборки используются соответствующие методы справочника с сохраненнием принятых там методов сортировки.
Работы
- Копирование структуры плагина, изменение настроек плагина в init.php - 1
- Правка языковых файлов и надписей в интерфейсе - 1
- Правка отображения одного объекта и списка (шаблон, связь со справочником) - 1
- Связь формы с новым справочником (загрузка и сохранение данных) - 1
- Настройка параметров фильтрации данных в списке, редактирование формы поиска - 1
- Разработка метода выбора списка объектов по заданным параметрам фильтрации - 1
- Правка формы редактирования объекта в соответствии со структурой объекта - 1
- Настройка проверки данных формы - 1
Классы
Информация:
- Куратор - Алексей Дьяченко
- Разработчик
- Условных человеко-часов - 8
- Выдано задание
- Работа сдана
- Проверено
- Работа принята
Описание задания:
Интерфейс реализует по образцу, заданному в задаче "Типовой интерфейс редактирования" Интерфейс реализует по образцу, заданному в задаче "Типовой интерфейс редактирования" В список добавляется дополнительный параметр фильтрации - id учебной программы. Поиск по названию и коду (поле ввода одно, введенное значение проверяется как начало название или код)
Работы
- Копирование структуры плагина, изменение настроек плагина в init.php - 1
- Правка языковых файлов и надписей в интерфейсе - 1
- Правка отображения одного объекта и списка (шаблон, связь со справочником) - 1
- Связь формы с новым справочником (загрузка и сохранение данных) - 1
- Настройка параметров фильтрации данных в списке, редактирование формы поиска - 1
- Разработка метода выбора списка объектов по заданным параметрам фильтрации - 1
- Правка формы редактирования объекта в соответствии со структурой объекта - 1
- Настройка проверки данных формы - 1
Предмето-классы (учебные потоки)
Информация:
- Куратор - Алексей Дьяченко
- Разработчик
- Условных человеко-часов - 12
- Выдано задание
- Работа сдана
- Проверено
- Работа принята
Описание задания:
Интерфейс реализует по образцу, заданному в задаче "Типовой интерфейс редактирования". Дополнительные экраны для редактирования привязки к академическим группам к нему групп (вместе с типом привязки)
Работы
- Копирование структуры плагина, изменение настроек плагина в init.php - 1
- Правка языковых файлов и надписей в интерфейсе - 1
- Правка отображения одного объекта и списка (шаблон, связь со справочником) - 1
- Связь формы с новым справочником (загрузка и сохранение данных) - 1
- Настройка параметров фильтрации данных в списке, редактирование формы поиска - 1
- Разработка метода выбора списка объектов по заданным параметрам фильтрации - 1
- Правка формы редактирования объекта в соответствии со структурой объекта - 1
- Настройка проверки данных формы - 1
- Добавление интерфейса редактирования привязки к классам (академическим группам) - 4
Подписка на предмето-классы (учебные потоки)
Информация:
- Куратор - Алексей Дьяченко
- Разработчик
- Условных человеко-часов - 15
- Выдано задание
- Работа сдана
- Проверено
- Работа принята
Описание задания:
Интерфейс реализует по образцу, заданному в задаче "Типовой интерфейс редактирования" Дополнительный параметр фильтрации - id предмето-класса (учебного протока). Если данный параметр передан, подписка и отписка со стандартными параметрами может выполняться по клику на соответствующие кнопки на странице списка. Дополнительные полномочия viewcpassedbycstream, editcpassedbycstream с параметром $id предмето-класса с регрессом на manage. Просмотр и редактирование одиночных подписок проверяются регрессом к viewcpassedbycstream и editcpassedbycstream для соответствующих предмето-классов.
Работы
- Копирование структуры плагина, изменение настроек плагина в init.php - 1
- Правка языковых файлов и надписей в интерфейсе - 1
- Правка отображения одного объекта и списка (шаблон, связь со справочником) - 1
- Связь формы с новым справочником (загрузка и сохранение данных) - 1
- Настройка параметров фильтрации данных в списке, редактирование формы поиска - 1
- Разработка метода выбора списка объектов по заданным параметрам фильтрации - 1
- Правка формы редактирования объекта в соответствии со структурой объекта - 1
- Настройка проверки данных формы - 1
- Редактирование полномочий - 1
- Интерфейс подписки и отписки в один клик - 2
- Методы в справочнике cpassed для получения параметров по умолчанию подписки на данный учебный поток (должен использоваться при инициализации формы добавления подписки) и подписки и отписки с параметрами по умолчанию. - 2
- Форма поиска слушателя для подписки в один клик - 2
Оценки
Информация:
- Куратор - Алексей Дьяченко
- Разработчик
- Условных человеко-часов - 9
- Выдано задание
- Работа сдана
- Проверено
- Работа принята
Описание задания:
Интерфейс реализует по образцу, заданному в задаче "Типовой интерфейс редактирования" Дополнительный параметр фильтрации - id предмето-класса. Полномочия viewcpgradesbycstream, editcpgradesbycstream с параметром - id предмето-класса. Регрес к manage.
Работы
- Копирование структуры плагина, изменение настроек плагина в init.php - 1
- Правка языковых файлов и надписей в интерфейсе - 1
- Правка отображения одного объекта и списка (шаблон, связь со справочником) - 1
- Связь формы с новым справочником (загрузка и сохранение данных) - 1
- Настройка параметров фильтрации данных в списке, редактирование формы поиска - 1
- Разработка метода выбора списка объектов по заданным параметрам фильтрации - 1
- Правка формы редактирования объекта в соответствии со структурой объекта - 1
- Настройка проверки данных формы - 1
- Добавление полномочий - 1
История изменения статусов.
Информация:
- Куратор - Алексей Дьяченко
- Разработчик
- Условных человеко-часов - 6
- Выдано задание
- Работа сдана
- Проверено
- Работа принята
Описание задания:
Интерфейс реализует по образцу, заданному в задаче "Типовой интерфейс редактирования" Дополнительные параметры фильтрации по справочнику и объекту. Без редактирования.
Работы
- Копирование структуры плагина, изменение настроек плагина в init.php - 1
- Правка языковых файлов и надписей в интерфейсе - 1
- Правка отображения одного объекта и списка (шаблон, связь со справочником) - 1
- Настройка параметров фильтрации данных в списке, редактирование формы поиска - 1
- Разработка метода выбора списка объектов по заданным параметрам фильтрации - 1
- Связь формы с новым справочником (загрузка данных) - 0.5
- Удаление инструментов, связанных с редактированием - 0.5
Приказы
Информация:
- Куратор - Алексей Дьяченко
- Разработчик
- Условных человеко-часов - 7
- Выдано задание
- Работа сдана
- Проверено
- Работа принята
Описание задания:
Интерфейс реализует по образцу, заданному в задаче "Типовой интерфейс редактирования". Дополнительные параметры фильтрации - тип плагина, код плагина, код типа приказа, владелец, редактор. Редактирования нет. Функция исполнения уже подписанного приказа.
Работы
- Копирование структуры плагина, изменение настроек плагина в init.php - 1
- Правка языковых файлов и надписей в интерфейсе - 1
- Правка отображения одного объекта и списка (шаблон, связь со справочником) - 1
- Связь формы с новым справочником - 0.5
- Настройка параметров фильтрации данных в списке, редактирование формы поиска - 1
- Разработка метода выбора списка объектов по заданным параметрам фильтрации - 1
- Удаление инструментов, связанных с редактированием. Добавление интерфейса исполнения приказов - 1.5
Дополнительные материалы
"Замороженные" задачи (не будут реализованы в данном проекте)
Интерфейс "Организации и сотрудники"
Информация:
- Куратор
- Разработчик
- Условных человеко-часов
- Выдано задание
- Работа сдана
- Проверено
- Работа принята
Описание задания:
Интерфейс реализует по образцу, заданному в задаче "Типовой интерфейс редактирования". Так же должна быть предусмотрена страницы для отображения списка сотрудников организации, просмотра параметров (должность, телефон, статус, дата принятия и увольнения) одного сотрудника, добавления сотрудника и изменения его параметров.
Интерфейс "администратор журналов"
Информация:
- Куратор
- Разработчик
- Условных человеко-часов
- Выдано задание
- Работа сдана
- Проверено
- Работа принята
Описание задания: