diff options
| author | apa-tiny <apa@tinyerp.com> | 2010-04-09 14:25:14 +0530 |
|---|---|---|
| committer | apa-tiny <apa@tinyerp.com> | 2010-04-09 14:25:14 +0530 |
| commit | e8d0d0a4064cd6baedd2452fe453c4ce2fa032e7 (patch) | |
| tree | 92503512c6df45128d89c4ef266ba6a4de87f720 | |
| parent | 1b2c83c8fb5b5c200f22ae622f3bdb2e53f5e0f5 (diff) | |
[IMP]:project:Improved SQL report.(Tasks).
bzr revid: apa@tinyerp.com-20100409085514-dxm5pztqpzd8gaoh
| -rw-r--r-- | addons/project/report/project_report.py | 38 | ||||
| -rw-r--r-- | addons/project/report/project_report_view.xml | 54 |
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'}"/> |
