summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorced <>2007-02-28 21:50:24 +0000
committerced <>2007-02-28 21:50:24 +0000
commite2e065ce5b84c238ae01db1c4486f255d02f4a68 (patch)
treedb0a905bcecab6806a3ab03e11820d0351b66621
parent93cab3ffdde839b55edcb58503c7ed82c852e766 (diff)
KERNEL,CLIENT: add right-click for translate label
bzr revid: ced-394d547d53fe085331431661ae7568dc792665e6
-rw-r--r--bin/netsvc.py8
-rw-r--r--bin/osv/orm.py38
-rwxr-xr-xbin/tinyerp-server.py6
3 files changed, 47 insertions, 5 deletions
diff --git a/bin/netsvc.py b/bin/netsvc.py
index ba4e2983c90..833154628e0 100644
--- a/bin/netsvc.py
+++ b/bin/netsvc.py
@@ -359,10 +359,12 @@ class TinySocketServerThread(threading.Thread):
def stop(self):
self.running=False
for t in self.threads:
- print "thread"
t.stop()
- self.socket.shutdown(socket.SHUT_RDWR)
- self.socket.close()
+ try:
+ self.socket.shutdown(socket.SHUT_RDWR)
+ self.socket.close()
+ except:
+ return False
# vim:noexpandtab:
diff --git a/bin/osv/orm.py b/bin/osv/orm.py
index 480adabfdba..92c533e3ca0 100644
--- a/bin/osv/orm.py
+++ b/bin/osv/orm.py
@@ -1528,4 +1528,42 @@ class orm(object):
del data[self._inherits[v]]
return self.create(cr, uid, data)
+ def read_string(self, cr, uid, id, langs, fields=None, context={}):
+ res = {}
+ res2 = {}
+ self.pool.get('ir.model.access').check(cr, uid, self._name, 'read')
+ if not fields:
+ fields = self._columns.keys() + self._inherit_fields.keys()
+ for lang in langs:
+ res[lang] = {'code': lang}
+ for f in fields:
+ if f in self._columns:
+ res_trans = self.pool.get('ir.translation')._get_source(cr, uid, self._name+','+f, 'field', lang)
+ if res_trans:
+ res[lang][f]=res_trans
+ else:
+ print "columns:", self._columns[f].string
+ res[lang][f]=self._columns[f].string
+ for table in self._inherits:
+ cols = intersect(self._inherit_fields.keys(), fields)
+ res2 = self.pool.get(table).read_string(cr, uid, id, langs, cols, context)
+ for lang in res2:
+ if lang in res:
+ res[lang]={'code': lang}
+ for f in res2[lang]:
+ res[lang][f]=res2[lang][f]
+ return res
+
+ def write_string(self, cr, uid, id, langs, vals, context={}):
+ self.pool.get('ir.model.access').check(cr, uid, self._name, 'write')
+ for lang in langs:
+ for field in vals:
+ if field in self._columns:
+ self.pool.get('ir.translation')._set_ids(cr, uid, self._name+','+field, 'field', lang, [0], vals[field])
+ for table in self._inherits:
+ cols = intersect(self._inherit_fields.keys(), vals)
+ if cols:
+ self.pool.get(table).write_string(cr, uid, id, langs, vals, context)
+ return True
+
# vim:noexpandtab:ts=4
diff --git a/bin/tinyerp-server.py b/bin/tinyerp-server.py
index da0397b1657..76553e53067 100755
--- a/bin/tinyerp-server.py
+++ b/bin/tinyerp-server.py
@@ -241,8 +241,10 @@ if tools.config['netrpc']:
def handler(signum, frame):
from tools import config
- tinySocket.stop()
- httpd.stop()
+ if tools.config['netrpc']:
+ tinySocket.stop()
+ if tools.config['xmlrpc']:
+ httpd.stop()
netsvc.Agent.quit()
if config['pidfile']:
os.unlink(config['pidfile'])