[IMP]: project_issue report: Improve This Month & Last 7 days button.
[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.char('Delay to close', size=20, readonly=True),
14         'company_id' : fields.many2one('res.company', 'Company'),
15         'priority': fields.selection(crm.AVAILABLE_PRIORITIES, 'Priority'),
16         'project_id':fields.many2one('project.project', 'Project'),
17         'type_id': fields.many2one('crm.case.resource.type', 'Bug Type', domain="[('object_id.model', '=', 'project.issue')]"),
18         'date_closed': fields.datetime('Close Date', readonly=True),
19         'create_date': fields.datetime('Create Date', readonly=True),
20     }
21     def init(self, cr):
22         tools.drop_view_if_exists(cr, 'project_issue_report')
23         cr.execute("""
24             create or replace view project_issue_report as (
25                 select
26                     min(c.id) as id,
27                     to_char(c.create_date, 'YYYY') as name,
28                     to_char(c.create_date, 'MM') as month,
29                     c.state,
30                     c.user_id,
31                     c.section_id,
32                     c.categ_id,
33                     c.stage_id,
34                     to_char(c.date_closed, 'YYYY/mm/dd') as date_closed,
35                     u.company_id as company_id,
36                     c.priority as priority,
37                     c.project_id as project_id,
38                     c.type_id as type_id,
39                     count(*) as nbr,
40                     c.create_date as create_date,
41                     to_char(avg(date_closed-c.create_date), 'DD"d" HH24:MI:SS') as delay_close
42                 from
43                     project_issue c
44                 left join
45                     res_users u on (c.id = u.id)
46                 group by to_char(c.create_date, 'YYYY'), to_char(c.create_date, 'MM'), c.state, c.user_id,c.section_id,c.categ_id,c.stage_id
47                 ,c.date_closed,u.company_id,c.priority,c.project_id,c.type_id
48                 ,c.create_date
49             )""")
50
51
52 project_issue_report()
53
54
55
56 # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: