Hi, I have slightly similar case. I am trying to call a method that calls a google maps report produced in python because with qweb was too difficult.
<record id="action_map_report" model="ir.actions.server">
<field name="name">Reporte Google Maps</field>
<field name="condition">True</field>
<field name="type">ir.actions.server</field>
<field name="model_id" ref="model_operaciones_servicios"/>
<field name="state">code</field>
<field name="code">action=self.generar_reporte_gmaps_servicios(cr,uid,context.get('active_ids'), context=context)</field>
</record>
<record model="ir.values" id="ir_operaciones_servicios_map_report">
<field name="key2">client_action_multi</field>
<field name="name">Analisis Recorrido en Google Maps</field>
<field name="value" eval="'ir.actions.act_window,' + str(ref('operaciones.action_map_report'))" />
<field name="key">action</field>
<field name="model">operaciones.servicios</field>
</record>
Here is the method that I am calling that is in the operaciones.servicios class:
@api.model
def generar_reporte_gmaps_servicios(self):
fecha1 = self.fecha_reporte[:8] + '01'
return {
"type": "ir.actions.act_url",
"url": "/web/operaciones/gmaps/servicios?ids=%s" % (self.ids),
"target": "self",
}
When a load the operaciones.servicios form returns this error:
Traceback (most recent call last):
File "/home/odoo/odoo8/openerp/http.py", line 518, in _handle_exception
return super(JsonRequest, self)._handle_exception(exception)
File "/home/odoo/odoo8/openerp/http.py", line 539, in dispatch
result = self._call_function(**self.params)
File "/home/odoo/odoo8/openerp/http.py", line 295, in _call_function
return checked_call(self.db, *args, **kwargs)
File "/home/odoo/odoo8/openerp/service/model.py", line 113, in wrapper
return f(dbname, *args, **kwargs)
File "/home/odoo/odoo8/openerp/http.py", line 292, in checked_call
return self.endpoint(*a, **kw)
File "/home/odoo/odoo8/openerp/http.py", line 755, in __call__
return self.method(*args, **kw)
File "/home/odoo/odoo8/openerp/http.py", line 388, in response_wrap
response = f(*args, **kw)
File "/home/odoo/odoo8/openerp/addons/web/controllers/main.py", line 949, in call_kw
return self._call_kw(model, method, args, kwargs)
File "/home/odoo/odoo8/openerp/addons/web/controllers/main.py", line 941, in _call_kw
return getattr(request.registry.get(model), method)(request.cr, request.uid, *args, **kwargs)
File "/home/odoo/odoo8/openerp/api.py", line 238, in wrapper
return old_api(self, *args, **kwargs)
File "/home/odoo/odoo8/openerp/addons/mail/mail_thread.py", line 344, in fields_view_get
res = super(mail_thread, self).fields_view_get(cr, uid, view_id=view_id, view_type=view_type, context=context, toolbar=toolbar, submenu=submenu)
File "/home/odoo/odoo8/openerp/api.py", line 238, in wrapper
return old_api(self, *args, **kwargs)
File "/home/odoo/odoo8/openerp/models.py", line 1570, in fields_view_get
resaction = ir_values_obj.get(cr, uid, 'action', 'client_action_multi', [(self._name, False)], False, context)
File "/home/odoo/odoo8/openerp/api.py", line 238, in wrapper
return old_api(self, *args, **kwargs)
File "/home/odoo/odoo8/openerp/addons/calendar/calendar.py", line 620, in get
meta, context, res_id_req, without_user, key2_req)
File "/home/odoo/odoo8/openerp/api.py", line 238, in wrapper
return old_api(self, *args, **kwargs)
File "/home/odoo/odoo8/openerp/addons/base/ir/ir_values.py", line 501, in get
return self._map_legacy_model_list(models, do_get, merge_results=True)
File "/home/odoo/odoo8/openerp/addons/base/ir/ir_values.py", line 458, in _map_legacy_model_list
result = map_fn(model, res_id)
File "/home/odoo/odoo8/openerp/addons/base/ir/ir_values.py", line 500, in do_get
return self.get_actions(cr, uid, action_slot=key2, model=model, res_id=res_id, context=context)
File "/home/odoo/odoo8/openerp/api.py", line 238, in wrapper
return old_api(self, *args, **kwargs)
File "/home/odoo/odoo8/openerp/addons/base/ir/ir_values.py", line 429, in get_actions
action_def = action_model.read(cr, uid, int(action_id), fields, context)
File "/home/odoo/odoo8/openerp/api.py", line 238, in wrapper
return old_api(self, *args, **kwargs)
File "/home/odoo/odoo8/openerp/addons/base/ir/ir_actions.py", line 349, in read
return results[0]
IndexError: list index out of range
When I delete the actions the form loads OK. What is wrong please?
Show records on TreeView that are related to Active User: https://goo.gl/hv4WAi