Advertisement
Guest User

Untitled

a guest
Jun 27th, 2017
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.58 KB | None | 0 0
  1. SWATCH_STRING = '-swatch'  
  2. THUMB_STRING = '-thumb'
  3.  
  4. class ParentSKU(models.Model):
  5.     sku = models.CharField(max_length = 200, unique = True)
  6.     yahoo_id = models.CharField(max_length = 250, blank=True)
  7.     slug = models.SlugField(max_length = 150, blank=True)
  8.     title = models.CharField(max_length = 200, blank=True)
  9.     headline = models.CharField(max_length = 200, blank=True)
  10.     caption1 = models.TextField(blank=True)
  11.     caption2 = models.TextField(blank=True)
  12.     option1_type = models.CharField(max_length = 250, blank=True)
  13.     option2_type = models.CharField(max_length = 250, blank=True)
  14.     galleries = generic.GenericRelation(Gallery)
  15.     def __unicode__(self):
  16.         return '%s' % (self.sku)
  17.     def get_absolute_url(self):
  18.         return reverse('products_parentsku_detail', args = [self.sku])
  19.     def save(self, *args, **kwargs):
  20.         super(ParentSKU, self).save(*args, **kwargs)
  21.         create_application_gallery(self, 'ParentSKU')
  22.     def get_gallery(self):
  23.         try:
  24.             return self.galleries.all()[0]
  25.         except: return None
  26.     def get_default_subsku(self):
  27.         if self.subsku_set:
  28.             try:
  29.                 return self.subsku_set.all().get(sku = self.sku)
  30.             except:
  31.                 return self.subsku_set.all()[0]
  32.         return None
  33.  
  34.  
  35. class SubSKU(models.Model):
  36.     sku = models.CharField(max_length = 200, unique = True)
  37.     parent_sku = models.ForeignKey(ParentSKU, null=True)
  38.     yahoo_id = models.CharField(max_length = 250, blank=True)
  39.     slug = models.SlugField(max_length = 150, blank=True)
  40.     price = models.DecimalField(decimal_places = 2, max_digits = 6, null=True)
  41.     sale_on = models.BooleanField()
  42.     sale_price = models.DecimalField(decimal_places = 2, max_digits = 6, null=True, blank=True)
  43.     qoh = models.IntegerField(null=True)
  44.     barcode = models.CharField(max_length = 250, blank=True)
  45.     weight = models.DecimalField(decimal_places = 2, max_digits = 6, null=True, blank=True)
  46.     option1 = models.CharField(max_length = 250, blank=True)
  47.     option2 = models.CharField(max_length = 250, blank=True)
  48.     image_prefix = models.CharField(max_length = 20, blank=True)
  49.     def __unicode__(self):
  50.         return '%s' % (self.sku)
  51.     def get_absolute_url(self):
  52.         return reverse('products_subsku_detail', args = [self.sku])
  53.     def get_default_image(self):
  54.         parent_gallery = self.parent_sku.get_gallery()
  55.         if parent_gallery:
  56.             default_image = parent_gallery.photo_set.filter(title__icontains = self.image_prefix).order_by('title')
  57.             if default_image:
  58.                 return default_image[0]
  59.         return None
  60.     def get_swatch_image(self):
  61.         parent_gallery = self.parent_sku.get_gallery()
  62.         if parent_gallery:
  63.             swatch_image = parent_gallery.photo_set.filter(title__icontains = self.image_prefix + SWATCH_STRING).order_by('title')
  64.             if swatch_image:
  65.                 return swatch_image[0]
  66.         return None
  67.  
  68.     def get_thumb_image(self):
  69.         parent_gallery = self.parent_sku.get_gallery()
  70.         if parent_gallery:
  71.             thumb_image = parent_gallery.photo_set.filter(title__icontains = self.image_prefix + THUMB_STRING).order_by('title')
  72.             if thumb_image:
  73.                 return thumb_image[0]
  74.         return None
  75.  
  76.     def get_detail_images(self):
  77.         parent_gallery = self.parent_sku.get_gallery()
  78.         if parent_gallery:
  79.             return parent_gallery.photo_set.all().exclude(title__icontains = THUMB_STRING).exclude(title__icontains = SWATCH_STRING).order_by('title')
  80.         return None
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement