Skip to content
Snippets Groups Projects
Commit bb0b131d authored by Ruben Young On's avatar Ruben Young On
Browse files

test

parent ce9e1ed3
No related branches found
No related tags found
1 merge request!17Add pregrading
Pipeline #17922 failed
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
import cv2 import cv2
import numpy as np 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 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): ...@@ -26,20 +26,23 @@ def add_feedback_to_solution(page, page_img, corner_keypoints):
page_img: image of the page page_img: image of the page
barcode: data from the barcode on 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 problem in problems_on_page:
for mc_option in problem.mc_options: 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 # check if box is filled
if box_is_filled(box, page_img, corner_keypoints): if box_is_filled(box, page_img, corner_keypoints):
sol.feedback.append(mc_option.feedback) sol.feedback.append(mc_option.feedback)
db.session.commit() 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): def box_is_filled(box, page_img, corner_keypoints, marker_margin=72/2.54, threshold=225, cut_padding=0.1, box_size=11):
......
...@@ -77,22 +77,22 @@ def _process_pdf(scan_id, app_config): ...@@ -77,22 +77,22 @@ def _process_pdf(scan_id, app_config):
total = PyPDF2.PdfFileReader(open(pdf_path, "rb")).getNumPages() total = PyPDF2.PdfFileReader(open(pdf_path, "rb")).getNumPages()
failures = [] failures = []
try: # try:
for image, page in extract_images(pdf_path): for image, page in extract_images(pdf_path):
report_progress(f'Processing page {page} / {total}') report_progress(f'Processing page {page} / {total}')
try: # try:
success, description = process_page( success, description = process_page(
image, exam_config, output_directory image, exam_config, output_directory
) )
if not success: if not success:
print(description) print(description)
failures.append(page) failures.append(page)
except Exception as e: # except Exception as e:
report_error(f'Error processing page {page}: {e}') # report_error(f'Error processing page {e.__cause__}')
return return
except Exception as e: # except Exception as e:
report_error(f"Failed to read pdf: {e}") # report_error(f"Failed to read pdf: {e}")
raise # raise
if failures: if failures:
processed = total - len(failures) processed = total - len(failures)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment