im/inventory/views.py

39 lines
1.1 KiB
Python
Raw Normal View History

2020-11-08 14:31:33 +00:00
from django.shortcuts import render
2018-09-20 20:14:05 +00:00
from django.views import generic
from django.db.models import F, Sum, Q
2018-09-20 20:14:05 +00:00
from .models import PantryItem, PantryItemLine
2018-09-16 10:35:02 +00:00
# Create your views here.
def index(request):
2018-09-20 20:14:05 +00:00
return render(request, "inventory/index.html")
2018-09-22 09:31:39 +00:00
def consume(request):
return render(request, "inventory/consume.html")
2018-09-20 20:14:05 +00:00
class Shoppinglist(generic.ListView):
template_name = "inventory/shoppinglist.html"
context_object_name = 'pis'
def get_queryset(self):
"""
Return pantryitems for which we have None itemlines or Itemlines whith a total quantitly less than required
"""
2020-11-08 14:31:33 +00:00
return PantryItem.objects.annotate(
total_quantity=Sum(F('pantryitemline__quantity') *
F('pantryitemline__size'))
).filter(Q(min_quantity__gt=F('total_quantity')) | Q(pantryitemline=None, min_quantity__gt=0))
2018-09-20 20:14:05 +00:00
class Expirations(generic.ListView):
template_name = "inventory/expirations.html"
context_object_name = 'pis'
def get_queryset(self):
2018-09-24 19:49:05 +00:00
return PantryItemLine.objects.exclude(expiry_date__isnull=True).exclude(quantity=0).order_by('expiry_date')