[IMP] project_report, project_issue, sale: Rename some columns
[odoo/odoo.git] / addons / project_issue / report / project_issue_report.py
1 from osv import fields,osv
2 import tools
3 from crm import crm
4
5 class project_issue_report(osv.osv):
6     _name = "project.issue.report"
7     _auto = False
8     _inherit = "crm.case.report"
9     _columns = {
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),
28     }
29     def init(self, cr):
30         tools.drop_view_if_exists(cr, 'project_issue_report')
31         cr.execute("""
32             create or replace view project_issue_report as (
33                 select
34                     min(c.id) as id,
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,
38                     c.state,
39                     c.user_id,
40                     c.section_id,
41                     c.categ_id,
42                     c.stage_id,
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,
47                     c.type_id as type_id,
48                     count(*) as nbr,
49                     c.assigned_to,
50                     c.partner_id,
51                     c.canal_id,
52                     c.task_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
58                 from
59                     project_issue c
60                 left join
61                     res_users u on (c.id = u.id)
62                 group by
63                     to_char(c.create_date, 'YYYY'),
64                     to_char(c.create_date, 'MM'),
65                     to_char(c.create_date, 'YYYY-MM-DD'),
66                     c.state,
67                     c.user_id,
68                     c.section_id,
69                     c.categ_id,
70                     c.stage_id,
71                     c.date_closed,
72                     u.company_id,
73                     c.priority,
74                     c.project_id,
75                     c.type_id,
76                     date_trunc('day',c.create_date),
77                     c.assigned_to,
78                     c.partner_id,
79                     c.canal_id,
80                     c.task_id,
81                     c.date_open,
82                     c.partner_address_id
83             )""")
84
85
86 project_issue_report()
87
88
89
90 # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: