Skip to content

Commit

Permalink
4 - Calculate the Order Total
Browse files Browse the repository at this point in the history
  • Loading branch information
codingforentrepreneurs committed Sep 27, 2017
1 parent cfcc598 commit 00a2b87
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 3 deletions.
Binary file modified src/db.sqlite3
Binary file not shown.
33 changes: 30 additions & 3 deletions src/orders/models.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
from django.db import models
from django.db.models.signals import pre_save
from django.db.models.signals import pre_save, post_save


from carts.models import Cart
Expand All @@ -26,6 +26,14 @@ class Order(models.Model):
def __str__(self):
return self.order_id

def update_total(self):
cart_total = self.cart.total
shipping_total = self.shipping_total
new_total = cart_total + shipping_total
self.total = new_total
self.save()
return new_total


def pre_save_create_order_id(sender, instance, *args, **kwargs):
if not instance.order_id:
Expand All @@ -34,6 +42,25 @@ def pre_save_create_order_id(sender, instance, *args, **kwargs):
pre_save.connect(pre_save_create_order_id, sender=Order)


def post_save_cart_total(sender, instance, created, *args, **kwargs):
if not created:
cart_obj = instance
cart_total = cart_obj.total
cart_id = cart_obj.id
qs = Order.objects.filter(cart__id=cart_id)
if qs.count() == 1:
order_obj = qs.first()
order_obj.update_total()

post_save.connect(post_save_cart_total, sender=Cart)


def post_save_order(sender, instance, created, *args, **kwargs):
print("running")
if created:
print("Updating... first")
instance.update_total()


post_save.connect(post_save_order, sender=Order)

# generate the order id?
# generate the order total?

0 comments on commit 00a2b87

Please sign in to comment.