From f1d7bbbb355d3e6a465fd2d54905fe39e129ec7b Mon Sep 17 00:00:00 2001 From: mohammad-abbas Date: Mon, 8 Nov 2021 15:13:01 +0300 Subject: [PATCH] mohammed-abbas task-3 --- commerce/controllers.py | 43 ++++++++++++----------------------------- commerce/models.py | 1 - commerce/schemas.py | 19 ++++++++++++++++++ 3 files changed, 31 insertions(+), 32 deletions(-) diff --git a/commerce/controllers.py b/commerce/controllers.py index 0d8791b..53866df 100644 --- a/commerce/controllers.py +++ b/commerce/controllers.py @@ -6,8 +6,8 @@ from ninja import Router from pydantic import UUID4 -from commerce.models import Product, Category, City, Vendor, Item -from commerce.schemas import MessageOut, ProductOut, CitiesOut, CitySchema, VendorOut, ItemOut, ItemSchema, ItemCreate +from commerce.models import Address, Product, Category, City, Vendor, Item +from commerce.schemas import MessageOut, ProductOut, CitiesOut, CitySchema, VendorOut, ItemOut, ItemSchema, ItemCreate,ProductManualSchemaOut products_controller = Router(tags=['products']) address_controller = Router(tags=['addresses']) @@ -20,37 +20,15 @@ def list_vendors(request): return Vendor.objects.all() -@products_controller.get('', response={ - 200: List[ProductOut], - 404: MessageOut -}) -def list_products( - request, *, - q: str = None, - price_from: int = None, - price_to: int = None, - vendor=None, -): - products_qs = Product.objects.filter(is_active=True).select_related('merchant', 'vendor', 'category', 'label') - - if not products_qs: - return 404, {'detail': 'No products found'} - - if q: - products_qs = products_qs.filter( - Q(name__icontains=q) | Q(description__icontains=q) - ) - - if price_from: - products_qs = products_qs.filter(discounted_price__gte=price_from) - - if price_to: - products_qs = products_qs.filter(discounted_price__lte=price_to) +@products_controller.get('') +def all_prodect(request): + return list(Product.objects.values().all()) - if vendor: - products_qs = products_qs.filter(vendor_id=vendor) +@address_controller.get('') +def all_address(request): + return list(Address.objects.values().all()) - return products_qs + """ @@ -220,3 +198,6 @@ def delete_item(request, id: UUID4): item.delete() return 204, {'detail': 'Item deleted!'} + + + diff --git a/commerce/models.py b/commerce/models.py index 2d9bfa6..9362b38 100644 --- a/commerce/models.py +++ b/commerce/models.py @@ -1,6 +1,5 @@ import uuid -from PIL import Image from django.contrib.auth import get_user_model from django.db import models diff --git a/commerce/schemas.py b/commerce/schemas.py index 5b7d0d4..b004102 100644 --- a/commerce/schemas.py +++ b/commerce/schemas.py @@ -64,6 +64,25 @@ class Config: ] + +class ProductManualSchemaOut(Schema): + name:str + description:str + qty:float + price:float + discounted_price:float + vendor: VendorOut + label: LabelOut + merchant: MerchantOut + category: CategoryOut + weight:float = None + width:float = None + length:float + cost:float + height : float = None + discounted_price:float + + # class ProductManualSchemaOut(Schema): # pass