I'm trying to migrate an old style wizard to new style. When i try to update the module, openerp raises this error "IntegrityError: null value in column "res_model" violates not-null constraint"
my wizard.xml file contains the form view definition, act_window and menuitem. The code is the following:
<record id="jasper_wizard_make_template" model="ir.actions.act_window">
<field name="name">Make XML Template</field>
<field name="model">jasper_server.wizard.make_template</field>
<field name="arch" type="xml">
<form string="Make XML Template" version="7.0">
<field invisible="1" name="state"/>
<field name="name" invisible="1"/>
<group states="init" string="Create Data Template">
<field name="model" colspan="4" width="300"/>
<field name="depth"/>
<field name="model_id"/>
<field name="indent"/>
</group>
<div states="get_file">
<h2>Data Template Generated</h2>
<p>file: <field name="data" readonly="1" filename="name"/></p>
</div>
<footer states="init">
<button name="_generate" string="Create" type="object" class="oe_highlight"/> or
<button special="cancel" string="Cancel" type="object" class="oe_link"/>
</footer>
<footer states="get_file">
<button special="cancel" string="Close" type="object"/>
</footer>
</form>
</field>
</record>
<record id="action_jasper_wizard_make_template" model="ir.actions.act_window">
<field name="name">Make XML Template</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">jasper_server.wizard.make_template</field>
<field name="view_type">form</field>
<field name="view_mode">form</field>
<field name="target">new</field>
</record>
<menuitem action="action_jasper_wizard_make_template" id="menu_jasper_wizard_make_template" parent="menu_jasper"/>
jasper_server.wizard.make_template object is the following:
import pooler
import base64
from openerp import tools
from openerp.osv import fields,osv
try:
from cStringIO import StringIO
except ImportError:
from StringIO import StringIO
class make_template(osv.osv_memory):
_name = "jasper_server.wizard.make_template"
_columns = {
'name': fields.char('File Name', readonly=True),
'model': fields.char('Object Model', required=True),
'depth': fields.integer('Depth', required=True),
'model_id': fields.many2one('ir.model', 'Object Model', required=True), # object model in ir.model
'indent': fields.boolean('Indent', help='Indent the XML output ?'),
'data': fields.binary('File', readonly=True),
'state': fields.selection( ( ('init','init'), # init_form
('get_file','get_file'), # save_form
) ),
}
_defaults = {
'depth' : lambda *a: 1,
'state': lambda *a: 'init',
}
def _generate(self, cr, uid, data, context):
"""
Compose the XML
"""
this = self.browse(cr, uid, ids)[0]
form = data['form']
j_obj = pooler.get_pool(cr.dbname).get('jasper.server')
context['indent'] = this.indent
buf = StringIO()
buf.write(j_obj.generator(cr, uid, this.model, this.model_id, this.depth, context=context))
datas = base64.encodestring(buf.getvalue())
buf.close()
filename = 'jasper.xml'
self.write(cr, uid, ids, {'state': 'get_file',
'data': datas,
'name':filename}, context=context)
return {
'type': 'ir.actions.act_window',
'res_model': 'jasper_server.wizard.make_template',
'view_mode': 'form',
'view_type': 'form',
'res_id': this.id,
'views': [(False, 'form')],
'target': 'new',
}
the error is raisen only when I uncomment the form definition in the wizard.xml, act_window and menuitem are OK
Could someone tell me what am i doing wrong? The osv.osv_memory object seems to be ok