Changelog 24-09-2014    Опубликовано:


m3-ui (m3-ext) 3.0.1

  • Добавлена загрузка локализации ux-компонент (ux-lang-ru.js)
  • Потомки AdvancedComboBox теперь не меняют размеры при переключении режима readOnly
  • DesktopView исправлена на использование базового context_processors
  • Добавлена возможность отображения корневого узла в серверном отображении TreeGrid

m3-ui (m3-ext) 2.0.7.1

  • Потомки AdvancedComboBox теперь не меняют размеры при переключении режима readOnly
  • Добавлена возможность отображения корневого узла в серверном отображении TreeGrid
  • Теперь в MultiGroupingGrid группировка и тултипы могут существовать независимо друг от друга
  • Часть js-listeners теперь может быть задекларирована как отключаемая при рендеринге, когда компонент - read_only
  • Поправлено включение/отключение обработчика двойного щелчка в ExtObjectGrid.make_read_only
  • Теперь можно перереопределить произвольный процессор для обработки Desktop
  • Метароли теперь опять учитываются при постройке Desktop (метароли теперь подтягиваются в DesktopLoader, если user присутствует в request)
  • Меню, содежащие только разделители, теперь тоже схлопываются
  • Desktop теперь допускает полную кастомизацию
  • Исправлена ошибка в методе find_by_name класса BaseExtContainer
  • Переделан override Ext.form.Action.Submit, так как вместо учитывания lazyRender он выдавал assert.
  • У поля выбора из справочника может отсутствовать окно - в этом случае маска теперь не будет показываться.
  • Исправление отображения столбцов грида в Webkit
  • Если в DesktopShortcut указывают pack не Action, а ActionPack, проверка прав осуществляться не будет (раньше падало).
  • Исправлены мелкие ошибки в тултипах гридов
  • Добавлена загрузка локализации ux-компонент (ux-lang-ru.js)

m3-core 2.0.12, 3.0.1

  • Вызов BaseObjectModel.safe_delete теперь возвращает True в случае успеха, теперь DeclarativeActionContext поддерживает режимы (документация по фиче будет позже)
  • Реализован рекурсивный поисковик статики (RecursiveAppDirectoriesFinder)
  • Проверка прав древовидном справочнике полностью переведена на спользование has_perm

objectpack 2.0.22, 3.0.1

  • DoesNotExists теперь корректно обрабатывается при сериализации объектов для отображения в гридах.
  • Observer теперь конфигурируется при первом запросе, а не при старте проекта (т.с. значительно сокращается время запуска dev-server)
  • При автогенерации контролов для численных полей теперь учитывается специфика этих полей (целые/добные, неотрицательные и проч.)
  • Icon для меню, рабочего стола и тулбара берется из пака, а также индекс сортировки элементов интерфейса можно задать в паке
  • Колоночные фильтры теперь нормально работают и для вложенных полей (см демо)
  • parent_id в TreeObjectPack теперь проверяется на None при биндинге
  • В контексте при неуказанном parent_id для экшнов TreeObjectPack будет parent_id=None
  • Метакласс для ModelProxy теперь представлен классом, вместо функции и будет нормально наследоваться

M3 3.0    Опубликовано:


M3 3.0 - это новая версия m3, заточенная под клиентский рендеринг, разделение данных и графического интерфейса. Проведен значительный рефакторинг UI, удалены неиспользуемые компоненты, упрощена работа с существующими контролами. Значительно сократился объем данных, занимаемых в памяти, а так же время рендеринга компонентов.

Более того, переведен проект БАРС Родительская Плата на новую версию платформы и успешно функционирует в трех регионах.

Особенности:

  • Браузер взаимодействует с сервером исключительно через json;
  • Отказ от django templates (template-globals) в пользу static js-файлов;
  • Если в m3 2 для получения формы с данными используется один ajax-запрос на сервер, то в версии 3.0 будет последовательно генерироваться три запроса:

    • Запрос за данными;
    • Запрос за ui (json-конфигурация);
    • Запрос за статической js-частью (js-логика).
  • UI формируется по прежнему на сервере через python;

  • Полная поддержка классов Action, ActionPack;
  • "Справочниковые" экшены поддерживаются только ObjectPack-ом. Поэтому классы наследуемые от паков или экшенов:

    • m3.actions.dics.*
    • m3.actions.packs.*

необходимо перевести на objectpack

Так же доступна полная инструкция по переходу на версию 3.0.

Changelog 08.04.2014    Опубликовано:


