Replace name_get, name_search with get_rec_name and search_rec_name
Return only id for default value of many2one
This commit is contained in:
1 parent
04b7c2eac1
commit
94f4d7f1de
2 files changed
+27
-54
No files matched your search
+13
-26
@@ -111,32 +111,26 @@ class OrderPoint(OSV):
|
||||
ids = self.search(cursor, user, query)
|
||||
return not bool(ids)
|
||||
|
||||
def name_get(self, cursor, user, ids, context=None):
|
||||
def get_rec_name(self, cursor, user, ids, name, arg, context=None):
|
||||
if not ids:
|
||||
return []
|
||||
if isinstance(ids, (int, long)):
|
||||
ids = [ids]
|
||||
res = []
|
||||
for op in self.browse(cursor, user, ids, context=context):
|
||||
res.append((op.id, "%s@%s" % (op.product.name, op.location.name)))
|
||||
res[op.id] = "%s@%s" % (op.product.name, op.location.name)
|
||||
return res
|
||||
|
||||
def name_search(self, cursor, user, name='', args=None, operator='ilike',
|
||||
context=None, limit=None):
|
||||
if not args:
|
||||
args=[]
|
||||
names = name.split('@', 1)
|
||||
query = ['AND', ('product.template.name', operator, names[0]), args]
|
||||
if len(names) == 1 or not names[1]:
|
||||
ids = self.search( cursor, user, query, limit=limit, context=context)
|
||||
else:
|
||||
location_args = self.search_location(
|
||||
cursor, user, 'location', [('location', operator, names[1])],
|
||||
context=context)
|
||||
ids = self.search(
|
||||
cursor, user, ['AND', query, location_args], limit=limit,
|
||||
context=context)
|
||||
return self.name_get(cursor, user, ids, context)
|
||||
def search_rec_name(self, cursor, user, name, args, context=None):
|
||||
args2 = []
|
||||
i = 0
|
||||
while i < len(args):
|
||||
names = args[i][2].split('@', 1)
|
||||
args2.append(('product.template.name', args[i][1], names[0]))
|
||||
if len(names) != 1 and names[1]:
|
||||
args2.append(('location', args[i][1], names[1]))
|
||||
i += 1
|
||||
return args2
|
||||
|
||||
def get_location(self, cursor, user, ids, name, args, context=None):
|
||||
location_obj = self.pool.get('stock.location')
|
||||
@@ -148,12 +142,6 @@ class OrderPoint(OSV):
|
||||
res[op.id] = op.storage_location.id
|
||||
else:
|
||||
res[op.id] = False
|
||||
loc_id2name = dict(location_obj.name_get(
|
||||
cursor, user, [i for i in res.itervalues() if i]))
|
||||
|
||||
for op_id, loc_id in res.iteritems():
|
||||
if loc_id in loc_id2name:
|
||||
res[op_id] = (loc_id, loc_id2name[loc_id])
|
||||
return res
|
||||
|
||||
def search_location(self, cursor, user, name, domain=None, context=None):
|
||||
@@ -170,8 +158,7 @@ class OrderPoint(OSV):
|
||||
if context is None:
|
||||
context = {}
|
||||
if context.get('company'):
|
||||
return company_obj.name_get(cursor, user, context['company'],
|
||||
context=context)[0]
|
||||
return context['company']
|
||||
return False
|
||||
|
||||
OrderPoint()
|
||||
+14
-28
@@ -47,56 +47,42 @@ class PurchaseRequest(OSV):
|
||||
'create_request': 'Purchase request are only created by the system.',
|
||||
})
|
||||
|
||||
def name_get(self, cursor, user, ids, context=None):
|
||||
def get_rec_name(self, cursor, user, ids, name, arg, context=None):
|
||||
if isinstance(ids, (int, long)):
|
||||
ids = [ids]
|
||||
res = []
|
||||
for pr in self.browse(cursor, user, ids, context=context):
|
||||
res.append((pr.id, "%s@%s" % (pr.product.name, pr.warehouse.name)))
|
||||
res[pr.id] = "%s@%s" % (pr.product.name, pr.warehouse.name)
|
||||
return res
|
||||
|
||||
def name_search(self, cursor, user, name='', args=None, operator='ilike',
|
||||
context=None, limit=None):
|
||||
if not args:
|
||||
args=[]
|
||||
names = name.split('@',1)
|
||||
query = ['AND', ('product.template.name', operator, names[0]), args]
|
||||
if len(names) == 1 or not names[1]:
|
||||
ids = self.search( cursor, user, query, limit=limit, context=context)
|
||||
else:
|
||||
warehouse_arg = [('warehouse', operator, names[1])]
|
||||
ids = self.search(
|
||||
cursor, user, query + warehouse_arg, limit=limit, context=context)
|
||||
return self.name_get(cursor, user, ids, context)
|
||||
def search_rec_name(self, cursor, user, name, args, context=None):
|
||||
args2 = []
|
||||
i = 0
|
||||
while i < len(args):
|
||||
names = args[i][2].split('@', 1)
|
||||
args2.append(('product.template.name', args[i][1], names[0]))
|
||||
if len(names) != 1 and names[1]:
|
||||
args2.append(('warehouse', args[i][1], names[1]))
|
||||
i += 1
|
||||
return args2
|
||||
|
||||
def default_company(self, cursor, user, context=None):
|
||||
company_obj = self.pool.get('company.company')
|
||||
if context is None:
|
||||
context = {}
|
||||
if context.get('company'):
|
||||
return company_obj.name_get(cursor, user, context['company'],
|
||||
context=context)[0]
|
||||
return context['company']
|
||||
return False
|
||||
|
||||
def get_purchase(self, cursor, user, ids, name, args, context=None):
|
||||
res = {}
|
||||
purchase_obj = self.pool.get('purchase.purchase')
|
||||
purchase_ids = set()
|
||||
|
||||
requests = self.browse(cursor, user, ids, context=context)
|
||||
for request in requests:
|
||||
if request.purchase_line:
|
||||
purchase_ids.add(request.purchase_line.purchase.id)
|
||||
purchase_names = dict(purchase_obj.name_get(
|
||||
cursor, user, purchase_ids, context=context))
|
||||
|
||||
for request in requests:
|
||||
if request.purchase_line:
|
||||
pid = request.purchase_line.purchase.id
|
||||
res[request.id] = (pid, purchase_names[pid])
|
||||
res[request.id] = request.purchase_line.purchase.id
|
||||
else:
|
||||
res[request.id] = False
|
||||
|
||||
return res
|
||||
|
||||
def get_state(self, cursor, user, ids, name, args, context=None):
|
||||
|
||||
Reference in new issue
Block a user