From a09236848ca0b57f2b00b96ea616dcc48e56b716 Mon Sep 17 00:00:00 2001 From: Romain Derie Date: Mon, 18 Mar 2019 13:42:42 +0000 Subject: [PATCH] [FIX] link_tracker: prevent undeterministic order on new/recent filter MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Before this commit, ordering by `create_date DESC` and `write_date DESC` could lead to undeterministic order if multiple records had the exact same date. This is the case during tests as `crate_date` is set to transaction start time. (That's what NOW() in PSQL does) Now, we enforce that order to avoid randomness. Related to #31829 Signed-off-by: Jérémy Kersten (jke) --- addons/link_tracker/models/link_tracker.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/link_tracker/models/link_tracker.py b/addons/link_tracker/models/link_tracker.py index c0147fe0e56..fbc81b387a6 100644 --- a/addons/link_tracker/models/link_tracker.py +++ b/addons/link_tracker/models/link_tracker.py @@ -185,11 +185,11 @@ class LinkTracker(models.Model): @api.model def recent_links(self, filter, limit): if filter == 'newest': - return self.search_read([], order='create_date DESC', limit=limit) + return self.search_read([], order='create_date DESC, id DESC', limit=limit) elif filter == 'most-clicked': return self.search_read([('count', '!=', 0)], order='count DESC', limit=limit) elif filter == 'recently-used': - return self.search_read([('count', '!=', 0)], order='write_date DESC', limit=limit) + return self.search_read([('count', '!=', 0)], order='write_date DESC, id DESC', limit=limit) else: return {'Error': "This filter doesn't exist."}