Use wagtail's new built-in cache tags

They're good, because I wrote them
This commit is contained in:
Jake Howard 2024-01-05 15:44:45 +00:00
parent 48e36bc5b9
commit 518461a88f
Signed by: jake
GPG Key ID: 57AFB45680EDD477
6 changed files with 93 additions and 103 deletions

View File

@ -1,12 +1,12 @@
{% extends "common/content_page.html" %}
{% load cache util_tags %}
{% load wagtail_cache %}
{% block post_content %}
{{ block.super }}
{% if not request.is_preview %}
{% cache FRAGMENT_CACHE_TTL|jitter:FRAGMENT_CACHE_TTL_JITTER "similar-content" page.id request.is_preview %}
{% wagtailpagecache FRAGMENT_CACHE_TTL "similar-content" %}
<section class="container similar-content" id="similar-content">
<h2 class="subtitle is-size-2">Similar content</h2>
@ -21,6 +21,6 @@
{% endfor %}
</section>
{% endcache %}
{% endwagtailpagecache %}
{% endif %}
{% endblock %}

View File

@ -1,4 +1,4 @@
{% load static wagtailcore_tags wagtailuserbar navbar_tags footer_tags plausible_wagtail favicon_tags sri cache %}
{% load static wagtailcore_tags wagtailuserbar navbar_tags footer_tags plausible_wagtail favicon_tags sri wagtail_cache %}
<!DOCTYPE html>
<html lang="en-GB">
@ -32,9 +32,9 @@
<body class="{% block body_class %}{% endblock %}">
{% wagtailuserbar %}
{% cache 1800 "navbar" request.is_preview %}
{% wagtailcache 1800 "navbar" %}
{% navbar %}
{% endcache %}
{% endwagtailcache %}
{% block main %}
<main>
@ -42,9 +42,9 @@
</main>
{% endblock %}
{% cache 1800 "footer" request.is_preview %}
{% wagtailcache 1800 "footer" %}
{% footer %}
{% endcache %}
{% endwagtailcache %}
{# Not async to avoid bright flashes #}
{% sri_static "js/dark-mode.js" %}

View File

@ -1,6 +1,6 @@
{% load wagtailcore_tags cache util_tags %}
{% load wagtailcore_tags wagtail_cache %}
{% cache FRAGMENT_CACHE_TTL|jitter:FRAGMENT_CACHE_TTL_JITTER "content-details" page.id request.is_preview %}
{% wagtailpagecache FRAGMENT_CACHE_TTL "content-details" %}
<div class="content-details field is-grouped">
{% if page.date %}
<span class="icon-text">
@ -33,4 +33,4 @@
</div>
{% endif %}
</div>
{% endcache %}
{% endwagtailpagecache %}

View File

@ -1,6 +1,6 @@
{% load wagtailcore_tags cache util_tags %}
{% load wagtailcore_tags wagtail_cache util_tags %}
{% cache FRAGMENT_CACHE_TTL|jitter:FRAGMENT_CACHE_TTL_JITTER "listing-item" page.id request.is_preview breadcrumbs %}
{% wagtailpagecache FRAGMENT_CACHE_TTL "listing-item" breadcrumbs %}
<article class="media listing-item">
<div class="columns">
<figure class="media-left column is-3 image-column">
@ -24,4 +24,4 @@
</div>
</div>
</article>
{% endcache %}
{% endwagtailpagecache %}

View File

@ -1,5 +1,3 @@
import random
from django.template import Library
from django.utils.encoding import force_str
from wagtail.models import Page
@ -20,11 +18,6 @@ def pagefullurl(context: dict, page: Page) -> str:
return page.get_full_url(context["request"])
@register.filter()
def jitter(original: float, jitter: float) -> float:
return random.uniform(original + jitter, original - jitter)
@register.filter()
def extract_text(html: str | RichText) -> str:
return utils.extract_text(force_str(html))

View File

@ -3,12 +3,9 @@ from django.http.request import HttpRequest
def global_vars(request: HttpRequest) -> dict:
# noop caching in preview
fragment_cache_ttl = 0 if getattr(request, "is_preview", False) else 3600
return {
"SEO_INDEX": settings.SEO_INDEX,
"DEBUG": settings.DEBUG,
"FRAGMENT_CACHE_TTL": fragment_cache_ttl,
"FRAGMENT_CACHE_TTL_JITTER": fragment_cache_ttl * 0.1,
"FRAGMENT_CACHE_TTL": 3600,
"ACTIVITYPUB_HOST": settings.ACTIVITYPUB_HOST,
}