Estoy intentando preparar un informe a partir de una vista de base de datos, pero cuando intento mostrar el campo me dice que no existe. L avista la crea bien en la base de datos, loq ue veo es que en el modelo de datos de Odoo no se crean los campos que estan especificados en la vista. Adjunto el código por si puede ayudar.
from openerp import tools
from openerp.osv import fields, osv
class inz_partes_trabajo_analisis_proyectos(osv.osv):
_name = 'inz.partes.trabajo.analisis.proyectos'
_description = 'Analisis de proyectos'
_auto = False
columns = {
'x_project_name': fields.many2one('project.project', 'Proyecto', required=True, readonly=True),
'x_date': fields.date('Fecha del gasto', readonly=True),
'x_total_gastos': fields.float('Importe Gastos (€)', readonly=True),
}
_order = 'name'
def init(self,cr):
tools.drop_view_if_exists(cr, 'inz_partes_trabajo_analisis_proyectos')
cr.execute("""
create or replace view inz_partes_trabajo_analisis_proyectos as (
select
c.create_date as x_date,
sum(c.amount) as x_total_gastos
from project_project a
inner join account_analytic_account b on (
b.id = a.analytic_account_id)
inner join hr_expense_expense c on (c.project_id =
a.id)
)
""")
<record id="view_x_inz_analisis_proyectos_report" model="ir.ui.view">
<field name="name">Analisis de proyectos</field>
<field name="model">inz.partes.trabajo.analisis.proyectos</field>
<field name="arch" type="xml">
<graph string="Analisis de proyectos" type="pivot">
<field name="x_project_name" type="row"/>
<field name="x_total_gastos" type="col"/>
</graph>
</field>
</record>