Changeset - c2400c4695ae
[Not reviewed]
4 6 5
Christopher Neugebauer - 8 years ago 2016-01-22 05:29:41
chrisjrn@gmail.com
Moves the controller modules into their own subpackage. There's going to be a lot of stuff in there.
11 files changed with 9 insertions and 9 deletions:
0 comments (0 inline, 0 general)
registrasion/controllers/__init__.py
Show inline comments
 
new file 100644
registrasion/controllers/cart.py
Show inline comments
 
file renamed from registrasion/cart.py to registrasion/controllers/cart.py
 
import datetime
 
import itertools
 

	
 
from django.core.exceptions import ObjectDoesNotExist
 
from django.core.exceptions import ValidationError
 
from django.db.models import Avg, Min, Max, Sum
 
from django.utils import timezone
 

	
 
from registrasion import models as rego
 

	
 
from conditions import ConditionController
 
from controllers import ProductController
 
from product import ProductController
 

	
 

	
 
class CartController(object):
 

	
 
    def __init__(self, cart):
 
        self.cart = cart
 

	
 
    @staticmethod
 
    def for_user(user):
 
        ''' Returns the user's current cart, or creates a new cart
 
        if there isn't one ready yet. '''
 

	
...
 
@@ -197,14 +197,14 @@ class CartController(object):
 
                quantity=quantity,
 
            )
 

	
 
            # Truncate the quantity for this DiscountItem if we exceed quantity
 
            ours = discount_item.quantity
 
            allowed = discount.condition.quantity - past_uses
 
            if ours > allowed:
 
                discount_item.quantity = allowed
 
                # Update the remaining quantity.
 
                quantity = ours - allowed
 
            else:
 
                quantity = 0
 
                
 

 
            discount_item.save()
registrasion/controllers/conditions.py
Show inline comments
 
file renamed from registrasion/conditions.py to registrasion/controllers/conditions.py
registrasion/controllers/invoice.py
Show inline comments
 
file renamed from registrasion/invoice.py to registrasion/controllers/invoice.py
registrasion/controllers/product.py
Show inline comments
 
file renamed from registrasion/controllers.py to registrasion/controllers/product.py
registrasion/tests/test_cart.py
Show inline comments
 
import datetime
 
import pytz
 

	
 
from decimal import Decimal
 
from django.contrib.auth.models import User
 
from django.core.exceptions import ValidationError
 
from django.test import TestCase
 
from django.utils import timezone
 

	
 
from registrasion import models as rego
 
from registrasion.cart import CartController
 
from registrasion.controllers.cart import CartController
 

	
 
from patch_datetime import SetTimeMixin
 

	
 
UTC = pytz.timezone('UTC')
 

	
 
class RegistrationCartTestCase(SetTimeMixin, TestCase):
 

	
 
    def setUp(self):
 
        super(RegistrationCartTestCase, self).setUp()
 

	
 
    @classmethod
 
    def setUpTestData(cls):
registrasion/tests/test_ceilings.py
Show inline comments
 
import datetime
 
import pytz
 

	
 
from decimal import Decimal
 
from django.contrib.auth.models import User
 
from django.core.exceptions import ValidationError
 
from django.test import TestCase
 
from django.utils import timezone
 

	
 
from registrasion import models as rego
 
from registrasion.cart import CartController
 
from registrasion.controllers.cart import CartController
 

	
 
from test_cart import RegistrationCartTestCase
 

	
 
UTC = pytz.timezone('UTC')
 

	
 
class CeilingsTestCases(RegistrationCartTestCase):
 

	
 
    def test_add_to_cart_ceiling_limit(self):
 
        self.make_ceiling("Limit ceiling", limit=9)
 
        self.__add_to_cart_test()
 

	
 
    def test_add_to_cart_ceiling_category_limit(self):
registrasion/tests/test_discount.py
Show inline comments
 
import datetime
 
import pytz
 

	
 
from decimal import Decimal
 
from django.contrib.auth.models import User
 
from django.core.exceptions import ValidationError
 
from django.test import TestCase
 
from django.utils import timezone
 

	
 
from registrasion import models as rego
 
from registrasion.cart import CartController
 
from registrasion.controllers.cart import CartController
 

	
 
from test_cart import RegistrationCartTestCase
 

	
 
UTC = pytz.timezone('UTC')
 

	
 
class DiscountTestCase(RegistrationCartTestCase):
 

	
 
    @classmethod
 
    def add_discount_prod_1_includes_prod_2(cls, amount=Decimal(100)):
 
        discount = rego.IncludedProductDiscount.objects.create(
 
            description="PROD_1 includes PROD_2 " + str(amount) + "%",
 
        )
registrasion/tests/test_enabling_condition.py
Show inline comments
 
import datetime
 
import pytz
 

	
 
from decimal import Decimal
 
from django.contrib.auth.models import User
 
from django.core.exceptions import ValidationError
 
from django.test import TestCase
 
from django.utils import timezone
 

	
 
from registrasion import models as rego
 
from registrasion.cart import CartController
 
from registrasion.controllers.cart import CartController
 

	
 
from test_cart import RegistrationCartTestCase
 

	
 
UTC = pytz.timezone('UTC')
 

	
 
class EnablingConditionTestCases(RegistrationCartTestCase):
 

	
 
    @classmethod
 
    def add_product_enabling_condition(cls, mandatory=False):
 
        ''' Adds a product enabling condition: adding PROD_1 to a cart is
 
        predicated on adding PROD_2 beforehand. '''
 
        enabling_condition = rego.ProductEnablingCondition.objects.create(
registrasion/tests/test_invoice.py
Show inline comments
 
import datetime
 
import pytz
 

	
 
from decimal import Decimal
 
from django.contrib.auth.models import User
 
from django.core.exceptions import ValidationError
 
from django.test import TestCase
 
from django.utils import timezone
 

	
 
from registrasion import models as rego
 
from registrasion.cart import CartController
 
from registrasion.invoice import InvoiceController
 
from registrasion.controllers.cart import CartController
 
from registrasion.controllers.invoice import InvoiceController
 

	
 
from test_cart import RegistrationCartTestCase
 

	
 
UTC = pytz.timezone('UTC')
 

	
 

	
 
class InvoiceTestCase(RegistrationCartTestCase):
 

	
 
    def test_create_invoice(self):
 
        current_cart = CartController.for_user(self.USER_1)
 

	
 
        # Should be able to create an invoice after the product is added
registrasion/tests/test_voucher.py
Show inline comments
 
import datetime
 
import pytz
 

	
 
from decimal import Decimal
 
from django.contrib.auth.models import User
 
from django.core.exceptions import ValidationError
 
from django.test import TestCase
 
from django.utils import timezone
 

	
 
from registrasion import models as rego
 
from registrasion.cart import CartController
 
from registrasion.controllers.cart import CartController
 

	
 
from test_cart import RegistrationCartTestCase
 

	
 
UTC = pytz.timezone('UTC')
 

	
 

	
 
class VoucherTestCases(RegistrationCartTestCase):
 

	
 
    @classmethod
 
    def new_voucher(self):
 
        voucher = rego.Voucher.objects.create(
 
            recipient="Voucher recipient",
0 comments (0 inline, 0 general)