Разработка:Идеи — различия между версиями
Ilya (обсуждение | вклад) (→Разное) |
Ilya (обсуждение | вклад) м (→Дополнительная функция извлечения данных для класса storage: Идея реализована, отметил этот факт в документации) |
||
Строка 72: | Строка 72: | ||
Старые формы не нужно будет переделывать, они продолжат работать как и раньше. | Старые формы не нужно будет переделывать, они продолжат работать как и раньше. | ||
* ''Какие преимущества даст осуществление этой идеи?'' Упростится и стандартизируется процесс разработки форм, сократится количество кода. | * ''Какие преимущества даст осуществление этой идеи?'' Упростится и стандартизируется процесс разработки форм, сократится количество кода. | ||
− | ==== Дополнительная функция извлечения данных для класса storage ==== | + | ==== <strike> Дополнительная функция извлечения данных для класса storage </strike> ==== |
− | Описание: При получении данных из хранилища часто возникает необходимость получить несколько записей по двум или трем полям. Сейчас в storage есть три основные функции: | + | <strike> Описание: При получении данных из хранилища часто возникает необходимость получить несколько записей по двум или трем полям. Сейчас в storage есть три основные функции: |
# get_list() - получить массив записей по одному полю | # get_list() - получить массив записей по одному полю | ||
# get_filter() - получить только одну запись по трем полям | # get_filter() - получить только одну запись по трем полям | ||
# get_list_select() - получить массив записей, используя собственный sql-запрос | # get_list_select() - получить массив записей, используя собственный sql-запрос | ||
К этим функциям необходимо добавить еще одну, которая позволяла бы получить массив записей по нескольким полям. | К этим функциям необходимо добавить еще одну, которая позволяла бы получить массив записей по нескольким полям. | ||
− | * ''Какие преимущества даст осуществление этой идеи?'' Легче будет извлекать данные из таблиц, не нужно будет писать собственный sql-запрос каждый раз, когда нужно получить массив записей по нескольким полям. | + | * ''Какие преимущества даст осуществление этой идеи?'' Легче будет извлекать данные из таблиц, не нужно будет писать собственный sql-запрос каждый раз, когда нужно получить массив записей по нескольким полям.</strike> |
+ | |||
==== Сохранение времени в БД ==== | ==== Сохранение времени в БД ==== | ||
По стандарту у нас в БД дата хранится всегда на полдень. Сейчас функция, которая переводит текущую метку времени в метку времени полудня лежит в /dof/im/journal/lib.php - dof_im_journal_get_date($time). Может переложить ее куда-то поближе к ядру, чтобы удобно было из любого плагина дергать. | По стандарту у нас в БД дата хранится всегда на полдень. Сейчас функция, которая переводит текущую метку времени в метку времени полудня лежит в /dof/im/journal/lib.php - dof_im_journal_get_date($time). Может переложить ее куда-то поближе к ядру, чтобы удобно было из любого плагина дергать. |
Версия 14:57, 22 декабря 2009
В этом разделе размещаются идеи и пожелания к проекту, которые пока не отражены в планах работ. При составлении плана работ и разработке новых плагинов идеи и пожелания из этого раздела учитываются Идеи могут быть разбиты в группы.
Содержание
- 1 Список
- 1.1 Школьные журналы
- 1.1.1 Изменения в статусах присутствия/отсутствия на уроке
- 1.1.2 Подсказка по темам урока в школьном журнале
- 1.1.3 Редактирование всех оценок одного ученика по одному предмету
- 1.1.4 Редактирование оценок совмещенное с просмотром журнала, редактирование старых оценок по клику из того же интерфейса.
- 1.1.5 Правильная фиксация замен
- 1.1.6 Механизм "билетов на замены" с кодами доступа для проведения замен без санкции завуча в системе
- 1.1.7 Замечания по ведению классного журнала. Проверка журнала по результату четверти.
- 1.1.8 Отметка посещаемости без расписания
- 1.2 Школьные табели (i-Школа)
- 1.3 Профессиональная переподготовка (ЮРГУЭС)
- 1.4 Разное
- 1.4.1 Добавление стандартного поля dof в класс dof_modlib_widgets_form
- 1.4.2
Дополнительная функция извлечения данных для класса storage - 1.4.3 Сохранение времени в БД
- 1.4.4 Поэтапное заполнение нового договора
- 1.4.5 Добавление дополнительных типов проверок и элементов в QuickForm
- 1.4.6 Построение графиков и диаграмм в OpenOffice Calc при помощи плагина templater
- 1.4.7 Дополнительное описание для плагинов
- 1.4.8 Система полномочий на основе доверенностей с фильтрами
- 1.4.9 Специальный режим для "тяжелых" процессов:
- 1.1 Школьные журналы
Список
Школьные журналы
Изменения в статусах присутствия/отсутствия на уроке
Краткое описание: Изменить статусы присутствия в таблице schpresences: поле present должно содержать не числовые значения 1 или 0, а enum-значения "was" и "away". Ноль сложнее отличать от отсутствия записи из-за неявного приведения типов в PHP.
- Какие преимущества даст осуществление этой идеи? Станет возможным легко отличать 2 разных случая: отсутствие записи о посещении ученика в таблице, и отсутствии ученика на уроке.
Подсказка по темам урока в школьном журнале
Краткое описание: В левой части журнала (там, где выставляются оценки) при наведении мыши на число сделать всплывающую подсказку, соответствующую теме урока.
- Какие преимущества даст осуществление этой идеи? Навигация по журналу станет более удобной.
Редактирование всех оценок одного ученика по одному предмету
Краткое описание: Предусмотреть возможность редактировать оценки не только всех учеников по одной дате, но и все оценки одного ученика по всем датам.
- Какие преимущества даст осуществление этой идеи? Можно будет редактировать все оценки одного ученика без перезагрузки формы
- Каких ресурсов это потребует? небольших: требуется незначительно изменить функцию отображения журнала. Не более 1 часа на кодирование и тестирование.
- С какими трудностями мы можем столкнуться?
Редактирование оценок совмещенное с просмотром журнала, редактирование старых оценок по клику из того же интерфейса.
Краткое описание:
- Какие преимущества даст осуществление этой идеи?
- Каких ресурсов это потребует?
- С какими трудностями мы можем столкнуться?
Правильная фиксация замен
Краткое описание:
- Какие преимущества даст осуществление этой идеи?
- Каких ресурсов это потребует?
- С какими трудностями мы можем столкнуться?
Механизм "билетов на замены" с кодами доступа для проведения замен без санкции завуча в системе
Краткое описание:
- Какие преимущества даст осуществление этой идеи?
- Каких ресурсов это потребует?
- С какими трудностями мы можем столкнуться?
Замечания по ведению классного журнала. Проверка журнала по результату четверти.
Краткое описание:
- Какие преимущества даст осуществление этой идеи?
- Каких ресурсов это потребует?
- С какими трудностями мы можем столкнуться?
Отметка посещаемости без расписания
Краткое описание:
- Какие преимущества даст осуществление этой идеи?
- Каких ресурсов это потребует?
- С какими трудностями мы можем столкнуться?
Школьные табели (i-Школа)
- Возможность экспорта данных для тарификации (по постоянным учителям нагрузка в третью неделю месяца, по совместителям - кол-во отработанных часов)
- Формирование приказов на изменение нагрузки у постоянных учителей если изменилось по сравнению с предыдущим месяцем.
Профессиональная переподготовка (ЮРГУЭС)
Номера дипломов/свидетельств/сертификатов
Справочник programmsbcs, новые поля:
- Номер сертификата certificatenum - 255 символов
- Код формы/бланка сертификата certificateform - 30 символов (должен совпадать с кодом шаблона в плагине storage/programmsbcs)
- Дата выдачи сертификата certificatedate
- Номер приказа, в соответствии с которым выдан сертификат certificateorderid
Дополнительные поля в контракт
Форма договора (шаблон) Юр. лицо (если не указано - значит договор с физ. лицом, для бесплатников указывается управление образованием и т.п.) Куратор данного ученика от работодателя (id персоны или не указан)
Справочник организаций, место работы, должность
(для коллективных договоров) Справочник организаций: Полное наименование, краткое наименование, ИНН, КПП, ОГРН, банковские реквизиты, юридический адрес (по таблице адресов), физический адрес, почтовый адрес, телефон, факс, дополнительные реквизиты, ФИО руководителя, должность руководителя, основание действия руководителя. Привязка персоны к месту работы: id персоны, id организации, основное место работы/совместитель/не известно/уволен, должность, дата приема/не известно, дата увольнения/неизвестно, рабочий телефон, добавочный номер, комментарий.
Тип итогового контроля в курсе
В справочнике programmitems добавить поле controltypeid - тип итогового контроля по данному курсу.
Разное
Добавление стандартного поля dof в класс dof_modlib_widgets_form
Описание: В используемый вариант htmlQuickForm было бы полезно добавить поле dof которое сейчас добавляется вручную (через конструктор, в массиве _customdata). Это можно автоматизировать, если на шаге наследования формы от moodleQuickForm добавить в форму поле dof, куда записать объект dof_control.
Старые формы не нужно будет переделывать, они продолжат работать как и раньше.
- Какие преимущества даст осуществление этой идеи? Упростится и стандартизируется процесс разработки форм, сократится количество кода.
Дополнительная функция извлечения данных для класса storage
Описание: При получении данных из хранилища часто возникает необходимость получить несколько записей по двум или трем полям. Сейчас в storage есть три основные функции:
- get_list() - получить массив записей по одному полю
- get_filter() - получить только одну запись по трем полям
- get_list_select() - получить массив записей, используя собственный sql-запрос
К этим функциям необходимо добавить еще одну, которая позволяла бы получить массив записей по нескольким полям.
- Какие преимущества даст осуществление этой идеи? Легче будет извлекать данные из таблиц, не нужно будет писать собственный sql-запрос каждый раз, когда нужно получить массив записей по нескольким полям.
Сохранение времени в БД
По стандарту у нас в БД дата хранится всегда на полдень. Сейчас функция, которая переводит текущую метку времени в метку времени полудня лежит в /dof/im/journal/lib.php - dof_im_journal_get_date($time). Может переложить ее куда-то поближе к ядру, чтобы удобно было из любого плагина дергать.
Поэтапное заполнение нового договора
Надо страницу нового договора (im/sel/contracts/new.php) разделить на несколько. На одной странице заполнять информацию об ученике. На другой - о представителе. Так как набор заполняемых полей для ученика зависит от наличия представителя.
Добавление дополнительных типов проверок и элементов в QuickForm
Описание: Во время написания статьи про QuickForm я наткнулся на возможность назначать собственные виды проверок данных на стороне клиента, и собственные типы html-элементов. Возможно это может пригодиться нам для работы над интерфейсными плагинами - часто повторяющиеся элементы можно создать один раз, чтобы потом много раз не писать их заново. Код всего этого можно поместить в dof_modlib_widgets form.
Также можно добавить новые интерактивные элементы в форму. Также имеет значение то, что по умолчанию в quickForm отсутствует проверка значений с русскими буквами на стороне клиента - ее следовало бы добавить.
- Какие преимущества даст осуществление этой идеи? появится возможность проверять русскоязычные значения на стороне клиента, ускорится разработка интерфейсов.
- Каких ресурсов это потребует? Пока неизвестно.
- С какими трудностями мы можем столкнуться? Надо будет по примерам из Moodle разобраться в том, как происходит регистрация элементов и проверок в форме.
Построение графиков и диаграмм в OpenOffice Calc при помощи плагина templater
Краткое описание: Используя разметку шаблонизатора Sigma так разметить файл электронной таблицы формата ods, чтобы созданный в нем график каждый раз строился на основе экспортируемых данных.
- Какие преимущества даст осуществление этой идеи: Можно будет встраивать различные графики и диаграммы в отчеты, что даст дополнительные преимущества плагину templater.
- Каких ресурсов это потребует: Пока неизвестно.
- С какими трудностями мы можем столкнуться: Надо будет разобраться, как устроено XML-отображение графиков в openOffice.
Дополнительное описание для плагинов
Краткое описание: В меню установки плагинов, при просмотре списка должно выводиться не только название плагина, но и его небольшое описание, которое говорит о том, для чего нужен этот плагин, и какие функции он выполняет.
Там же выводить, какие плагины нужны для его установки (если есть зависимости), и отмечать, установлены они уже или нет.
После краткого описания плагина давать ссылку на наш wiki, где этот плагин описан полностью.
Описание изначально скрыто, и показывается по щелчку на ссылке "показать".
Сортировать плагины следующим образом: сначала установленные, затем не установленные.
Также в будущем необходимо будет разделить плагины на группы: одни плагины необходимы для базовой функциональности системы, другие нужны для расширения ее возможностей. Будет "базовая комплектация", работающая "из коробки" и дополнительные плагины.
- Какие преимущества даст осуществление этой идеи? Неподготовленным пользователям и администраторам не знакомым с нашей системой будет проще в ней ориентироваться. Проще будет определять, какие плагины нужны, а какие нет.
- Каких ресурсов это потребует? Приблизительно часов 5-6, для того чтобы добавить новые методы в базовый класс, и протестировать их работу.
- С какими трудностями мы можем столкнуться? На создание и описание каждого нового плагина будет уходить несколько больше времени.
Система полномочий на основе доверенностей с фильтрами
Краткое описание:
- Какие преимущества даст осуществление этой идеи?
- Каких ресурсов это потребует?
- С какими трудностями мы можем столкнуться?
Специальный режим для "тяжелых" процессов:
Краткое описание:Использовать специальный код для выполнения тяжелых и трудоемких процессов.
@set_time_limit(0); @raise_memory_limit("512M"); if (function_exists('apache_child_terminate')) { // Перезапустить процесс после исполнения // на случай утечек памяти @apache_child_terminate(); } if (function_exists('ignore_user_abort')) { //не прерывать выполнение скрипта при отсоединении клиента ignore_user_abort(); }
- Какие приемущества это дает?
- Каких ресурсов это потребует?
- С какими трудностями мы можем столкнутся?