From 3322a5ddf81c2993d7b5f97a892bddb5056d982b Mon Sep 17 00:00:00 2001 From: Arona Jones Date: Thu, 5 Aug 2021 11:36:45 +0100 Subject: [PATCH] Add badge to nav for number of waiting invoices Might slightly help us stop leaving them waiting for far too long... --- RIGS/finance.py | 19 +------------------ RIGS/models.py | 13 +++++++++++++ RIGS/templates/base_rigs.html | 5 +++-- RIGS/templatetags/filters.py | 5 +++++ templates/base.html | 4 ++-- templates/partials/search.html | 6 +++--- 6 files changed, 27 insertions(+), 25 deletions(-) diff --git a/RIGS/finance.py b/RIGS/finance.py index 70c723c3..113099a5 100644 --- a/RIGS/finance.py +++ b/RIGS/finance.py @@ -179,24 +179,7 @@ class InvoiceWaiting(generic.ListView): return context def get_queryset(self): - return self.get_objects() - - def get_objects(self): - # TODO find a way to select items - events = self.model.objects.filter( - ( - Q(start_date__lte=datetime.date.today(), end_date__isnull=True) | # Starts before with no end - Q(end_date__lte=datetime.date.today()) # Has end date, finishes before - ) & Q(invoice__isnull=True) & # Has not already been invoiced - Q(is_rig=True) # Is a rig (not non-rig) - - ).order_by('start_date') \ - .select_related('person', - 'organisation', - 'venue', 'mic') \ - .prefetch_related('items') - - return events + return self.model.objects.waiting_invoices() class InvoiceEvent(generic.View): diff --git a/RIGS/models.py b/RIGS/models.py index 83effe0a..5efb6388 100644 --- a/RIGS/models.py +++ b/RIGS/models.py @@ -278,6 +278,19 @@ class EventManager(models.Manager): ).count() return event_count + def waiting_invoices(self): + events = self.filter( + ( + models.Q(start_date__lte=datetime.date.today(), end_date__isnull=True) | # Starts before with no end + models.Q(end_date__lte=datetime.date.today()) # Or has end date, finishes before + ) & models.Q(invoice__isnull=True) & # Has not already been invoiced + models.Q(is_rig=True) # Is a rig (not non-rig) + ).order_by('start_date') \ + .select_related('person', 'organisation', 'venue', 'mic') \ + .prefetch_related('items') + + return events + @reversion.register(follow=['items']) class Event(models.Model, RevisionMixin): diff --git a/RIGS/templates/base_rigs.html b/RIGS/templates/base_rigs.html index 1bb89d51..6ae9d110 100644 --- a/RIGS/templates/base_rigs.html +++ b/RIGS/templates/base_rigs.html @@ -1,6 +1,7 @@ {% extends 'base.html' %} {% load static %} +{% load invoices_waiting from filters %} {% block titleheader %} RIGS @@ -45,11 +46,11 @@ {% if perms.RIGS.view_invoice %}