如何创建向导多次复制对象?

时间:2014-05-15 18:39:14

标签: copy openerp wizard

我是OpenERP的初学者,我想创建一个向导复制一个对象很多次,当我点击按钮时,向导打开一个表单内容,如果这个形式它(文本框+确定按钮) textBox用于写入向导将调用复制函数复制对象的时间 这是我的班级

 class immo_article(osv.osv):
 _name = "immo.article"
 _description = "immo article"

 _columns = {
            'name':fields.integer('N d inventaire',required=True , size=10),
            }                                       
 _defaults = {

            'date_creation': fields.date.context_today,    
 }                 
 immo_article()

和我的观点

      <record id="immo_article_form" model="ir.ui.view">
        <field name="name">immo.article.form</field>
        <field name="model">immo.article</field>

        <field name="arch" type="xml">
            <form string="article" >

           <button string="%(action_duplicate_object)d" type="action" name="duplicate.wiz"/>
                    <field name="name" />
            </form>
        </field>
    </record>
            <record id="immo_article_tree" model="ir.ui.view">

                <record id="immo_article_tree" model="ir.ui.view">                                              
        <field name="name">immo.article.tree</field>
        <field name="model">immo.article</field>
        <field name="arch" type="xml">

            <tree string="articles">

            <field name="name" />

            </tree>
        </field>
    </record>  


<record id="immo_article_form_act" model="ir.actions.act_window">
    <field name="name">Article</field>
    <field name="res_model">immo.article</field>
    <field name="view_mode">tree,form</field>
        <field name="type">ir.actions.act_window</field>
        <field name="view_type">form</field>
        <field name="view_id" ref="immo_article_tree"/> 
        <field name="help" type="html"></field>
</record>

这是我的向导.py

class duplicate_wiz(osv.osv_memory):
_name = 'duplicate.wiz'
_description = 'duplicate wizard'
_columns = {
  'number_of_copies':fields.integer('Number of copies', size=2 , required=True),
}
_defaults = {
    'number_of_copies': '0',
}

def duplicate_object(self, cr, uid, ids, context=None):
    data = self.read(cr, uid, ids)[0]
    article_id = context['active_id']

    try:
        number_of_copies = data['number_of_copies']
    except:
        raise osv.except_osv(_('Error'), _('Trouble!'))

    return {'type': 'ir.actions.act_window_close'}
   duplicate_wiz()

这是我的向导视图

      

<record id="dup_view" model="ir.ui.view">
    <field name="name">duplicate.wizard</field>
    <field name="model">duplicate.wiz</field>
    <field name="priority">1</field>
    <field name="arch" type="xml">
        <form string="Duplicate" version="7.0">
            <group col="2">
                <field name="number_of_copies"/>
            </group>
            <footer>
                <button name="duplicate_object" string="_Import" type="action" class="oe_highlight"/>
                <button string="Cancel" class="oe_link" special="cancel"/>
            </footer>
        </form>
    </field>
</record> 

<record id="action_duplicate_object" model="ir.actions.act_window">
    <field name="name">duplicater action</field>
    <field name="type">ir.actions.act_window</field>
    <field name="res_model">duplicate.wiz</field>
    <field name="view_type">form</field>
    <field name="view_mode">form</field>
    <field name="target">new</field>
    <field name="view_id" ref="dup_view"/>
</record>   

</data>

我知道我在向导代码中有很多错误,因为我不知道怎么做以及如何通过按钮调用向导,任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

我现在没有时间阅读您的所有代码,但immo.article.form上的按钮应该在name属性中有操作引用,而不是在string中:

<button name="%(action_duplicate_object)d" type="action" string="A string"/>