diff --git a/src/backoffice/templates/includes/invoice_list_panel.html b/src/backoffice/templates/includes/invoice_list_panel.html new file mode 100644 index 00000000..934fe65a --- /dev/null +++ b/src/backoffice/templates/includes/invoice_list_panel.html @@ -0,0 +1,34 @@ +{% load bornhack %} +{% if invoice_list %} + + + + + + + + + + + + + + {% for invoice in invoice_list %} + + + + + + + + + + {% endfor %} + +
Invoice #UsernameEmailInvoice DatePaidOrderActions
{{ invoice.id }}{{ invoice.user.username }}{{ invoice.user.email }} DKK{{ invoice.invoice_date }}{{ invoice.paid|truefalseicon }}{{ invoice.order }} + n/a +
+{% else %} +

No invoices found.

+{% endif %} + diff --git a/src/backoffice/templates/index.html b/src/backoffice/templates/index.html index 4dcacad2..9d9358a5 100644 --- a/src/backoffice/templates/index.html +++ b/src/backoffice/templates/index.html @@ -179,6 +179,10 @@

Revenues

Use this view to see and approve/reject revenues.

+ +

Invoices

+

Use this view to see a list of invoices in the system.

+
{% endif %} {% if perms.camps.orgateam_permission or perms.camps.infoteam_permission or perms.camps.barteam_permission %} diff --git a/src/backoffice/templates/invoice_list.html b/src/backoffice/templates/invoice_list.html new file mode 100644 index 00000000..94a10bd6 --- /dev/null +++ b/src/backoffice/templates/invoice_list.html @@ -0,0 +1,17 @@ +{% extends 'base.html' %} +{% load static %} + +{% block title %} +Invoices | {{ block.super }} +{% endblock %} + +{% block content %} +

Invoices

+ +
+ This table shows all invoices in the system. +
+ +{% include 'includes/invoice_list_panel.html' %} + +{% endblock content %} diff --git a/src/backoffice/urls.py b/src/backoffice/urls.py index a669d26f..7e258059 100644 --- a/src/backoffice/urls.py +++ b/src/backoffice/urls.py @@ -57,6 +57,7 @@ from .views import ( FacilityTypeListView, FacilityTypeUpdateView, FacilityUpdateView, + InvoiceListView, IrcOverView, MerchandiseOrdersView, MerchandiseToOrderView, @@ -663,6 +664,15 @@ urlpatterns = [ ] ), ), + # invoices + path( + "invoices/", + include( + [ + path("", InvoiceListView.as_view(), name="invoice_list"), + ] + ), + ), ] ), ), diff --git a/src/backoffice/views/economy.py b/src/backoffice/views/economy.py index adf44720..86d64e9d 100644 --- a/src/backoffice/views/economy.py +++ b/src/backoffice/views/economy.py @@ -14,6 +14,7 @@ from django.views.generic.edit import CreateView, DeleteView, UpdateView from camps.mixins import CampViewMixin from economy.models import Chain, Credebtor, Expense, Reimbursement, Revenue +from shop.models import Invoice from teams.models import Team from ..mixins import EconomyTeamPermissionMixin @@ -441,3 +442,12 @@ class RevenueDetailView(CampViewMixin, EconomyTeamPermissionMixin, UpdateView): return redirect( reverse("backoffice:revenue_list", kwargs={"camp_slug": self.camp.slug}) ) + + +################################ +# ORDERS & INVOICES + + +class InvoiceListView(CampViewMixin, EconomyTeamPermissionMixin, ListView): + model = Invoice + template_name = "invoice_list.html"