Skip to content

Commit 2987fd4

Browse files
committed
import_media: prompt user when uploading SVG files
1 parent 75ae4b2 commit 2987fd4

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

datasources/media_import/import_media.py

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
from backend.lib.processor import BasicProcessor
1010
from common.config_manager import config
11-
from common.lib.exceptions import QueryParametersException
11+
from common.lib.exceptions import QueryParametersException, QueryNeedsExplicitConfirmationException
1212
from common.lib.user_input import UserInput
1313
from common.lib.helpers import andify
1414

@@ -65,9 +65,10 @@ def validate_query(query, request, user):
6565
seen_types = set()
6666
all_files = 0
6767

68-
uploaded_files = request.files.getlist("option-data_upload")
68+
uploaded_files = request.files.getlist("option-data_upload") # if multiple files are uploaded; the first validate_query only has a single file
6969
single_zip_file = uploaded_files and len(uploaded_files) == 1 and uploaded_files[0].filename.lower().endswith(".zip")
7070

71+
# option-data_upload-entries is passed the first time the form is submitted if the user has uploaded a zip file
7172
if "option-data_upload-entries" in request.form or single_zip_file:
7273
# we have a zip file!
7374
try:
@@ -96,6 +97,8 @@ def validate_query(query, request, user):
9697
# figure out if we have mixed media types
9798
seen_types = set()
9899
for file in files:
100+
if not query.get("frontend-confirm") and file["filename"].endswith(".svg"):
101+
raise QueryNeedsExplicitConfirmationException("SVG files may not be processed correctly by some 4CAT processors. Are you sure you want to proceed?")
99102
try:
100103
file_type = mimetypes.guess_type(file["filename"])[0].split("/")[0]
101104
seen_types.add(file_type)
@@ -121,6 +124,11 @@ def validate_query(query, request, user):
121124
if file.filename == ".metadata.json" or file.filename.endswith(".log"):
122125
continue
123126

127+
# Warn on SVG files
128+
if not query.get("frontend-confirm") and file.filename.lower().endswith(".svg"):
129+
raise QueryNeedsExplicitConfirmationException(
130+
"SVG files may not be processed correctly by some 4CAT processors. Are you sure you want to proceed?")
131+
124132
# when uploading multiple files, we don't want zips
125133
if file.filename.lower().endswith(".zip"):
126134
raise QueryParametersException("When uploading media in a zip archive, please upload exactly one "

0 commit comments

Comments
 (0)