summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorniv-openerp <nicolas.vanhoren@openerp.com>2013-08-26 10:45:54 +0200
committerniv-openerp <nicolas.vanhoren@openerp.com>2013-08-26 10:45:54 +0200
commit8f33049f2fbe2e109a4f75d3e33953abd4e506c9 (patch)
treee2b44c431bf08633a361728d127a1d6ebc4f44cc
parentb874f4bec27aa607f6958d7085d47fe44de5c748 (diff)
Changed user field to user_id and added unique constraint
bzr revid: nicolas.vanhoren@openerp.com-20130826084554-221ts80q8c5jvqv1
-rw-r--r--addons/im/im.py25
-rw-r--r--addons/im/static/src/js/im.js2
-rw-r--r--addons/im/static/src/js/im_common.js4
-rw-r--r--addons/im_livechat/im_livechat.py16
4 files changed, 26 insertions, 21 deletions
diff --git a/addons/im/im.py b/addons/im/im.py
index 97860d33e0a..710fd1760fe 100644
--- a/addons/im/im.py
+++ b/addons/im/im.py
@@ -230,12 +230,12 @@ class im_user(osv.osv):
def get_by_user_ids(self, cr, uid, ids, context=None):
user_ids = [x for x in ids if isinstance(x, int)]
uuids = [x for x in ids if isinstance(x, (str, unicode))]
- users = self.search(cr, openerp.SUPERUSER_ID, ["|", ["user", "in", user_ids], ["uuid", "in", uuids]], context=None)
- records = self.read(cr, openerp.SUPERUSER_ID, users, ["user", "uuid"], context=None)
+ users = self.search(cr, openerp.SUPERUSER_ID, ["|", ["user_id", "in", user_ids], ["uuid", "in", uuids]], context=None)
+ records = self.read(cr, openerp.SUPERUSER_ID, users, ["user_id", "uuid"], context=None)
inside = {}
for i in records:
- if i["user"]:
- inside[i["user"][0]] = True
+ if i["user_id"]:
+ inside[i["user_id"][0]] = True
elif ["uuid"]:
inside[i["uuid"]] = True
not_inside = {}
@@ -244,8 +244,8 @@ class im_user(osv.osv):
not_inside[i] = True
for to_create in not_inside.keys():
if isinstance(to_create, int):
- created = self.create(cr, openerp.SUPERUSER_ID, {"user": to_create}, context=context)
- records.append({"id": created, "user": [to_create, ""]})
+ created = self.create(cr, openerp.SUPERUSER_ID, {"user_id": to_create}, context=context)
+ records.append({"id": created, "user_id": [to_create, ""]})
else:
created = self.create(cr, openerp.SUPERUSER_ID, {"uuid": to_create}, context=context)
records.append({"id": created, "uuid": to_create})
@@ -261,16 +261,16 @@ class im_user(osv.osv):
res = {}
for record in self.browse(cr, uid, ids, context=context):
res[record.id] = record.assigned_name
- if record.user:
- res[record.id] = record.user.name
+ if record.user_id:
+ res[record.id] = record.user_id.name
continue
return res
_columns = {
'name': fields.function(_get_name, type='char', size=200, string="Name", store=True, readonly=True),
'assigned_name': fields.char(string="Assigned Name", size=200, required=False),
- 'image': fields.related('user', 'image_small', type='binary', string="Image", readonly=True),
- 'user': fields.many2one("res.users", string="User", select=True, ondelete='cascade'),
+ 'image': fields.related('user_id', 'image_small', type='binary', string="Image", readonly=True),
+ 'user_id': fields.many2one("res.users", string="User", select=True, ondelete='cascade'),
'uuid': fields.char(string="UUID", size=50, select=True),
'im_last_received': fields.integer(string="Instant Messaging Last Received Message"),
'im_last_status': fields.boolean(strint="Instant Messaging Last Status"),
@@ -283,3 +283,8 @@ class im_user(osv.osv):
'im_last_status': False,
'im_last_status_update': lambda *args: datetime.datetime.now().strftime(DEFAULT_SERVER_DATETIME_FORMAT),
}
+
+ _sql_constraints = [
+ ('user_uniq', 'unique (user_id)', 'Only one chat user per OpenERP user.'),
+ ('uuid_uniq', 'unique (uuid)', 'Chat identifier already used.'),
+ ]
diff --git a/addons/im/static/src/js/im.js b/addons/im/static/src/js/im.js
index 9af04bf4f43..6af9b27c804 100644
--- a/addons/im/static/src/js/im.js
+++ b/addons/im/static/src/js/im.js
@@ -87,7 +87,7 @@
var self = this;
return this.user_search_dm.add(users.call("search_users",
[[["name", "ilike", this.get("current_search")], ["id", "<>", instance.session.uid]],
- ["name", "user", "uuid", "im_status"], USERS_LIMIT], {context:new instance.web.CompoundContext()})).then(function(result) {
+ ["name", "user_id", "uuid", "im_status"], USERS_LIMIT], {context:new instance.web.CompoundContext()})).then(function(result) {
self.c_manager.add_to_user_cache(result);
self.$(".oe_im_input").val("");
var old_users = self.users;
diff --git a/addons/im/static/src/js/im_common.js b/addons/im/static/src/js/im_common.js
index a6314a978e2..bf89bccddcb 100644
--- a/addons/im/static/src/js/im_common.js
+++ b/addons/im/static/src/js/im_common.js
@@ -35,8 +35,8 @@ function declare($, _, openerp) {
user_rec.image_url = im_common.connection.url("/im/static/src/img/avatar/avatar.jpeg");
// TODO : check it works correctly
- if (user_rec.user)
- user_rec.image_url = im_common.connection.url('/web/binary/image', {model:'res.users', field: 'image_small', id: user_rec.user[0]});
+ if (user_rec.user_id)
+ user_rec.image_url = im_common.connection.url('/web/binary/image', {model:'res.users', field: 'image_small', id: user_rec.user_id[0]});
/*if (user_rec.image)
user_rec.image_url = "data:image/png;base64," + user_rec.image;*/
diff --git a/addons/im_livechat/im_livechat.py b/addons/im_livechat/im_livechat.py
index b68a0079c3a..cce8f49e84b 100644
--- a/addons/im_livechat/im_livechat.py
+++ b/addons/im_livechat/im_livechat.py
@@ -206,12 +206,12 @@ class im_message(osv.osv):
res = {}
for record in self.browse(cr, uid, ids, context=context):
res[record.id] = False
- if record.to_id.user and record.from_id.user:
+ if record.to_id.user_id and record.from_id.user_id:
continue
- elif record.to_id.user:
- res[record.id] = record.to_id.user.id
- elif record.from_id.user:
- res[record.id] = record.from_id.user.id
+ elif record.to_id.user_id:
+ res[record.id] = record.to_id.user_id.id
+ elif record.from_id.user_id:
+ res[record.id] = record.from_id.user_id.id
return res
def _customer(self, cr, uid, ids, name, arg, context=None):
@@ -230,11 +230,11 @@ class im_message(osv.osv):
res = {}
for record in self.browse(cr, uid, ids, context=context):
res[record.id] = False
- if not not record.to_id.user and not not record.from_id.user:
+ if not not record.to_id.user_id and not not record.from_id.user_id:
continue
- elif not not record.to_id.user:
+ elif not not record.to_id.user_id:
res[record.id] = "c2s"
- elif not not record.from_id.user:
+ elif not not record.from_id.user_id:
res[record.id] = "s2c"
return res