m3-core==2.0.11

  • BREAKING CHANGE: Теперь нельзя регистрировать классы/строки в контроллеры - только экземпляры! Уже починенные контрибы: m3-users>=2.0.1, m3_kladr>=2.0.2. Подробности здесь.
  • Метод проверки прав has_sub_permission заменен на has_perm m3.actions.dicts.BaseTreeDictionaryActions и m3.actions.dict.BaseTreeDictionaryModelActions
  • Выпилен list_view в m3.actions.dicts.BaseTreeDictionaryActions и m3.actions.dict.BaseTreeDictionaryModelActions
  • Теперь доступен override для одних паков другими. Подробности здесь.
  • ActionController.append_pack теперь возвращает фактически добавленный пак
  • Поправлен поиск экшнов/паков по правам. .
  • В Django 1.6 удалили логгер по-умолчанию. Оставляется обратная совместимость и поддержка джанги 1.6

m3-ext==2.0.6

  • BREAKING CHANGE: Поиск паков/экшнов теперь должен осуществляться через ControllerCache! Подробности здесь.
  • BREAKING CHANGE: DesktopModel изменена в пользу view предоставяемой платформой. Требуется адаптация проектных view. Подробности здесь.
  • Фильтрация элементов desktop исходя из прав пользователя.
  • Поправлены ошибки в make_read_only
  • Поправлен ExtObjectGrid.js касательно кроссбраузерной совместимости
  • Поправлена ошибка в object grid editor
  • Использование absolute_url заменено на get_absolute_url
  • ExtGridLockingHeaderGroupPlugin теперь может конфигурировать грид
  • Реализован компонент ObjectSelectionPanel с возможностью запоминания выбора значений в дополнительном гриде

objectpack==2.0.21

  • В TreeObjectPack поправлено сохранение корневых элементов
  • Поправлено добавление на desktop нескольких submenu за один раз (кортежем)
  • observer теперь обрабатывает overrided паки (m3-core>=2.0.11)
  • Добавлены точки расширений для ObjectEditWindowAction

Changelog 10-02    Опубликовано:


m3-core 2.0.10

  • Оптимизирован m3.actions.utils.create_search_filter
  • Изменения касательно мониторинга:
  • Отрефакторен мониторинг контроллеров
  • Теперь URL контроллера получается только один раз.
  • Исправлен формат отсылаемых контекстов.
  • Функция отправки контекстов на удаленный сервер.
  • Расширен набор отправляемой с метриками информации.
  • README для подключения метрик.
  • Теперь неудавшееся удаление потомка BaseObjectModel сопровождается исключением RelatedError
  • Поправлено поведение safe_delete для mptt-моделей

m3-ext 2.0.5

  • Добавлены два плагина: MonthPickerPlugin и TreeHeaderFilters. Так же добавилась js-а, которая переопределяет NumberField для работы с денежными форматами
  • Изменение размера поля для выбора из справочника при вызове setReadOnly теперь не должно происходить
  • Теперь PIL не требуется, пока не нужен (пока не используются ExtImageUploadField)
  • Теперь ExtDictSelectField.deafult_text экранируется
  • Добавлен плагин для одновременнрй группировки и заморозки столбцов
  • Исправлен баг погинации ExtObjectGrid
  • Добавлен показ сообщения о множественном выделении в ExtObjectGrig при попытке редактирования нескольких записей
  • Теперь есть маска при выборе элемента в поле выбора справочника
  • Поправлено вычисление размера последней колонки в гриде
  • Исправлена ошибка рендеринга MultiGroupingGrid при изначально заданных группировках
  • Добавлен css-fix для нормального отображения группирующих колонок в Google Chrome

report_generator 2.1.3.0 (2.0.4.0 - для старого m3)

  • Удалены зависимости от различных паков-справочников (например, ObjectPack). Теперь для того, чтобы в выборе типа справочника для параметров формы появился какой-либо справочник, в его паке должен быть метод get_select_url
  • Исправлен ошибка неполной отдачи файла, если сервер запущен в OS MS Windows
  • Исправлена ошибка при попытке показать текст запроса без полей для SELECT - клиенту выводится соответствующее сообщение

simple_report 1.3.6.0

  • Поддержка RTF-формата. Реализован минимум возможностей.
  • XLS. Во избежании порчи выходного файла (границ ячеек) при замене тегов None замещается пустой строкой
  • XLS. Полный перенос стилей из шаблона. Работает для неизменяемых ячеек (Теперь возможно использовать в шаблоне несколько цветов в 1 ячейке)
  • DOCX Исправление смещения ссылок и других элементов после подстановки

Changelog 12.13    Опубликовано:


m3-ext 2.0.4.0

  • Поправлено поведение метода make_read_only у визуальных компонентов

