mirror of
https://github.com/pretix/pretix.git
synced 2026-05-03 14:54:04 +00:00
List of orders
This commit is contained in:
@@ -238,13 +238,14 @@ class User(AbstractBaseUser, PermissionsMixin):
|
||||
* Given name
|
||||
* Family name
|
||||
* User name
|
||||
* E-mail address
|
||||
"""
|
||||
if self.givenname:
|
||||
return self.givenname
|
||||
elif self.familyname:
|
||||
return self.familyname
|
||||
else:
|
||||
return self.username
|
||||
return self.get_local_name()
|
||||
|
||||
def get_full_name(self) -> str:
|
||||
"""
|
||||
@@ -254,6 +255,7 @@ class User(AbstractBaseUser, PermissionsMixin):
|
||||
* Given name
|
||||
* Family name
|
||||
* User name
|
||||
* E-mail address
|
||||
"""
|
||||
if self.givenname and not self.familyname:
|
||||
return self.givenname
|
||||
@@ -265,7 +267,18 @@ class User(AbstractBaseUser, PermissionsMixin):
|
||||
'given': self.givenname
|
||||
}
|
||||
else:
|
||||
return self.get_local_name()
|
||||
|
||||
def get_local_name(self) -> str:
|
||||
"""
|
||||
Returns the username for local users and the e-mail address for global
|
||||
users.
|
||||
"""
|
||||
if self.username:
|
||||
return self.username
|
||||
if self.email:
|
||||
return self.email
|
||||
return self.identifier
|
||||
|
||||
|
||||
class Organizer(Versionable):
|
||||
|
||||
@@ -75,7 +75,8 @@
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">
|
||||
<a href="{% url 'control:event.orders' organizer=request.event.organizer.slug event=request.event.slug %}"
|
||||
{% if "event.orders" in url_name %}class="active"{% endif %}>
|
||||
<i class="fa fa-shopping-cart fa-fw"></i>
|
||||
{% trans "Orders" %}
|
||||
</a>
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
{% load i18n %}
|
||||
{% load bootstrap3 %}
|
||||
{% if order.status == "n" %}
|
||||
<span class="label label-warning {{ class }}">{% trans "Payment pending" %}</span>
|
||||
{% elif order.status == "p" %}
|
||||
<span class="label label-success {{ class }}">{% trans "Paid" %}</span>
|
||||
{% elif order.status == "e" %}
|
||||
<span class="label label-danger {{ class }}">{% trans "Payment pending" %}</span>
|
||||
{% elif order.status == "c" %}
|
||||
<span class="label label-danger {{ class }}">{% trans "Cancelled" %}</span>
|
||||
{% elif order.status == "r" %}
|
||||
<span class="label label-danger {{ class }}">{% trans "Refunded" %}</span>
|
||||
{% endif %}
|
||||
53
src/pretix/control/templates/pretixcontrol/orders/index.html
Normal file
53
src/pretix/control/templates/pretixcontrol/orders/index.html
Normal file
@@ -0,0 +1,53 @@
|
||||
{% extends "pretixcontrol/event/base.html" %}
|
||||
{% load i18n %}
|
||||
{% block title %}{% trans "Orders" %}{% endblock %}
|
||||
{% block content %}
|
||||
<h1>{% trans "Orders" %}</h1>
|
||||
<table class="table table-condensed table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{% trans "Order code" %}</th>
|
||||
<th>{% trans "User" %}</th>
|
||||
<th>{% trans "Order total" %}</th>
|
||||
<th>{% trans "Order date" %}</th>
|
||||
<th>{% trans "Status" %}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for o in orders %}
|
||||
<tr>
|
||||
<td><strong><a href="">{{ o.code }}</a></strong></td>
|
||||
<td>{{ o.user.get_short_name }}</td>
|
||||
<td>{{ o.total|floatformat:2 }} {{ request.event.currency }}</td>
|
||||
<td>{{ o.datetime|date }}</td>
|
||||
<td>{% include "pretixcontrol/orders/fragment_order_status.html" with order=o %}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
{% if is_paginated %}
|
||||
<nav class="text-center">
|
||||
<ul class="pagination">
|
||||
{% if page_obj.has_previous %}
|
||||
<li>
|
||||
<a href="?page={{ page_obj.previous_page_number }}">
|
||||
<span>«</span>
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
<li class="page-current"><a>
|
||||
{% blocktrans trimmed with page=page_obj.number of=page_obj.paginator.num_pages %}
|
||||
Page {{ page }} of {{ of }}
|
||||
{% endblocktrans %}
|
||||
</a></li>
|
||||
{% if page_obj.has_next %}
|
||||
<li>
|
||||
<a href="?page={{ page_obj.next_page_number }}">
|
||||
<span>»</span>
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
</ul>
|
||||
</nav>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
@@ -1,7 +1,7 @@
|
||||
from django.conf.urls import url, include
|
||||
|
||||
|
||||
from pretix.control.views import main, event, item, auth
|
||||
from pretix.control.views import main, event, item, auth, orders
|
||||
|
||||
urlpatterns = [
|
||||
url(r'^logout$', auth.logout, name='auth.logout'),
|
||||
@@ -46,5 +46,6 @@ urlpatterns = [
|
||||
url(r'^quotas/(?P<quota>[0-9a-f-]+)/delete$', item.QuotaDelete.as_view(),
|
||||
name='event.items.quotas.delete'),
|
||||
url(r'^quotas/add$', item.QuotaCreate.as_view(), name='event.items.quotas.add'),
|
||||
url(r'^orders/$', orders.OrderList.as_view(), name='event.orders'),
|
||||
])),
|
||||
]
|
||||
|
||||
15
src/pretix/control/views/orders.py
Normal file
15
src/pretix/control/views/orders.py
Normal file
@@ -0,0 +1,15 @@
|
||||
from django.views.generic import ListView
|
||||
|
||||
from pretix.base.models import Order
|
||||
|
||||
|
||||
class OrderList(ListView):
|
||||
model = Order
|
||||
context_object_name = 'orders'
|
||||
template_name = 'pretixcontrol/orders/index.html'
|
||||
paginate_by = 30
|
||||
|
||||
def get_queryset(self):
|
||||
return Order.objects.current.filter(
|
||||
event=self.request.event
|
||||
).select_related("user")
|
||||
Reference in New Issue
Block a user