summaryrefslogtreecommitdiff
path: root/pgweb/util/misc.py
diff options
context:
space:
mode:
Diffstat (limited to 'pgweb/util/misc.py')
-rw-r--r--pgweb/util/misc.py15
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():