我是OpenERP的初学者,我想创建一个向导复制一个对象很多次,当我点击按钮向导打开一个表单的内容如果这个表单(textbox + ok按钮)textBox for write向导会调用复制功能复制对象的时间,有人有任何tuto或什么东西吗?
答案 0 :(得分:0)
有一个很好的教程:https://doc.openerp.com/v6.1/developer/04_wizard/ 您可以查看OpenERP代码中的示例。 简单的例子是在openerp技术纪念品。
您必须使用可执行操作的方法为向导的模型创建osv_memory对象。然后创建将有按钮调用您的操作的视图。
答案 1 :(得分:0)
首先创建向导服务器端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
...
将这些视图渲染为目标new以创建向导。
<?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视图渲染,...) Tutorial : OpenErp Module Wizard for CSV import