m3-core 2.0.9.2

  • В инфо-регистре, при удалении нескольких записей происходило пересохранение удаленных записей. Исправлено.
  • Исправление изменений атриубута класса filter_fields внутри метода экземпляра BaseDictionaryModelActions.
  • Отправка в statsd статистики запросов по контроллерам интегрирована в платформу (включается опционально).
  • Интегрирован сбор метрик по пользователям.
  • Оптимизирована генерация запросов поиска в реестрах/справочниках посредством m3.actions.utils.create_search_filter

registry 2.0.1

  • Перенесены изменеия из версии m3-1.5

report-generator 2.0.2

  1. Использование как обычных названий полей, так и verbose
  2. Запросы и модели можно использовать во внешнем запросе сколько угодно раз. На клиенте автоматически генерируется alias.
  3. Возможность добавлять "пустые" секции (без параметров), они будут внесены в отчет без изменений
  4. В условиях запроса (where) появился новый тип параметра - константа
  5. Условия запроса теперь можно комбинировать (в sql расставляются скобки)
  6. Исправлено отображение полей типа DateTimeField в отчете - раньше бралась только дата
  7. Исправлена подстановка значений (раньше просто скрывались некоторые колонки в отчете)
  8. Удаление LEFT OUTER JOIN в запросе при некоторых условиях. Позволяет реализовывать сложные вьюхи, из которых потом можно выбирать лишь несколько полей Примеры из postgresql: http://wiki.postgresql.org/wiki/What%27s_new_in_PostgreSQL_9.0 - Join Removal http://rhaas.blogspot.ru/2010/06/why-join-removal-is-cool.html Но в постгресе почему-то не всегда работает, поэтому реализовали здесь.
  9. Оператор IN в условиях запроса. принимает JSON вида [1, 2, 3] или ["1", "2"]
  10. Для полей-ссылок на другие модели приписывается префикс "ID - "
  11. В деревьях полей (все поля, поля группировки, поля условий) в 1 колонке выводится подсказка о типе поля

simple-report 1.3.4

  • DOCX. Исправление ошибки поиска и замены тега при сохранении шаблона в Microsoft Word и 4 версии LibreOffice. Теперь лучше использовать замену тегов с символами '#' вокруг параметра

Переход на концепцию m3 2.0    Опубликовано:


По итогам svg-шек, grep-ов и прочей магии получили следующую картину по рефакторингу пакета m3:

  • core
    • registry - Пока просто выделяется в отдельный контриб. Следующие версии предполагают безумный рефакторинг
    • history - Нигде не используется и удаляется
    • middleware.py - Выкидывается все, кроме AutoLogout и помещается в core/init.py
    • json - Encoder пока оставляем, переносится в core/init.py
    • exceptions - Удаляется, AppLogicException перемещается в init.py
    • plugins - Перемещается в m3_legacy
    • excel_reporting - Перемещен в отдельный контриб
    • notifications - Нигде не используется и удаляется
    • replication - Нигде не используется и удаляется
  • contrib
    • setup_environ - Удаляется, нужен был для встраивания prepare_env.py
    • designer - Там лежит management-команда для запуска дизайнера, переезжает в сам контриб дизайнера data
    • mie - Удаляется. Используется совсем немного в Школах.
    • caching - Переносится в core
    • proxy - Нигде не используется и удаляется db
    • mptt_util - Внутри находится механизм перестройки mptt-дерева, пока непонятно куда вынести. Использовать последнюю версию mptt
    • alchemy_wrapper - Используется в report-generator'e и ЭПК. Из ЭПК выпиливается и переносится в report-generator
    • ddl - Злостно удаляется
    • __init__ - Частично внутренности этого модуля переедут в m3_legacy после более глубокого исследования
    • api - Перемещено в m3_legacy helpers
    • logger - Будет перемещен в m3_legacy и по-возможности будет использоваться внутри себя django-подход
    • loader - Перемещается в m3_legacy
    • urls - Перемещается в core/actions.py
    • ui - Будет удален. Так же будет выпелен из ui/actions/results.py, из m3_users и Родплаты
    • validation - Перемещается в m3_legacy
    • queries - Будет удален. Проекты, которые используют данный модуль - m3_contragents, Род. Плата, Закупки
    • Содержимое init.py - Перемещается в m3_legacy
    • icons - в пакет с m3-ext
    • js - Будет удален
    • datastructures - Удаляется
    • datagrouping, datagrouping_alchemy - Переносится в отдельный пакет. И рефакториться в следующих версиях модуля.
    • config - Будет удален
    • checksum - Будет перенесен в отдельный пакет
    • users - BaseUserProfile выкидывается, декоратор authenticated_user_required перенесется в core
    • autonum - Нигде не используется, будет удален
    • sqlite - Будет удален
    • mocks - Будет удален
  • misc - Удаляется
  • templatetags - Единственная функция переедет в core
  • ui/actions/packs и ui/actions/dicts - Переносятся в отдельный пакет, например, simple_dict
  • m3_workflow - Удаляется
  • ui вместе со статикой - переносится в отдельный пакет m3-ext
  • ui/actions/ переедет в core
  • ui/actions/gears, ui/actions/app_ui - переедет в m3-ext

