Added tabs to the organizer page

This commit is contained in:
Raphael Michel
2017-01-27 11:03:56 +01:00
parent d6503e3e48
commit 123f47ab39
4 changed files with 64 additions and 24 deletions

View File

@@ -47,7 +47,7 @@ Backend
------- -------
.. automodule:: pretix.control.signals .. automodule:: pretix.control.signals
:members: nav_event, html_head, quota_detail_html, nav_topbar :members: nav_event, html_head, quota_detail_html, nav_topbar, organizer_edit_tabs
.. automodule:: pretix.base.signals .. automodule:: pretix.base.signals

View File

@@ -122,3 +122,14 @@ quota as argument in the ``quota`` keyword argument.
As with all plugin signals, the ``sender`` keyword argument will contain the event. As with all plugin signals, the ``sender`` keyword argument will contain the event.
""" """
organizer_edit_tabs = Signal(
providing_args=['organizer']
)
"""
This signal is sent out to include tabs on the detail page of an organizer. Receivers
should return a tuple with the first item being the tab title and the second item
being the content as HTML. The receivers get the ``organizer`` as a keyword argument.
This is a regular django signal (no pretix event signal).
"""

View File

@@ -6,15 +6,32 @@
<h1> <h1>
{% blocktrans with name=organizer.name %}Organizer: {{ name }}{% endblocktrans %} {% blocktrans with name=organizer.name %}Organizer: {{ name }}{% endblocktrans %}
<a href="{% url "control:organizer.edit" organizer=organizer.slug %}" <a href="{% url "control:organizer.edit" organizer=organizer.slug %}"
class="btn btn-default"> class="btn btn-default">
<span class="fa fa-edit"></span> <span class="fa fa-edit"></span>
{% trans "Edit" %} {% trans "Edit" %}
</a> </a>
</h1> </h1>
<div class="row"> <ul class="nav nav-tabs">
<div class="{% if request.orgaperm.can_change_permissions %}col-lg-6{% endif %} col-xs-12"> <li class="active">
<fieldset> <a href="#tab-events" data-toggle="tab">{% trans "Events" %}</a>
<legend>{% trans "Events" %}</legend> </li>
{% if request.orgaperm.can_change_permissions %}
<li>
<a href="#tab-permissions" data-toggle="tab">{% trans "Team" %}</a>
</li>
{% endif %}
{% for title, content in tabs %}
<li>
<a href="#tab-{{ forloop.index }}" data-toggle="tab">
{{ title }}
</a>
</li>
{% endfor %}
</ul>
<div class="tab-content organizer-tabs">
<div class="tab-pane active" id="tab-events">
<div class="tab-inner">
{% if events|length == 0 %} {% if events|length == 0 %}
<p> <p>
<em>{% trans "You currently do not have access to any events." %}</em> <em>{% trans "You currently do not have access to any events." %}</em>
@@ -31,7 +48,8 @@
{% for e in events %} {% for e in events %}
<tr> <tr>
<td> <td>
<strong><a href="{% url "control:event.index" organizer=e.organizer.slug event=e.slug %}">{{ e.name }}</a></strong> <strong><a
href="{% url "control:event.index" organizer=e.organizer.slug event=e.slug %}">{{ e.name }}</a></strong>
</td> </td>
<td>{{ e.get_date_from_display }}</td> <td>{{ e.get_date_from_display }}</td>
</tr> </tr>
@@ -43,24 +61,25 @@
<span class="fa fa-plus"></span> <span class="fa fa-plus"></span>
{% trans "Create a new event" %} {% trans "Create a new event" %}
</a> </a>
</fieldset> </div>
</div> </div>
{% if request.orgaperm.can_change_permissions %} {% if request.orgaperm.can_change_permissions %}
<div class="col-lg-6 col-xs-12"> <div class="tab-pane" id="tab-permissions">
<form action="" method="post" class="form-horizontal form-permissions"> <div class="tab-inner">
{% csrf_token %} <form action="" method="post" class="form-horizontal form-permissions">
<fieldset> {% csrf_token %}
<legend>{% trans "Team" %}</legend>
<p> <p>
{% blocktrans trimmed %} {% blocktrans trimmed %}
You can use the following list to control who can create new events in the name of this You can use the following list to control who can create new events in the name of
organizer and who can add more people to this list. This does <strong>not</strong> this organizer and who can add more people to this list. This does <strong>not</strong>
control who has access to a particular event. You can control the access to an control who has access to a particular event. You can control the access to an
event in the "Permissions" section of the event's settings. A user does not need to be event in the "Permissions" section of the event's settings. A user does not need to
on the list here to get access to an event. be on the list here to get access to an event.
{% endblocktrans %} {% endblocktrans %}
</p> </p>
<p>
{% trans "Everyone on this list can control the organizer settings on this page." %}
</p>
{% bootstrap_formset_errors formset %} {% bootstrap_formset_errors formset %}
{{ formset.management_form }} {{ formset.management_form }}
@@ -84,7 +103,7 @@
{% else %} {% else %}
{{ form.instance.invite_email }} {{ form.instance.invite_email }}
<span class="fa fa-envelope-o" data-toggle="tooltip" <span class="fa fa-envelope-o" data-toggle="tooltip"
title="{% trans "invited, pending response" %}"></span> title="{% trans "invited, pending response" %}"></span>
{% endif %} {% endif %}
</td> </td>
<td>{{ form.can_create_events }}</td> <td>{{ form.can_create_events }}</td>
@@ -98,9 +117,9 @@
<td colspan="9"> <td colspan="9">
<strong>{% trans "Adding a new user" %}</strong><br> <strong>{% trans "Adding a new user" %}</strong><br>
{% blocktrans trimmed %} {% blocktrans trimmed %}
To add a new user, you can enter their email address here. If they already have a To add a new user, you can enter their email address here. If they
pretix account, they will immediately be added to the team. Otherwise, they will already have a pretix account, they will immediately be added to the team.
be sent an email with an invitation. Otherwise, they will be sent an email with an invitation.
{% endblocktrans %} {% endblocktrans %}
</td> </td>
@@ -125,9 +144,16 @@
</button> </button>
</div> </div>
</fieldset> </form>
</form> </div>
</div> </div>
{% endif %} {% endif %}
{% for title, content in tabs %}
<div class="tab-pane" id="tab-{{ forloop.index }}">
<div class="tab-inner">
{{ field }}
</div>
</div>
{% endfor %}
</div> </div>
{% endblock %} {% endblock %}

View File

@@ -91,6 +91,9 @@ h1 .btn-sm {
} }
} }
.organizer-tabs .tab-inner {
padding-top: 20px;
}
.helper-display-inline { .helper-display-inline {
display: inline !important; display: inline !important;