Přejít na obsah
Menu
You need to be registered to interact with the community.
This question has been flagged
3 Odpovědi
10913 Zobrazení

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
Zrušit
Nejlepší odpověď

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
Zrušit
Nejlepší odpověď

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
Zrušit
Nejlepší odpověď

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
Zrušit
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

Related Posts Odpovědi Zobrazení Aktivita
0
úno 22
1837
2
zář 20
5952
0
pro 19
3
1
zář 19
6425
6
srp 19
10022