1 from osv import fields,osv
5 class project_issue_report(osv.osv):
6 _name = "project.issue.report"
8 _inherit = "crm.case.report"
10 'categ_id': fields.many2one('crm.case.categ', 'Category', domain="[('section_id','=',section_id),('object_id.model', '=', 'project.issue')]"),
11 'stage_id': fields.many2one ('crm.case.stage', 'Stage', domain="[('object_id.model', '=', 'project.issue')]"),
12 'nbr': fields.integer('# of Issues', readonly=True),
13 'delay_close': fields.float('Avg Closing Delay', digits=(16,2), readonly=True, group_operator="avg",
14 help="Number of Days to close the project issue"),
15 'delay_open': fields.float('Avg Opening Delay', digits=(16,2), readonly=True, group_operator="avg",
16 help="Number of Days to open the project issue"),
17 'company_id' : fields.many2one('res.company', 'Company'),
18 'priority': fields.selection(crm.AVAILABLE_PRIORITIES, 'Priority'),
19 'project_id':fields.many2one('project.project', 'Project',readonly=True),
20 'type_id': fields.many2one('crm.case.resource.type', 'Version', domain="[('object_id.model', '=', 'project.issue')]"),
21 'date_closed': fields.datetime('Close Date', readonly=True),
22 'date_open': fields.datetime('Opened', readonly=True),
23 'assigned_to' : fields.many2one('res.users', 'Assigned to',readonly=True),
24 'partner_id': fields.many2one('res.partner','Partner',domain="[('object_id.model', '=', 'project.issue')]"),
25 'canal_id': fields.many2one('res.partner.canal', 'Channel',readonly=True),
26 'task_id': fields.many2one('project.task', 'Task',domain="[('object_id.model', '=', 'project.issue')]" ),
27 'partner_address_id': fields.many2one('res.partner.address','Contact ',readonly=True),
30 tools.drop_view_if_exists(cr, 'project_issue_report')
32 create or replace view project_issue_report as (
35 to_char(c.create_date, 'YYYY') as name,
36 to_char(c.create_date, 'MM') as month,
37 to_char(c.create_date, 'YYYY-MM-DD') as day,
43 to_char(c.date_closed, 'YYYY/mm/dd') as date_closed,
44 u.company_id as company_id,
45 c.priority as priority,
46 c.project_id as project_id,
53 c.partner_address_id as partner_address_id,
54 c.date_open as date_open,
55 date_trunc('day',c.create_date) as create_date,
56 avg(extract('epoch' from (c.date_closed-c.create_date)))/(3600*24) as delay_close,
57 avg(extract('epoch' from (c.date_open-c.create_date)))/(3600*24) as delay_open
61 res_users u on (c.id = u.id)
63 to_char(c.create_date, 'YYYY'),
64 to_char(c.create_date, 'MM'),
65 to_char(c.create_date, 'YYYY-MM-DD'),
76 date_trunc('day',c.create_date),
86 project_issue_report()
90 # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: