Procházet zdrojové kódy

Merge branch 'master' of github.com:codeinthehole/django-oscar

Fixed conflict with date arg

Conflicts:
	oscar/product/models.py
master
David Winterbottom před 15 roky
rodič
revize
f38cc85c0a
2 změnil soubory, kde provedl 25 přidání a 11 odebrání
  1. 17
    3
      oscar/offer/models.py
  2. 8
    8
      oscar/product/models.py

+ 17
- 3
oscar/offer/models.py Zobrazit soubor

@@ -24,7 +24,18 @@ class Condition(models.Model):
24 24
     range = models.ForeignKey('offer.Range')
25 25
     type = models.CharField(max_length=128, choices=TYPE_CHOICES)
26 26
     value = models.FloatField()
27
-
27
+    
28
+    def is_satisfied(self, basket):
29
+        """
30
+        Determines whether a given basket meets this condition
31
+        """
32
+        if self.type == COUNT:
33
+            return self.range.filter_basket(basket).num_items >= self.value
34
+        elif self.type == VALUE:
35
+            return self.range.filter_basket(basket).value >= self.value
36
+        else:
37
+            return False
38
+        
28 39
 
29 40
 class Benefit(models.Model):
30 41
     PERCENTAGE, FIXED = ("Percentage", "Absolute")
@@ -35,13 +46,16 @@ class Benefit(models.Model):
35 46
     range = models.ForeignKey('offer.Range')
36 47
     type = models.CharField(max_length=128, choices=TYPE_CHOICES)
37 48
     value = models.FloatField()
49
+    
50
+    def apply(self, basket):
51
+        return basket
38 52
 
39 53
 
40 54
 class Range(models.Model):
41 55
     name = models.CharField(max_length=128)
42 56
     includes_all_products = models.BooleanField(default=False)
43
-    included_products = models.ManyToManyField('product.Item', related_name='includes')
44
-    excluded_products = models.ManyToManyField('product.Item', related_name='excludes')
57
+    included_products = models.ManyToManyField('product.Item', related_name='includes', blank=True)
58
+    excluded_products = models.ManyToManyField('product.Item', related_name='excludes', blank=True)
45 59
 
46 60
 
47 61
 class Voucher(models.Model):

+ 8
- 8
oscar/product/models.py Zobrazit soubor

@@ -25,9 +25,9 @@ class AttributeTypeMembership(models.Model):
25 25
     )
26 26
     type=models.ForeignKey('product.Type')
27 27
     # Some attributes like clothes sizes need to be displayed in a set order (eg: S,M,L,XL)
28
-    display_order=models.IntegerField(default=0)
29
-    attribute_type=models.ForeignKey('product.AttributeType')
30
-    relation_type=models.CharField(max_length=16, choices=RELATIONSHIP_CHOICES, default='optional')
28
+    display_order = models.IntegerField(default=0)
29
+    attribute_type = models.ForeignKey('product.AttributeType')
30
+    relation_type = models.CharField(max_length=16, choices=RELATIONSHIP_CHOICES, default='optional')
31 31
     
32 32
     def __unicode__(self):
33 33
         return "%s -> %s (%s)" % (self.type.name, self.attribute_type.name, self.relation_type)
@@ -35,11 +35,11 @@ class AttributeTypeMembership(models.Model):
35 35
 
36 36
 class Item(models.Model):
37 37
     """The base product object"""
38
-    name=models.CharField(max_length=128)
39
-    partner_id=models.CharField(max_length=32)
40
-    type=models.ForeignKey('product.Type')
41
-    date_available=models.DateField()
42
-    date_created=models.DateTimeField()
38
+    name = models.CharField(max_length=128)
39
+    partner_id = models.CharField(max_length=32)
40
+    type = models.ForeignKey('product.Type')
41
+    date_available = models.DateField()
42
+    date_created = models.DateTimeField(auto_now_add=True)
43 43
 
44 44
     def __unicode__(self):
45 45
         return self.name

Načítá se…
Zrušit
Uložit