This question has been flagged
9 Replies
9084 Views

Is it possible to add a customized option in print button other than report action. Such that the option should call a function, is it possible? if yes how can we do that

Thanks in advance.....

Avatar
Discard
Best Answer

Hello,I know it's very late to answer this question. But I'm answering for the upcoming people who are facing the same issue.

We can open a wizard from "print" option. we have to use the "<act_window id='.....". Inside the act window, you can give the attribute "binding_type". The binding_type have the two options which are "action" and "report". In your case you've to select the "report" option. So that you can popup (wizard) as per your requirement.

Example:

<act_window id="yourid"

name="Name"

res_model="your.wizard"

binding_model="in.which.model.you.have.to.bind.it"

view_mode="form"

binding_views="list"

binding_type="report"

target="new"  />

Avatar
Discard

Thank you !!

Best Answer

@Umashankar.  Short answer: yes.  There are 3 types of buttons which is indicated by it's type: worfklow (default and usually not stated), action (type='action'), and object (type='object').

  1. Object buttons can be used to call the related model's method.  The name attribute of the button is the name of the method.  A sample of this type of button in OpenERP 7 is "Set to Draft" button of account.invoice.  It calls account.invoice's action_cancel_draft method. (For most of the samples I've stated here, you can check addons/account/account_invoice_view.xml and addons/account/account_invoice.py)
  2. Workflow buttons are used to call a workflow transition.  The name attribute of the button is the signal of the workflow transition.  A sample of this is "Validate" button of account.invoice.  It sends the invoice_open signal to account.invoice's workflow.
  3. Action buttons are used to call an action.  The name attribute of the button is the action's ID (which is represented by the XML ID).  A sample of this is "Re-Open" button of account.inoice.  It calls the action_account_state_open action, which will open a window of a wizard.

Now, more on the actions, there are at least 4 types of actions, AFAIK: window (which will display a view), report (which will execute a report), clients (which calls a method in client and AFAIK cannot be used properly in buttons), and server (which will execute a method).

So, if you want to call a method from a button, you have 2 alternatives: use an object button, or use an action button that calls a server action.  Samples of server action can be found in odoo/addons/stock/wizard/stock_partial_move_view.xml, e.g. action_partial_move_server action calls a code.  The action is called by "Process Partially" button in odoo/addons/stock/stock_view.xml.

Avatar
Discard

Hi Ivan, You from??

Author

Hi ivan i just wanted to add option in the dropdown menu in the print button is it possible

@Umarshankar, no. But you can add that to the More button. The 'action_partial_move_server' sample that I gave above is also available through the More button. It is done through creation of ir.values record which you can also find in odoo/addons/stock/wizard/stock_partial_move_view.xml.

Author

How can we do using this Ivan i cant understand

I would suggest that you look at the example first. It is quite simple.

Best Answer

You can add a undermenu in the print button.

You have to use in act_window key2="client_print_multi" for the more button. Instead of key2="client_action_multi for the more button

Avatar
Discard