diff --git a/src/pretix/control/templates/pretixcontrol/event/index.html b/src/pretix/control/templates/pretixcontrol/event/index.html
index d89bb08efa..78aeb4f9a4 100644
--- a/src/pretix/control/templates/pretixcontrol/event/index.html
+++ b/src/pretix/control/templates/pretixcontrol/event/index.html
@@ -79,6 +79,15 @@
class="btn btn-primary">{% trans "Show affected orders" %}
{% endif %}
+ {% if has_sync_problems %}
+
+ {% blocktrans trimmed %}
+ Orders in this event could not be
synced to an external system as configured.
+ {% endblocktrans %}
+
{% trans "Show sync problems" %}
+
+ {% endif %}
{% eventsignal request.event "pretix.control.signals.event_dashboard_top" request=request %}
{% if request.event.has_subevents %}
diff --git a/src/pretix/control/views/dashboards.py b/src/pretix/control/views/dashboards.py
index 8b5b47e2ae..35932ceaf3 100644
--- a/src/pretix/control/views/dashboards.py
+++ b/src/pretix/control/views/dashboards.py
@@ -383,6 +383,10 @@ def event_index(request, organizer, event):
ctx['has_cancellation_requests'] = can_view_orders and CancellationRequest.objects.filter(
order__event=request.event
).exists()
+ ctx['has_sync_problems'] = can_change_event_settings and request.event.queued_sync_jobs.filter(
+ Q(need_manual_retry__isnull=False)
+ | Q(failed_attempts__gt=0)
+ ).exists()
ctx['timeline'] = [
{
diff --git a/src/pretix/control/views/datasync.py b/src/pretix/control/views/datasync.py
index 20b97e933c..5b6741e062 100644
--- a/src/pretix/control/views/datasync.py
+++ b/src/pretix/control/views/datasync.py
@@ -36,7 +36,8 @@ from pretix.base.datasync.datasync import sync_targets
from pretix.base.models import Event, Order
from pretix.base.models.datasync import OrderSyncQueue
from pretix.control.permissions import (
- AdministratorPermissionRequiredMixin, OrganizerPermissionRequiredMixin, EventPermissionRequiredMixin,
+ AdministratorPermissionRequiredMixin, EventPermissionRequiredMixin,
+ OrganizerPermissionRequiredMixin,
)
from pretix.control.signals import order_info
from pretix.control.views.orders import OrderView
@@ -97,7 +98,7 @@ class FailedSyncJobsView(ListView):
template_name = 'pretixcontrol/datasync/failed_jobs.html'
model = OrderSyncQueue
context_object_name = 'queue_items'
- paginate_by = 20
+ paginate_by = 100
ordering = ('triggered',)
def get_queryset(self):