From bb0b131d0fab2c2d36f38f4fc8b35b15f38a1a49 Mon Sep 17 00:00:00 2001 From: Ruben Young On <r.d.youngon@student.tudelft.nl> Date: Fri, 24 May 2019 16:56:39 +0200 Subject: [PATCH] test --- zesje/pregrader.py | 21 ++++++++++++--------- zesje/scans.py | 32 ++++++++++++++++---------------- 2 files changed, 28 insertions(+), 25 deletions(-) diff --git a/zesje/pregrader.py b/zesje/pregrader.py index 71b946e0..2df7de65 100644 --- a/zesje/pregrader.py +++ b/zesje/pregrader.py @@ -13,7 +13,7 @@ import cv2 import numpy as np -from zesje.database import db, Solution, Problem +from zesje.database import db, Solution, Problem, ProblemWidget from zesje.images import guess_dpi, get_box, fix_corner_markers @@ -26,20 +26,23 @@ def add_feedback_to_solution(page, page_img, corner_keypoints): page_img: image of the page barcode: data from the barcode on the page """ - problems_on_page = Problem.query.filter(Problem.widget.page == page).all() + widgets = ProblemWidget.filter(ProblemWidget.page == page).all() + + problems_on_page = [widget.problem for widget in widgets] for problem in problems_on_page: for mc_option in problem.mc_options: - sol = Solution.query.filter(Solution.problem_id == problem.id).one_or_none() + if mc_option: + sol = Solution.query.filter(Solution.problem_id == problem.id).one_or_none() - box = (mc_option.x, mc_option.y) + box = (mc_option.x, mc_option.y) - corner_keypoints = fix_corner_markers(corner_keypoints, page_img.shape) + corner_keypoints = fix_corner_markers(corner_keypoints, page_img.shape) - # check if box is filled - if box_is_filled(box, page_img, corner_keypoints): - sol.feedback.append(mc_option.feedback) - db.session.commit() + # check if box is filled + if box_is_filled(box, page_img, corner_keypoints): + sol.feedback.append(mc_option.feedback) + db.session.commit() def box_is_filled(box, page_img, corner_keypoints, marker_margin=72/2.54, threshold=225, cut_padding=0.1, box_size=11): diff --git a/zesje/scans.py b/zesje/scans.py index e4f93a57..f32c0ff1 100644 --- a/zesje/scans.py +++ b/zesje/scans.py @@ -77,22 +77,22 @@ def _process_pdf(scan_id, app_config): total = PyPDF2.PdfFileReader(open(pdf_path, "rb")).getNumPages() failures = [] - try: - for image, page in extract_images(pdf_path): - report_progress(f'Processing page {page} / {total}') - try: - success, description = process_page( - image, exam_config, output_directory - ) - if not success: - print(description) - failures.append(page) - except Exception as e: - report_error(f'Error processing page {page}: {e}') - return - except Exception as e: - report_error(f"Failed to read pdf: {e}") - raise + # try: + for image, page in extract_images(pdf_path): + report_progress(f'Processing page {page} / {total}') + # try: + success, description = process_page( + image, exam_config, output_directory + ) + if not success: + print(description) + failures.append(page) + # except Exception as e: + # report_error(f'Error processing page {e.__cause__}') + return + # except Exception as e: + # report_error(f"Failed to read pdf: {e}") + # raise if failures: processed = total - len(failures) -- GitLab