在向导上创建一个保存记录按钮 - Odoov8

时间:2017-08-24 02:04:31

标签: python openerp odoo-8

我在自定义模块中创建了一个包含模型步骤的向导

现在,我的问题是,在第4步,工作流程已完成,因此我需要保存所有已填充的字段,但我的向导上没有保存按钮

有没有办法通过维护我向导的所有其他字段来做到这一点?

我的向导视图:

<record id="view_wizard_prod_order_form" model="ir.ui.view">
        <field name="name">bsi.production.order.wizard</field>
        <field name="model">bsi.production.order</field>
        <field name="arch" type="xml">
            <form string="Production Order">
              <field name="state" widget="statusbar" statusbar_visible="step1,step2,step3,step4" statusbar_colors='{"step3":"blue","step4":"blue"}' clickable="True" />
                  <group>
                    <group>
                      <field name="date_production" attrs="{'invisible': [('state', '!=', 'step1')]}" />
                      <field name="product_id" attrs="{'invisible': [('state', '!=', 'step1')]}" />
                      <field name="qty_available" attrs="{'invisible': [('state', '!=', 'step1')]}" />
                      <field name="isbn1" attrs="{'invisible': [('type_prod', '!=', 'direct')]}" />
                      <field name="isbn2" attrs="{'invisible': [('type_prod', '!=', 'direct')]}"/>
                      <field name="isbn3" attrs="{'invisible': [('type_prod', '!=', 'direct')]}"/>
                      <field name="isbn4" attrs="{'invisible': [('type_prod', '!=', 'direct')]}"/>
                      <field name="isbn5" attrs="{'invisible': [('type_prod', '!=', 'direct')]}"/>
                      <field name="isbn6" attrs="{'invisible': [('type_prod', '!=', 'direct')]}"/>
                    </group>
                    <group>
                      <field name="type_prod" attrs="{'invisible': [('state', '!=', 'step1')]}"/>
                      <field name="print_order2" attrs="{'invisible': [('type_prod', '!=', 'direct')]}" />
                      <field name="print_order2" attrs="{'invisible': [('type_prod', '!=', 'direct')]}"/>
                      <field name="print_order2" attrs="{'invisible': [('type_prod', '!=', 'direct')]}"/>
                      <field name="print_order2" attrs="{'invisible': [('type_prod', '!=', 'direct')]}"/>
                      <field name="print_order2" attrs="{'invisible': [('type_prod', '!=', 'direct')]}"/>
                      <field name="print_order2" attrs="{'invisible': [('type_prod', '!=', 'direct')]}"/>
                    </group>
                </group>
                <group>
                    <group string="Book Block" attrs="{'invisible': [('state', '!=', 'step2')]}">
                            <field name="name_block" attrs="{'invisible': [('state', '!=', 'step2')]}"/>
                            <field name="category" attrs="{'invisible': [('state', '!=', 'step2')]}"/>
                            <field name="language" attrs="{'invisible': [('state', '!=', 'step2')]}"/>
                            <field name="edition" attrs="{'invisible': [('state', '!=', 'step2')]}"/>
                            <field name="size" attrs="{'invisible': [('state', '!=', 'step2')]}"/>
                            <field name="book_block_textp" attrs="{'invisible': [('state', '!=', 'step2')]}"/>
                            <field name="n_pages_one_color" attrs="{'invisible': [('state', '!=', 'step2')]}"/>
                            <field name="two_color" attrs="{'invisible': [('state', '!=', 'step2')]}"/>
                            <field name="four_color" attrs="{'invisible': [('state', '!=', 'step2')]}"/>
                            <field name="total" attrs="{'invisible': [('state', '!=', 'step2')]}"/>
                            <field name="text_print_code" attrs="{'invisible': [('state', '!=', 'step2')]}"/>
                            <field name="book_block_adpaper" attrs="{'invisible': [('state', '!=', 'step2')]}"/>
                            <field name="adnl_n_pages_one_color" attrs="{'invisible': [('state', '!=', 'step2')]}"/>
                            <field name="adnl_two_color" attrs="{'invisible': [('state', '!=', 'step2')]}"/>
                            <field name="adnl_third_color" attrs="{'invisible': [('state', '!=', 'step2')]}"/>
                            <field name="adnl_four_color" attrs="{'invisible': [('state', '!=', 'step2')]}"/>
                            <field name="adnl_total" attrs="{'invisible': [('state', '!=', 'step2')]}"/>
                            <field name="adnl_text_print_code" attrs="{'invisible': [('state', '!=', 'step2')]}"/>
                            <field name="book_block_txtep" attrs="{'invisible': [('state', '!=', 'step2')]}"/>
                            <field name="n_of_end_pages" attrs="{'invisible': [('state', '!=', 'step2')]}"/>
                    </group>
                    <group string="Book Size" attrs="{'invisible': [('state', '!=', 'step2')]}">
                            <field name="name_size" attrs="{'invisible': [('state', '!=', 'step2')]}"/>
                            <field name="description_size" attrs="{'invisible': [('state', '!=', 'step2')]}"/>
                            <field name="forme_size" attrs="{'invisible': [('state', '!=', 'step2')]}"/>
                            <field name="plate_size" attrs="{'invisible': [('state', '!=', 'step2')]}"/>
                    </group>
                </group>
                <group>
                    <group string="Book Edition" attrs="{'invisible': [('state', '!=', 'step3')]}">
                            <field name="name_edition" attrs="{'invisible': [('state', '!=', 'step3')]}"/>
                    </group>
                    <group string="Book Binding" attrs="{'invisible': [('state', '!=', 'step3')]}">
                            <field name="name_binding" attrs="{'invisible': [('state', '!=', 'step3')]}"/>
                    </group>
                    <group string="Cut Off" attrs="{'invisible': [('state', '!=', 'step3')]}">
                            <field name="name_cut" attrs="{'invisible': [('state', '!=', 'step3')]}"/>
                            <field name="description_cut" attrs="{'invisible': [('state', '!=', 'step3')]}"/>
                            <field name="cutoff_size" attrs="{'invisible': [('state', '!=', 'step3')]}"/>
                    </group>
                    <group string="Paper Master" attrs="{'invisible': [('state', '!=', 'step3')]}">
                            <field name="name_papermaster" attrs="{'invisible': [('state', '!=', 'step3')]}"/>
                            <field name="description_papermaster" attrs="{'invisible': [('state', '!=', 'step3')]}"/>
                            <field name="paper_type" attrs="{'invisible': [('state', '!=', 'step3')]}"/>
                            <field name="uom_papermaster" attrs="{'invisible': [('state', '!=', 'step3')]}"/>
                            <field name="gsm_papermaster" attrs="{'invisible': [('state', '!=', 'step3')]}"/>
                            <field name="std_cost_rate" attrs="{'invisible': [('state', '!=', 'step3')]}"/>
                            <field name="qty_in_kgs" attrs="{'invisible': [('state', '!=', 'step3')]}"/>
                            <field name="size_width" attrs="{'invisible': [('state', '!=', 'step3')]}"/>
                            <field name="size_height" attrs="{'invisible': [('state', '!=', 'step3')]}"/>
                    </group>
                </group>
                <group>
                    <group string="End Paper" attrs="{'invisible': [('state', '!=', 'step4')]}">
                            <field name="name_end_paper" attrs="{'invisible': [('state', '!=', 'step4')]}"/>
                            <field name="category_end_paper" attrs="{'invisible': [('state', '!=', 'step4')]}"/>
                            <field name="size_end_paper" attrs="{'invisible': [('state', '!=', 'step4')]}"/>
                    </group>
                    <group string="Printing Code" attrs="{'invisible': [('state', '!=', 'step4')]}">
                            <field name="description_code" attrs="{'invisible': [('state', '!=', 'step4')]}"/>
                            <field name="size_code" attrs="{'invisible': [('state', '!=', 'step4')]}"/>
                    </group>
                    <group string="Book Edge" attrs="{'invisible': [('state', '!=', 'step4')]}">
                            <field name="name_book_edge" attrs="{'invisible': [('state', '!=', 'step4')]}"/>
                    </group>
                    <group string="Job Rate" attrs="{'invisible': [('state', '!=', 'step4')]}">
                            <field name="name_jobrate" attrs="{'invisible': [('state', '!=', 'step4')]}"/>
                            <field name="binding" attrs="{'invisible': [('state', '!=', 'step4')]}"/>
                            <field name="size_binding_job_rate" attrs="{'invisible': [('state', '!=', 'step4')]}"/>
                            <field name="bind_variety" attrs="{'invisible': [('state', '!=', 'step4')]}"/>
                            <field name="rates" attrs="{'invisible': [('state', '!=', 'step4')]}"/>
                            <field name="addl_rate" attrs="{'invisible': [('state', '!=', 'step4')]}"/>
                            <field name="uptoforme" attrs="{'invisible': [('state', '!=', 'step4')]}"/>
                    </group>
                </group>
        </form>
        </field>
    </record>

