2018-09-20 20:14:05 +00:00
|
|
|
from django.shortcuts import render, get_object_or_404
|
2018-09-16 10:35:02 +00:00
|
|
|
from django.http import HttpResponse
|
2018-09-20 20:14:05 +00:00
|
|
|
from django.views import generic
|
2018-09-23 14:18:58 +00:00
|
|
|
from django.views.generic.edit import CreateView, DeleteView, UpdateView
|
|
|
|
from django.db.models import F, Sum
|
2018-09-20 20:14:05 +00:00
|
|
|
|
2018-09-23 14:18:58 +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
|
|
|
|
|
|
|
|
2018-09-23 14:18:58 +00:00
|
|
|
class Shoppinglist(generic.ListView):
|
|
|
|
template_name = "inventory/shoppinglist.html"
|
|
|
|
context_object_name = 'pis'
|
|
|
|
|
|
|
|
def get_queryset(self):
|
|
|
|
return PantryItem.objects.annotate(total_quantity=Sum(F('pantryitemline__quantity') * F('pantryitemline__size'))).filter(min_quantity__gt=F('total_quantity'))
|
|
|
|
#return PantryItemLine.objects.filter(quantity__lt=F('pantry_item__min_quantity'))
|
|
|
|
|
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-23 14:18:58 +00:00
|
|
|
return PantryItemLine.objects.exclude(expiry_date__isnull=True).order_by('expiry_date')
|