ソースを参照

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

Fixed conflict with date arg

Conflicts:
	oscar/product/models.py
master
David Winterbottom 15年前
コミット
f38cc85c0a
2個のファイルの変更25行の追加11行の削除
  1. 17
    3
      oscar/offer/models.py
  2. 8
    8
      oscar/product/models.py

+ 17
- 3
oscar/offer/models.py ファイルの表示

24
     range = models.ForeignKey('offer.Range')
24
     range = models.ForeignKey('offer.Range')
25
     type = models.CharField(max_length=128, choices=TYPE_CHOICES)
25
     type = models.CharField(max_length=128, choices=TYPE_CHOICES)
26
     value = models.FloatField()
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
 class Benefit(models.Model):
40
 class Benefit(models.Model):
30
     PERCENTAGE, FIXED = ("Percentage", "Absolute")
41
     PERCENTAGE, FIXED = ("Percentage", "Absolute")
35
     range = models.ForeignKey('offer.Range')
46
     range = models.ForeignKey('offer.Range')
36
     type = models.CharField(max_length=128, choices=TYPE_CHOICES)
47
     type = models.CharField(max_length=128, choices=TYPE_CHOICES)
37
     value = models.FloatField()
48
     value = models.FloatField()
49
+    
50
+    def apply(self, basket):
51
+        return basket
38
 
52
 
39
 
53
 
40
 class Range(models.Model):
54
 class Range(models.Model):
41
     name = models.CharField(max_length=128)
55
     name = models.CharField(max_length=128)
42
     includes_all_products = models.BooleanField(default=False)
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
 class Voucher(models.Model):
61
 class Voucher(models.Model):

+ 8
- 8
oscar/product/models.py ファイルの表示

25
     )
25
     )
26
     type=models.ForeignKey('product.Type')
26
     type=models.ForeignKey('product.Type')
27
     # Some attributes like clothes sizes need to be displayed in a set order (eg: S,M,L,XL)
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
     def __unicode__(self):
32
     def __unicode__(self):
33
         return "%s -> %s (%s)" % (self.type.name, self.attribute_type.name, self.relation_type)
33
         return "%s -> %s (%s)" % (self.type.name, self.attribute_type.name, self.relation_type)
35
 
35
 
36
 class Item(models.Model):
36
 class Item(models.Model):
37
     """The base product object"""
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
     def __unicode__(self):
44
     def __unicode__(self):
45
         return self.name
45
         return self.name

読み込み中…
キャンセル
保存