Reviewers: ,
Please review this at http://codereview.tryton.org/757002/
Affected files:
M trytond/ir/ui/menu.py
M trytond/modules/product/category.py
M trytond/modules/timesheet/work.py
Index: trytond/ir/ui/menu.py
===================================================================
--- a/trytond/ir/ui/menu.py
+++ b/trytond/ir/ui/menu.py
@@ -140,17 +140,17 @@
@classmethod
def search_rec_name(cls, name, clause):
if isinstance(clause[2], basestring):
- values = clause[2].split(SEPARATOR)
+ values = clause[2].split(SEPARATOR.strip())
values.reverse()
domain = []
field = 'name'
for name in values:
- domain.append((field, clause[1], name))
+ domain.append((field, clause[1], name.strip()))
field = 'parent.' + field
- ids = [m.id for m in cls.search(domain, order=[])]
- return [('id', 'in', ids)]
- #TODO Handle list
- return [('name',) + tuple(clause[1:])]
+ else:
+ domain = [('name',) + tuple(clause[1:])]
+ ids = [m.id for m in cls.search(domain, order=[])]
+ return [('parent', 'child_of', ids)]
@classmethod
def search_global(cls, text):
Index: trytond/modules/product/category.py
===================================================================
--- a/trytond/modules/product/category.py
+++ b/trytond/modules/product/category.py
@@ -28,3 +28,18 @@
return self.parent.get_rec_name(name) + ' / ' + self.name
else:
return self.name
+
+ @classmethod
+ def search_rec_name(cls, name, clause):
+ if isinstance(clause[2], basestring):
+ values = clause[2].split('/')
+ values.reverse()
+ domain = []
+ field = 'name'
+ for name in values:
+ domain.append((field, clause[1], name.strip()))
+ field = 'parent.' + field
+ else:
+ domain = [('name',) + tuple(clause[1:])]
+ ids = [w.id for w in cls.search(domain, order=[])]
+ return [('parent', 'child_of', ids)]
Index: trytond/modules/timesheet/work.py
===================================================================
--- a/trytond/modules/timesheet/work.py
+++ b/trytond/modules/timesheet/work.py
@@ -152,6 +152,21 @@
return self.name
@classmethod
+ def search_rec_name(cls, name, clause):
+ if isinstance(clause[2], basestring):
+ values = clause[2].split('\\')
+ values.reverse()
+ domain = []
+ field = 'name'
+ for name in values:
+ domain.append((field, clause[1], name.strip()))
+ field = 'parent.' + field
+ else:
+ domain = [('name',) + tuple(clause[1:])]
+ ids = [w.id for w in cls.search(domain, order=[])]
+ return [('parent', 'child_of', ids)]
+
+ @classmethod
def copy(cls, works, default=None):
if default is None:
default = {}