summaryrefslogtreecommitdiff
path: root/pgweb/docs/struct.py
diff options
context:
space:
mode:
Diffstat (limited to 'pgweb/docs/struct.py')
-rw-r--r--pgweb/docs/struct.py24
1 files changed, 20 insertions, 4 deletions
diff --git a/pgweb/docs/struct.py b/pgweb/docs/struct.py
index dcc66618..3728b6ae 100644
--- a/pgweb/docs/struct.py
+++ b/pgweb/docs/struct.py
@@ -9,12 +9,28 @@ def get_struct():
# Can't use a model here, because we don't (for some reason) have a
# hard link to the versions table here
curs = connection.cursor()
- curs.execute("SELECT d.version, d.file, v.docsloaded FROM docs d INNER JOIN core_version v ON v.tree=d.version WHERE v.supported")
+ curs.execute("SELECT d.version, d.file, v.docsloaded FROM docs d INNER JOIN core_version v ON v.tree=d.version WHERE d.version > 0 ORDER BY d.version DESC")
+
+ # Start priority is higher than average but lower than what we assign
+ # to the current version of the docs.
+ docprio = 0.8
+ lastversion = None
+
for version, filename, loaded in curs.fetchall():
+ # Decrease the priority with 0.1 for every version of the docs
+ # we move back in time, until we reach 0.1. At 0.1 it's unlikely
+ # to show up in a general search, but still possible to reach
+ # through version specific searching for example.
+ if lastversion != version:
+ if docprio > 0.2:
+ docprio -= 0.1
+ lastversion = version
+
yield ('docs/%s/static/%s' % (version, filename),
- None, loaded)
- #FIXME ^ do something smart with priorities on older
- #versions
+ docprio, loaded)
+
+ # Also yield the current version urls, with the highest
+ # possible priority
if version == currentversion.tree:
yield ('docs/current/static/%s' % filename,
1.0, loaded)