[IMP] make resequence field customizable, make sequence number for first record configurable

bzr revid: xmo@openerp.com-20120830121403-82cr13t824jdxcsh
This commit is contained in:
Xavier Morel 2012-08-30 14:14:03 +02:00
parent 209ff94873
commit 15c7043f56
1 changed files with 18 additions and 4 deletions

View File

@ -1190,12 +1190,26 @@ class DataSet(openerpweb.Controller):
return req.session.exec_workflow(model, id, signal)
@openerpweb.jsonrequest
def resequence(self, req, model, ids):
def resequence(self, req, model, ids, field='sequence', offset=0):
""" Re-sequences a number of records in the model, by their ids
The re-sequencing starts at the first model of ``ids``, the sequence
number is incremented by one after each record and starts at ``offset``
:param ids: identifiers of the records to resequence, in the new sequence order
:type ids: list(id)
:param str field: field used for sequence specification, defaults to
"sequence"
:param int offset: sequence number for first record in ``ids``, allows
starting the resequencing from an arbitrary number,
defaults to ``0``
"""
m = req.session.model(model)
if not len(m.fields_get(['sequence'])):
if not m.fields_get([field]):
return False
for i in range(len(ids)):
m.write([ids[i]], { 'sequence': i })
# python 2.6 has no start parameter
for i, id in enumerate(ids):
m.write(id, { field: i + offset })
return True
class DataGroup(openerpweb.Controller):