refactor: split models into modules, remove template-based views, and clean up code style

- Split monolithic models.py into models/ package (customers, products, sales, payments, admin)
- Removed forms.py, all HTML templates, and associated template-based views
- Added api/ package with CatalogSaleView placeholder
- Updated all imports across project to use new model paths
- Removed obsolete tests (form, export, purchase, summary tests)
- Removed template-based URL patterns, kept only API endpoints
- Standardized string quotes (single to double) and reformatted code
This commit is contained in:
2026-05-28 15:25:27 -05:00
parent ecef46b4bb
commit f97b47081c
40 changed files with 948 additions and 1446 deletions

View File

@@ -1,33 +1,51 @@
from rest_framework import serializers
from .models import Sale, SaleLine, Product, Customer, ReconciliationJar
from .models.sales import Sale, SaleLine
from .models.customers import Customer
from .models.sales import Sale, SaleLine, Payment
from .models.products import Product, ProductCategory
from .models.payments import ReconciliationJar
class SaleLineSerializer(serializers.ModelSerializer):
class Meta:
model = SaleLine
fields = ['id', 'sale', 'product', 'unit_price', 'quantity']
fields = ["id", "sale", "product", "unit_price", "quantity"]
class SaleSerializer(serializers.ModelSerializer):
total = serializers.ReadOnlyField(source='get_total')
total = serializers.ReadOnlyField(source="get_total")
class Meta:
model = Sale
fields = ['id', 'customer', 'date', 'saleline_set',
'total', 'payment_method', 'external_id']
fields = [
"id",
"customer",
"date",
"saleline_set",
"total",
"payment_method",
"external_id",
]
class ProductSerializer(serializers.ModelSerializer):
class Meta:
model = Product
fields = ['id', 'name', 'price', 'measuring_unit', 'categories', 'external_id']
fields = [
"id",
"name",
"price",
"measuring_unit",
"categories",
"external_id",
]
class CustomerSerializer(serializers.ModelSerializer):
class Meta:
model = Customer
fields = ['id', 'name', 'address', 'email', 'phone', 'external_id']
fields = ["id", "name", "address", "email", "phone", "external_id"]
class ReconciliationJarSerializer(serializers.ModelSerializer):
@@ -36,13 +54,13 @@ class ReconciliationJarSerializer(serializers.ModelSerializer):
class Meta:
model = ReconciliationJar
fields = [
'id',
'date_time',
'reconcilier',
'cash_taken',
'cash_discrepancy',
'total_cash_purchases',
'Sales',
"id",
"date_time",
"reconcilier",
"cash_taken",
"cash_discrepancy",
"total_cash_purchases",
"Sales",
]
@@ -52,8 +70,8 @@ class PaymentMethodSerializer(serializers.Serializer):
def to_representation(self, instance):
return {
'text': instance[1],
'value': instance[0],
"text": instance[1],
"value": instance[0],
}
@@ -66,8 +84,8 @@ class SaleForRenconciliationSerializer(serializers.Serializer):
def get_customer(self, sale):
return {
'id': sale.customer.id,
'name': sale.customer.name,
"id": sale.customer.id,
"name": sale.customer.name,
}
def get_total(self, sale):
@@ -77,13 +95,13 @@ class SaleForRenconciliationSerializer(serializers.Serializer):
class ListCustomerSerializer(serializers.ModelSerializer):
class Meta:
model = Customer
fields = ['id', 'name']
fields = ["id", "name"]
class ListProductSerializer(serializers.ModelSerializer):
class Meta:
model = Product
fields = ['id', 'name']
fields = ["id", "name"]
class SummarySaleLineSerializer(serializers.ModelSerializer):
@@ -91,13 +109,13 @@ class SummarySaleLineSerializer(serializers.ModelSerializer):
class Meta:
model = SaleLine
fields = ['product', 'quantity', 'unit_price', 'description']
fields = ["product", "quantity", "unit_price", "description"]
class SaleSummarySerializer(serializers.ModelSerializer):
customer = ListCustomerSerializer()
lines = SummarySaleLineSerializer(many=True, source='saleline_set')
lines = SummarySaleLineSerializer(many=True, source="saleline_set")
class Meta:
model = Sale
fields = ['id', 'date', 'customer', 'payment_method', 'lines']
fields = ["id", "date", "customer", "payment_method", "lines"]