Fixed #85 -- Fixed logic of time restrictions

This commit is contained in:
Raphael Michel
2015-08-14 21:17:28 +02:00
parent 27fe1b98d4
commit d87106ee67
3 changed files with 38 additions and 21 deletions

View File

@@ -152,6 +152,19 @@ In our example, the implementation could look like this::
# Walk through all variations we are asked for
for v in variations:
var_restrictions = []
for restriction in restrictions:
applied_to = list(restriction.variations.current.all())
# Only take this restriction into consideration if it
# is directly applied to this variation or if the item
# has no variations
if v.empty() or ('variation' in v and v['variation'] in applied_to):
var_restrictions.append(restriction)
if not var_restrictions:
continue
# If this point is reached, there ARE time restrictions for this item
# Therefore, it is only available inside one of the timeframes, but not
# without any timeframe
@@ -175,15 +188,7 @@ In our example, the implementation could look like this::
# Walk through all restriction objects applied to this item
prices = []
for restriction in restrictions:
applied_to = list(restriction.variations.current.all())
# Only take this restriction into consideration if it
# is directly applied to this variation or if the item
# has no variations
if not v.empty() and ('variation' not in v or v['variation'] not in applied_to):
continue
for restriction in var_restrictions:
if restriction.timeframe_from <= now() <= restriction.timeframe_to:
# Selling this item is currently possible
available = True