summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJérome Maes <jem@openerp.com>2015-09-23 14:52:21 +0200
committerJérome Maes <jem@openerp.com>2015-09-25 16:03:40 +0200
commitc436c56148a386e7121358d9bc7db3b7d0f88052 (patch)
tree35a85f2502f86f2a4f4df2dd7faea205205bf336
parent26f6a0c3f98b3e69875a902936fc74e6b956c4f6 (diff)
Revert "[FIX] website_mail, website_sale : redirect to login page to post comment"
This reverts commit 7974bf54411f189d1d52da90beae95da51d90dd0.
-rw-r--r--addons/website_mail/controllers/main.py55
-rw-r--r--addons/website_mail/static/src/js/message_post.js15
-rw-r--r--addons/website_mail/views/website_mail.xml4
-rw-r--r--addons/website_sale/controllers/website_mail.py12
-rw-r--r--addons/website_sale/views/templates.xml1
5 files changed, 27 insertions, 60 deletions
diff --git a/addons/website_mail/controllers/main.py b/addons/website_mail/controllers/main.py
index 1d98899ba4e..5ae3b6a0734 100644
--- a/addons/website_mail/controllers/main.py
+++ b/addons/website_mail/controllers/main.py
@@ -1,14 +1,10 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
-
-import urllib
-
from hashlib import sha1
from time import time
from werkzeug.exceptions import NotFound
-from werkzeug import url_encode
-from openerp import SUPERUSER_ID, _
+from openerp import SUPERUSER_ID
from openerp.addons.web import http
from openerp.addons.web.http import request
@@ -69,7 +65,6 @@ def _message_post_helper(res_model='', res_id=None, message='', token='', token_
res = res.sudo()
else:
raise NotFound()
- kw.pop('force_display', False)
return res.with_context({'mail_create_nosubscribe': nosubscribe}).message_post(body=message,
message_type=kw.pop('message_type', False) or "comment",
subtype=kw.pop('subtype', False) or "mt_comment",
@@ -152,47 +147,27 @@ class WebsiteMail(http.Controller):
], context=context)) == 1
return values
- def _generate_login_url(self):
- url_params = request.params
- url_params.pop('force_display')
- url_params.update(redirect=request.httprequest.referrer)
- redirect_login_url = '/website_mail/post/post' + '?' + url_encode(url_params)
- url = '/web/login?redirect=%s' % urllib.quote(redirect_login_url)
- return url
-
@http.route(['/website_mail/post/json'], type='json', auth='public', website=True)
def chatter_json(self, res_model='', res_id=None, message='', **kw):
- # if the chatter is displayed but the user is not logged, redirect him to login page
- if kw.get('force_display') and not request.session.uid:
- return {'redirect': self._generate_login_url()}
- # otherwise, try to post the comment
res_id = int(res_id)
try:
- if message:
- msg = _message_post_helper(res_model, res_id, message, **kw)
- data = {
- 'id': msg.id,
- 'body': msg.body,
- 'date': msg.date,
- 'author': msg.author_id.name,
- 'image_url': request.website.image_url(msg.author_id, 'image_small')
- }
- return data
- else:
- return {'error': _('Empty comments are not allowed. Please fill the textearea.')}
+ msg = _message_post_helper(res_model, res_id, message, **kw)
+ data = {
+ 'id': msg.id,
+ 'body': msg.body,
+ 'date': msg.date,
+ 'author': msg.author_id.name,
+ 'image_url': request.website.image_url(msg.author_id, 'image_small')
+ }
+ return data
except Exception:
- return {'error': _('Oops! Something went wrong. Try to reload the page and to log in.')}
+ return False
@http.route(['/website_mail/post/post'], type='http', method=['POST'], auth='public', website=True)
def chatter_post(self, res_model='', res_id=None, message='', redirect=None, **kw):
+ res_id = int(res_id)
url = request.httprequest.referrer
- if kw.get('force_display') and not request.session.uid:
- # set the redirection param to be redirect here when logged in
- url = self._generate_login_url()
- else:
- res_id = int(res_id)
- url = redirect or url
- if message:
- message = _message_post_helper(res_model, res_id, message, **kw)
- url = url + "#message-%s" % (message.id,)
+ if message:
+ message = _message_post_helper(res_model, res_id, message, **kw)
+ url = url + "#message-%s" % (message.id,)
return request.redirect(url)
diff --git a/addons/website_mail/static/src/js/message_post.js b/addons/website_mail/static/src/js/message_post.js
index 8005cb16677..3ddb5e2ce90 100644
--- a/addons/website_mail/static/src/js/message_post.js
+++ b/addons/website_mail/static/src/js/message_post.js
@@ -38,16 +38,11 @@ odoo.define('website_mail.thread', function(require) {
$button.prepend('<i class="fa fa-refresh fa-spin"></i> ');
// post message, shw/hide error message and empty textarea
ajax.jsonRpc(action, 'call', data).then(function (result) {
- if (!result['error']) {
- if(result['redirect']){
- window.location.replace(result['redirect']);
- }else{
- $error.fadeOut();
- self.prepend_message(result);
- $form.find('textarea').val('');
- }
- } else { // display error message from server
- $error.html(result['error']);
+ if (result) {
+ $error.fadeOut();
+ self.prepend_message(result);
+ $form.find('textarea').val('');
+ } else {
$error.fadeIn();
}
$button.html(button_bk);
diff --git a/addons/website_mail/views/website_mail.xml b/addons/website_mail/views/website_mail.xml
index e30f8ed5764..2e246ac18c2 100644
--- a/addons/website_mail/views/website_mail.xml
+++ b/addons/website_mail/views/website_mail.xml
@@ -38,11 +38,10 @@
object_shasign function defined in the main controller of website_portal
:sha_time string (optional): timestamp of the shasign generation
:chatter_mode string: 'json' or 'post' depending on what kind of request you want
- :force_display : True if the chatter should be display, but posting a message required a logged user. Otherwise, the user will be redirect to the login page.
-->
<section id="discussion" class="hidden-print oe_website_portal o_website_mail_thread">
<section class="mb32 css_editable_mode_hidden hidden-print">
- <form class="o_website_chatter_form" t-attf-action="/website_mail/post/#{chatter_mode}" method="POST" t-if="website.env.user != request.env['ir.model.data'].xmlid_to_object('base.public_user') or token or sha_in or force_display">
+ <form class="o_website_chatter_form" t-attf-action="/website_mail/post/#{chatter_mode}" method="POST" t-if="website.env.user != request.env['ir.model.data'].xmlid_to_object('base.public_user') or token or sha_in">
<img class="img pull-left img-circle" t-attf-src="/web/image/res.partner/#{user_id.partner_id.id}/image_small/50x50" style="width: 50px; margin-right: 10px;"/>
<div class="pull-left mb32" style="width: 75%%">
<textarea rows="4" name="message" class="form-control" placeholder="Write a message..."></textarea>
@@ -52,7 +51,6 @@
<input type='hidden' name="sha_in" t-att-value="sha_in" t-if="sha_in"/>
<input type='hidden' name="sha_time" t-att-value="sha_time" t-if="sha_time"/>
<input type='hidden' name="token_field" t-att-value="token_field" t-if="token_field"/>
- <input type='hidden' name="force_display" t-att-value="force_display" t-if="force_display"/>
<div class="alert alert-danger mt8 mb0 o_website_chatter_error" style="display:none;">
Oops! Something went wrong. Try to reload the page and to log in.
</div>
diff --git a/addons/website_sale/controllers/website_mail.py b/addons/website_sale/controllers/website_mail.py
index dd6b0b7757e..937adbb3d0f 100644
--- a/addons/website_sale/controllers/website_mail.py
+++ b/addons/website_sale/controllers/website_mail.py
@@ -15,24 +15,24 @@ class WebsiteMailController(WebsiteMail):
def chatter_json(self, res_model='', res_id=None, message='', **kw):
params = kw.copy()
params.pop('rating', False)
- result = super(WebsiteMailController, self).chatter_json(res_model=res_model, res_id=res_id, message=message, **params)
- if result and result.get('id') and kw.get('rating') and res_model == 'product.template': # restrict rating only for product template
+ message_data = super(WebsiteMailController, self).chatter_json(res_model=res_model, res_id=res_id, message=message, **params)
+ if message_data and kw.get('rating') and res_model == 'product.template': # restrict rating only for product template
rating = request.env['rating.rating'].create({
'rating': float(kw.get('rating')),
'res_model': res_model,
'res_id': res_id,
- 'message_id': result['id'],
+ 'message_id': message_data['id'],
})
- result.update({
+ message_data.update({
'rating_default_value': rating.rating,
'rating_disabled': True,
})
- return result
+ return message_data
@http.route(['/website_mail/post/post'], type='http', method=['POST'], auth='public', website=True)
def chatter_post(self, res_model='', res_id=None, message='', redirect=None, **kw):
params = kw.copy()
- params.pop('rating', False)
+ params.pop('rating')
response = super(WebsiteMailController, self).chatter_post(res_model=res_model, res_id=res_id, message=message, redirect=redirect, **params)
if kw.get('rating') and res_model == 'product.template': # restrict rating only for product template
try:
diff --git a/addons/website_sale/views/templates.xml b/addons/website_sale/views/templates.xml
index 562f6170b99..135acd60c14 100644
--- a/addons/website_sale/views/templates.xml
+++ b/addons/website_sale/views/templates.xml
@@ -593,7 +593,6 @@
<t t-set="object" t-value="product"/>
<t t-set="chatter_mode" t-value="'json'"/>
<t t-set="rating_enable" t-value="True"/>
- <t t-set="force_display" t-value="True"/>
</t>
</div>
</section>