Skip to content

Commit

Permalink
wip
Browse files Browse the repository at this point in the history
  • Loading branch information
fabienheureux committed Jan 27, 2025
1 parent fe695b8 commit bff612e
Show file tree
Hide file tree
Showing 8 changed files with 39 additions and 21 deletions.
4 changes: 2 additions & 2 deletions .secrets.baseline
Original file line number Diff line number Diff line change
Expand Up @@ -151,7 +151,7 @@
"filename": "core/settings.py",
"hashed_secret": "1ee34e26aeaf89c64ecc2c85efe6a961b75a50e9",
"is_verified": false,
"line_number": 219
"line_number": 220
}
],
"docker-compose.yml": [
Expand Down Expand Up @@ -207,5 +207,5 @@
}
]
},
"generated_at": "2025-01-22T18:36:09Z"
"generated_at": "2025-01-27T22:31:39Z"
}
3 changes: 2 additions & 1 deletion core/context_processors.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,8 @@ def assistant(request) -> dict:
return {
"assistant": {
"is_home": request.path == reverse("qfdmd:home"),
"is_iframe": request.session.get("iframe"),
"is_iframe": request.COOKIES.get("iframe") == "1"
or "iframe" in request.GET,
"POSTHOG_KEY": settings.ASSISTANT["POSTHOG_KEY"],
"MATOMO_ID": settings.ASSISTANT["MATOMO_ID"],
},
Expand Down
3 changes: 2 additions & 1 deletion core/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -76,9 +76,10 @@
"corsheaders.middleware.CorsMiddleware",
"django.middleware.security.SecurityMiddleware",
"whitenoise.middleware.WhiteNoiseMiddleware",
"django.contrib.sessions.middleware.SessionMiddleware",
"qfdmd.middleware.RemoveCookieFromVaryMiddleware",
"django.middleware.common.CommonMiddleware",
"django.middleware.csrf.CsrfViewMiddleware",
"django.contrib.sessions.middleware.SessionMiddleware",
"django.contrib.auth.middleware.AuthenticationMiddleware",
"django.contrib.messages.middleware.MessageMiddleware",
"django.middleware.clickjacking.XFrameOptionsMiddleware",
Expand Down
27 changes: 27 additions & 0 deletions qfdmd/middleware.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
import logging

logger = logging.getLogger(__name__)


class RemoveCookieFromVaryMiddleware:
def __init__(self, get_response):
self.get_response = get_response

def __call__(self, request):
response = self.get_response(request)
if request.user.is_authenticated:
response.headers["logged-in"] = 1
else:
del response.headers["Vary"]
response.headers["Vary"] = "iframe, logged-in"

if "iframe" in request.GET:
response.set_cookie("iframe", 1)

if (
response.cookies.get("iframe") == "1"
or request.COOKIES.get("iframe") == "1"
):
response.headers["iframe"] = 1

return response
17 changes: 4 additions & 13 deletions qfdmd/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,8 @@
from django.shortcuts import render
from django.urls import reverse_lazy
from django.utils.decorators import method_decorator
from django.views.decorators.cache import cache_page
from django.views.decorators.cache import cache_control, cache_page
from django.views.decorators.vary import vary_on_headers
from django.views.generic import DetailView, FormView, ListView

from core.notion import create_new_row_in_notion_table
Expand Down Expand Up @@ -75,15 +76,6 @@ def get_context_data(self, **kwargs: Any) -> dict[str, Any]:
)
return context

def setup(self, request, *args, **kwargs):
if "iframe" not in request.session:
request.session["iframe"] = "iframe" in request.GET
if not request.user.is_authenticated:
request.session.set_expiry(
0
) # set to 0 expires when the users closes its browser
super().setup(request, *args, **kwargs)


def cache_page_for_guests(*cache_args, **cache_kwargs):
def inner_decorator(func):
Expand All @@ -100,7 +92,8 @@ def inner_function(request, *args, **kwargs):
return inner_decorator


@method_decorator(cache_page_for_guests(60 * 15), name="dispatch")
@method_decorator(cache_control(max_age=60 * 15), name="dispatch")
@method_decorator(vary_on_headers("logged-in", "iframe"), name="dispatch")
class HomeView(BaseView, ListView):
template_name = "qfdmd/home.html"
model = Suggestion
Expand All @@ -124,11 +117,9 @@ def get_context_data(self, **kwargs: Any) -> dict[str, Any]:
return context


@method_decorator(cache_page_for_guests(60 * 15), name="dispatch")
class SynonymeDetailView(BaseView, DetailView):
model = Synonyme


@method_decorator(cache_page_for_guests(60 * 15), name="dispatch")
class CMSPageDetailView(BaseView, DetailView):
model = CMSPage
2 changes: 1 addition & 1 deletion servers.conf.erb
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ server {
proxy_pass http://unix:/tmp/gunicorn.sock;
proxy_cache assistant;
proxy_set_header Host $http_host;
proxy_cache_key $request_method$request_uri;
proxy_cache_key $request_method$request_uri$is_args$args;
proxy_cache_lock on;
proxy_cache_lock_timeout 10s;
proxy_cache_use_stale error timeout updating;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ const script = document.currentScript as HTMLScriptElement
const slug = script?.dataset?.objet;
const origin = new URL(script?.getAttribute("src")).origin
// TODO: mise en prod, remplacer dechet ci-dessous par une string vide
const src = `${origin}/${slug || 'dechet'}?iframe`;
const src = `${origin}/dechet/${slug || ''}?iframe`;
const iframe = document.createElement("iframe");

const iframeAttributes = {
Expand Down
2 changes: 0 additions & 2 deletions templates/components/search/view.html
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,6 @@
qf-content-center
"
>
{% csrf_token %}

<button
aria-label="Rechercher"
type="submit"
Expand Down

0 comments on commit bff612e

Please sign in to comment.