From 90b47830823fc6bd80b2b0cde9892ab8436bccf4 Mon Sep 17 00:00:00 2001 From: Henrik Levkowetz Date: Tue, 30 Jun 2020 18:34:11 +0000 Subject: [PATCH] Fixed a bug in the caching of the agenda where too much was cached. Fixes issue #3008. - Legacy-Id: 18109 --- ietf/meeting/views.py | 19 +++---------------- ietf/templates/meeting/agenda.html | 8 ++++++-- 2 files changed, 9 insertions(+), 18 deletions(-) diff --git a/ietf/meeting/views.py b/ietf/meeting/views.py index 58503d97e..a382ecf2f 100644 --- a/ietf/meeting/views.py +++ b/ietf/meeting/views.py @@ -904,12 +904,6 @@ def agenda(request, num=None, name=None, base=None, ext=None, owner=None, utc="" else: raise Http404("No such meeting") - if name == None and owner == None: - cache_key = ("meeting:%s:%s%s" % (meeting.number, base, ext))[:228] - rendered_page = caches['slowpages'].get(cache_key) - if rendered_page: - return rendered_page - if name is None: schedule = get_schedule(meeting, name) else: @@ -951,25 +945,18 @@ def agenda(request, num=None, name=None, base=None, ext=None, owner=None, utc="" p.group_list.sort(key=lambda g: g.acronym) + is_current_meeting = bool(num == get_current_ietf_meeting_num()) rendered_page = render(request, "meeting/"+base+ext, { "schedule": schedule, "filtered_assignments": filtered_assignments, "updated": updated, "group_parents": group_parents, "now": datetime.datetime.now(), - "is_current_meeting": bool(num == get_current_ietf_meeting_num()), + "is_current_meeting": is_current_meeting, "use_codimd": True if meeting.date>=settings.MEETING_USES_CODIMD_DATE else False, + "cache_time": 150 if is_current_meeting else 3600, }, content_type=mimetype[ext]) - # If the agenda is for the current meeting, only cache for 2 minutes - if name == None and owner == None: - cache_key = ("meeting:%s:%s%s" % (meeting.number, base, ext))[:228] - if meeting.number == get_current_ietf_meeting_num(): - timeout = 60 * 2 - else: - timeout = 60 * 60 * 24 - caches['slowpages'].set(cache_key, rendered_page, timeout) - return rendered_page def agenda_csv(schedule, filtered_assignments): diff --git a/ietf/templates/meeting/agenda.html b/ietf/templates/meeting/agenda.html index c4d82fc07..dd84b34e6 100644 --- a/ietf/templates/meeting/agenda.html +++ b/ietf/templates/meeting/agenda.html @@ -44,13 +44,16 @@
+ {# cache this part -- it takes 3-6 seconds to generate #} + {% load cache %} + {% cache cache_time ietf_meeting_agenda_utc schedule.meeting.number request.path %}

Agenda

- {% if is_current_meeting %} + {% if is_current_meeting %}

Note: IETF agendas are subject to change, up to and during a meeting.

- {% endif %} + {% endif %} {% if schedule.meeting.agenda_info_note %}

@@ -351,6 +354,7 @@

+ {% endcache %} {% endblock %} {% block js %}