|
39 | 39 |
|
40 | 40 | from django import forms |
41 | 41 | from django.conf import settings |
42 | | -from django.core.cache import cache |
| 42 | +from django.core.cache import cache, caches |
43 | 43 | from django.urls import reverse as urlreverse |
44 | 44 | from django.db.models import Q |
45 | 45 | from django.http import Http404, HttpResponseBadRequest, HttpResponse, HttpResponseRedirect, QueryDict |
46 | 46 | from django.shortcuts import render |
47 | 47 | from django.utils.cache import _generate_cache_key # type: ignore |
48 | 48 |
|
49 | 49 |
|
| 50 | + |
50 | 51 | import debug # pyflakes:ignore |
51 | 52 |
|
52 | 53 | from ietf.doc.models import ( Document, DocHistory, DocAlias, State, |
@@ -485,12 +486,20 @@ def drafts_in_iesg_process(request): |
485 | 486 | }) |
486 | 487 |
|
487 | 488 | def recent_drafts(request, days=7): |
488 | | - since = datetime.datetime.now()-datetime.timedelta(days=days) |
489 | | - state = State.objects.get(type='draft', slug='active') |
490 | | - events = NewRevisionDocEvent.objects.filter(time__gt=since) |
491 | | - names = [ e.doc.name for e in events ] |
492 | | - docs = Document.objects.filter(name__in=names, states=state) |
493 | | - results, meta = prepare_document_table(request, docs, query={'sort':'-date', }, max_results=len(names)) |
| 489 | + slowcache = caches['slowpages'] |
| 490 | + cache_key = f'recentdraftsview{days}' |
| 491 | + cached_val = slowcache.get(cache_key) |
| 492 | + if not cached_val: |
| 493 | + since = datetime.datetime.now()-datetime.timedelta(days=days) |
| 494 | + state = State.objects.get(type='draft', slug='active') |
| 495 | + events = NewRevisionDocEvent.objects.filter(time__gt=since) |
| 496 | + names = [ e.doc.name for e in events ] |
| 497 | + docs = Document.objects.filter(name__in=names, states=state) |
| 498 | + results, meta = prepare_document_table(request, docs, query={'sort':'-date', }, max_results=len(names)) |
| 499 | + slowcache.set(cache_key, [docs, results, meta], 1800) |
| 500 | + else: |
| 501 | + [docs, results, meta] = cached_val |
| 502 | + |
494 | 503 | pages = 0 |
495 | 504 | for doc in results: |
496 | 505 | pages += doc.pages or 0 |
|
0 commit comments