I want to add to my purchase order a 'cancel' button. This button will change the state of my record to 'canceled'. When the user click on this button the script verify all the purchase inquiries and provider orders if there is any one not done or canceled yet. I want to add a pop-up to warn the user about them. The user can cancel the operation or pursuit and cancel all the related inquiries and orders.
This is my wizard model :
# -*- coding: utf-8 -*-
from odoo import models, fields, api
class confirm_wizard(models.TransientModel):
_name = 'tjara.confirm_wizard'
yes_no = fields.Char(default='Do you want to proceed?')
@api.multi
def yes(self):
return True
@api.multi
def no(self):
return False
My wizards view :
<?xml version="1.0" encoding="UTF-8"?>
<odoo>
<data>
<record model="ir.ui.view" id="confirm_wizard_form">
<field name="name">wizard.form</field>
<field name="model">tjara.confirm_wizard</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Confirm dialog">
<field name="yes_no" readonly="1" />
<footer>
<button class="oe_highlight" name="yes" string="Yes" />
<button class="oe_highlight" name="no" string="No" />
</footer>
</form>
</field>
</record>
</data>
</odoo>
The button :
<button string="Canceled" type="object" name="canceled_progressbar" class="oe_highlight" attrs="{'invisible': [('state', '=', 'done')]}"/>
And finally the two methods :
@api.multi
def return_confirmation(self):
return {
'name': 'Are you sure?',
'type': 'ir.actions.act_window',
'res_model': 'tjara.confirm_wizard',
'view_mode': 'form',
'view_type': 'form',
'target': 'new',
}
@api.multi
def canceled_progressbar(self):
if(self.return_confirmation()):
#Do some code
else:
#Do some code
The model is triggered only when the button is pointed on return_confirmation method. Which make me incapable to pursuit my code. Only a pop-up appear then disappear when the user click on a button. I want to call the return_confirmation (pop-up) via the canceled_progressbar, so I can return the value and moving on.
Well, this is what I wrote :
@api.multi
def yes(self):
print 'yes function'
self.env['tjara.purchase_order'].function1()
@api.multi
def no(self):
print 'no function'
self.env['purchase_order'].function1()
The 'canceled_progressbar' method return :
@api.multi
def canceled_progressbar(self):
print 'canceled_progressbar'
return {
'name': 'Are you sure?',
'type': 'ir.actions.act_window',
'res_model': 'tjara.confirm_wizard',
'view_mode': 'form',
'view_type': 'form',
'target': 'new',
}
And I added two function according to the confirmation :
@api.multi
def function1(self):
print 'this function 1'
@api.multi
def function2(self):
print 'this function 2'
I was wondering if I can make only one function but it seems like impossible.
Thank you all for helping.