@@ -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+
276305def 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"
0 commit comments