diff options
Diffstat (limited to 'pgweb/util/misc.py')
-rw-r--r-- | pgweb/util/misc.py | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/pgweb/util/misc.py b/pgweb/util/misc.py index 4b3e0728..3f436c85 100644 --- a/pgweb/util/misc.py +++ b/pgweb/util/misc.py @@ -40,14 +40,25 @@ def varnish_purge(url): def version_sort(l): """ map a directory name to a format that will show up sensibly in an ascii sort + We specifically detect entries that look like versions. Weird things may happen + if there is a mix of versions and non-versions in the same directory, but we + generally don't have that. """ mkey = l['link'] - m = re.match('v([0-9]+)\.([0-9]+)\.([0-9]+)$',l['url']) + m = re.match('v?([0-9]+)\.([0-9]+)\.([0-9]+)$',l['url']) if m: mkey = m.group(1) + '%02d' % int(m.group(2)) + '%02d' % int(m.group(3)); - m = re.match('v([0-9]+)\.([0-9]+)$',l['url']) + m = re.match('v?([0-9]+)\.([0-9]+)$',l['url']) if m: mkey = m.group(1) + '%02d' % int(m.group(2)); + # SOOO ugly. But if it's v10 and up, just prefix it to get it higher + if int(m.group(1)) >= 10: + mkey = 'a' + mkey + m = re.match('v?([0-9]+)$', l['url']) + if m: + # This can only happen on 10+, so... + mkey = 'a' + m.group(1) + '0' + return mkey def generate_random_token(): |