diff --git a/shop/migrations/0028_alter_order_status.py b/shop/migrations/0028_alter_order_status.py new file mode 100644 index 0000000..42ea1a7 --- /dev/null +++ b/shop/migrations/0028_alter_order_status.py @@ -0,0 +1,18 @@ +# Generated by Django 5.1 on 2025-05-06 19:39 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('shop', '0027_shippingaddress_alter_order_payment_status_and_more'), + ] + + operations = [ + migrations.AlterField( + model_name='order', + name='status', + field=models.CharField(choices=[('PENDING', 'Pending'), ('PAID', 'Paid'), ('SHIPPED', 'Shipped'), ('DELIVERED', 'Delivered'), ('CANCELED', 'Canceled'), ('REFUNDED', 'Refunded'), ('PREPARED', 'Prepared'), ('READY', 'Ready')], default='PENDING', max_length=20), + ), + ] diff --git a/shop/models.py b/shop/models.py index bf51bfe..8af21a6 100644 --- a/shop/models.py +++ b/shop/models.py @@ -10,6 +10,7 @@ class OrderStatus(models.TextChoices): CANCELED = 'CANCELED', 'Canceled' REFUNDED = 'REFUNDED', 'Refunded' PREPARED = 'PREPARED', 'Prepared' + READY = 'READY', 'Ready' class CutChoices(models.IntegerChoices): UNISEX = 0, 'Unisex' @@ -154,7 +155,7 @@ class Order(models.Model): return self.status in [OrderStatus.PENDING, OrderStatus.PAID] def shipping_address_can_be_edited(self): - return self.status in [OrderStatus.PENDING, OrderStatus.PAID, OrderStatus.PREPARED] + return self.status in [OrderStatus.PENDING, OrderStatus.PAID, OrderStatus.PREPARED, OrderStatus.READY] def get_shipping_address(self): """ diff --git a/shop/signals.py b/shop/signals.py index c226a47..93c05d7 100644 --- a/shop/signals.py +++ b/shop/signals.py @@ -70,7 +70,7 @@ def _get_order_details(instance): # Translate statuses status_fr_map = { "PENDING": "EN ATTENTE", "PAID": "PAYÉE", - "SHIPPED": "EXPÉDIÉE", "DELIVERED": "LIVRÉE", "CANCELED": "ANNULÉE", "REFUNDED": "REMBOURSÉE", "PREPARED": "EN COURS DE PRÉPARATION", + "SHIPPED": "EXPÉDIÉE", "DELIVERED": "LIVRÉE", "CANCELED": "ANNULÉE", "REFUNDED": "REMBOURSÉE", "PREPARED": "EN COURS DE PRÉPARATION", "READY": "PRÊT" } payment_status_fr_map = { @@ -241,6 +241,7 @@ Montant payé: {final_price}€""" elif status in [OrderStatus.SHIPPED, OrderStatus.DELIVERED, OrderStatus.CANCELED, OrderStatus.PREPARED, OrderStatus.REFUNDED]: status_message = { OrderStatus.PREPARED: "Votre commande est en cours de préparation.", + OrderStatus.READY: "Votre commande est prête.", OrderStatus.SHIPPED: "Votre commande a été expédiée et est en cours de livraison.", OrderStatus.DELIVERED: "Votre commande a été livrée. Nous espérons que vous apprécierez vos produits !", OrderStatus.REFUNDED: "Votre commande a été annulée et son remboursement est en cours de traitement.",