From 3c68b20fb504f8c215b0391ddbcf5f4d699217cd Mon Sep 17 00:00:00 2001 From: Fabien Pinckaers Date: Sun, 15 Feb 2015 22:14:26 +0100 Subject: [PATCH] [IMP] project rating improved public view --- addons/project/project_view.xml | 23 ++--- addons/project/static/src/css/project.css | 11 +-- addons/rating_project/views/project_view.xml | 4 +- .../controllers/main.py | 44 ++++------ .../src/css/website_rating_project_issue.css | 25 ++---- .../views/website_rating_project.xml | 87 ++++++++++++------- 6 files changed, 89 insertions(+), 105 deletions(-) diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml index 77d499ccf6d..b7eac8f0673 100644 --- a/addons/project/project_view.xml +++ b/addons/project/project_view.xml @@ -258,7 +258,7 @@ -
+
    @@ -285,29 +285,22 @@
-
- - No activity yet, click to enter in the project. -
-
-
+
+ + No activity yet, click to enter in the project. +
-
-
- - -
-
-
- +
+
+
diff --git a/addons/project/static/src/css/project.css b/addons/project/static/src/css/project.css index bea28469696..20e6f6b09f8 100644 --- a/addons/project/static/src/css/project.css +++ b/addons/project/static/src/css/project.css @@ -1,3 +1,4 @@ + .oe_kanban_project_avatars img { width: 30px; border-radius: 2px; @@ -14,11 +15,9 @@ position: relative; } -.openerp .oe_kanban_view .oe_kanban_project_task_spark { - /* Customize width and height of kanban according bootstrap3 */ +.openerp .oe_kanban_view .oe_kanban_project { width: 290px; - min-height: 120px; - /* End of customize */ + min-height: 150px; cursor: default; } @@ -26,10 +25,6 @@ content: "%"; } -.openerp .oe_project_kanban_content { - margin-right: 16px !important; - margin-left: 16px !important; -} .openerp .oe_margin_top_8 { margin-top: 8px; } diff --git a/addons/rating_project/views/project_view.xml b/addons/rating_project/views/project_view.xml index 3eac314ee89..897a6379878 100644 --- a/addons/rating_project/views/project_view.xml +++ b/addons/rating_project/views/project_view.xml @@ -43,12 +43,14 @@ - + +
%
+
diff --git a/addons/website_rating_project_issue/controllers/main.py b/addons/website_rating_project_issue/controllers/main.py index ae12d9eefb2..c076bdb5b7e 100644 --- a/addons/website_rating_project_issue/controllers/main.py +++ b/addons/website_rating_project_issue/controllers/main.py @@ -3,6 +3,7 @@ from openerp import _ from openerp.addons.web import http from openerp.addons.web.http import request +import datetime class WebsiteRatingProject(http.Controller): @@ -15,38 +16,23 @@ class WebsiteRatingProject(http.Controller): @http.route(['/project/rating/'], type='http', auth="public", website=True) def page(self, project=None, **kw): # create domain for rating - domain = [] - if project.use_tasks: - task_ids = [t.id for t in project.tasks] - domain += ['&', ('res_model', '=', 'project.task'), ('res_id', 'in', task_ids)] - if project.use_issues: - issue_ids = [i.id for i in project.issue_ids] - domain += ['&', ('res_model', '=', 'project.issue'), ('res_id', 'in', issue_ids)] - if project.use_issues and project.use_tasks: - domain = ['|'] + domain - ratings = request.env['rating.rating'].search(domain, order="write_date desc", limit=100) - # compute stat only for the last 100 ratings - grades_label = { - 'success' : _('Happy'), - 'warning': _('Okay'), - 'danger': _('Bad'), - } - res = dict.fromkeys(grades_label.keys(), 0) - for rating in ratings: - if rating.rating >= 7: - res['success'] += 1 - elif rating.rating > 3: - res['warning'] += 1 - else: - res['danger'] += 1 - for key, value in res.iteritems(): - res[key] = value / float(len(ratings)) * 100 if len(ratings) else 0 - # prepare and render + domain = [('res_model', '=', 'project.task')] + ratings = request.env['rating.rating'].search(domain, order="id desc", limit=100) + + yesterday = (datetime.date.today()-datetime.timedelta(days=-1)).strftime('%Y-%m-%d 23:59:59') + stats = {} + for x in (7, 30, 90): + todate = (datetime.date.today()-datetime.timedelta(days=-x)).strftime('%Y-%m-%d 00:00:00') + domdate = domain + [('create_date','<=',yesterday),('create_date','>=',todate)] + stats[x] = {0: 0, 5: 0, 10: 0} + rating_stats = request.env['rating.rating'].read_group(domdate, [], ['rating']) + total = reduce(lambda x, y: y['rating_count']+x, rating_stats, 0) + for rate in rating_stats: + stats[x][rate['rating']] = (rate['rating_count'] * 100) / total values = { 'team': project.sudo().members, 'project': project, 'ratings' : ratings, - 'stats': res, - 'labels': grades_label, + 'stats': stats, } return request.website.render('website_rating_project_issue.project_rating_page', values) diff --git a/addons/website_rating_project_issue/static/src/css/website_rating_project_issue.css b/addons/website_rating_project_issue/static/src/css/website_rating_project_issue.css index 7c4b741abad..7fdf57da316 100644 --- a/addons/website_rating_project_issue/static/src/css/website_rating_project_issue.css +++ b/addons/website_rating_project_issue/static/src/css/website_rating_project_issue.css @@ -1,24 +1,11 @@ +.oe_website_rating_project .oe_rate{ + clear: both; +} +.oe_website_rating_project .oe_rate img { + margin-right: 6px; +} .oe_website_rating_project .thumbnail{ height: 355px; } - -.oe_website_rating_project .progress { - position: relative; - height: 25px; -} -.oe_website_rating_project .progress > .progress-type { - position: absolute; - left: 0px; - font-weight: 800; - padding: 3px 30px 2px 10px; - color: rgb(255, 255, 255); - background-color: rgba(25, 25, 25, 0.2); -} -.oe_website_rating_project .progress > .progress-completed { - position: absolute; - right: 0px; - font-weight: 800; - padding: 3px 10px 2px; -} \ No newline at end of file diff --git a/addons/website_rating_project_issue/views/website_rating_project.xml b/addons/website_rating_project_issue/views/website_rating_project.xml index 54f8263437a..a188b369727 100644 --- a/addons/website_rating_project_issue/views/website_rating_project.xml +++ b/addons/website_rating_project_issue/views/website_rating_project.xml @@ -70,52 +70,73 @@ + +