From bcb8b0a85aff7fe33af1e914765a1564df7ed246 Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Mon, 27 Jul 2026 21:56:42 +0200 Subject: [PATCH] Move welcome widget --- .../event/dashboard_partial_welcome.html | 19 ++++++++ .../event/dashboard_widget_welcome.html | 12 ------ .../templates/pretixcontrol/event/index.html | 4 +- src/pretix/control/views/dashboards.py | 43 ------------------- 4 files changed, 22 insertions(+), 56 deletions(-) create mode 100644 src/pretix/control/templates/pretixcontrol/event/dashboard_partial_welcome.html delete mode 100644 src/pretix/control/templates/pretixcontrol/event/dashboard_widget_welcome.html diff --git a/src/pretix/control/templates/pretixcontrol/event/dashboard_partial_welcome.html b/src/pretix/control/templates/pretixcontrol/event/dashboard_partial_welcome.html new file mode 100644 index 0000000000..cc66f950da --- /dev/null +++ b/src/pretix/control/templates/pretixcontrol/event/dashboard_partial_welcome.html @@ -0,0 +1,19 @@ +{% load i18n %} +
+
+

{% trans "Welcome to pretix!" %}

+
+
+
{% trans "Get started with our setup tool" %}
+

+ {% blocktrans trimmed %} + To start selling tickets, you need to create products or quotas. The fastest way to create + this is to use our setup tool. + {% endblocktrans %} +

+ + {% trans "Set up event" %} + +
+
\ No newline at end of file diff --git a/src/pretix/control/templates/pretixcontrol/event/dashboard_widget_welcome.html b/src/pretix/control/templates/pretixcontrol/event/dashboard_widget_welcome.html deleted file mode 100644 index 35ec47c1ad..0000000000 --- a/src/pretix/control/templates/pretixcontrol/event/dashboard_widget_welcome.html +++ /dev/null @@ -1,12 +0,0 @@ -
-

{{ title }}

- {% if subtitle %} -
{{ subtitle }}
- {% endif %} - {% if text %} -

{{ text }}

- {% endif %} - {% if button_text %} -

{{ button_text }}

- {% endif %} -
\ No newline at end of file diff --git a/src/pretix/control/templates/pretixcontrol/event/index.html b/src/pretix/control/templates/pretixcontrol/event/index.html index 46dfba51a6..649467bafd 100644 --- a/src/pretix/control/templates/pretixcontrol/event/index.html +++ b/src/pretix/control/templates/pretixcontrol/event/index.html @@ -71,7 +71,9 @@ hx-indicator="#warnings_indicator" hx-trigger="load"> -
+ {% if not request.event.items.exists %} + {% include "pretixcontrol/event/dashboard_partial_welcome.html" %} + {% endif %} {% if not request.event.has_subevents %} {% include "pretixcontrol/event/fragment_timeline.html" %} diff --git a/src/pretix/control/views/dashboards.py b/src/pretix/control/views/dashboards.py index 7ac4999997..f3b9796327 100644 --- a/src/pretix/control/views/dashboards.py +++ b/src/pretix/control/views/dashboards.py @@ -46,7 +46,6 @@ from django.db.models.functions import Coalesce, Greatest from django.dispatch import receiver from django.http import Http404, JsonResponse from django.shortcuts import render -from django.template.loader import get_template from django.urls import reverse from django.utils.formats import date_format from django.utils.html import conditional_escape, escape, format_html @@ -79,13 +78,6 @@ def base_widgets(sender, subevent=None, lazy=False, widgets_override_active=Fals if widgets_override_active: return [] if not lazy: - prodc = Item.objects.filter( - event=sender, active=True, - ).filter( - (Q(available_until__isnull=True) | Q(available_until__gte=now())) & - (Q(available_from__isnull=True) | Q(available_from__lte=now())) - ).count() - if subevent: opqs = OrderPosition.objects.filter(subevent=subevent) else: @@ -148,16 +140,6 @@ def base_widgets(sender, subevent=None, lazy=False, widgets_override_active=Fals 'organizer': sender.organizer.slug }) + ('?subevent={}'.format(subevent.pk) if subevent else '') }, - { - 'content': None if lazy else format_html(NUM_WIDGET, num=prodc, text=_('Active products')), - 'lazy': 'active-products', - 'display_size': 'small', - 'priority': 100, - 'url': reverse('control:event.items', kwargs={ - 'event': sender.slug, - 'organizer': sender.organizer.slug - }) - }, ] @@ -239,31 +221,6 @@ def waitinglist_widgets(sender, subevent=None, lazy=False, **kwargs): return widgets -@receiver(signal=event_dashboard_widgets) -def welcome_wizard_widget(sender, **kwargs): - template = get_template('pretixcontrol/event/dashboard_widget_welcome.html') - ctx = { - 'title': _('Welcome to pretix!') - } - kwargs = {'event': sender.slug, 'organizer': sender.organizer.slug} - - if not sender.items.exists(): - ctx.update({ - 'subtitle': _('Get started with our setup tool'), - 'text': _('To start selling tickets, you need to create products or quotas. The fastest way to create ' - 'this is to use our setup tool.'), - 'button_text': _('Set up event'), - 'button_url': reverse('control:event.quick', kwargs=kwargs) - }) - else: - return [] - return [{ - 'display_size': 'full', - 'priority': 2000, - 'content': template.render(ctx) - }] - - def build_json_response(widgets): for widget in widgets: widget['content'] = conditional_escape(widget['content'])