Разработка:Идеи

Материал из DOF
Версия от 09:42, 25 июня 2009; Johnleft (обсуждение | вклад) (Разное: сохранение метки времени полудня в БД)
Перейти к: навигация, поиск

В этом разделе размещаются идеи и пожелания к проекту, которые пока не отражены в планах работ. При составлении плана работ и разработке новых плагинов идеи и пожелания из этого раздела учитываются Идеи могут быть разбиты в группы.

Содержание

Список

Школьные журналы

Редактирование всех оценок одного ученика по одному предмету

Краткое описание: Предусмотреть возможность редактировать оценки не только всех учеников по одной дате, но и все оценки одного ученика по всем датам.

  • Какие преимущества даст осуществление этой идеи? Можно будет редактировать все оценки одного ученика без перезагрузки формы
  • Каких ресурсов это потребует? небольших: требуется незначительно изменить функцию отображения журнала. Не более 1 часа на кодирование и тестирование.
  • С какими трудностями мы можем столкнуться?

Редактирование оценок совмещенное с просмотром журнала, редактирование старых оценок по клику из того же интерфейса.

Краткое описание:

  • Какие преимущества даст осуществление этой идеи?
  • Каких ресурсов это потребует?
  • С какими трудностями мы можем столкнуться?

Правильная фиксация замен

Краткое описание:

  • Какие преимущества даст осуществление этой идеи?
  • Каких ресурсов это потребует?
  • С какими трудностями мы можем столкнуться?

Механизм "билетов на замены" с кодами доступа для проведения замен без санкции завуча в системе

Краткое описание:

  • Какие преимущества даст осуществление этой идеи?
  • Каких ресурсов это потребует?
  • С какими трудностями мы можем столкнуться?

Замечания по ведению классного журнала. Проверка журнала по результату четверти.

Краткое описание:

  • Какие преимущества даст осуществление этой идеи?
  • Каких ресурсов это потребует?
  • С какими трудностями мы можем столкнуться?

Отметка посещаемости без расписания

Краткое описание:

  • Какие преимущества даст осуществление этой идеи?
  • Каких ресурсов это потребует?
  • С какими трудностями мы можем столкнуться?

Школьные табели (i-Школа)

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

Профессиональная переподготовка (ЮРГУЭС)

Номера дипломов/свидетельств/сертификатов

Справочник programmsbcs, новые поля:

  • Номер сертификата certificatenum - 255 символов
  • Код формы/бланка сертификата certificateform - 30 символов (должен совпадать с кодом шаблона в плагине storage/programmsbcs)
  • Дата выдачи сертификата certificatedate
  • Номер приказа, в соответствии с которым выдан сертификат certificateorderid

Дополнительные поля в контракт

Форма договора (шаблон) Юр. лицо (если не указано - значит договор с физ. лицом, для бесплатников указывается управление образованием и т.п.) Куратор данного ученика от работодателя (id персоны или не указан)

Справочник организаций, место работы, должность

(для коллективных договоров) Справочник организаций: Полное наименование, краткое наименование, ИНН, КПП, ОГРН, банковские реквизиты, юридический адрес (по таблице адресов), физический адрес, почтовый адрес, телефон, факс, дополнительные реквизиты, ФИО руководителя, должность руководителя, основание действия руководителя. Привязка персоны к месту работы: id персоны, id организации, основное место работы/совместитель/не известно/уволен, должность, дата приема/не известно, дата увольнения/неизвестно, рабочий телефон, добавочный номер, комментарий.


Тип итогового контроля в курсе

В справочнике programmitems добавить поле controltypeid - тип итогового контроля по данному курсу.

Разное

Сохранение времени в БД

По стандарту у нас в БД дата хранится всегда на полдень. Сейчас функция, которая переводит текущую метку времени в метку времени полудня лежит в /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();
   }

  • Какие приемущества это дает?
  • Каких ресурсов это потребует?
  • С какими трудностями мы можем столкнутся?