Browse Source

Added order by ID desc to record id list

pull/1/head
Veronika Kotovich 9 years ago
parent
commit
15988ab19b
  1. 31
      controllers/main.py
  2. 7
      mail_move_message_models.py

31
controllers/main.py

@ -1,14 +1,28 @@
from openerp.addons.web.controllers.main import DataSet
from openerp.tools.translate import _
from openerp import http
from openerp.http import request
class DataSetCustom(DataSet):
def _call_kw(self, model, method, args, kwargs):
res = super(DataSetCustom, self)._call_kw(model, method, args, kwargs)
if method == 'name_search' and 'context' in kwargs and kwargs['context'].get('extended_name_with_contact') and res:
model = request.session.model(model)
fields = model.fields_get(False, request.context)
@http.route('/web/dataset/call_kw/<model>/name_search', type='json', auth="user")
def name_search(self, model, method, args, kwargs):
context = kwargs.get('context')
if context and context.get('extended_name_with_contact'):
#add order by ID desc
cr, uid = request.cr, request.uid
Model = request.registry[model]
search_args = list(kwargs.get('args') or [])
limit = int(kwargs.get('limit') or 100)
operator = kwargs.get('operator')
name = kwargs.get('name')
if Model._rec_name and (not name == '' and operator == 'ilike'):
search_args += [(Model._rec_name, operator, name)]
ids = Model.search(cr, uid, search_args, limit=limit, order='id desc', context=context)
res = Model.name_get(cr, uid, ids, context)
#extend record names with partner and ID
fields = Model.fields_get(cr, uid, False, request.context)
contact_field = False
for n, f in fields.iteritems():
if f['type'] == 'many2one' and f['relation'] == 'res.partner':
@ -16,7 +30,7 @@ class DataSetCustom(DataSet):
break
partner_info = {}
if contact_field:
partner_info = model.read([r[0] for r in res], [contact_field])
partner_info = Model.read(cr, uid, [r[0] for r in res], [contact_field], request.context)
partner_info = dict([(p['id'], p[contact_field]) for p in partner_info])
final_res = []
for r in res:
@ -24,7 +38,6 @@ class DataSetCustom(DataSet):
final_res.append((r[0], _('%s [partner: %s] ID %s') % (r[1], partner_info.get(r[0])[1], r[0])))
else:
final_res.append((r[0], _('%s ID %s') % (r[1], r[0])))
res = final_res
return res
return final_res
return self._call_kw(model, method, args, kwargs)

7
mail_move_message_models.py

@ -4,7 +4,6 @@ from openerp.tools.translate import _
class wizard(models.TransientModel):
_name = 'mail_move_message.wizard'
@api.model
def _model_selection(self):
selection = []
config_parameters = self.env['ir.config_parameter']
@ -14,6 +13,10 @@ class wizard(models.TransientModel):
selection = [(m.model, m.display_name) for m in self.env['ir.model'].search([('model', 'in', model_names)])]
return selection
def _default_model(self):
model_fields = self.fields_get()
return model_fields['model']['selection'] and model_fields['model']['selection'][0][0]
message_id = fields.Many2one('mail.message', string='Message')
message_body = fields.Html(related='message_id.body', string='Message to move', readonly=True)
message_moved_by_message_id = fields.Many2one('mail.message', related='message_id.moved_by_message_id', string='Moved with', readonly=True)
@ -24,7 +27,7 @@ class wizard(models.TransientModel):
record_url = fields.Char('Link to record', readonly=True)
can_move = fields.Boolean('Can move', compute='get_can_move')
move_back = fields.Boolean('Move to origin', help='Move message and submessages to original place')
model = fields.Selection(_model_selection, string='Model')
model = fields.Selection(_model_selection, string='Model', default=_default_model)
partner_id = fields.Many2one('res.partner', string='Author')
filter_by_partner = fields.Boolean('Filter Records by partner')

Loading…
Cancel
Save