m3_legacy - Пакет, который будет содержать устаревший код, в нем будут исправляться только ошибки, которых и так минимальное количество. Этот контриб далее поддерживаться не будет.

Все, что останется войдет в сборку m3 2.0. Эта версия будет содержать нужный код, который просто изменил текущее местоположение, рефакторинг будет производиться в следующих версиях.

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

Release m3 1.0    Опубликовано:


В то далекое время весь код находился внутри одной библиотеки m3.

  • В базовое окно для линейного, иерархического и сомещенного справочника m3.ui.ext.windows.complex.ExtDictionaryWindow добавлен режим множественного выбора.
  • В класс m3.ui.ext.panels.grids.ExtMultiGroupinGrid добавлен атрибут header_style -- стиль заголовка колонки. А также метод render_base_config.
  • В m3.ui.ext.misc.store.ExtDataStore добавлена возможность прописывать в шаблоне даты.
  • В методе render_base_config класса m3.ui.ext.fields.simple.ExtStringField реализовано экранирование значений с обратным слэшем.
  • В модуль m3.ui.ext.containers.grids добавлены два класса ExtLiveGridCheckBoxSelModel и ExtLiveGridRowSelModel
  • В класс m3.ui.ext.containers.forms.ExtForm добавлен метод try_to_list.
  • В класс m3.ui.ext.containers.forms.ExtPanel добавлен атрибут title_collapse. Атрибут указывает нужно ли сворачивать панель при щелчке на заголовке.
  • В класс m3.ui.actions.dicts.tree.BaseTreeDictionaryActions добавлен метод get_default_action, который возвращает экшн по-умолчанию.
  • В класс m3.ui.actions.dicts.tree.BaseTreeDictionaryModelActions добавлена настройка list_drag_and_drop разрешающая перетаскивание элементов из грида в другие группы дерева.
  • В класс m3.ui.actions.dicts.simple.BaseDictionaryActions добавлен метод get_default_action, который возвращает экшн по-умолчанию.
  • В класс m3.ui.actions.results.ActionRedirectResult добавлен атрибут context и метод prepare_request.
  • В метод convert_value класса m3.ui.actions.context.ActionContext добавлена проверка версии Python, т.к. в версиях ниже 2.7 в Decimal не поддерживается создание из float.
  • В классе Action добавлена проверка прав в родительском элементе из экшена
  • В класс m3.ui.app_ui.DesktopLauncher добавлен метод _set_default_handler
  • Добавлен модуль m3_tags. Там описан темплейт таг, который возвращает URL экшена.
  • В метод deleteOkHandler классa Ext.m3.ObjectGrid добавлена проверка на ошибки уровня приложения.
  • В класс Ext.m3.MultiSelectField добавлен метод fireChangeEventOnDemand, который имитирует поведение Ext.form.Field.onBlur().
  • В класс Ext.ux.form.FileUploadField добавлены события change (отрабатывает, когда изменилось значение) и beforechange (срабатывает до изменения поля)
  • В класс Ext.m3.EditWindow добавлен метод clearModificationFlag, который отбрасывает признаки модифицированности формы.
  • Для Ext.m3.AdvancedComboBox корректирована функция getWidth, которая вычисляет ширину поля.
  • В класс Ext.m3.AddrField добавлено событие change_corps, которое срабатывает при изменение корпуса.
  • В класс m3.helpers.datagrouping.RecordProxy добавлен атрибут grouped -- список атрибуто, по которым происходит группироровка
  • В класс m3.helpers.datagrouping.GroupingRecordProvider добавлен атрибут detail_attrs_map -- словарь, определяющий дополнительные поля, которые добавляются в узловые записи, создаваемые самим провайдером.
  • Добавлен контриб setupenv
  • Добавлен контриб prepare_env
  • Множественные исправления, которые можно увидеть выполнив, например, визуальное сравнение веток через TortoiseHG.
Contents © 2014 БАРС Груп - Powered by Nikola