123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- from django.core.mail import EmailMultiAlternatives
- from django.conf import settings
- from django.template.loader import render_to_string
- from catalog.constants import (
- FOREIGN,
- SHIPPING_METHODS_LIST,
- SHIPPING_METHODS,
- SHIPPING_METHOD_FOREIGN,
- )
- from catalog.models import Subscription
- def valid_subscription_options(shipping_type):
- """ Returns a dictionary of valid values based on the type """
- options = dict(
- subscriptions=Subscription.objects.valid_options(shipping_type=shipping_type),
- durations=sorted(
- set(Subscription.objects.durations_value_list(shipping_type=shipping_type))
- ),
- titles=sorted(
- set(Subscription.objects.titles_value_list(shipping_type=shipping_type))
- ),
- )
- return options
- def unique_tuples(values, reverse=False):
- """ Enumerate and remove duplicate sets of tuples """
- return [(i, value) for i, value in enumerate(sorted(set(values), reverse=reverse))]
- def unique_titles(shipping_type=None):
- """ Returns a unique set of tuples which can be used for title choices
- """
- return unique_tuples(Subscription.objects.titles_value_list(shipping_type))
- def unique_durations(shipping_type=None):
- """ Returns a unique set of tuples which can be used for duration choices
- """
- return unique_tuples(Subscription.objects.durations_value_list(shipping_type))
- def unique_shipping_methods():
- return [(i, value) for i, value in enumerate(SHIPPING_METHODS_LIST)]
- def unique_title_images():
- """ take set of title/images, flip them into a dictionary """
- title_images = {}
- subscriptions = Subscription.objects.title_images()
- for subscription in subscriptions:
- title_images.update({subscription["title"]: subscription["image"]})
- return title_images
- def get_value_by_index(value_tuple, index):
- return value_tuple[int(index)][1]
- def shipping_method_options(shipping_type):
- if shipping_type == FOREIGN:
- return SHIPPING_METHOD_FOREIGN
- return SHIPPING_METHODS
|