Hello Yannick ,
You need to create wizard for the solution this problem and create method in it. like
Python Code -
from openerp.osv import fields, osv
from openerp.tools.translate import _
class refuse_leave(osv.osv_memory):
_name = "refuse.leave"
_description = "Leave Refused"
_columns = {
'refusal_explanation': fields.text('Refusal explanation', required=True)
}
def refuse_leave(self, cr, uid, ids, context=None):
abc_obj = self.pool.get('hr.holiday')
record_id = context.get('active_id')
data = self.read(cr,uid,ids)[0]
print data
xyz = data['refusal_explanation']
print abc_obj.write(cr,uid,[record_id], {'refusal_explanation':xyz,'state':'refuse'})
abc_obj.write(cr,uid,[record_id], {'refusal_explanation':xyz,'state':'refuse'})
return True
refuse_leave()
Xml code -
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<record id="view_refuse_leave" model="ir.ui.view">
<field name="name">Leave Refuse</field>
<field name="model">refuse.leave</field>
<field name="arch" type="xml">
<form string="Refuse_Leave" version="7.0">
<group col="4">
<field name="refusal_explanation"/>
</group>
<footer>
<button string="Refused" type="object" name="refuse_leave" />
<button string="Cancel" class="oe_link" special="cancel"/>
</footer>
</form>
</field>
</record>
<record id="action_view_refuse_leave" model="ir.actions.act_window">
<field name="name">Leave Refuse</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">refuse.leave</field>
<field name="view_type">form</field>
<field name="view_mode">form</field>
<field name="target">new</field>
</record>
</data>
</openerp>
Hope it helps