我只需要它可以点击并将数据保存在表格上。 我看到了像这样的解决方案:

<button string="Save" name="create" type="object"/>

但它不起作用,所以,任何想法?

修改

这是我定义的方法:

@api.multi
def save_data(self, vals):
    # and here you use you wizard fields 
    self.name
    self.date_production
    self.type_prod
    self.product_id
    self.qty_available
    self.isbn1
    self.isbn2
    self.isbn3
    self.isbn4
    self.isbn5
    self.isbn6
    self.isbn7
    self.isbn8
    #print_order = fields.One2many('bsi.print.order', 'production_orders', string="Print Order", copy=True)
    self.print_order2
    self.name_block
    self.category
    #self.other_fields
    return (bsi_production_order, self).create(cr, uid, vals, context=context)

但它让我觉得这个:

Traceback (most recent call last):
File "C:\Program Files\Odoo 8.0-20170809\server\.\openerp\http.py", line 546, in _handle_exception
File "C:\Program Files\Odoo 8.0-20170809\server\.\openerp\http.py", line 583, in dispatch
File "C:\Program Files\Odoo 8.0-20170809\server\.\openerp\http.py", line 319, in _call_function
File "C:\Program Files\Odoo 8.0-20170809\server\.\openerp\service\model.py", line 118, in wrapper
File "C:\Program Files\Odoo 8.0-20170809\server\.\openerp\http.py", line 316, in checked_call
File "C:\Program Files\Odoo 8.0-20170809\server\.\openerp\http.py", line 812, in __call__
File "C:\Program Files\Odoo 8.0-20170809\server\.\openerp\http.py", line 412, in response_wrap
File "C:\Program Files\Odoo 8.0-20170809\server\openerp\addons\web\controllers\main.py", line 944, in call_kw
File "C:\Program Files\Odoo 8.0-20170809\server\openerp\addons\web\controllers\main.py", line 936, in _call_kw
TypeError: create() takes exactly 2 arguments (5 given)

1 个答案:

答案 0 :(得分:1)

向页脚添加一个按钮,并在您点击最后一步时显示该按钮。

         <button string="Save" name="save_data" type="object"/>

在你的向导中定义一个保存功能

       @api.multi
        def save_data(self):
                # and here you use you wizard fields 
                 self.some_field