Skip to content

Commit e341d0f

Browse files
committed
Better handle missing svg error
1 parent f9606fa commit e341d0f

File tree

2 files changed

+20
-10
lines changed

2 files changed

+20
-10
lines changed

qfdmd/middleware.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ def __call__(self, request):
1414
def _set_logged_in_cookie(self, request, response):
1515
"""Set or update the 'logged-in' header based on authentication."""
1616
cookie_name = "logged_in"
17-
if request.user.is_authenticated:
17+
if hasattr(request, "user") and request.user.is_authenticated:
1818
response.set_cookie(cookie_name, "1")
1919
elif request.COOKIES.get(cookie_name):
2020
response.delete_cookie(cookie_name)

qfdmd/templatetags/qfdmd_tags.py

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
from typing import cast
2+
import logging
23

34
from django import template
45
from django.conf import settings
@@ -7,6 +8,7 @@
78
from django.utils.safestring import mark_safe
89

910
register = template.Library()
11+
logger = logging.getLogger(__name__)
1012

1113

1214
@register.inclusion_tag("components/patchwork/patchwork.html")
@@ -26,16 +28,24 @@ def render_file_content(file_field: FileField) -> str:
2628
"""Renders the content of a Filefield as a safe HTML string
2729
and caches the result."""
2830

29-
def get_file_content() -> str:
30-
with file_field.open() as f:
31-
return mark_safe(f.read().decode("utf-8")) # noqa: S308
31+
try:
3232

33-
return cast(
34-
str,
35-
cache.get_or_set(
36-
f"filefield-{file_field.name}-{file_field.size}", get_file_content
37-
),
38-
)
33+
def get_file_content() -> str:
34+
with file_field.open() as f:
35+
return mark_safe(f.read().decode("utf-8")) # noqa: S308
36+
37+
return cast(
38+
str,
39+
cache.get_or_set(
40+
f"filefield-{file_field.name}-{file_field.size}", get_file_content
41+
),
42+
)
43+
except FileNotFoundError as exception:
44+
# We silent the error here to prevent crashing a page for a missing svg
45+
logger.warning("An error was quietly ignored")
46+
logger.error(exception)
47+
48+
return ""
3949

4050

4151
@register.inclusion_tag("head/favicon.html")

0 commit comments

Comments
 (0)