Как подсказать данные пользователю в odoo? - PullRequest
1 голос
/ 03 апреля 2019

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

Template

        <record id="form_view" model="ir.ui.view">
            <field name="name">data form</field>
            <field name="model">sf.data</field>
            <field name="arch" type="xml">
                <tree>
                    <field name="name" string="Name" />
                    <field name="age" string="Age"/>
                </tree>
            </field>
        </record>

Модель

    class data(models.Model):
        _name = 'sf.data'
        name = fields.Char('Name')
        age= fields.Integer('Age')

Есть ли способ установить новое поле в шаблоне, которое не отвечает модели?

1 Ответ

0 голосов
/ 04 апреля 2019

Видимо, мне нужен был волшебник.Вот как я это сделал:

Шаблон

<record id="wizard_form" model="ir.ui.view">
    <field name="name">test wizard</field>
    <field name="model">sf.datawizard</field>
    <field name="arch" type="xml">
        <form>
            <group>
                <field name="amount" string="Amount" />
            </group>
            <footer>
                <button string="Save" type="object" name="btn_cloning"/>
                <button string="Cancel" type="object" special="cancel" />
            </footer>
        </form>
    </field>
</record>


<record id="form_view" model="ir.ui.view">
    <field name="name">data form</field>
    <field name="model">sf.data</field>
    <field name="arch" type="xml">
        <form>
            <header>
                <button name="btn_wizard" string="Clon" type="object" />
            </header>
            <sheet>
                <field name="name" string="Name" />
                <field name="age" string="Age"/>
            </sheet>
        </form>
    </field>
</record>

Модель

class cloningwizard(models.TransientModel):
    _name='sf.cloningwizard'
    amount= fields.Integer('Amount')

    @api.multi
    def btn_cloning(self):
        data= self.env['sf.data'].search([('id','=',self._context.get('active_id', False))])
        for item in range(1,self.amount+1):
            data.copy()
        return True

class data(models.Model):
    _name = 'sf.data'
    name = fields.Char('Name')
    age= fields.Integer('Age')

    def btn_wizard(self):
        return {
            'name': 'Amount of times to be cloned',
            'type': 'ir.actions.act_window',
            'res_model': 'sf.datawizard',
            'view_type': 'form',
            'view_mode': 'form',
            'target': 'new',
            }
...