Добавлена поддержка ProductKit в POS, улучшена прокрутка и фиксация элементов
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from django.shortcuts import render
|
||||
from django.contrib.auth.decorators import login_required
|
||||
from products.models import Product, ProductCategory
|
||||
from products.models import Product, ProductCategory, ProductKit
|
||||
import json
|
||||
|
||||
|
||||
@@ -9,13 +9,17 @@ import json
|
||||
def pos_terminal(request):
|
||||
"""
|
||||
Tablet-friendly POS screen prototype.
|
||||
Shows categories and in-stock products for quick tap-to-add.
|
||||
Shows categories and all items (products + kits) for quick tap-to-add.
|
||||
"""
|
||||
categories_qs = ProductCategory.objects.filter(is_active=True)
|
||||
# Показываем все товары, не только in_stock
|
||||
products_qs = Product.objects.all().prefetch_related('categories', 'photos')
|
||||
# Показываем все комплекты (кроме временных)
|
||||
kits_qs = ProductKit.objects.filter(is_temporary=False).prefetch_related('categories', 'photos')
|
||||
|
||||
categories = [{'id': c.id, 'name': c.name} for c in categories_qs]
|
||||
|
||||
# Сериализация товаров
|
||||
products = [{
|
||||
'id': p.id,
|
||||
'name': p.name,
|
||||
@@ -23,12 +27,28 @@ def pos_terminal(request):
|
||||
'category_ids': [c.id for c in p.categories.all()],
|
||||
'in_stock': p.in_stock,
|
||||
'sku': p.sku or '',
|
||||
'image': p.photos.first().get_thumbnail_url() if p.photos.exists() else None
|
||||
'image': p.photos.first().get_thumbnail_url() if p.photos.exists() else None,
|
||||
'type': 'product'
|
||||
} for p in products_qs]
|
||||
|
||||
# Сериализация комплектов
|
||||
kits = [{
|
||||
'id': k.id,
|
||||
'name': k.name,
|
||||
'price': str(k.actual_price),
|
||||
'category_ids': [c.id for c in k.categories.all()],
|
||||
'in_stock': False, # Комплекты всегда "Под заказ" (пока не интегрируем проверку наличия)
|
||||
'sku': k.sku or '',
|
||||
'image': k.photos.first().get_thumbnail_url() if k.photos.exists() else None,
|
||||
'type': 'kit'
|
||||
} for k in kits_qs]
|
||||
|
||||
# Объединяем все позиции
|
||||
all_items = products + kits
|
||||
|
||||
context = {
|
||||
'categories_json': json.dumps(categories),
|
||||
'products_json': json.dumps(products),
|
||||
'items_json': json.dumps(all_items), # Единый массив товаров и комплектов
|
||||
'title': 'POS Terminal',
|
||||
}
|
||||
return render(request, 'pos/terminal.html', context)
|
||||
|
||||
Reference in New Issue
Block a user