diff --git a/aleksis/apps/alsijil/tasks.py b/aleksis/apps/alsijil/tasks.py index 47fd9074c4ad6fd81383089cf2563d2691ee3ba4..7216716a72d56879a00aa3e09cda5b8f77314916 100644 --- a/aleksis/apps/alsijil/tasks.py +++ b/aleksis/apps/alsijil/tasks.py @@ -17,6 +17,10 @@ from .models import Documentation, ExtraMark, NewPersonalNote, ParticipationStat from .util.statistics import StatisticsBuilder +class PDFGenerationError(Exception): + """Error in PDF generation.""" + + @recorded_task def generate_groups_register_printout( groups: list[int], @@ -134,8 +138,8 @@ def generate_groups_register_printout( with allow_join_result(): result.wait() file_object.refresh_from_db() - if not result.status == SUCCESS and file_object.file: - raise Exception(_("PDF generation failed")) + if not (result.status == SUCCESS and file_object.file): + raise PDFGenerationError(_("PDF generation failed")) recorder.set_progress(5 + len(groups), _number_of_steps) @@ -151,9 +155,7 @@ def generate_person_register_printout( context = {} - _number_of_steps = 4 - - recorder.set_progress(1, _number_of_steps, _("Loading data ...")) + recorder.set_progress(1, 4, _("Loading data ...")) person = Person.objects.get(pk=person) school_term = SchoolTerm.objects.get(pk=school_term) @@ -184,7 +186,7 @@ def generate_person_register_printout( ) context["extra_marks"] = ExtraMark.objects.all() - recorder.set_progress(2, _number_of_steps, _("Generating template ...")) + recorder.set_progress(2, 4, _("Generating template ...")) file_object, result = generate_pdf_from_template( "alsijil/print/register_for_person.html", @@ -192,12 +194,12 @@ def generate_person_register_printout( file_object=PDFFile.objects.get(pk=file_object), ) - recorder.set_progress(3, _number_of_steps, _("Generating PDF ...")) + recorder.set_progress(3, 4, _("Generating PDF ...")) with allow_join_result(): result.wait() file_object.refresh_from_db() - if not result.status == SUCCESS and file_object.file: - raise Exception(_("PDF generation failed")) + if not (result.status == SUCCESS and file_object.file): + raise PDFGenerationError(_("PDF generation failed")) - recorder.set_progress(4, _number_of_steps) + recorder.set_progress(4, 4)