diff --git a/.tx/config b/.tx/config index 9b4495da31c..d73573536ab 100644 --- a/.tx/config +++ b/.tx/config @@ -882,12 +882,7 @@ file_filter = addons/website_rating/i18n/.po source_file = addons/website_rating/i18n/website_rating.pot source_lang = en -[odoo-11.website_rating_project] -file_filter = addons/website_rating_project/i18n/.po -source_file = addons/website_rating_project/i18n/website_rating_project.pot -source_lang = en - -[odoo-11.website_sale] +[odoo-master.website_sale] file_filter = addons/website_sale/i18n/.po source_file = addons/website_sale/i18n/website_sale.pot source_lang = en diff --git a/addons/project/__manifest__.py b/addons/project/__manifest__.py index 43b36689d88..e80837b5631 100644 --- a/addons/project/__manifest__.py +++ b/addons/project/__manifest__.py @@ -29,8 +29,9 @@ 'views/project_views.xml', 'views/res_partner_views.xml', 'views/res_config_settings_views.xml', - 'views/project_templates.xml', + 'views/project_assets.xml', 'views/project_portal_templates.xml', + 'views/project_rating_templates.xml', 'data/project_mail_template_data.xml', 'wizard/project_task_merge_wizard_views.xml', ], diff --git a/addons/project/controllers/__init__.py b/addons/project/controllers/__init__.py index 903b755e71e..10825353c81 100644 --- a/addons/project/controllers/__init__.py +++ b/addons/project/controllers/__init__.py @@ -2,3 +2,4 @@ # Part of Odoo. See LICENSE file for full copyright and licensing details. from . import portal +from . import rating diff --git a/addons/website_rating_project/controllers/main.py b/addons/project/controllers/rating.py similarity index 95% rename from addons/website_rating_project/controllers/main.py rename to addons/project/controllers/rating.py index 98c6cacc057..3343674c0e8 100644 --- a/addons/website_rating_project/controllers/main.py +++ b/addons/project/controllers/rating.py @@ -7,13 +7,13 @@ from odoo import http from odoo.http import request -class WebsiteRatingProject(http.Controller): +class RatingProject(http.Controller): @http.route(['/project/rating/'], type='http', auth="public", website=True) def index(self, **kw): projects = request.env['project.project'].sudo().search([('rating_status', '!=', 'no'), ('portal_show_rating', '=', True)]) values = {'projects': projects} - return request.render('website_rating_project.index', values) + return request.render('project.rating_index', values) def _calculate_period_partner_stats(self, project_id): # get raw data: number of rating by rated partner, by rating value, by period @@ -85,7 +85,7 @@ class WebsiteRatingProject(http.Controller): if not ((project.rating_status != 'no') and project.portal_show_rating) and not user.sudo(user).has_group('project.group_project_manager'): raise NotFound() - return request.render('website_rating_project.project_rating_page', { + return request.render('project.rating_project_rating_page', { 'project': project, 'ratings': request.env['rating.rating'].sudo().search([('consumed', '=', True), ('parent_res_model', '=', 'project.project'), ('parent_res_id', '=', project_id)], order='write_date DESC', limit=50), 'statistics': self._calculate_period_partner_stats(project_id), diff --git a/addons/project/models/project.py b/addons/project/models/project.py index c1e802839da..1df6bbad540 100644 --- a/addons/project/models/project.py +++ b/addons/project/models/project.py @@ -235,9 +235,11 @@ class Project(models.Model): "- Periodical Rating: Email will be sent periodically\n\n" "Don't forget to set up the mail templates on the stages for which you want to get the customer's feedbacks.", default="no", required=True) rating_status_period = fields.Selection([ - ('daily', 'Daily'), ('weekly', 'Weekly'), ('bimonthly', 'Twice a Month'), - ('monthly', 'Once a Month'), ('quarterly', 'Quarterly'), ('yearly', 'Yearly') - ], 'Rating Frequency') + ('daily', 'Daily'), ('weekly', 'Weekly'), ('bimonthly', 'Twice a Month'), + ('monthly', 'Once a Month'), ('quarterly', 'Quarterly'), ('yearly', 'Yearly') + ], 'Rating Frequency') + + portal_show_rating = fields.Boolean('Rating visible publicly', copy=False, oldname='website_published') _sql_constraints = [ ('project_date_greater', 'check(date >= date_start)', 'Error! project start-date must be lower than project end-date.') @@ -405,6 +407,13 @@ class Project(models.Model): @api.multi def action_view_all_rating(self): """ return the action to see all the rating of the project, and activate default filters """ + if self.portal_show_rating: + return { + 'type': 'ir.actions.act_url', + 'name': "Redirect to the Website Projcet Rating Page", + 'target': 'self', + 'url': "/project/rating/%s" % (self.id,) + } action = self.env['ir.actions.act_window'].for_xml_id('project', 'rating_rating_action_view_project_rating') action['name'] = _('Ratings of %s') % (self.name,) action_context = safe_eval(action['context']) if action['context'] else {} diff --git a/addons/website_rating_project/static/src/js/website_rating_project.js b/addons/project/static/src/js/portal_rating.js similarity index 77% rename from addons/website_rating_project/static/src/js/website_rating_project.js rename to addons/project/static/src/js/portal_rating.js index 44c91980ae7..12740b9bbba 100644 --- a/addons/website_rating_project/static/src/js/website_rating_project.js +++ b/addons/project/static/src/js/portal_rating.js @@ -4,14 +4,14 @@ odoo.define('website_rating_project.rating', function (require) { var time = require('web.time'); require('web.dom_ready'); - if(!$('.o_website_rating_project').length) { - return $.Deferred().reject("DOM doesn't contain '.o_website_rating_project'"); + if(!$('.o_portal_project_rating').length) { + return $.Deferred().reject("DOM doesn't contain '.o_portal_project_rating'"); } /** * Rating popover with some informations */ - $('.o_website_rating_project .o_rating_image').popover({ + $('.o_portal_project_rating .o_rating_image').popover({ placement: 'bottom', trigger: 'hover', html: 'true', diff --git a/addons/website_rating_project/static/src/less/website_rating_project.less b/addons/project/static/src/less/portal_rating.less similarity index 95% rename from addons/website_rating_project/static/src/less/website_rating_project.less rename to addons/project/static/src/less/portal_rating.less index e95b1dbfac7..4ae3290a75b 100644 --- a/addons/website_rating_project/static/src/less/website_rating_project.less +++ b/addons/project/static/src/less/portal_rating.less @@ -1,4 +1,4 @@ -.o_website_rating_project { +.o_portal_project_rating { .thumbnail{ height: 240px; } diff --git a/addons/project/views/project_templates.xml b/addons/project/views/project_assets.xml similarity index 70% rename from addons/project/views/project_templates.xml rename to addons/project/views/project_assets.xml index 9b6d13d2582..7a2c4647984 100644 --- a/addons/project/views/project_templates.xml +++ b/addons/project/views/project_assets.xml @@ -8,6 +8,14 @@ + +