123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- from django.core.exceptions import ObjectDoesNotExist
- from django.db import models
- class ItemManager(models.Manager):
- def active(self):
- return self.filter(is_active=True, deleted=False)
- def featured_items(self):
- return self.active().filter(featured=True)
- class SubscriptionManager(ItemManager):
- def __init__(self, *args, **kwargs):
- super(SubscriptionManager, self).__init__(*args, **kwargs)
- def valid_options(self, shipping_type=None, shipping_method=None):
- """
- :param type: INSTATE, OUTSTATE, FOREIGN
- :returns: Only valid subscriptions related to the specific first class
- option
- """
- q = self.active()
- if shipping_type:
- q.filter(shipping_type=shipping_type)
- if shipping_method:
- q = q.filter(shipping_method=shipping_method)
- return q.order_by("title", "duration")
- def _valid_value_list(self, value, shipping_type=None, shipping_method=None):
- return (
- self.valid_options(shipping_type, shipping_method)
- .distinct()
- .values_list(value, flat=True)
- )
- def titles_value_list(self, shipping_type, shipping_method=None):
- return self._valid_value_list(
- "title", shipping_type, shipping_method=shipping_method
- )
- def durations_value_list(self, shipping_type, shipping_method=None):
- return self._valid_value_list(
- "duration", shipping_type, shipping_method=shipping_method
- )
- def shipping_method_value_list(self, shipping_type):
- return self._valid_value_list("shipping_method", shipping_type)
- def title_images(self):
- return (
- self.active()
- .exclude(image__isnull=True)
- .exclude(image="")
- .values("title", "image")
- )
- def find_price(self, shipping_type, title, duration, shipping_method):
- try:
- price = self.get(
- shipping_type=shipping_type,
- title=title,
- duration=duration,
- shipping_method=shipping_method,
- ).price
- except ObjectDoesNotExist:
- price = None
- return price
- class ZipCodeManager(models.Manager):
- def active(self):
- return self.filter(is_active=True, deleted=False)
- class PersonManager(models.Manager):
- def get_queryset(self):
- return super(PersonManager, self).get_query_set().active()
- def active(self):
- return self.filter(is_active=True, deleted=False)
|