Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Odoo 10 : Call a confirmation form (Yes / No) from Wizard

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.

like image 573
Zied Hf Avatar asked Aug 31 '25 01:08

Zied Hf


1 Answers

You can add:

confirm="Your Custom message like Are you sure you want to process this?"

in button in xml.

like image 50
Kalpana Avatar answered Sep 02 '25 14:09

Kalpana