Source code for oscar.apps.offer.models

# pylint: disable=W0401, W0614
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 * from oscar.apps.offer.conditions import * from oscar.apps.offer.benefits import __all__ as benefit_classes from oscar.apps.offer.conditions import __all__ as condition_classes __all__.extend(benefit_classes) __all__.extend(condition_classes)