From 9e17dd58d819d00fa6c00d7f28355d6c1ba94d32 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Wed, 26 Jun 2013 16:22:42 +0200 Subject: [PATCH] [FIX] project: fixed various report views + some filters. bzr revid: tde@openerp.com-20130626142242-aztr40zazsl20eif --- addons/project/project.py | 11 ++++--- addons/project/project_view.xml | 3 +- addons/project/report/project_cumulative.xml | 4 +-- addons/project/report/project_report.py | 6 ++-- addons/project/report/project_report_view.xml | 29 ++++++++++--------- 5 files changed, 28 insertions(+), 25 deletions(-) diff --git a/addons/project/project.py b/addons/project/project.py index 738c512fe16..2e6e351fefb 100644 --- a/addons/project/project.py +++ b/addons/project/project.py @@ -1301,7 +1301,7 @@ class project_task_history(osv.osv): def _get_date(self, cr, uid, ids, name, arg, context=None): result = {} for history in self.browse(cr, uid, ids, context=context): - if history.state in ('done','cancelled'): + if history.type_id and history.type_id.fold: result[history.id] = history.date continue cr.execute('''select @@ -1335,14 +1335,13 @@ class project_task_history(osv.osv): _columns = { 'task_id': fields.many2one('project.task', 'Task', ondelete='cascade', required=True, select=True), 'type_id': fields.many2one('project.task.type', 'Stage'), - 'state': fields.selection([('draft', 'New'), ('cancelled', 'Cancelled'),('open', 'In Progress'),('pending', 'Pending'), ('done', 'Done')], 'Status'), - 'kanban_state': fields.selection([('normal', 'Normal'),('blocked', 'Blocked'),('done', 'Ready for next stage')], 'Kanban State', required=False), + 'kanban_state': fields.selection([('normal', 'Normal'), ('blocked', 'Blocked'), ('done', 'Ready for next stage')], 'Kanban State', required=False), 'date': fields.date('Date', select=True), 'end_date': fields.function(_get_date, string='End Date', type="date", store={ 'project.task.history': (_get_related_date, None, 20) }), - 'remaining_hours': fields.float('Remaining Time', digits=(16,2)), - 'planned_hours': fields.float('Planned Time', digits=(16,2)), + 'remaining_hours': fields.float('Remaining Time', digits=(16, 2)), + 'planned_hours': fields.float('Planned Time', digits=(16, 2)), 'user_id': fields.many2one('res.users', 'Responsible'), } _defaults = { @@ -1372,7 +1371,7 @@ class project_task_history_cumulative(osv.osv): SELECT h.id AS history_id, h.date+generate_series(0, CAST((coalesce(h.end_date, DATE 'tomorrow')::date - h.date) AS integer)-1) AS date, - h.task_id, h.type_id, h.user_id, h.kanban_state, h.state, + h.task_id, h.type_id, h.user_id, h.kanban_state, greatest(h.remaining_hours, 1) AS remaining_hours, greatest(h.planned_hours, 1) AS planned_hours, t.project_id FROM diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml index 8eafacd3bc0..cc040983030 100644 --- a/addons/project/project_view.xml +++ b/addons/project/project_view.xml @@ -36,8 +36,9 @@ + - + diff --git a/addons/project/report/project_cumulative.xml b/addons/project/report/project_cumulative.xml index 17e059c8de7..9b9490f0b28 100644 --- a/addons/project/report/project_cumulative.xml +++ b/addons/project/report/project_cumulative.xml @@ -14,7 +14,6 @@ - @@ -40,8 +39,7 @@ - - + diff --git a/addons/project/report/project_report.py b/addons/project/report/project_report.py index a14ca10dfce..e7d431662b3 100644 --- a/addons/project/report/project_report.py +++ b/addons/project/report/project_report.py @@ -19,9 +19,11 @@ # ############################################################################## +from openerp.tools.misc import MONTHS from openerp.osv import fields, osv from openerp import tools + class report_project_task_user(osv.osv): _name = "report.project.task.user" _description = "Tasks by user and project" @@ -36,7 +38,7 @@ class report_project_task_user(osv.osv): 'date_end': fields.date('Ending Date', readonly=True), 'date_deadline': fields.date('Deadline', readonly=True), 'date_last_stage_update': fields.date('Last Stage Update', readonly=True), - 'month_last_stage_update': fields.date('Month of Last Stage Update', readonly=True), + 'month_last_stage_update': fields.selection(MONTHS, 'Month of Last Stage Update', 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), @@ -52,7 +54,7 @@ class report_project_task_user(osv.osv): 'nbr': fields.integer('# of tasks', readonly=True), 'priority': fields.selection([('4', 'Very Low'), ('3', 'Low'), ('2', 'Medium'), ('1', 'Urgent'), ('0', 'Very urgent')], string='Priority', 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), + 'month':fields.selection(MONTHS, 'Month', readonly=True), 'state': fields.selection([('draft', 'Draft'), ('open', 'In Progress'), ('pending', 'Pending'), ('cancelled', 'Cancelled'), ('done', 'Done')],'Status', readonly=True), 'company_id': fields.many2one('res.company', 'Company', readonly=True), 'partner_id': fields.many2one('res.partner', 'Contact', readonly=True), diff --git a/addons/project/report/project_report_view.xml b/addons/project/report/project_report_view.xml index 38107ab9bcf..ffaf23ccc4e 100644 --- a/addons/project/report/project_report_view.xml +++ b/addons/project/report/project_report_view.xml @@ -11,19 +11,6 @@ report.project.task.user - - - - - - - - - - - - - @@ -35,6 +22,21 @@ + + + + + + + + + + + + + + + @@ -63,6 +65,7 @@ +