如何创建向导多次调用复制函数



我是OpenERP的初学者,我想创建一个向导来多次复制一个对象,当我点击按钮时,向导会打开一个表单,如果这个表单是(文本框+确定按钮),那么文本框要写多少次,向导会调用复制函数来复制对象,有人有教程吗?

首先创建向导服务器端Python

class duplicate_wiz(osv.osv_memory):
  _name = 'duplicate.wiz'
  _description = 'duplicate wizard'
  _columns = {
      'number_of_copies':fields.char('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]
      try:        
          number_of_copies = data['number_of_copies']            
      except:
          raise osv.except_osv(_('Error'), _('Trouble!'))   
      # your duplicate buziness logic
    ...

并将这些视图渲染为新目标以创建向导。

<?xml version="1.0" ?>
  <openerp>
      <data>
      <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="object duplicater" version="7.0">
            <group col="2">
                <field name="number_of_copies"/>
            </group>
            <footer>
                <button name="duplicate_object" string="_Import" type="object"    class="oe_highlight"/>
                or
                <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>  
    <menuitem id="menu_dup" name="Duplicaters" parent="base.menu_config" sequence="10"/>
    <menuitem id="menu_dup_obj" name="Import File" parent="menu_dup" action="action_duplicate_object"/>    
  </data>
</openerp>

下面是一个更完整的向导示例(代码、xml视图渲染…)教程:用于CSV导入的OpenErp模块向导

有一个很好的教程:https://doc.openerp.com/v6.1/developer/04_wizard/Ofc,您可以查看OpenERP代码中的示例。一个简单的例子在openerp技术纪念品中。

您必须为向导的模型创建一个osv_memory对象,方法将执行您的操作。然后创建将有按钮调用您的操作的视图。

最新更新