From f15ffc84b0fc5e954426441581fd01052c07aa96 Mon Sep 17 00:00:00 2001 From: Magnus Hagander Date: Tue, 18 May 2021 09:20:13 +0200 Subject: [PATCH] Enhance the xkey tags set on documentation pages * For 'current' docs, *also* set the xkey pgdocs_current. Otherwise when a new major release is turned into current, the loader purge wouldn't be able to replace it, only replace the devel version. * Set the pgdocs_ key on the release notes pages under /release/ (this is what triggered me to look at this) * Set the pgdocs_all key for index pages such as /docs/ and /docs/release/. This will be purged every time, making sure we have an up-to-date list of versions. * Set the key pgdocs_pdf for any pages that have PDF file information in them, so we can purge the list when new PDFs are uploaded. --- pgweb/docs/views.py | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/pgweb/docs/views.py b/pgweb/docs/views.py index 54393f74..c2d00c89 100644 --- a/pgweb/docs/views.py +++ b/pgweb/docs/views.py @@ -137,6 +137,8 @@ def docpage(request, version, filename): } }) r['xkey'] = 'pgdocs_{}'.format(page.display_version()) + if version == 'current': + r['xkey'] += ' pgdocs_current' return r @@ -158,6 +160,8 @@ def docsvg(request, version, filename): r = HttpResponse(page.content, content_type="image/svg+xml") r['xkey'] = 'pgdocs_{}'.format(page.display_version()) + if version == 'current': + r['xkey'] += ' pgdocs_current' return r @@ -181,9 +185,11 @@ def redirect_root(request, version): def root(request): versions = Version.objects.filter(Q(supported=True) | Q(testing__gt=0, tree__gt=0)).order_by('-tree') - return render_pgweb(request, 'docs', 'docs/index.html', { + r = render_pgweb(request, 'docs', 'docs/index.html', { 'versions': [_VersionPdfWrapper(v) for v in versions], }) + r['xkey'] = 'pgdocs_all pgdocs_pdf' + return r class _VersionPdfWrapper(object): @@ -222,9 +228,11 @@ def manuals(request): def manualarchive(request): versions = Version.objects.filter(testing=0, supported=False, tree__gt=0).order_by('-tree') - return render_pgweb(request, 'docs', 'docs/archive.html', { + r = render_pgweb(request, 'docs', 'docs/archive.html', { 'versions': [_VersionPdfWrapper(v) for v in versions], }) + r['xkey'] = 'pgdocs_all pgdocs_pdf' + return r def release_notes(request, major_version=None, minor_version=None): @@ -336,7 +344,13 @@ def release_notes(request, major_version=None, minor_version=None): } else: context = {'release_notes': release_notes} - return render_pgweb(request, 'docs', 'docs/release_notes.html', context) + + r = render_pgweb(request, 'docs', 'docs/release_notes.html', context) + if major_version: + r['xkey'] = 'pgdocs_{}'.format(major_version) + else: + r['xkey'] = 'pgdocs_all' + return r @login_required -- 2.39.5