ui Module

created:23.07.12
author:pirogov
class objectpack.ui.BaseEditWindow(*args, **kwargs)
Базовые классы: m3_ext.ui.windows.edit_window.ExtEditWindow, objectpack.ui.BaseWindow

Базовое окно редактирования (с формой и кнопкой сабмита)

form

Форма окна

set_params(params)
class objectpack.ui.BaseListWindow(*args, **kwargs)
Базовые классы: objectpack.ui.BaseWindow

Базовое окно списка объектов

add_grid_column_filter(column_name, filter_control=None, filter_name=None, tooltip=None)

Метод добавляет колоночный фильтр в грид

Параметры:
  • column_name (str) – Имя колонки
  • filter_control – Ext-компонент фильтра
  • filter_name (str) – Имя фильтра
  • tooltip (unicode) – Всплывающая подсказка
del_grid_column_filter(column_name, filter_name=None)

Метод удаляет колоночный фильтр

Параметры:
  • column_name (str) – Имя колонки
  • filter_name (str) – Имя фильтра
render()

Рендеринг окна

set_params(params)

Принимает в параметрах пак и делегирует ему конфигурирование грида

class objectpack.ui.BaseMultiSelectWindow(*args, **kwargs)
Базовые классы: objectpack.ui.BaseSelectWindow

Окно множественного выбора в ExtMultiSelectWindow

set_params(params)
class objectpack.ui.BaseSelectWindow(*args, **kwargs)
Базовые классы: objectpack.ui.BaseListWindow

Окно выбора из списка объектов

set_params(params)
class objectpack.ui.BaseWindow
Базовые классы: m3_ext.ui.windows.window.ExtWindow

Базовое окно

set_params(params)

Метод принимает словарь, содержащий параметры окна, передаваемые в окно слоем экшнов

Примечание

Параметры могут содержать общие настройки окна (title, width, height, maximized) и флаг режима для чтения (read_only)

Параметры:params (dict) – Словарь с параметрами
class objectpack.ui.ColumnsConstructor(items=None)
Базовые классы: object

Конструктор колонок для сложных гридов с banded-колонками

Имеет 2 дочерних класса: - Col - простая колонка - BandedCol - группирующая колонка.

Пример использования:

# создание колонок inline

cc = ColumnsConstructor()
cc.add(
    cc.Col(header='1'),

    cc.BandedCol(header='2', items=(
        cc.Col(header='3'),
        cc.Col(header='4'),

        cc.BandedCol(header='5', items=(
            cc.Col(header='6'),

            cc.BandedCol(header='7', items=(
                cc.Col(header='8'),
                cc.Col(header='9'),
                cc.BandedCol(),
            )),

            cc.Col(header='10')
        ))
    )),
    cc.Col(header='11')
)

# динамическое создание колонок
for grp_idx in 'ABCD':
    grp = cc.BandedCol(header=grp_idx)

    for col_idx in 'ABCD':
        grp.add(
            cc.Col(header=grp_idx + col_idx)
        )

    cc.add(grp)

cc.configure_grid(grid)
class BandedCol(items=None, **kwargs)
Базовые классы: object

Группирующая колонка

add(*args)

Добавление колонок

Параметры:args (list) – Колонки
class ColumnsConstructor.Col(**kwargs)
Базовые классы: object

Простая колонка

ColumnsConstructor.add(*args)

Добавление колонок

ColumnsConstructor.configure_grid(grid)

Конфигурирование грида

classmethod ColumnsConstructor.from_config(config, ignore_attrs=None)

Создание экземпляра на основе конфигурации config

Параметры:
  • config (dict) –
  • ignore_attrs
class objectpack.ui.ComboBoxWithStore(data=None, url=None, **kwargs)
Базовые классы: m3_ext.ui.fields.complex.ExtDictSelectField

Потомок m3-комбобокса со втроенным стором

Примечание

Установка артибутов data или url конфигурирует стор контрола

data

Фиксированный стор вида ((id, name),....)

url

URL для динамической загрузки

exception objectpack.ui.GenerationError
Базовые классы: exceptions.Exception

ошибка возникает при проблемы генерации контрола

class objectpack.ui.ModelEditWindow(*args, **kwargs)
Базовые классы: objectpack.ui.BaseEditWindow

Простое окно редактирования модели

classmethod fabricate(model, **kwargs)

Гененрирует класс-потомок для конкретной модели

Использование:

class Pack(...):
    add_window = ModelEditWindow.fabricate(
        SomeModel,
        field_list=['code', 'name'],
        model_register=observer,
    )
