| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- from django.db import models
-
- from oscar.apps.address.models import UserAddress
- from oscar.apps.offer.models import Benefit, Condition
- from oscar.models.fields import AutoSlugField
-
-
- class SluggedTestModel(models.Model):
- title = models.CharField(max_length=42)
- slug = AutoSlugField(populate_from='title')
-
-
- class ChildSluggedTestModel(SluggedTestModel):
- pass
-
-
- class CustomSluggedTestModel(models.Model):
- title = models.CharField(max_length=42)
- slug = AutoSlugField(populate_from='title',
- separator="_",
- uppercase=True)
-
-
- class BasketOwnerCalledBarry(Condition):
-
- class Meta:
- proxy = True
- app_label = 'tests'
-
- def is_satisfied(self, offer, basket):
- if not basket.owner:
- return False
- return basket.owner.first_name.lower() == 'barry'
-
- def can_apply_condition(self, product):
- return False
-
-
- class BaseOfferModel(models.Model):
- class Meta:
- abstract = True
- app_label = 'tests'
-
-
- class CustomBenefitModel(BaseOfferModel, Benefit):
-
- name = 'Test benefit'
-
- class Meta:
- proxy = True
- app_label = 'tests'
-
- def __str__(self):
- return self.name
-
- @property
- def description(self):
- return self.name
-
-
- class CustomConditionModel(Condition):
-
- name = 'Test condition'
-
- class Meta:
- proxy = True
- app_label = 'tests'
-
- def is_satisfied(self, offer, basket):
- return True
-
- def can_apply_condition(self, product):
- return True
-
-
- class CustomBenefitWithoutName(Benefit):
- class Meta:
- proxy = True
- app_label = 'tests'
-
- description = 'test'
-
-
- class CustomConditionWithoutName(Condition):
- class Meta:
- proxy = True
- app_label = 'tests'
-
-
- class UserAddressModelWithCustomBaseFields(UserAddress):
- class Meta:
- proxy = True
- app_label = 'tests'
-
- base_fields = ['line1', 'line4']
-
-
- class UserAddressModelWithCustomHashFields(UserAddress):
- class Meta:
- proxy = True
- app_label = 'tests'
-
- hash_fields = ['line1', 'line4']
|