Frage

I am beginner in OpenERP, I want to create a wizard to duplicate an object many time, which when i click on the button the wizard open a form the content if this form it's ( textbox + ok button) the textBox for to write how many time the wizard will call copy function to copy the object This is my class

 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()

and this my view

      <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>

and this my wizard .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()

and this my wizard view

<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>

I know I have many errors in wizard code, because I don't know how to it and how I can call the wizard from the button, anyone can help me with this ?

War es hilfreich?

Lösung

I don't have time now to read all your code, but the button on immo.article.form should have action reference in name attribute, not in string:

<button name="%(action_duplicate_object)d" type="action" string="A string"/>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top