Badges: Use ExportError instead of OrderError

This commit is contained in:
Raphael Michel
2022-11-08 10:24:56 +01:00
parent 3ae42b0c57
commit 8ca38bdbaf
3 changed files with 4 additions and 4 deletions

View File

@@ -61,7 +61,6 @@ from pretix.base.i18n import language
from pretix.base.models import Order, OrderPosition, Question, QuestionAnswer from pretix.base.models import Order, OrderPosition, Question, QuestionAnswer
from pretix.base.pdf import Renderer from pretix.base.pdf import Renderer
from pretix.base.services.export import ExportError from pretix.base.services.export import ExportError
from pretix.base.services.orders import OrderError
from pretix.base.settings import PERSON_NAME_SCHEMES from pretix.base.settings import PERSON_NAME_SCHEMES
from pretix.helpers.templatetags.jsonfield import JSONExtract from pretix.helpers.templatetags.jsonfield import JSONExtract
from pretix.plugins.badges.models import BadgeItem, BadgeLayout from pretix.plugins.badges.models import BadgeItem, BadgeLayout
@@ -185,7 +184,7 @@ def render_pdf(event, positions, opt):
op_renderers = [(op, renderermap.get(op.item_id, default_renderer)) for op in positions if renderermap.get(op.item_id, default_renderer)] op_renderers = [(op, renderermap.get(op.item_id, default_renderer)) for op in positions if renderermap.get(op.item_id, default_renderer)]
if not len(op_renderers): if not len(op_renderers):
raise OrderError(_("None of the selected products is configured to print badges.")) raise ExportError(_("None of the selected products is configured to print badges."))
# render each badge on its own page first # render each badge on its own page first
merger = PdfMerger() merger = PdfMerger()

View File

@@ -32,11 +32,12 @@ from pretix.base.services.tasks import EventTask
from pretix.celery_app import app from pretix.celery_app import app
from .exporters import OPTIONS, render_pdf from .exporters import OPTIONS, render_pdf
from ...base.services.export import ExportError
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
@app.task(base=EventTask, throws=(OrderError,)) @app.task(base=EventTask, throws=(OrderError, ExportError,))
def badges_create_pdf(event: Event, fileid: int, positions: List[int]) -> int: def badges_create_pdf(event: Event, fileid: int, positions: List[int]) -> int:
file = CachedFile.objects.get(id=fileid) file = CachedFile.objects.get(id=fileid)

View File

@@ -235,7 +235,7 @@ class LayoutEditorView(BaseEditorView):
class OrderPrintDo(EventPermissionRequiredMixin, AsyncAction, View): class OrderPrintDo(EventPermissionRequiredMixin, AsyncAction, View):
task = badges_create_pdf task = badges_create_pdf
permission = 'can_view_orders' permission = 'can_view_orders'
known_errortypes = ['OrderError'] known_errortypes = ['OrderError', 'ExportError']
def get_success_message(self, value): def get_success_message(self, value):
return None return None