Advertisement
Guest User

Untitled

a guest
Feb 21st, 2019
436
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.39 KB | None | 0 0
  1. transactions = Transaction.objects.filter(item_id=OuterRef('pk')).order_by('-id')
  2.             items = Item.objects.filter(size_id=OuterRef('pk'), barcode_id=OuterRef('barcodes')) \
  3.                 .annotate(action=Subquery(transactions.values('action')[:1], output_field=CharField()))
  4.             sizes = Size.objects.annotate(
  5.                 item_count=SQCount(items.filter(action__in=[choices.CHOICE_ADD, choices.CHOICE_RETURN]))).distinct()
  6.             barcode_items = Item.objects.filter(barcode_id=OuterRef('id')) \
  7.                 .annotate(action=Subquery(transactions.values('action')[:1], output_field=CharField())).values('action')
  8.             barcodes = BarCode.objects \
  9.                            .select_related('category', 'storage') \
  10.                            .prefetch_related(Prefetch('sizes', queryset=sizes, to_attr='barcode_sizes'), 'images') \
  11.                            .annotate(
  12.                 total_amount=SQCount(barcode_items.filter(action__in=[choices.CHOICE_ADD, choices.CHOICE_RETURN])),
  13.                 own=Case(When(storage=kwargs.get('storage'), then=Value(True)), default=Value(False),
  14.                          output_field=BooleanField())) \
  15.                            .filter(Q(title__istartswith=search if not barcodes_list else '') | Q(
  16.                 description__istartswith=search if not barcodes_list else ''), **filters).distinct().order_by('-own', '-id')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement