[tryton-debian-vcs] tryton-server branch upstream-2.2 created. 93ad2f091255bf35f50566a6ae36e6025cad3e16
Mathias Behrle
tryton-debian-vcs at alioth.debian.org
Wed Nov 27 17:15:14 UTC 2013
The following commit has been merged in the upstream-2.2 branch:
https://alioth.debian.org/plugins/scmgit/cgi-bin/gitweb.cgi/?p=tryton/tryton-server.git;a=commitdiff;h=93ad2f091255bf35f50566a6ae36e6025cad3e16
commit 93ad2f091255bf35f50566a6ae36e6025cad3e16
Author: Mathias Behrle <mathiasb at m9s.biz>
Date: Thu Oct 17 12:43:18 2013 +0200
Adding upstream version 2.2.11.
diff --git a/CHANGELOG b/CHANGELOG
index 71f4167..db127a8 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,6 @@
+Version 2.2.11 - 2013-10-01
+* Bug fixes (see mercurial logs for details)
+
Version 2.2.10 - 2013-07-22
* Bug fixes (see mercurial logs for details)
diff --git a/PKG-INFO b/PKG-INFO
index cd112a8..633e89f 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: trytond
-Version: 2.2.10
+Version: 2.2.11
Summary: Tryton server
Home-page: http://www.tryton.org/
Author: B2CK
diff --git a/trytond.egg-info/PKG-INFO b/trytond.egg-info/PKG-INFO
index cd112a8..633e89f 100644
--- a/trytond.egg-info/PKG-INFO
+++ b/trytond.egg-info/PKG-INFO
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: trytond
-Version: 2.2.10
+Version: 2.2.11
Summary: Tryton server
Home-page: http://www.tryton.org/
Author: B2CK
diff --git a/trytond/backend/mysql/table.py b/trytond/backend/mysql/table.py
index a579ac6..7978cc0 100644
--- a/trytond/backend/mysql/table.py
+++ b/trytond/backend/mysql/table.py
@@ -272,7 +272,8 @@ class TableHandler(TableHandlerInterface):
return
if index_name in self._indexes:
- self.cursor.execute('DROP INDEX `%s` ' % (index_name,))
+ self.cursor.execute('DROP INDEX `%s` ON `%s`'
+ % (index_name, self.table_name))
self._update_definitions()
else:
raise Exception('Index action not supported!')
diff --git a/trytond/ir/trigger.py b/trytond/ir/trigger.py
index f7e00b7..b2affe6 100644
--- a/trytond/ir/trigger.py
+++ b/trytond/ir/trigger.py
@@ -204,6 +204,8 @@ class Trigger(ModelSQL, ModelView):
hours, minutes, seconds = map(int, timepart_full[0].split(":"))
if len(timepart_full) == 2:
microseconds = int(timepart_full[1])
+ else:
+ microseconds = 0
delay[record_id] = datetime.datetime(year, month, day,
hours, minutes, seconds, microseconds)
if datetime.datetime.now() - delay[record_id] \
diff --git a/trytond/ir/ui/view.py b/trytond/ir/ui/view.py
index c3a134e..1355258 100644
--- a/trytond/ir/ui/view.py
+++ b/trytond/ir/ui/view.py
@@ -104,14 +104,9 @@ class View(ModelSQL, ModelView):
# validate pyson attributes
validates = {
'states': fields.states_validate,
- 'domain': fields.domain_validate,
- 'context': fields.context_validate,
- 'digits': fields.digits_validate,
- 'add_remove': fields.add_remove_validate,
}
def encode(element):
- for attr in ('states', 'domain', 'context', 'digits',
- 'add_remove', 'spell', 'colors'):
+ for attr in ('states', 'domain', 'spell', 'colors'):
if element.get(attr):
try:
value = safe_eval(element.get(attr), CONTEXT)
diff --git a/trytond/model/modelview.py b/trytond/model/modelview.py
index 650427d..11afc0e 100644
--- a/trytond/model/modelview.py
+++ b/trytond/model/modelview.py
@@ -451,8 +451,7 @@ class ModelView(Model):
# convert attributes into pyson
encoder = PYSONEncoder()
- for attr in ('states', 'domain', 'context', 'digits', 'add_remove',
- 'spell', 'colors'):
+ for attr in ('states', 'domain', 'spell', 'colors'):
if element.get(attr):
element.set(attr, encoder.encode(safe_eval(element.get(attr),
CONTEXT)))
diff --git a/trytond/version.py b/trytond/version.py
index 1e56ee0..4a3035b 100644
--- a/trytond/version.py
+++ b/trytond/version.py
@@ -1,7 +1,7 @@
#This file is part of Tryton. The COPYRIGHT file at the top level of
#this repository contains the full copyright notices and license terms.
PACKAGE = "trytond"
-VERSION = "2.2.10"
+VERSION = "2.2.11"
LICENSE = "GPL-3"
WEBSITE = "http://www.tryton.org/"
commit 2221dc83d8b31877e6ab363308a7b163371334a7
Author: Mathias Behrle <mathiasb at m9s.biz>
Date: Wed Aug 7 17:12:16 2013 +0200
Adding upstream version 2.2.10.
diff --git a/CHANGELOG b/CHANGELOG
index 4edda4a..71f4167 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,6 @@
+Version 2.2.10 - 2013-07-22
+* Bug fixes (see mercurial logs for details)
+
Version 2.2.9 - 2013-06-09
* Bug fixes (see mercurial logs for details)
diff --git a/PKG-INFO b/PKG-INFO
index 47fa9ca..cd112a8 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: trytond
-Version: 2.2.9
+Version: 2.2.10
Summary: Tryton server
Home-page: http://www.tryton.org/
Author: B2CK
diff --git a/trytond.egg-info/PKG-INFO b/trytond.egg-info/PKG-INFO
index 47fa9ca..cd112a8 100644
--- a/trytond.egg-info/PKG-INFO
+++ b/trytond.egg-info/PKG-INFO
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: trytond
-Version: 2.2.9
+Version: 2.2.10
Summary: Tryton server
Home-page: http://www.tryton.org/
Author: B2CK
diff --git a/trytond/model/modelstorage.py b/trytond/model/modelstorage.py
index bd2f396..870db92 100644
--- a/trytond/model/modelstorage.py
+++ b/trytond/model/modelstorage.py
@@ -516,7 +516,7 @@ class ModelStorage(Model):
if (rec_name not in self._columns
and rec_name not in self._inherit_fields):
return []
- return [(rec_name,) + clause[1:]]
+ return [(rec_name,) + tuple(clause[1:])]
def browse(self, ids):
'''
diff --git a/trytond/version.py b/trytond/version.py
index 61c659d..1e56ee0 100644
--- a/trytond/version.py
+++ b/trytond/version.py
@@ -1,7 +1,7 @@
#This file is part of Tryton. The COPYRIGHT file at the top level of
#this repository contains the full copyright notices and license terms.
PACKAGE = "trytond"
-VERSION = "2.2.9"
+VERSION = "2.2.10"
LICENSE = "GPL-3"
WEBSITE = "http://www.tryton.org/"
commit be7f40a1e5738663cddeffad0f65df1ce757d151
Author: Mathias Behrle <mathiasb at m9s.biz>
Date: Tue Jun 11 13:52:08 2013 +0200
Adding upstream version 2.2.9.
diff --git a/CHANGELOG b/CHANGELOG
index c07d844..4edda4a 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,6 @@
+Version 2.2.9 - 2013-06-09
+* Bug fixes (see mercurial logs for details)
+
Version 2.2.8 - 2013-05-02
* Bug fixes (see mercurial logs for details)
diff --git a/PKG-INFO b/PKG-INFO
index 5a3b5e3..47fa9ca 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: trytond
-Version: 2.2.8
+Version: 2.2.9
Summary: Tryton server
Home-page: http://www.tryton.org/
Author: B2CK
diff --git a/trytond.egg-info/PKG-INFO b/trytond.egg-info/PKG-INFO
index 5a3b5e3..47fa9ca 100644
--- a/trytond.egg-info/PKG-INFO
+++ b/trytond.egg-info/PKG-INFO
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: trytond
-Version: 2.2.8
+Version: 2.2.9
Summary: Tryton server
Home-page: http://www.tryton.org/
Author: B2CK
diff --git a/trytond/model/modelsql.py b/trytond/model/modelsql.py
index 73cad33..7dfd6e2 100644
--- a/trytond/model/modelsql.py
+++ b/trytond/model/modelsql.py
@@ -1506,7 +1506,7 @@ class ModelSQL(ModelStorage):
ids2 = [x[0] for x in target_obj.search([
('rec_name', 'ilike', domain[i][2]),
], order=[])]
- elif isinstance(domain[i][2], (int, long)):
+ elif not isinstance(domain[i][2], list):
ids2 = [domain[i][2]]
else:
ids2 = domain[i][2]
@@ -1582,7 +1582,7 @@ class ModelSQL(ModelStorage):
ids2 = [x[0] for x in field_obj.search([
('rec_name', 'like', domain[i][2]),
], order=[])]
- elif isinstance(domain[i][2], (int, long)):
+ elif not isinstance(domain[i][2], list):
ids2 = [domain[i][2]]
else:
ids2 = domain[i][2]
diff --git a/trytond/model/modelstorage.py b/trytond/model/modelstorage.py
index e3aaf6f..bd2f396 100644
--- a/trytond/model/modelstorage.py
+++ b/trytond/model/modelstorage.py
@@ -1031,7 +1031,7 @@ class ModelStorage(Model):
domain = PYSONDecoder(env).decode(pyson_domain)
relation_ids = []
if record[field_name]:
- if field._type in ('many2one',):
+ if field._type in ('many2one', 'one2one'):
relation_ids.append(record[field_name].id)
else:
relation_ids.extend(
@@ -1049,7 +1049,7 @@ class ModelStorage(Model):
relation_ids = []
for record in records:
if record[field_name]:
- if field._type in ('many2one',):
+ if field._type in ('many2one', 'one2one'):
relation_ids.append(record[field_name].id)
else:
relation_ids.extend(
diff --git a/trytond/version.py b/trytond/version.py
index a5a8641..61c659d 100644
--- a/trytond/version.py
+++ b/trytond/version.py
@@ -1,7 +1,7 @@
#This file is part of Tryton. The COPYRIGHT file at the top level of
#this repository contains the full copyright notices and license terms.
PACKAGE = "trytond"
-VERSION = "2.2.8"
+VERSION = "2.2.9"
LICENSE = "GPL-3"
WEBSITE = "http://www.tryton.org/"
commit 472aee3f4adb605d9396d07d35bcd61ee15a7be3
Author: Mathias Behrle <mathiasb at m9s.biz>
Date: Sat May 4 16:48:59 2013 +0200
Adding upstream version 2.2.8.
diff --git a/CHANGELOG b/CHANGELOG
index 117e8ff..c07d844 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,6 @@
+Version 2.2.8 - 2013-05-02
+* Bug fixes (see mercurial logs for details)
+
Version 2.2.7 - 2013-02-12
* Bug fixes (see mercurial logs for details)
diff --git a/PKG-INFO b/PKG-INFO
index c9e4ac7..5a3b5e3 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: trytond
-Version: 2.2.7
+Version: 2.2.8
Summary: Tryton server
Home-page: http://www.tryton.org/
Author: B2CK
diff --git a/trytond.egg-info/PKG-INFO b/trytond.egg-info/PKG-INFO
index c9e4ac7..5a3b5e3 100644
--- a/trytond.egg-info/PKG-INFO
+++ b/trytond.egg-info/PKG-INFO
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: trytond
-Version: 2.2.7
+Version: 2.2.8
Summary: Tryton server
Home-page: http://www.tryton.org/
Author: B2CK
diff --git a/trytond/backend/sqlite/database.py b/trytond/backend/sqlite/database.py
index 1a809dd..e8006fe 100644
--- a/trytond/backend/sqlite/database.py
+++ b/trytond/backend/sqlite/database.py
@@ -39,6 +39,8 @@ def extract(lookup_type, date):
hours, minutes, seconds = map(int, timepart_full[0].split(":"))
if len(timepart_full) == 2:
microseconds = int(timepart_full[1])
+ else:
+ microseconds = 0
date = datetime.datetime(year, month, day, hours, minutes, seconds,
microseconds)
except Exception:
diff --git a/trytond/ir/model.py b/trytond/ir/model.py
index c20259f..4b1fd85 100644
--- a/trytond/ir/model.py
+++ b/trytond/ir/model.py
@@ -376,7 +376,6 @@ class ModelFieldAccess(ModelSQL, ModelView):
pool = Pool()
ir_model_obj = pool.get('ir.model')
ir_model_field_obj = pool.get('ir.model.field')
- user_group_obj = pool.get('res.user-res.group')
cursor = Transaction().cursor
@@ -387,12 +386,12 @@ class ModelFieldAccess(ModelSQL, ModelView):
'ON (a.field = f.id) '
'JOIN "%s" AS m '
'ON (f.model = m.id) '
- 'LEFT JOIN "%s" AS gu '
+ 'LEFT JOIN "res_user-res_group" AS gu '
'ON (gu."group" = a."group") '
'WHERE m.model = %%s AND (gu."user" = %%s OR a."group" IS NULL) '
'GROUP BY f.name'
% (mode, self._table, ir_model_field_obj._table,
- ir_model_obj._table, user_group_obj._table),
+ ir_model_obj._table),
(model_name, Transaction().user))
accesses = dict(cursor.fetchall())
if access:
diff --git a/trytond/model/modelsql.py b/trytond/model/modelsql.py
index 3c1fdaf..73cad33 100644
--- a/trytond/model/modelsql.py
+++ b/trytond/model/modelsql.py
@@ -388,7 +388,7 @@ class ModelSQL(ModelStorage):
for name, _, error in self._sql_constraints:
if name in exception[0]:
self.raise_user_error(error)
- for name, error in self._sql_error_messages:
+ for name, error in self._sql_error_messages.iteritems():
if name in exception[0]:
self.raise_user_error(error)
raise
@@ -906,7 +906,7 @@ class ModelSQL(ModelStorage):
for name, _, error in self._sql_constraints:
if name in exception[0]:
self.raise_user_error(error)
- for name, error in self._sql_error_messages:
+ for name, error in self._sql_error_messages.iteritems():
if name in exception[0]:
self.raise_user_error(error)
raise
@@ -1122,7 +1122,7 @@ class ModelSQL(ModelStorage):
for name, _, error in self._sql_constraints:
if name in exception[0]:
self.raise_user_error(error)
- for name, error in self._sql_error_messages:
+ for name, error in self._sql_error_messages.iteritems():
if name in exception[0]:
self.raise_user_error(error)
raise
diff --git a/trytond/model/modelstorage.py b/trytond/model/modelstorage.py
index 48598a0..e3aaf6f 100644
--- a/trytond/model/modelstorage.py
+++ b/trytond/model/modelstorage.py
@@ -157,7 +157,7 @@ class ModelStorage(Model):
# Clean cursor cache
for cache in Transaction().cursor.cache.values():
- for cache in (cache, cache.get('_language_cache', {}).values()):
+ for cache in [cache] + cache.get('_language_cache', {}).values():
if self._name in cache:
if isinstance(ids, (int, long)):
ids = [ids]
@@ -227,7 +227,7 @@ class ModelStorage(Model):
# Clean cursor cache
for cache in Transaction().cursor.cache.values():
- for cache in (cache, cache.get('_language_cache', {}).values()):
+ for cache in [cache] + cache.get('_language_cache', {}).values():
if self._name in cache:
if isinstance(ids, (int, long)):
ids = [ids]
diff --git a/trytond/model/modelview.py b/trytond/model/modelview.py
index e280dab..650427d 100644
--- a/trytond/model/modelview.py
+++ b/trytond/model/modelview.py
@@ -188,7 +188,7 @@ class ModelView(Model):
else:
if view_type == 'form':
res = self.fields_get()
- xml = '''<?xml version="1.0" encoding="utf-8"?>''' \
+ xml = '''<?xml version="1.0"?>''' \
'''<form string="%s">''' % (self._description,)
for i in res:
if i in ('create_uid', 'create_date',
@@ -204,7 +204,7 @@ class ModelView(Model):
field = 'id'
if self._rec_name in self._columns:
field = self._rec_name
- xml = '''<?xml version="1.0" encoding="utf-8"?>''' \
+ xml = '''<?xml version="1.0"?>''' \
'''<tree string="%s"><field name="%s"/></tree>''' \
% (self._description, field)
else:
diff --git a/trytond/version.py b/trytond/version.py
index ba76b6f..a5a8641 100644
--- a/trytond/version.py
+++ b/trytond/version.py
@@ -1,7 +1,7 @@
#This file is part of Tryton. The COPYRIGHT file at the top level of
#this repository contains the full copyright notices and license terms.
PACKAGE = "trytond"
-VERSION = "2.2.7"
+VERSION = "2.2.8"
LICENSE = "GPL-3"
WEBSITE = "http://www.tryton.org/"
diff --git a/trytond/webdav/webdav.py b/trytond/webdav/webdav.py
index ae7fbb3..60686ae 100644
--- a/trytond/webdav/webdav.py
+++ b/trytond/webdav/webdav.py
@@ -463,7 +463,7 @@ class Collection(ModelSQL, ModelView):
data = DAV_NotFound
try:
if attachment.data is not False:
- data = attachment.data
+ data = str(attachment.data)
except Exception:
pass
if attachment.id == object_id:
commit ee9e3279cbb3e000cd43f0b0dfda478220964012
Author: Mathias Behrle <mathiasb at m9s.biz>
Date: Sun Feb 24 21:47:08 2013 +0100
Adding upstream version 2.2.7.
diff --git a/CHANGELOG b/CHANGELOG
index 6794b02..117e8ff 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,6 @@
+Version 2.2.7 - 2013-02-12
+* Bug fixes (see mercurial logs for details)
+
Version 2.2.6 - 2012-12-23
* Bug fixes (see mercurial logs for details)
diff --git a/COPYRIGHT b/COPYRIGHT
index baf02b6..b4f2380 100644
--- a/COPYRIGHT
+++ b/COPYRIGHT
@@ -1,7 +1,7 @@
Copyright (C) 2004-2008 Tiny SPRL.
-Copyright (C) 2007-2012 Cédric Krier.
+Copyright (C) 2007-2013 Cédric Krier.
Copyright (C) 2007-2011 Bertrand Chenal.
-Copyright (C) 2008-2012 B2CK SPRL.
+Copyright (C) 2008-2013 B2CK SPRL.
Copyright (C) 2011 Openlabs Technologies & Consulting (P) Ltd.
This program is free software: you can redistribute it and/or modify
diff --git a/PKG-INFO b/PKG-INFO
index 7b5f520..c9e4ac7 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: trytond
-Version: 2.2.6
+Version: 2.2.7
Summary: Tryton server
Home-page: http://www.tryton.org/
Author: B2CK
diff --git a/trytond.egg-info/PKG-INFO b/trytond.egg-info/PKG-INFO
index 7b5f520..c9e4ac7 100644
--- a/trytond.egg-info/PKG-INFO
+++ b/trytond.egg-info/PKG-INFO
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: trytond
-Version: 2.2.6
+Version: 2.2.7
Summary: Tryton server
Home-page: http://www.tryton.org/
Author: B2CK
diff --git a/trytond/model/browse.py b/trytond/model/browse.py
index d50d063..013a286 100644
--- a/trytond/model/browse.py
+++ b/trytond/model/browse.py
@@ -190,9 +190,11 @@ class BrowseRecord(object):
_datetime = data[j.datetime_field]
with Transaction().set_context(
_datetime=_datetime):
- ids = model2ids.setdefault(model, [])
+ ids = model2ids.setdefault((model, _datetime),
+ [])
ids.append(data[i])
- local_cache = model2cache.setdefault(model,
+ local_cache = model2cache.setdefault(
+ (model, _datetime),
LRUDict(RECORD_CACHE_SIZE))
data[i] = BrowseRecord(data[i], model,
ids, local_cache)
@@ -204,9 +206,10 @@ class BrowseRecord(object):
_datetime = data[j.datetime_field]
with Transaction().set_context(
_datetime=_datetime):
- ids = model2ids.setdefault(model, [])
+ ids = model2ids.setdefault((model, _datetime), [])
ids.extend(data[i])
- local_cache = model2cache.setdefault(model,
+ local_cache = model2cache.setdefault(
+ (model, _datetime),
LRUDict(RECORD_CACHE_SIZE))
data[i] = BrowseRecordList(
BrowseRecord(x, model, ids, local_cache)
diff --git a/trytond/version.py b/trytond/version.py
index b7c1217..ba76b6f 100644
--- a/trytond/version.py
+++ b/trytond/version.py
@@ -1,7 +1,7 @@
#This file is part of Tryton. The COPYRIGHT file at the top level of
#this repository contains the full copyright notices and license terms.
PACKAGE = "trytond"
-VERSION = "2.2.6"
+VERSION = "2.2.7"
LICENSE = "GPL-3"
WEBSITE = "http://www.tryton.org/"
commit 39de289784bd079d1ecee3c4276b3aa691e5a6bd
Author: Mathias Behrle <mathiasb at m9s.biz>
Date: Sun Feb 24 21:45:55 2013 +0100
Adding upstream version 2.2.6.
diff --git a/CHANGELOG b/CHANGELOG
index bed2c66..6794b02 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,6 @@
+Version 2.2.6 - 2012-12-23
+* Bug fixes (see mercurial logs for details)
+
Version 2.2.5 - 2012-11-05
* Bug fixes (see mercurial logs for details)
diff --git a/PKG-INFO b/PKG-INFO
index b6132a3..7b5f520 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: trytond
-Version: 2.2.5
+Version: 2.2.6
Summary: Tryton server
Home-page: http://www.tryton.org/
Author: B2CK
diff --git a/trytond.egg-info/PKG-INFO b/trytond.egg-info/PKG-INFO
index b6132a3..7b5f520 100644
--- a/trytond.egg-info/PKG-INFO
+++ b/trytond.egg-info/PKG-INFO
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: trytond
-Version: 2.2.5
+Version: 2.2.6
Summary: Tryton server
Home-page: http://www.tryton.org/
Author: B2CK
diff --git a/trytond/model/modelsql.py b/trytond/model/modelsql.py
index f7a4210..3c1fdaf 100644
--- a/trytond/model/modelsql.py
+++ b/trytond/model/modelsql.py
@@ -1218,7 +1218,7 @@ class ModelSQL(ModelStorage):
cursor.execute(query_str, tables_args + qu2)
datas = cursor.dictfetchmany(cursor.IN_MAX)
- cache = cursor.get_cache()
+ cache = cursor.get_cache(Transaction().context)
cache.setdefault(self._name, LRUDict(RECORD_CACHE_SIZE))
delete_records = Transaction().delete_records.setdefault(self._name,
set())
diff --git a/trytond/protocols/dispatcher.py b/trytond/protocols/dispatcher.py
index 7ac34a0..b3680c5 100644
--- a/trytond/protocols/dispatcher.py
+++ b/trytond/protocols/dispatcher.py
@@ -222,9 +222,11 @@ def create(database_name, password, lang, admin_password):
'WHERE code = %s', 1) + ')' \
'WHERE login <> \'root\'', (lang,))
if hashlib:
- admin_password = hashlib.sha1(admin_password).hexdigest()
+ admin_password = hashlib.sha1(admin_password.encode('utf-8'))\
+ .hexdigest()
else:
- admin_password = sha.new(admin_password).hexdigest()
+ admin_password = sha.new(admin_password.encode('utf-8'))\
+ .hexdigest()
cursor.execute('UPDATE res_user ' \
'SET password = %s ' \
'WHERE login = \'admin\'', (admin_password,))
diff --git a/trytond/security.py b/trytond/security.py
index de0edca..576a0fd 100644
--- a/trytond/security.py
+++ b/trytond/security.py
@@ -21,7 +21,6 @@ def login(dbname, loginname, password, cache=True):
if not dbname in database_list:
pool.init()
user_obj = pool.get('res.user')
- password = password.decode('utf-8')
user_id = user_obj.get_login(loginname, password)
transaction.cursor.commit()
if user_id:
diff --git a/trytond/version.py b/trytond/version.py
index d61819c..b7c1217 100644
--- a/trytond/version.py
+++ b/trytond/version.py
@@ -1,7 +1,7 @@
#This file is part of Tryton. The COPYRIGHT file at the top level of
#this repository contains the full copyright notices and license terms.
PACKAGE = "trytond"
-VERSION = "2.2.5"
+VERSION = "2.2.6"
LICENSE = "GPL-3"
WEBSITE = "http://www.tryton.org/"
commit 535b542a1b559dec90b5b176366307d45ff41fb4
Author: Mathias Behrle <mathiasb at m9s.biz>
Date: Sun Feb 24 21:44:02 2013 +0100
Adding upstream version 2.2.5.
diff --git a/CHANGELOG b/CHANGELOG
index c00b801..bed2c66 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,6 @@
+Version 2.2.5 - 2012-11-05
+* Bug fixes (see mercurial logs for details)
+
Version 2.2.4 - 2012-09-10
* Bug fixes (see mercurial logs for details)
diff --git a/PKG-INFO b/PKG-INFO
index 2faa0f5..b6132a3 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,6 +1,6 @@
-Metadata-Version: 1.0
+Metadata-Version: 1.1
Name: trytond
-Version: 2.2.4
+Version: 2.2.5
Summary: Tryton server
Home-page: http://www.tryton.org/
Author: B2CK
diff --git a/doc/topics/views/index.rst b/doc/topics/views/index.rst
index 876f911..a0c47ce 100644
--- a/doc/topics/views/index.rst
+++ b/doc/topics/views/index.rst
@@ -358,10 +358,10 @@ hpaned, vpaned
* ``colspan``: see in common-attributes-colspan_. The default
for panes is 4 columns.
-child1, child2
-^^^^^^^^^^^^^^
+child
+^^^^^
-Contains the two childs of a hpaned or vpaned.
+Contains the childs of a hpaned or vpaned.
.. _example_form_view:
diff --git a/trytond.egg-info/PKG-INFO b/trytond.egg-info/PKG-INFO
index 2faa0f5..b6132a3 100644
--- a/trytond.egg-info/PKG-INFO
+++ b/trytond.egg-info/PKG-INFO
@@ -1,6 +1,6 @@
-Metadata-Version: 1.0
+Metadata-Version: 1.1
Name: trytond
-Version: 2.2.4
+Version: 2.2.5
Summary: Tryton server
Home-page: http://www.tryton.org/
Author: B2CK
diff --git a/trytond/ir/lang.py b/trytond/ir/lang.py
index 70901bd..9112f07 100644
--- a/trytond/ir/lang.py
+++ b/trytond/ir/lang.py
@@ -59,7 +59,7 @@ class Lang(ModelSQL, ModelView, Cacheable):
if ids:
ids += self.search([('name',) + clause[1:]], order=[])
return [('id', 'in', ids)]
- return [('name',) + clause[1:]]
+ return [('name',) + tuple(clause[1:])]
def read(self, ids, fields_names=None):
pool = Pool()
diff --git a/trytond/ir/rule.py b/trytond/ir/rule.py
index e4fafdb..ea63cc9 100644
--- a/trytond/ir/rule.py
+++ b/trytond/ir/rule.py
@@ -156,7 +156,7 @@ class Rule(ModelSQL, ModelView):
if not Transaction().context.get('user'):
return '', []
with Transaction().set_user(Transaction().context['user']):
- return self.domain_get(model_name)
+ return self.domain_get(model_name, mode=mode)
pool = Pool()
rule_group_obj = pool.get('ir.rule.group')
diff --git a/trytond/model/modelsql.py b/trytond/model/modelsql.py
index 73f3f0b..f7a4210 100644
--- a/trytond/model/modelsql.py
+++ b/trytond/model/modelsql.py
@@ -691,7 +691,7 @@ class ModelSQL(ModelStorage):
obj = pool.get(model_name)
record2 = obj.read(record_id, fields_related[field])
del record2['id']
- fields_related2values[field][record_id] = record2
+ fields_related2values[field][record[field]] = record2
if to_del or fields_related.keys() or datetime_fields:
for record in res:
@@ -717,7 +717,7 @@ class ModelSQL(ModelStorage):
continue
record[field + '.' + related] = \
fields_related2values[field][
- record_id][related]
+ record[field]][related]
for field in to_del:
del record[field]
diff --git a/trytond/res/user.py b/trytond/res/user.py
index d0371e2..26d0c60 100644
--- a/trytond/res/user.py
+++ b/trytond/res/user.py
@@ -223,7 +223,7 @@ class User(ModelSQL, ModelView):
], order=[])
if len(ids) == 1:
return [('id', '=', ids[0])]
- return [(self._rec_name,) + clause[1:]]
+ return [(self._rec_name,) + tuple(clause[1:])]
def copy(self, ids, default=None):
if default is None:
diff --git a/trytond/version.py b/trytond/version.py
index 93ae01b..d61819c 100644
--- a/trytond/version.py
+++ b/trytond/version.py
@@ -1,7 +1,7 @@
#This file is part of Tryton. The COPYRIGHT file at the top level of
#this repository contains the full copyright notices and license terms.
PACKAGE = "trytond"
-VERSION = "2.2.4"
+VERSION = "2.2.5"
LICENSE = "GPL-3"
WEBSITE = "http://www.tryton.org/"
commit 3196f76a716a80c543c4d881fa9a863fe021cf12
Author: Mathias Behrle <mathiasb at m9s.biz>
Date: Tue Sep 11 19:41:32 2012 +0200
Adding upstream version 2.2.4.
diff --git a/CHANGELOG b/CHANGELOG
index 78bb31c..c00b801 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,6 @@
+Version 2.2.4 - 2012-09-10
+* Bug fixes (see mercurial logs for details)
+
Version 2.2.3 - 2012-05-07
* Bug fixes (see mercurial logs for details)
diff --git a/PKG-INFO b/PKG-INFO
index 1feace8..2faa0f5 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,6 +1,6 @@
-Metadata-Version: 1.1
+Metadata-Version: 1.0
Name: trytond
-Version: 2.2.3
+Version: 2.2.4
Summary: Tryton server
Home-page: http://www.tryton.org/
Author: B2CK
diff --git a/trytond.egg-info/PKG-INFO b/trytond.egg-info/PKG-INFO
index 1feace8..2faa0f5 100644
--- a/trytond.egg-info/PKG-INFO
+++ b/trytond.egg-info/PKG-INFO
@@ -1,6 +1,6 @@
-Metadata-Version: 1.1
+Metadata-Version: 1.0
Name: trytond
-Version: 2.2.3
+Version: 2.2.4
Summary: Tryton server
Home-page: http://www.tryton.org/
Author: B2CK
diff --git a/trytond/backend/mysql/database.py b/trytond/backend/mysql/database.py
index b702521..8b76b60 100644
--- a/trytond/backend/mysql/database.py
+++ b/trytond/backend/mysql/database.py
@@ -40,6 +40,7 @@ class Database(DatabaseInterface):
def cursor(self, autocommit=False, readonly=False):
conv = MySQLdb.converters.conversions.copy()
conv[float] = lambda value, _: repr(value)
+ conv[MySQLdb.constants.FIELD_TYPE.TIME] = MySQLdb.times.Time_or_None
args = {
'db': self.database_name,
'sql_mode': 'traditional,postgresql',
diff --git a/trytond/ir/ui/menu.py b/trytond/ir/ui/menu.py
index ec98fd1..fa6e977 100644
--- a/trytond/ir/ui/menu.py
+++ b/trytond/ir/ui/menu.py
@@ -76,12 +76,13 @@ class UIMenu(ModelSQL, ModelView):
order_field='name'), 'get_rec_name', searcher='search_rec_name')
icon = fields.Selection('list_icons', 'Icon', translate=False)
action = fields.Function(fields.Reference('Action',
- selection=[
- ('ir.action.report', 'ir.action.report'),
- ('ir.action.act_window', 'ir.action.act_window'),
- ('ir.action.wizard', 'ir.action.wizard'),
- ('ir.action.url', 'ir.action.url'),
- ]), 'get_action', setter='set_action')
+ selection=[
+ ('', ''),
+ ('ir.action.report', 'ir.action.report'),
+ ('ir.action.act_window', 'ir.action.act_window'),
+ ('ir.action.wizard', 'ir.action.wizard'),
+ ('ir.action.url', 'ir.action.url'),
+ ]), 'get_action', setter='set_action')
active = fields.Boolean('Active')
def __init__(self):
diff --git a/trytond/ir/ui/view.py b/trytond/ir/ui/view.py
index 72a7422..c3a134e 100644
--- a/trytond/ir/ui/view.py
+++ b/trytond/ir/ui/view.py
@@ -138,7 +138,10 @@ class View(ModelSQL, ModelView):
('module', '=', view.module),
])
for view2 in self.browse(view_ids):
- tree2 = etree.fromstring(view2.arch)
+ xml2 = view2.arch.strip()
+ if not xml2:
+ continue
+ tree2 = etree.fromstring(xml2)
root2_element = tree2.getroottree().getroot()
strings += self._translate_view(root2_element)
if not strings:
diff --git a/trytond/model/browse.py b/trytond/model/browse.py
index 2f8c1af..d50d063 100644
--- a/trytond/model/browse.py
+++ b/trytond/model/browse.py
@@ -242,9 +242,13 @@ class BrowseRecord(object):
return "BrowseRecord(%s, %d)" % (self._model_name, self.id)
def __eq__(self, other):
+ if not isinstance(other, BrowseRecord):
+ return False
return (self._model_name, self.id) == (other._model_name, other.id)
def __ne__(self, other):
+ if not isinstance(other, BrowseRecord):
+ return True
return (self._model_name, self.id) != (other._model_name, other.id)
# we need to define __unicode__ even though we've already defined __str__
diff --git a/trytond/model/fields/one2many.py b/trytond/model/fields/one2many.py
index 5ae64c6..0c0c766 100644
--- a/trytond/model/fields/one2many.py
+++ b/trytond/model/fields/one2many.py
@@ -88,7 +88,7 @@ class One2Many(Field):
for i in chain(*ids2):
if i in cache[self.model_name] \
and self.field in cache[self.model_name][i]:
- res[cache[self.model_name][i][self.field].id].append(i)
+ res[cache[self.model_name][i][self.field]].append(i)
else:
ids3.append(i)
diff --git a/trytond/model/modelsql.py b/trytond/model/modelsql.py
index c75eefb..73f3f0b 100644
--- a/trytond/model/modelsql.py
+++ b/trytond/model/modelsql.py
@@ -1800,15 +1800,21 @@ class ModelSQL(ModelStorage):
else:
if (arg[2] is False) and (arg[1] == '='):
if table._columns[arg[0]]._type == 'boolean':
- qu1.append('("%s"."%s" = %%s)' % \
- (table._table, arg[0]))
+ qu1.append('(("%s"."%s" = %%s) OR ("%s"."%s" IS NULL))'
+ % (table._table, arg[0], table._table, arg[0]))
qu2.append(False)
else:
qu1.append('("%s"."%s" IS NULL)' % \
(table._table, arg[0]))
elif (arg[2] is False) and (arg[1] == '!='):
- qu1.append('("%s"."%s" IS NOT NULL)' % \
- (table._table, arg[0]))
+ if table._columns[arg[0]]._type == 'boolean':
+ qu1.append('(("%s"."%s" != %%s) '
+ 'AND ("%s"."%s" IS NOT NULL))'
+ % (table._table, arg[0], table._table, arg[0]))
+ qu2.append(False)
+ else:
+ qu1.append('("%s"."%s" IS NOT NULL)' % \
+ (table._table, arg[0]))
else:
if arg[0] == 'id':
qu1.append('("%s"."%s" %s %%s)' % \
@@ -1890,8 +1896,7 @@ class ModelSQL(ModelStorage):
table_name + '.' + link_field)
for i in range(len(tables)):
if table_name in tables[i]:
- args = tables_args[tables[i]]
- del tables_args[tables[i]]
+ args = tables_args.pop(tables[i], [])
tables[i] = tables[i].replace(table_name,
table_name + '.' + link_field)
tables_args[tables[i]] = args
@@ -1926,8 +1931,7 @@ class ModelSQL(ModelStorage):
table_name + '.' + link_field)
for i in range(len(tables)):
if table_name in tables[i]:
- args = tables_args[tables[i]]
- del tables_args[tables[i]]
+ args = tables_args.pop(tables[i], [])
tables[i] = tables[i].replace(table_name,
table_name + '.' + link_field)
tables_args[tables[i]] = args
@@ -1946,8 +1950,7 @@ class ModelSQL(ModelStorage):
table_name2 + '.' + link_field2)
for i in range(1, len(tables)):
if table_name2 in tables[i]:
- args = tables_args[tables[i]]
- del tables_args[tables[i]]
+ args = tables_args.pop(tables[i], [])
tables[i] = tables[i].replace(table_name2,
table_name2 + '.' + link_field2)
tables_args[tables[i]] = args
@@ -2035,8 +2038,8 @@ class ModelSQL(ModelStorage):
'order': otype,
})
else:
- order_by.append('"' + table_name + '".' + field_name + \
- ' ' + otype)
+ order_by.append('"%s"."%s" %s'
+ % (table_name, field_name, otype))
return order_by, tables, tables_args
if field in self._inherit_fields.keys():
diff --git a/trytond/protocols/webdav.py b/trytond/protocols/webdav.py
index 735de79..273fd36 100644
--- a/trytond/protocols/webdav.py
+++ b/trytond/protocols/webdav.py
@@ -529,8 +529,11 @@ class WebDAVAuthRequestHandler(AuthServer.BufferedAuthRequestHandler,
def get_userinfo(self, user, password, command=''):
dbname = urllib.unquote_plus(self.path.split('/', 2)[1])
- if not dbname:
- database = Database().connect()
+ database = Database().connect()
+ cursor = database.cursor()
+ databases = database.list(cursor)
+ cursor.close()
+ if not dbname or dbname not in databases:
return 1
user = int(login(dbname, user, password, cache=False))
diff --git a/trytond/tests/test_fields.py b/trytond/tests/test_fields.py
index 69861ed..51d0e27 100644
--- a/trytond/tests/test_fields.py
+++ b/trytond/tests/test_fields.py
@@ -135,6 +135,23 @@ class FieldsTestCase(unittest.TestCase):
boolean3_id = self.boolean.create({})
self.assert_(boolean3_id)
+ # Test search with NULL value
+ boolean4_id = self.boolean.create({
+ 'boolean': None,
+ })
+ self.assert_(boolean4_id)
+
+ boolean_ids = self.boolean.search([
+ ('boolean', '=', False),
+ ])
+ self.assertEqual(boolean_ids,
+ [boolean2_id, boolean3_id, boolean4_id])
+
+ boolean_ids = self.boolean.search([
+ ('boolean', '!=', False),
+ ])
+ self.assertEqual(boolean_ids, [boolean1_id])
+
boolean3 = self.boolean.read(boolean3_id, ['boolean'])
self.assert_(boolean3['boolean'] == False)
diff --git a/trytond/version.py b/trytond/version.py
index 9ffcf38..93ae01b 100644
--- a/trytond/version.py
+++ b/trytond/version.py
@@ -1,7 +1,7 @@
#This file is part of Tryton. The COPYRIGHT file at the top level of
#this repository contains the full copyright notices and license terms.
PACKAGE = "trytond"
-VERSION = "2.2.3"
+VERSION = "2.2.4"
LICENSE = "GPL-3"
WEBSITE = "http://www.tryton.org/"
commit 7547360022d56a29f61bedf40daf0d8a07263501
Author: Mathias Behrle <mathiasb at m9s.biz>
Date: Wed May 9 11:28:36 2012 +0200
Adding upstream version 2.2.3.
diff --git a/CHANGELOG b/CHANGELOG
index f074bf1..78bb31c 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,6 @@
+Version 2.2.3 - 2012-05-07
+* Bug fixes (see mercurial logs for details)
+
Version 2.2.2 - 2012-03-28
* Bug fixes (see mercurial logs for details)
* Don't allow rpc call on ModelStorage without ModelView (CVE-2012-0215)
diff --git a/COPYRIGHT b/COPYRIGHT
index 231a7a9..baf02b6 100644
--- a/COPYRIGHT
+++ b/COPYRIGHT
@@ -1,7 +1,7 @@
Copyright (C) 2004-2008 Tiny SPRL.
-Copyright (C) 2007-2011 Cédric Krier.
+Copyright (C) 2007-2012 Cédric Krier.
Copyright (C) 2007-2011 Bertrand Chenal.
-Copyright (C) 2008-2011 B2CK SPRL.
+Copyright (C) 2008-2012 B2CK SPRL.
Copyright (C) 2011 Openlabs Technologies & Consulting (P) Ltd.
This program is free software: you can redistribute it and/or modify
diff --git a/PKG-INFO b/PKG-INFO
index 30e8fe4..1feace8 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,6 +1,6 @@
-Metadata-Version: 1.0
+Metadata-Version: 1.1
Name: trytond
-Version: 2.2.2
+Version: 2.2.3
Summary: Tryton server
Home-page: http://www.tryton.org/
Author: B2CK
diff --git a/trytond.egg-info/PKG-INFO b/trytond.egg-info/PKG-INFO
index 30e8fe4..1feace8 100644
--- a/trytond.egg-info/PKG-INFO
+++ b/trytond.egg-info/PKG-INFO
@@ -1,6 +1,6 @@
-Metadata-Version: 1.0
+Metadata-Version: 1.1
Name: trytond
-Version: 2.2.2
+Version: 2.2.3
Summary: Tryton server
Home-page: http://www.tryton.org/
Author: B2CK
diff --git a/trytond/backend/database.py b/trytond/backend/database.py
index 808c0d1..3ca6b18 100644
--- a/trytond/backend/database.py
+++ b/trytond/backend/database.py
@@ -104,8 +104,7 @@ class CursorInterface(object):
IN_MAX = 1000
def __init__(self):
- from trytond.cache import LRUDict
- self.cache = LRUDict(CONTEXT_CACHE_SIZE)
+ self.cache = {}
def get_cache(self, context=None):
'''
diff --git a/trytond/backend/mysql/database.py b/trytond/backend/mysql/database.py
index 1d2b778..b702521 100644
--- a/trytond/backend/mysql/database.py
+++ b/trytond/backend/mysql/database.py
@@ -27,8 +27,6 @@ def _replace_split_part_right(mobj):
if pos == 2:
return ', -1'
return ', 1'
-DatabaseIntegrityError = None
-DatabaseOperationalError = None
class Database(DatabaseInterface):
diff --git a/trytond/convert.py b/trytond/convert.py
index 62452ca..7c0bdf5 100644
--- a/trytond/convert.py
+++ b/trytond/convert.py
@@ -354,8 +354,12 @@ class Fs2bdAccessor:
record_ids.setdefault(rec.model, [])
record_ids[rec.model].append(rec.db_id)
+ object_name_list = set(self.pool.object_name_list())
+
self.browserecord[module] = {}
for model_name in record_ids.keys():
+ if model_name not in object_name_list:
+ continue
model_obj = self.pool.get(model_name)
self.browserecord[module][model_name] = {}
for i in range(0, len(record_ids[model_name]), cursor.IN_MAX):
@@ -928,6 +932,7 @@ def post_import(pool, module, to_delete):
('module', '=', module),
], order=[('id', 'DESC')])
+ object_name_list = set(pool.object_name_list())
for mrec in modeldata_obj.browse(mdata_ids):
mdata_id, model, db_id = mrec.id, mrec.model, mrec.db_id
@@ -977,9 +982,14 @@ def post_import(pool, module, to_delete):
'Deleting %s@%s' % (db_id, model))
try:
# Deletion of the record
- model_obj = pool.get(model)
- model_obj.delete(db_id)
- mdata_delete.append(mdata_id)
+ if model in object_name_list:
+ model_obj = pool.get(model)
+ model_obj.delete(db_id)
+ mdata_delete.append(mdata_id)
+ else:
+ logging.getLogger("convert").warning(
+ 'Could not delete id %d of model %s because model no '
+ 'longer exists.' % (db_id, model))
cursor.commit()
except Exception:
cursor.rollback()
diff --git a/trytond/ir/cron.py b/trytond/ir/cron.py
index 99ed8d3..0d8de4f 100644
--- a/trytond/ir/cron.py
+++ b/trytond/ir/cron.py
@@ -68,6 +68,7 @@ class Cron(ModelSQL, ModelView):
table.column_rename('numbercall', 'number_calls')
table.column_rename('doall', 'repeat_missed')
table.column_rename('nextcall', 'next_call')
+ table.drop_column('running')
super(Cron, self).init(module_name)
diff --git a/trytond/ir/ui/form.rnc b/trytond/ir/ui/form.rnc
index b20dd5c..015f36e 100644
--- a/trytond/ir/ui/form.rnc
+++ b/trytond/ir/ui/form.rnc
@@ -20,7 +20,7 @@ attlist.form &= attribute on_write { text }?
attlist.form &= [ a:defaultValue = "4" ] attribute col { text }?
attlist.form &= attribute cursor { text }?
-tree = element tree { attlist.tree, field+ }
+tree = element tree { attlist.tree, field* }
attlist.tree &=
[ a:defaultValue = "Unknown" ] attribute string { text }?
attlist.tree &= attribute on_write { text }?
diff --git a/trytond/ir/ui/form.rng b/trytond/ir/ui/form.rng
index 1bb7c62..2832183 100644
--- a/trytond/ir/ui/form.rng
+++ b/trytond/ir/ui/form.rng
@@ -42,9 +42,9 @@
<define name="tree">
<element name="tree">
<ref name="attlist.tree"/>
- <oneOrMore>
+ <zeroOrMore>
<ref name="field"/>
- </oneOrMore>
+ </zeroOrMore>
</element>
</define>
<define name="attlist.tree" combine="interleave">
@@ -502,11 +502,6 @@
</define>
<define name="attlist.image" combine="interleave">
<optional>
- <attribute name="help"/>
- </optional>
- </define>
- <define name="attlist.image" combine="interleave">
- <optional>
<attribute name="xexpand" a:defaultValue="0">
<choice>
<value>0</value>
@@ -527,6 +522,11 @@
</define>
<define name="attlist.image" combine="interleave">
<optional>
+ <attribute name="help"/>
+ </optional>
+ </define>
+ <define name="attlist.image" combine="interleave">
+ <optional>
<attribute name="states"/>
</optional>
</define>
diff --git a/trytond/model/model.py b/trytond/model/model.py
index b180768..8240bad 100644
--- a/trytond/model/model.py
+++ b/trytond/model/model.py
@@ -27,6 +27,7 @@ class Model(WarningErrorMixin, URLMixin):
def _reset_columns(self):
self.__columns = None
+ self.__defaults = None
self._reset_xxx2many_targets()
def _getcolumns(self):
diff --git a/trytond/model/modelsql.py b/trytond/model/modelsql.py
index a578a8e..c75eefb 100644
--- a/trytond/model/modelsql.py
+++ b/trytond/model/modelsql.py
@@ -2031,7 +2031,7 @@ class ModelSQL(ModelStorage):
if field_name:
if '%(table)s' in field_name or '%(order)s' in field_name:
order_by.append(field_name % {
- 'table': table_name,
+ 'table': '"%s"' % table_name,
'order': otype,
})
else:
diff --git a/trytond/res/request.py b/trytond/res/request.py
index 5be47f0..d93bc23 100644
--- a/trytond/res/request.py
+++ b/trytond/res/request.py
@@ -123,7 +123,7 @@ class Request(ModelSQL, ModelView):
request_history_obj.create(values)
self.write(ids, {
'state': 'waiting',
- 'date_send': datetime.datetime.now(),
+ 'date_sent': datetime.datetime.now(),
})
return True
diff --git a/trytond/version.py b/trytond/version.py
index 7650cc7..9ffcf38 100644
--- a/trytond/version.py
+++ b/trytond/version.py
@@ -1,7 +1,7 @@
#This file is part of Tryton. The COPYRIGHT file at the top level of
#this repository contains the full copyright notices and license terms.
PACKAGE = "trytond"
-VERSION = "2.2.2"
+VERSION = "2.2.3"
LICENSE = "GPL-3"
WEBSITE = "http://www.tryton.org/"
--
tryton-server
More information about the tryton-debian-vcs
mailing list