Для того, чтобы добавить кнопку в представление необходимо сделать 3 шага:
Добавьте кнопку в словарь _buttons класса ModelView. Обычно это делается в методе setup вашего класса. Здесь вы можете определить значок и состояния (например, когда кнопка невидима). Если ничего не нужно, вы можете определить его с помощью пустого словаря.
Например:
@classmethod
def __setup__(cls):
super(Class, cls).__setup__()
cls._buttons.update({
'mybutton': {},
})
Более сложные примеры можно найти на модулях tryton, например:
http://hg.tryton.org/modules/account_invoice/file/84a41902ff5d/invoice.py#l224
Объявите свой метод и украсьте его ModelView.button (чтобы проверить права доступа к этой кнопке). Например:
@classmethod
@ModelView.button
def mybutton(cls, records)
#DO whatever you want with records
Обратите внимание, что метод name должен быть тем, который вы используете в качестве ключа словаря _buttons на шаге 1.
И, наконец, добавьте его в представление. Вы можете найти все атрибуты, которые можно использовать на:
http://doc.tryton.org/3.2/trytond/doc/topics/views/index.html?highlight=button#button
Обратите внимание, что атрибуты string и name являются обязательными.
Также имя должно быть именем вызываемого метода, определенным на шаге 2.
Вы можете найти несколько примеров в:
http://hg.tryton.org/modules/account_invoice/file/84a41902ff5d/view/invoice_form.xml#l51
person
pokoli
schedule
08.08.2014