Source code for oscar.apps.offer.models

from oscar.apps.offer.abstract_models import (
    AbstractBenefit, AbstractCondition, AbstractConditionalOffer,
    AbstractRange, AbstractRangeProduct, AbstractRangeProductFileUpload)
from oscar.apps.offer.results import (
    SHIPPING_DISCOUNT, ZERO_DISCOUNT, BasketDiscount, PostOrderAction,
    ShippingDiscount)
from oscar.core.loading import is_model_registered

__all__ = [
    'BasketDiscount', 'ShippingDiscount', 'PostOrderAction',
    'SHIPPING_DISCOUNT', 'ZERO_DISCOUNT'
]


if not is_model_registered('offer', 'ConditionalOffer'):
[docs] class ConditionalOffer(AbstractConditionalOffer): pass
__all__.append('ConditionalOffer') if not is_model_registered('offer', 'Benefit'):
[docs] class Benefit(AbstractBenefit): pass
__all__.append('Benefit') if not is_model_registered('offer', 'Condition'):
[docs] class Condition(AbstractCondition): pass
__all__.append('Condition') if not is_model_registered('offer', 'Range'):
[docs] class Range(AbstractRange): pass
__all__.append('Range') if not is_model_registered('offer', 'RangeProduct'):
[docs] class RangeProduct(AbstractRangeProduct): pass
__all__.append('RangeProduct') if not is_model_registered('offer', 'RangeProductFileUpload'):
[docs] class RangeProductFileUpload(AbstractRangeProductFileUpload): pass
__all__.append('RangeProductFileUpload') # Import the benefits and the conditions. Required after initializing the # parent models to allow overriding them from oscar.apps.offer.benefits import * # noqa isort:skip from oscar.apps.offer.conditions import * # noqa isort:skip from oscar.apps.offer.benefits import __all__ as benefit_classes # noqa isort:skip from oscar.apps.offer.conditions import __all__ as condition_classes # noqa isort:skip __all__.extend(benefit_classes) __all__.extend(condition_classes)