You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

65 lines
1.8 KiB
Python

from django.shortcuts import render, get_object_or_404
from .models import *
from django.db.models import Q
# LISTING
def items(request, *args, **kwargs):
products = Item.objects.filter(type='Product').order_by('-id')
services = Item.objects.filter(type='Service').order_by('-id')
context = {
'products': products,
'services': services,
}
return render(request, 'listing_pages/items.html', context)
def orders(request, *args, **kwargs):
orders = Order.objects.all().order_by('-id')
context = {
'orders': orders,
}
return render(request, 'listing_pages/orders.html', context)
def invoices(request, *args, **kwargs):
invoices = Invoice.objects.all().order_by('-id')
context = {
'invoices': invoices,
}
return render(request, 'listing_pages/invoices.html', context)
#DETAILS
def invoice_details(request, order_id):
order = get_object_or_404(Order, id=order_id)
context = {
'order' : order,
}
return render(request, 'details_templates/invoice-details.html', context)
def order_details(request, order_id):
order = get_object_or_404(Order, id=order_id)
order_items = OrderItem.objects.filter(order=order).order_by('-id')
order_item_ids = order_items.values_list('item_id', flat=True)
services = Item.objects.filter(Q(type='Service') & (Q(customer=order.customer) | Q(customer__isnull=True))).exclude(id__in=order_item_ids).order_by('-id')
products = Item.objects.filter(Q(type='Product') & (Q(customer=order.customer) | Q(customer__isnull=True))).exclude(id__in=order_item_ids).order_by('-id')
context = {
'order' : order,
'order_items' : order_items,
'services': services,
}
return render(request, 'details_templates/order-details.html', context)