mirror of
https://github.com/pretix/pretix.git
synced 2026-08-26 13:14:40 +00:00
Move welcome widget
This commit is contained in:
@@ -0,0 +1,19 @@
|
|||||||
|
{% load i18n %}
|
||||||
|
<div class="panel panel-primary">
|
||||||
|
<div class="panel-heading">
|
||||||
|
<h2 class="panel-title">{% trans "Welcome to pretix!" %}</h2>
|
||||||
|
</div>
|
||||||
|
<div class="panel-body">
|
||||||
|
<div class="attentionline">{% trans "Get started with our setup tool" %}</div>
|
||||||
|
<p>
|
||||||
|
{% 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 %}
|
||||||
|
</p>
|
||||||
|
<a href="{% url "control:event.quick" organizer=request.organizer.slug event=request.event.slug %}"
|
||||||
|
class="btn btn-primary btn-lg">
|
||||||
|
{% trans "Set up event" %}
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
<div class="welcome-wizard">
|
|
||||||
<h3>{{ title }}</h3>
|
|
||||||
{% if subtitle %}
|
|
||||||
<div class="attentionline">{{ subtitle }}</div>
|
|
||||||
{% endif %}
|
|
||||||
{% if text %}
|
|
||||||
<p>{{ text }}</p>
|
|
||||||
{% endif %}
|
|
||||||
{% if button_text %}
|
|
||||||
<p><a href="{{ button_url }}" class="btn btn-primary btn-lg">{{ button_text }}</a></p>
|
|
||||||
{% endif %}
|
|
||||||
</div>
|
|
||||||
@@ -71,7 +71,9 @@
|
|||||||
hx-indicator="#warnings_indicator"
|
hx-indicator="#warnings_indicator"
|
||||||
hx-trigger="load"></div>
|
hx-trigger="load"></div>
|
||||||
|
|
||||||
<div id="warnings_target"></div>
|
{% if not request.event.items.exists %}
|
||||||
|
{% include "pretixcontrol/event/dashboard_partial_welcome.html" %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
{% if not request.event.has_subevents %}
|
{% if not request.event.has_subevents %}
|
||||||
{% include "pretixcontrol/event/fragment_timeline.html" %}
|
{% include "pretixcontrol/event/fragment_timeline.html" %}
|
||||||
|
|||||||
@@ -46,7 +46,6 @@ from django.db.models.functions import Coalesce, Greatest
|
|||||||
from django.dispatch import receiver
|
from django.dispatch import receiver
|
||||||
from django.http import Http404, JsonResponse
|
from django.http import Http404, JsonResponse
|
||||||
from django.shortcuts import render
|
from django.shortcuts import render
|
||||||
from django.template.loader import get_template
|
|
||||||
from django.urls import reverse
|
from django.urls import reverse
|
||||||
from django.utils.formats import date_format
|
from django.utils.formats import date_format
|
||||||
from django.utils.html import conditional_escape, escape, format_html
|
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:
|
if widgets_override_active:
|
||||||
return []
|
return []
|
||||||
if not lazy:
|
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:
|
if subevent:
|
||||||
opqs = OrderPosition.objects.filter(subevent=subevent)
|
opqs = OrderPosition.objects.filter(subevent=subevent)
|
||||||
else:
|
else:
|
||||||
@@ -148,16 +140,6 @@ def base_widgets(sender, subevent=None, lazy=False, widgets_override_active=Fals
|
|||||||
'organizer': sender.organizer.slug
|
'organizer': sender.organizer.slug
|
||||||
}) + ('?subevent={}'.format(subevent.pk) if subevent else '')
|
}) + ('?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
|
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):
|
def build_json_response(widgets):
|
||||||
for widget in widgets:
|
for widget in widgets:
|
||||||
widget['content'] = conditional_escape(widget['content'])
|
widget['content'] = conditional_escape(widget['content'])
|
||||||
|
|||||||
Reference in New Issue
Block a user