Ir al contenido
Menú
Se marcó esta pregunta
3 Respuestas
10901 Vistas

I am using Odoo v12, I have one requirement to update the qty to wizard view. I have added two button Plus and Minus and but when I try to update qty using button it is not working. Here I attach the Screenshot my wizard 



  Here button code in xml.

 <button name="action_plus" icon="fa-plus-square" type="object" style="float:right" />

  And qty Increment Code in 

@api.multi

def action_plus(self):

    for record in self:

        record.qty  = record.qty + 1

    return {"type": "set_scrollTop"}


   So My Qty not to increasing and decreasing using that button 


Avatar
Descartar
Mejor respuesta

Hi, have you solved this problem? may i know how you can solved this problem because right now i got same problem like you. Thank you

Avatar
Descartar
Mejor respuesta

How do you display the wizard form ??
Are you save the wizard record first then show the record at pop up wizard  OR you just set new form with some default value ??

Example:

  1.  https://pastebin.com/ymzMcQFF

  2. \https://pastebin.com/ymzMcQFF



Based on your syntax (def action_plus(self):),, self pointed to the object (including record) that to be executed.. so if you use style no #2 you can't do that (increase/decrease) only just by the python,, but if you use style no #1 it could be done because when you call the button the record has been saved at database and odoo know wich record to be updated..
You can test you code with "print(self)", or logger to the command line,, and see what the result. I guess the result will be a empty object...
Ex:

@api.multi

def action_plus(self):

   # DO THIS FOR SEE "SELF" VALUE--->  print(self)
   # OR DO THIS --> _logger.info(self) # IF YOU USE logger object

    for record in self:

        record.qty  = record.qty + 1


But i think its better you to handle it by javascript,,  then user can save it with save button..

Regards

La Jayuhni Yarsyah

Avatar
Descartar
Mejor respuesta

Hi, it seems it is because your page is not refreshed after the action is done. If you reload the page, it should be updated. 

To programatically refresh the page, try something like:

return {
    'type': 'ir.actions.client',
    'tag': 'reload',
}

You can also play around with 'always_reload' and 'reload_on_button' options for the QTY field. Have a look at: https://www.odoo.com/forum/ayuda-1/question/what-behavior-with-options-always-reload-5566


Finally, I guess it was a misprint, but anyway: the decorator is @api.multi. In your question you missed 'i' at the end

Avatar
Descartar
Autor

Thank You for Answering but I have not to need the reload page every plus qty or minus qty and also you have given the link not working and In that case, it is working for me Odoo V11 version but the same thing Odoo V11 to V12 it is not working.

As for reloading the page: I'm afraid you have to because of how buttons in embedded tree view work. Each time you pressed the button on a form view the form is reloaded, however, when you pressed the button on a embedded tree view, a form is not updated. So, you need to do that manually.

Otherwise, you need to implement JavaScript methods to make the update partially.

As for the reload options: I didn't try it by myself, so can't be sure. However, in the Odoo 12 core there are many places where it is used

Publicaciones relacionadas Respuestas Vistas Actividad
0
feb 22
1835
2
sept 20
5951
0
dic 19
3
1
sept 19
6425
6
ago 19
10016