1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- 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)
|