From 69db26392f987fb0b82b867f02c54e09ddeb2a2f Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Tue, 27 Nov 2012 14:51:55 +0100 Subject: [PATCH] Implemented message to specific user bzr revid: nicolas.vanhoren@openerp.com-20121127135155-7ndbfraqw0g7rn78 --- addons/web_im/im.py | 12 +++++++----- addons/web_im/static/src/js/im.js | 7 ++----- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/addons/web_im/im.py b/addons/web_im/im.py index 11d02ade45f..2ecc1d23c01 100644 --- a/addons/web_im/im.py +++ b/addons/web_im/im.py @@ -106,21 +106,23 @@ class im_message(osv.osv): _name = 'im.message' _columns = { 'message': fields.char(string="Message", size=200, required=True), + 'from': fields.many2one("res.users", "From", required= True, ondelete='cascade'), + 'to': fields.many2one("res.users", "From", required=True, select=True, ondelete='cascade'), } def get_messages(self, cr, uid, last=None, context=None): if not last: - tmp = self.search(cr, uid, [], order="id desc", limit=1, context=context) - last = tmp[0] if len(tmp) else 0 - res = self.search(cr, uid, [['id', '>', last]], order="id", context=context) + tmp = self.search(cr, uid, [['to', '=', uid]], order="id desc", limit=1, context=context) + last = tmp[0] if len(tmp) >= 1 else -1 + res = self.search(cr, uid, [['id', '>', last], ['to', '=', uid]], order="id", context=context) res = self.read(cr, uid, res, ["id", "message"], context=context) lst = [x["message"] for x in res] if len(lst) > 0: last = res[-1]["id"] return {"res": lst, "last": last, "dbname": cr.dbname} - def post(self, cr, uid, message, context=None): - self.create(cr, uid, {"message": message}, context=context) + def post(self, cr, uid, message, to_user_id, context=None): + self.create(cr, uid, {"message": message, 'from': uid, 'to': to_user_id}, context=context) cr.commit() cr.execute("notify received_message") cr.commit() diff --git a/addons/web_im/static/src/js/im.js b/addons/web_im/static/src/js/im.js index 28386a67f7b..123ec4d1c0b 100644 --- a/addons/web_im/static/src/js/im.js +++ b/addons/web_im/static/src/js/im.js @@ -73,10 +73,6 @@ openerp.web_im = function(instance) { }); }); }, - send_message: function(user_rec, mes) { - var model = new instance.web.Model("im.message"); - model.call("post", [mes], {context: new instance.web.CompoundContext()}); - }, switch_display: function() { var fct = _.bind(function() { this.set("right_offset", $(window).width() - this.$el.offset().left); @@ -156,7 +152,8 @@ openerp.web_im = function(instance) { } var mes = this.$("input").val(); this.$("input").val(""); - this.im.send_message(this.user_rec, mes); + var model = new instance.web.Model("im.message"); + model.call("post", [mes, this.user_rec.id], {context: new instance.web.CompoundContext()}); }, });