[Openerp-community] setting the context in act_window

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

[Openerp-community] setting the context in act_window

Viktor Nagy
hi,

is it possible to set the context from a database query in an ir.actions.act_window definition?

my example code is hereĀ http://pastebin.com/kciDSURZ

thanks,
Viktor

_______________________________________________
Mailing list: https://launchpad.net/~openerp-community
Post to     : [hidden email]
Unsubscribe : https://launchpad.net/~openerp-community
More help   : https://help.launchpad.net/ListHelp
Reply | Threaded
Open this post in threaded view
|

Re: [Openerp-community] setting the context in act_window

Olivier Dony (OpenERP)
On 01/30/2012 11:38 AM, Viktor Nagy wrote:
> is it possible to set the context from a database query in an
> ir.actions.act_window definition?
>
> my example code is here http://pastebin.com/kciDSURZ

Not really, no. Quoting your example:

  <field name="context" eval="{'search_default_draft': 1,'order_date':
self.pool.get('res.company').get_value(cr, uid, 'order_date', context)}" />

The `eval` attribute is statically evaluated when the record is loaded,
at module installation time. I'm not sure, but based on the rest of your
example it seems you want a dynamic value to be used for filtering records.

A few solutions come to mind which may perhaps better suit your needs:
- Dynamic actions: link a menuitem to a server action that executes some
python code to load the values you need from the database, then returns
a dynamic action dict (by assigning a value to an 'action' variable)
with the appropriate context/domain you need. You could see this as a
dynamic action loader.
- Dynamic search views: alternatively, override the fields_view_get()
method of purchase.order to dynamically customize the search view by
adding an appropriate `filter` element (using any DB value you like).
This is less elegant because it requires some XML-level tinkering with
the result of the super() call, but is an effective way to implement
dynamic views.

HTH,

_______________________________________________
Mailing list: https://launchpad.net/~openerp-community
Post to     : [hidden email]
Unsubscribe : https://launchpad.net/~openerp-community
More help   : https://help.launchpad.net/ListHelp