remove etag and last modified caching and disable it in backend settings

This commit is contained in:
Moritz Münch 2022-01-09 18:27:03 +01:00
parent 1b988f03c7
commit d144d1cc7a
3 changed files with 1 additions and 59 deletions

View File

@ -1,52 +0,0 @@
# encoding: utf-8
#
# Copyright (C) 2020 willipink.eu
# Author Moritz Münch moritzmuench@mailbox.org
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
from django.core.cache import cache
from django.http import Http404
from .models import Coin
def get_last_modified_coin(request):
return cache.get('last_modified_coin', set_last_modified_coin())
def set_last_modified_coin():
''' set and return the datetime of the last coin added '''
try:
last_modified = Coin.objects.latest('date_modified').date_modified
except Coin.DoesNotExist:
raise Http404(f'Das Land existiert nicht')
cache.set('last_modified_coin', last_modified)
return last_modified
def get_last_modified_country(request, name_iso):
return cache.get(f'last_modified_{name_iso}', set_last_modified_country(name_iso))
def set_last_modified_country(name_iso):
''' return the datetime of the last coin added to a country '''
try:
last_modified = Coin.objects.filter(country=name_iso).latest('date_modified').date_modified
except Coin.DoesNotExist:
raise Http404(f'Das Land "{name_iso}" existiert nicht')
cache.set(f'last_modified_{name_iso}', last_modified)
return last_modified

View File

@ -28,13 +28,10 @@ from django.template.defaultfilters import register
from django.views.decorators.http import condition
from django.utils.datastructures import MultiValueDictKeyError
from .cache import (get_last_modified_coin, set_last_modified_coin,
get_last_modified_country, set_last_modified_country)
from .models import Country, Stamp, Coin, User
from .helper import total_coin_sum, coin_sum_of_
@condition(last_modified_func=get_last_modified_coin)
def index(request):
''' index view '''
@ -55,7 +52,6 @@ def index(request):
return HttpResponse(template.render(context, request))
@condition(last_modified_func=get_last_modified_country)
def detail_country(request, name_iso):
''' wrapper_view for a *single* country '''
@ -370,8 +366,6 @@ def add_coin(request, country, year, value):
in_collector = ec,
exists = exists)
set_last_modified_coin()
set_last_modified_country(country.name_iso)
return response()

View File

@ -48,7 +48,7 @@ MIDDLEWARE = [
'django.middleware.common.CommonMiddleware',
# 'django.middleware.cache.FetchFromCacheMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.middleware.http.ConditionalGetMiddleware',
# 'django.middleware.http.ConditionalGetMiddleware', # set 'ETag' and 'Last Modified' headers
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',