Skip to content

Commit 2c301cd

Browse files
authored
Merge pull request #1552 from akvo/feature/1551-disable-sentry-when-data-upload-has-errors
Feature/1551 disable sentry when data upload has errors
2 parents fd6780d + 43eb2f9 commit 2c301cd

File tree

2 files changed

+40
-26
lines changed

2 files changed

+40
-26
lines changed

backend/api/v1/v1_jobs/job.py

Lines changed: 40 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -273,6 +273,35 @@ def seed_data_job_result(task):
273273
job.save()
274274

275275

276+
def notify_sheet_data_error(
277+
user: SystemUser,
278+
title: str,
279+
upload_time=None
280+
):
281+
if not upload_time:
282+
upload_time = timezone.now()
283+
send_email(
284+
context={
285+
"send_to": [user.email],
286+
"listing": [
287+
{
288+
"name": "Upload Date",
289+
"value": upload_time.strftime("%m-%d-%Y, %H:%M:%S"),
290+
},
291+
{
292+
"name": "Questionnaire",
293+
"value": title,
294+
},
295+
{
296+
"name": "Error",
297+
"value": 'Sheet "data" not found',
298+
},
299+
],
300+
},
301+
type=EmailTypes.upload_error,
302+
)
303+
304+
276305
def validate_excel(job_id):
277306
job = Jobs.objects.get(pk=job_id)
278307
storage.download(f"upload/{job.info.get('file')}")
@@ -286,6 +315,13 @@ def validate_excel(job_id):
286315
form_id = job.info.get("form")
287316
form = Forms.objects.filter(pk=int(form_id)).first()
288317
file = job.info.get("file")
318+
xlsx = pd.ExcelFile(f"./tmp/{file}")
319+
if "data" not in xlsx.sheet_names:
320+
notify_sheet_data_error(
321+
user=job.user,
322+
title=form.name,
323+
)
324+
return
289325
df = pd.read_excel(f"./tmp/{file}", sheet_name="data")
290326
error_list = pd.DataFrame(data)
291327
error_list = error_list[
@@ -349,26 +385,10 @@ def handle_administrations_bulk_upload(filename, user_id, upload_time):
349385
errors = validate_administrations_bulk_upload(file_path)
350386
xlsx = pd.ExcelFile(file_path)
351387
if "data" not in xlsx.sheet_names:
352-
logger.error(f"Sheet 'data' not found in {filename}")
353-
send_email(
354-
context={
355-
"send_to": [user.email],
356-
"listing": [
357-
{
358-
"name": "Upload Date",
359-
"value": upload_time.strftime("%m-%d-%Y, %H:%M:%S"),
360-
},
361-
{
362-
"name": "Questionnaire",
363-
"value": "Administrative List",
364-
},
365-
{
366-
"name": "Error",
367-
"value": 'Sheet "data" not found',
368-
},
369-
],
370-
},
371-
type=EmailTypes.upload_error,
388+
notify_sheet_data_error(
389+
user=user,
390+
title="Administrative List",
391+
upload_time=upload_time
372392
)
373393
return
374394
df = pd.read_excel(file_path, sheet_name="data")
@@ -387,7 +407,6 @@ def handle_administrations_bulk_upload(filename, user_id, upload_time):
387407
],
388408
}
389409
if len(errors):
390-
logger.error(errors)
391410
error_file = (
392411
"./tmp/administration-error-"
393412
f"{upload_time.strftime('%Y%m%d%H%M%S')}-{user.id}.csv"
@@ -429,7 +448,6 @@ def handle_entities_error_upload(
429448
user: SystemUser,
430449
upload_time: timezone.datetime,
431450
):
432-
logger.error(errors)
433451
error_file = (
434452
"./tmp/entity-error-"
435453
f"{upload_time.strftime('%Y%m%d%H%M%S')}-{user.id}.csv"

backend/api/v1/v1_jobs/seed_data.py

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,6 @@
2626
from utils.email_helper import send_email, EmailTypes
2727
from uuid import uuid4
2828

29-
# import logging
30-
# logger = logging.getLogger("rtmis")
31-
# logger.warning("This is log message")
32-
3329

3430
def get_geo_value(aw):
3531
geo = aw

0 commit comments

Comments
 (0)