Параметры:
  • model (django.db.models.Model) – Модель django
  • kwargs (dict) – Параметры для передачи в field_fabric_params
Результат:

Субкласс objectpack.ui.ModelEditWindow

field_fabric_params = None

Словарь kwargs для model_fields_to_controls (“field_list”, и т.д.)

model = None

Модель, для которой будет строится окно

set_params(params)
class objectpack.ui.ObjectGridTab
Базовые классы: objectpack.ui.WindowTab

Вкладка с гридом

do_layout(win, tab)
classmethod fabricate(model, model_register, tab_class_name=None)

Возвращает класс вкладки, построенной на основе основного пака для модели model. В процессе настройки вкладки экземпляр пака получается посредством вызова model_register.get для model_name

Параметры:
  • model (django.db.models.Model) – Модель django
  • model_register – Реестр моделей
  • tab_class_name (str) – Имя класса вкладки (если не указано, то генерируется на основе имени класса модели пака)
classmethod fabricate_from_pack(pack_name, pack_register, tab_class_name=None)

Возвращает класс вкладки, построенной на основе пака с именем pack_name. В процессе настройки вкладки экземпляр пака получается посредством вызова pack_register.get_pack_instance для pack_name

Параметры:
  • pack_name – Имя пака
  • pack_register – Реестр паков
  • tab_class_name – Имя класса вкладки (если не указано, то генерируется на основе имени класса модели пака)
get_pack()

Возвращает экземпляр ObjectPack для настройки грида

init_components(win)

Создание грида

Параметры:win – Окно
set_params(win, params)
title

Заголовок вкладки

class objectpack.ui.ObjectTab
Базовые классы: objectpack.ui.WindowTab

Вкладка редактирования полей объекта

do_layout(win, tab)
classmethod fabricate(model, **kwargs)

Гененрирует класс-потомок для конкретной модели

Использование:

class Pack(...):
    add_window = ObjectTab.fabricate(
        SomeModel,
        field_list=['code', 'name'],
        model_register=observer,
    )
field_fabric_params = None

Словарь kwargs для model_fields_to_controls (“field_list”, и т.д.)

init_components(win)
model = None

Модель, для которой будет строится окно

set_params(win, params)
title

Заголовок вкладки

class objectpack.ui.TabbedEditWindow(*args, **kwargs)

Окно редактирования с вкладками

class objectpack.ui.TabbedWindow
Базовые классы: objectpack.ui.BaseWindow

Окно со вкладками

set_params(params)
tabs = None
class objectpack.ui.WindowTab
Базовые классы: object

Прототип конструктора таба

do_layout(win, tab)

Здесь задаётся расположение компонентов. Компоненты должны быть расположены на табе tab окна win

Параметры:
  • win – Окно
  • tab – Вкладка
init_components(win)

Здесь создаются компоненты, но не задаётся расположение Компоненты создаются, как атрибуты окна win

Параметры:win – Окно
set_params(win, params)

Установка параметров

Параметры:
  • win – Окно
  • params – Параметры
template = None
title = u''
objectpack.ui.allow_blank(ctl)

Устанавливает allow_blank=True у контрола и возвращает его (контрол)

Пример использования:

controls = map(allow_blank, controls)
objectpack.ui.anchor100(ctl)

Устанавливает anchor в 100% у контрола и восвращает его (контрол)

Пример использования:

controls = map(anchor100, controls)
objectpack.ui.deny_blank(ctl)

Устанавливает allow_blank=False у контрола и возвращает его (контрол)

Пример использования:

controls = map(allow_blank, controls)
objectpack.ui.make_combo_box(**kwargs)

Создает и возвращает ExtComboBox

Параметры:kwargs (dict) – Передаются в конструктор комбобокса
objectpack.ui.model_fields_to_controls(model, window, field_list=None, exclude_list=None, model_register=None, **kwargs)

Добавление на окно элементов формы по полям модели

Примечание

exclude_list игнорируется при указанном field_list

Примечание

Списки включения/исключения полей могут содержать wildcards вида x* или *x, которые трактуются как префиксы и суффиксы

Примечание

При создании полей для связанных моделей ActionPack для модели ищется в реестре моделей model_register по имени класса модели (передачей имени в метод “get” реестра)

Параметры:
  • model – Модель django
  • window (m3_ext.ui.windows.window.ExtWindow) – Окно
  • field_list (list) – Список полей
  • exclude_list (list) – Список полей-исключений
  • model_register – Реестр моделей-паков
  • kwargs (dict) – Дополнительные параметры для передачи в конструктор элементов
Результат:

Список контролов для полей модели

Тип результата:

list