feat: added users app

This commit is contained in:
Pablo Moreno
2024-05-13 00:26:49 +02:00
parent d148cc9c61
commit 6e987cd035
31 changed files with 521 additions and 17 deletions
+1 -1
View File
@@ -11,7 +11,6 @@ class ProductAdmin(ModelAdmin):
"id",
"name",
"stock",
"unit",
)
@@ -24,6 +23,7 @@ class ProductPriceAdmin(ModelAdmin):
"product",
"price",
"date",
"tax",
)
+26 -11
View File
@@ -1,25 +1,49 @@
from rest_framework import serializers
from files.api.v1.serializers import FileUploadSerializer
from shop.models import Product, ProductPrice, Customer, Tax, OrderLine, Order
class ProductSerializer(serializers.ModelSerializer):
images = FileUploadSerializer(many=True, read_only=True)
price = serializers.SerializerMethodField()
def get_price(self, product):
last_price = product.prices.last()
return ProductPriceSerializer(last_price).data
class Meta:
model = Product
fields = (
"name",
"description",
"stock",
"unit",
"is_digital_asset",
"images",
"price",
)
class TaxSerializer(serializers.ModelSerializer):
class Meta:
model = Tax
fields = (
"code",
"value",
)
class ProductPriceSerializer(serializers.ModelSerializer):
tax = TaxSerializer()
class Meta:
model = ProductPrice
fields = (
"price",
"date",
"product",
"tax",
"price_with_tax",
)
@@ -39,15 +63,6 @@ class CustomerSerializer(serializers.ModelSerializer):
)
class TaxSerializer(serializers.ModelSerializer):
class Meta:
model = Tax
fields = (
"code",
"value",
)
class OrderSerializer(serializers.ModelSerializer):
class Meta:
model = Order
@@ -0,0 +1,40 @@
# Generated by Django 5.0.3 on 2024-05-04 22:12
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("files", "0001_initial"),
("shop", "0001_initial"),
]
operations = [
migrations.RemoveField(
model_name="product",
name="unit",
),
migrations.AddField(
model_name="order",
name="status",
field=models.CharField(default="PEN", max_length=3, verbose_name="Estado"),
),
migrations.AddField(
model_name="product",
name="images",
field=models.ManyToManyField(
blank=True, to="files.fileupload", verbose_name="Imágenes"
),
),
migrations.AddField(
model_name="product",
name="is_digital_asset",
field=models.BooleanField(default=False),
),
migrations.AddField(
model_name="product",
name="url",
field=models.URLField(blank=True, verbose_name="URL de descarga"),
),
]
+5 -2
View File
@@ -26,7 +26,10 @@ class Product(models.Model):
verbose_name=_("Stock"),
)
is_digital_asset = models.BooleanField(default=False)
url = models.URLField(blank=True, verbose_name=_('URL de descarga'))
url = models.URLField(blank=True, verbose_name=_("URL de descarga"))
images = models.ManyToManyField(
"files.FileUpload", blank=True, verbose_name=_("Imágenes")
)
def __str__(self):
return self.name
@@ -58,7 +61,7 @@ class ProductPrice(models.Model):
@property
def price_with_tax(self):
tax_value = self.price * (self.tax.value / 100)
tax_value = self.price * Decimal(self.tax.value / 100)
return round(self.price + tax_value, 2)
class Meta:
-3
View File
@@ -16,17 +16,14 @@ class ShopModelsTest(TestCase):
self.potatoes = Product.objects.create(
name="Patatas",
stock=Decimal("100.00"),
unit=Product.UnitChoices.WEIGHT_KG,
)
self.gasoline = Product.objects.create(
name="Gasolina",
stock=Decimal("800.00"),
unit=Product.UnitChoices.VOLUME_LITER,
)
self.usb_c = Product.objects.create(
name="Cable USB-C",
stock=Decimal("5.00"),
unit=Product.UnitChoices.UNIT,
)
ProductPrice.objects.create(