add info boxes to dashboard and hubspot settings if sync problems exist

This commit is contained in:
Mira Weller
2025-07-17 17:07:14 +02:00
parent 362b3f08e7
commit 8cde94fad6
3 changed files with 16 additions and 2 deletions

View File

@@ -79,6 +79,15 @@
class="btn btn-primary">{% trans "Show affected orders" %}</a> class="btn btn-primary">{% trans "Show affected orders" %}</a>
</div> </div>
{% endif %} {% endif %}
{% if has_sync_problems %}
<div class="alert alert-warning">
{% blocktrans trimmed %}
Orders in this event could not be <strong>synced to an external system</strong> as configured.
{% endblocktrans %}
<a href="{% url "control:event.datasync.failedjobs" event=request.event.slug organizer=request.event.organizer.slug %}"
class="btn btn-primary">{% trans "Show sync problems" %}</a>
</div>
{% endif %}
{% eventsignal request.event "pretix.control.signals.event_dashboard_top" request=request %} {% eventsignal request.event "pretix.control.signals.event_dashboard_top" request=request %}
{% if request.event.has_subevents %} {% if request.event.has_subevents %}

View File

@@ -383,6 +383,10 @@ def event_index(request, organizer, event):
ctx['has_cancellation_requests'] = can_view_orders and CancellationRequest.objects.filter( ctx['has_cancellation_requests'] = can_view_orders and CancellationRequest.objects.filter(
order__event=request.event order__event=request.event
).exists() ).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'] = [ ctx['timeline'] = [
{ {

View File

@@ -36,7 +36,8 @@ from pretix.base.datasync.datasync import sync_targets
from pretix.base.models import Event, Order from pretix.base.models import Event, Order
from pretix.base.models.datasync import OrderSyncQueue from pretix.base.models.datasync import OrderSyncQueue
from pretix.control.permissions import ( from pretix.control.permissions import (
AdministratorPermissionRequiredMixin, OrganizerPermissionRequiredMixin, EventPermissionRequiredMixin, AdministratorPermissionRequiredMixin, EventPermissionRequiredMixin,
OrganizerPermissionRequiredMixin,
) )
from pretix.control.signals import order_info from pretix.control.signals import order_info
from pretix.control.views.orders import OrderView from pretix.control.views.orders import OrderView
@@ -97,7 +98,7 @@ class FailedSyncJobsView(ListView):
template_name = 'pretixcontrol/datasync/failed_jobs.html' template_name = 'pretixcontrol/datasync/failed_jobs.html'
model = OrderSyncQueue model = OrderSyncQueue
context_object_name = 'queue_items' context_object_name = 'queue_items'
paginate_by = 20 paginate_by = 100
ordering = ('triggered',) ordering = ('triggered',)
def get_queryset(self): def get_queryset(self):