From 4aa3658adb8749da86be3a022f0daae962b4441a Mon Sep 17 00:00:00 2001 From: Damien Bouvy Date: Wed, 5 Aug 2015 15:03:31 +0200 Subject: [PATCH] [IMP] website_quote: use website_mail generic chatter --- addons/website_quote/__openerp__.py | 2 +- addons/website_quote/controllers/main.py | 39 ++++--------------- .../website_quote/views/website_quotation.xml | 33 +++------------- 3 files changed, 14 insertions(+), 60 deletions(-) diff --git a/addons/website_quote/__openerp__.py b/addons/website_quote/__openerp__.py index 9830a3ee15b..379d8eab1e7 100644 --- a/addons/website_quote/__openerp__.py +++ b/addons/website_quote/__openerp__.py @@ -10,7 +10,7 @@ OpenERP Sale Quote Roller """, 'author': 'OpenERP SA', - 'depends': ['website', 'sale', 'mail', 'web_tip', 'payment', 'website_portal'], + 'depends': ['website', 'sale', 'mail', 'web_tip', 'payment', 'website_portal_sale', 'website_mail'], 'data': [ 'quotation_report.xml', 'views/website_quotation.xml', diff --git a/addons/website_quote/controllers/main.py b/addons/website_quote/controllers/main.py index a64f261a9b0..0050cc04303 100644 --- a/addons/website_quote/controllers/main.py +++ b/addons/website_quote/controllers/main.py @@ -9,6 +9,8 @@ import datetime import time from openerp.tools.translate import _ +from openerp.addons.website_mail.controllers.main import _message_post_helper + class sale_quote(http.Controller): @http.route([ @@ -28,7 +30,7 @@ class sale_quote(http.Controller): if request.session.get('view_quote',False)!=now: request.session['view_quote'] = now body=_('Quotation viewed by customer') - self.__message_post(body, order_id, message_type='comment') + _message_post_helper(res_model='sale.order', res_id=order.id, message=body, token=token, token_field="access_token", message_type='notification') days = 0 if order.validity_date: days = (datetime.datetime.strptime(order.validity_date, '%Y-%m-%d') - datetime.datetime.now()).days + 1 @@ -51,7 +53,8 @@ class sale_quote(http.Controller): 'tx_id': tx_id, 'tx_state': tx.state if tx else False, 'tx_post_msg': tx.acquirer_id.post_msg if tx else False, - 'need_payment': not tx_id and order.state == 'manual' + 'need_payment': not tx_id and order.state == 'manual', + 'token': token, } if order.require_payment or (not tx_id and order.state == 'manual'): @@ -85,7 +88,7 @@ class sale_quote(http.Controller): attachments=sign and [('signature.png', sign.decode('base64'))] or [] order_obj.action_button_confirm(request.cr, SUPERUSER_ID, [order_id], context=request.context) message = _('Order signed by %s') % (signer,) - self.__message_post(message, order_id, message_type='comment', subtype='mt_comment', attachments=attachments) + _message_post_helper(message=message, res_id=order_id, res_model='sale.order', attachments=attachments, **({'token': token, 'token_field': 'access_token'} if token else {})) return True @http.route(['/quote///decline'], type='http', auth="public", website=True) @@ -97,37 +100,9 @@ class sale_quote(http.Controller): request.registry.get('sale.order').action_cancel(request.cr, SUPERUSER_ID, [order_id]) message = post.get('decline_message') if message: - self.__message_post(message, order_id, message_type='comment', subtype='mt_comment') + _message_post_helper(message=message, res_id=order_id, res_model='sale.order', **{'token': token, 'token_field': 'access_token'} if token else {}) return werkzeug.utils.redirect("/quote/%s/%s?message=2" % (order_id, token)) - @http.route(['/quote///post'], type='http', auth="public", website=True) - def post(self, order_id, token, **post): - # use SUPERUSER_ID allow to access/view order for public user - order_obj = request.registry.get('sale.order') - order = order_obj.browse(request.cr, SUPERUSER_ID, order_id) - message = post.get('comment') - if token != order.access_token: - return request.website.render('website.404') - if message: - self.__message_post(message, order_id, message_type='comment', subtype='mt_comment') - return werkzeug.utils.redirect("/quote/%s/%s?message=1" % (order_id, token)) - - def __message_post(self, message, order_id, message_type='comment', subtype=False, attachments=[]): - request.session.body = message - cr, uid, context = request.cr, request.uid, request.context - user = request.registry['res.users'].browse(cr, SUPERUSER_ID, uid, context=context) - if 'body' in request.session and request.session.body: - request.registry.get('sale.order').message_post(cr, SUPERUSER_ID, order_id, - body=request.session.body, - message_type=message_type, - subtype=subtype, - author_id=user.partner_id.id, - context=context, - attachments=attachments - ) - request.session.body = False - return True - @http.route(['/quote/update_line'], type='json', auth="public", website=True) def update(self, line_id, remove=False, unlink=False, order_id=None, token=None, **post): order = request.registry.get('sale.order').browse(request.cr, SUPERUSER_ID, int(order_id)) diff --git a/addons/website_quote/views/website_quotation.xml b/addons/website_quote/views/website_quotation.xml index abe81ebd5d8..c81eac21b10 100644 --- a/addons/website_quote/views/website_quotation.xml +++ b/addons/website_quote/views/website_quotation.xml @@ -351,32 +351,11 @@

History

-
-
- -
- - -
-
-
-
- -
    - -
  • -
    - -
    -
    - on -
    -
    -
    -
    -
  • -
    -
+ + + + +
@@ -637,7 +616,7 @@ -