добавление кнопки в форму просмотра tryton

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

в форме просмотра xml:

<label name="fieldstring"/>
<field name="fieldstring"/>
 <button name="dosomething"/>

код:

def dosomething(cls,records):
    #treatement

есть ли пример модуля, который использует кнопку, связанную с лечением??


person Community    schedule 08.08.2014    source источник


Ответы (1)


Для того, чтобы добавить кнопку в представление необходимо сделать 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