summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorapa-tiny <apa@tinyerp.com>2010-04-09 14:25:14 +0530
committerapa-tiny <apa@tinyerp.com>2010-04-09 14:25:14 +0530
commite8d0d0a4064cd6baedd2452fe453c4ce2fa032e7 (patch)
tree92503512c6df45128d89c4ef266ba6a4de87f720
parent1b2c83c8fb5b5c200f22ae622f3bdb2e53f5e0f5 (diff)
[IMP]:project:Improved SQL report.(Tasks).
bzr revid: apa@tinyerp.com-20100409085514-dxm5pztqpzd8gaoh
-rw-r--r--addons/project/report/project_report.py38
-rw-r--r--addons/project/report/project_report_view.xml54
2 files changed, 71 insertions, 21 deletions
diff --git a/addons/project/report/project_report.py b/addons/project/report/project_report.py
index e0b93c12d68..9b482f632f8 100644
--- a/addons/project/report/project_report.py
+++ b/addons/project/report/project_report.py
@@ -29,23 +29,36 @@ class report_project_task_user(osv.osv):
_columns = {
'name': fields.char('Year',size=64,required=False, readonly=True),
'user_id':fields.many2one('res.users', 'User', readonly=True),
- 'date_start': fields.datetime('Starting Date'),
- 'date_end': fields.datetime('Ending Date'),
- 'date_deadline': fields.date('Deadline'),
+ 'date_start': fields.datetime('Starting Date',readonly=True),
+ 'description': fields.text('Description',readonly=True),
+ 'date_end': fields.datetime('Ending Date',readonly=True),
+ 'date_deadline': fields.date('Deadline',readonly=True),
'project_id':fields.many2one('project.project', 'Project', readonly=True),
'hours_planned': fields.float('Planned Hours', readonly=True),
'hours_effective': fields.float('Effective Hours', readonly=True),
'hours_delay': fields.float('Avg. Plan.-Eff.', readonly=True),
'closing_days': fields.char('Avg Closing Delay', size=64, readonly=True),
'nbr': fields.integer('#Number of tasks', readonly=True),
+ 'priority' : fields.selection([('4','Very Low'),
+ ('3','Low'),
+ ('2','Medium'),
+ ('1','Urgent'),
+ ('0','Very urgent')],
+ 'Importance',readonly=True),
'month':fields.selection([('01','January'), ('02','February'), ('03','March'), ('04','April'), ('05','May'), ('06','June'),
('07','July'), ('08','August'), ('09','September'), ('10','October'), ('11','November'), ('12','December')],'Month',readonly=True),
- 'state': fields.selection([('draft', 'Draft'),
+ 'state': fields.selection([
+ ('draft', 'Draft'),
('open', 'In Progress'),
('pending', 'Pending'),
('cancelled', 'Cancelled'),
('done', 'Done')],
'State', readonly=True),
+ 'company_id': fields.many2one('res.company', 'Company',readonly=True),
+ 'partner_id': fields.many2one('res.partner', 'Partner',readonly=True),
+ 'type': fields.many2one('project.task.type', 'Stage',readonly=True),
+
+
}
_order = 'name desc, project_id'
@@ -60,10 +73,14 @@ class report_project_task_user(osv.osv):
count(distinct t.id) as nbr,
date_trunc('day',t.date_start) as date_start,
date_trunc('day',t.date_end) as date_end,
- date_trunc('day',t.date_deadline) as date_deadline,
+ to_date(to_char(t.date_deadline, 'dd-MM-YYYY'),'dd-MM-YYYY') as date_deadline,
t.user_id,
t.project_id,
t.state,
+ t.priority,
+ t.company_id,
+ t.partner_id,
+ t.type,
sum(planned_hours) as hours_planned,
to_char(avg(date_end::abstime-t.create_date::timestamp), 'DD"d" HH24:MI:SS') as closing_days,
sum(w.hours) as hours_effective,
@@ -73,8 +90,15 @@ class report_project_task_user(osv.osv):
group by
to_char(date_start, 'YYYY'),
to_char(date_start, 'MM'),
- t.user_id,t.state,t.date_end,
- t.date_deadline,t.date_start,
+ t.priority,
+ t.user_id,
+ t.state,
+ t.date_end,
+ to_date(to_char(t.date_deadline, 'dd-MM-YYYY'),'dd-MM-YYYY'),
+ t.date_start,
+ t.company_id,
+ t.partner_id,
+ t.type,
t.project_id
)
""")
diff --git a/addons/project/report/project_report_view.xml b/addons/project/report/project_report_view.xml
index f904f38b88c..39afad8a8df 100644
--- a/addons/project/report/project_report_view.xml
+++ b/addons/project/report/project_report_view.xml
@@ -9,19 +9,24 @@
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Tasks">
- <field name="name" invisible="1"/>
- <field name="month" invisible="1"/>
- <field name="user_id"/>
+ <!--field name="description"/-->
<field name="project_id"/>
- <field name="nbr"/>
+ <field name="user_id"/>
+ <field name="date_deadline"/>
+ <field name="nbr" sum='#Number of tasks'/>
+ <field name="hours_planned" sum='Planned Hours'/>
+ <field name="hours_effective" sum='Effective Hours'/>
+ <field name="hours_delay" sum='Avg. Plan.-Eff.'/>
+ <field name="closing_days" sum='Avg Closing Delay'/>
+ <field name="state"/>
<field name="date_start" invisible="1"/>
<field name="date_end" invisible="1"/>
- <field name="date_deadline" invisible="1"/>
- <field name="hours_planned"/>
- <field name="hours_effective"/>
- <field name="hours_delay"/>
- <field name="closing_days"/>
- <field name="state"/>
+ <field name="company_id" invisible="1"/>
+ <field name="partner_id" invisible="1"/>
+ <field name="type" invisible="1"/>
+ <field name="name" invisible="1"/>
+ <field name="month" invisible="1"/>
+
</tree>
</field>
</record>
@@ -32,23 +37,44 @@
<field name="type">search</field>
<field name="arch" type="xml">
<search string="Tasks">
+ <group>
<filter icon="terp-project" string="This Year" domain="[('name','=',time.strftime('%%Y'))]" help="Tasks performed in this year"/>
<filter icon="terp-project" string="This Month" domain="[('month','=',time.strftime('%%m'))]" help="Tasks performed in this month"/>
<separator orientation="vertical"/>
- <filter string="In Progress" icon="terp-project" domain="[('state','=','open')]"/>
- <filter string="Pending" icon="terp-project" domain="[('state','=','pending')]"/>
- <filter string="Closed" icon="terp-project" domain="[('state','=','done')]"/>
+ <filter string="Deadline" icon="terp-project" domain="[('date_deadline','=',time.strftime('%%Y/%%m/%%d'))]"/>
<separator orientation="vertical"/>
<field name="project_id"/>
<field name="user_id" widget="selection">
<filter icon="terp-project" string="My Task" domain="[('user_id','=',uid)]" default="1"/>
</field>
+ </group>
+ <newline/>
+ <group expand="1" string="Extended options..." colspan="10" col="12">
+ <filter string="Draft" icon="terp-project" domain="[('state','=','draft')]"/>
+ <filter string="In Progress" icon="terp-project" domain="[('state','=','open')]"/>
+ <filter string="Pending" icon="terp-project" domain="[('state','=','pending')]"/>
+ <filter string="Done" icon="terp-project" domain="[('state','=','done')]"/>
+ <filter string="Cancelled" icon="terp-project" domain="[('state','=','cancelled')]"/>
+ <separator orientation="vertical"/>
+ <field name="date_start"/>
+ <newline/>
+ <filter icon="terp-project" string="Very Low" domain="[('priority','=','4')]"/>
+ <filter icon="terp-project" string="Low" domain="[('priority','=','3')]"/>
+ <filter icon="terp-project" string="Medium" domain="[('priority','=','2')]"/>
+ <filter icon="terp-project" string="Urgent" domain="[('priority','=','1')]"/>
+ <filter icon="terp-project" string="Very Urgent" domain="[('priority','=','0')]"/>
+ <separator orientation="vertical"/>
+ <field name="date_end"/>
+ </group>
<newline/>
<group expand="1" string="Group By..." colspan="10" col="11">
<filter string="User" icon="terp-project" context="{'group_by':'user_id'}" />
- <filter string="Project" icon="terp-project" context="{'group_by':'project_id'}" default = "1"/>
+ <filter string="Project" icon="terp-project" context="{'group_by':'project_id'}" />
+ <filter string="Partner" icon="terp-project" context="{'group_by':'partner_id'}" />
<separator orientation="vertical"/>
<filter string="State" icon="terp-project" context="{'group_by':'state'}"/>
+ <filter string="Company" icon="terp-project" context="{'group_by':'company_id'}" />
+ <filter string="Stage" icon="terp-project" context="{'group_by':'type'}" />
<separator orientation="vertical"/>
<filter string="Month" icon="terp-project" context="{'group_by':'month'}"/>
<filter string="Year" icon="terp-project" context="{'group_by':'name'}"/>