diff options
Diffstat (limited to 'apps/photos/models.py')
-rw-r--r-- | apps/photos/models.py | 201 |
1 files changed, 0 insertions, 201 deletions
diff --git a/apps/photos/models.py b/apps/photos/models.py deleted file mode 100644 index d5f4d51..0000000 --- a/apps/photos/models.py +++ /dev/null @@ -1,201 +0,0 @@ -import datetime -import Image -from django.contrib.gis.db import models -from django.contrib.syndication.feeds import Feed -from django.contrib.sitemaps import Sitemap -from django.utils.encoding import force_unicode -from django.conf import settings - - -from taggit.managers import TaggableManager - -from locations.models import Location,Region - -class Photo(models.Model): - description = models.TextField(blank=True, null=True) - title = models.CharField(blank=True, max_length=300) - pub_date = models.DateTimeField() - tags = TaggableManager(blank=True) - exif_aperture = models.CharField(max_length=50, blank=True, null=True) - exif_make = models.CharField(max_length=50, blank=True, null=True) - exif_model = models.CharField(max_length=50, blank=True, null=True) - exif_exposure = models.CharField(max_length=50, blank=True, null=True) - exif_iso = models.CharField(max_length=50, blank=True, null=True) - exif_focal_length = models.CharField(max_length=50, blank=True, null=True) - exif_lens = models.CharField(max_length=50, blank=True, null=True) - exif_date = models.DateTimeField() - """Flickr Specific Stuff""" - flickr_id = models.CharField(max_length=300) #varchar since Flickr ids are larger than than integerfield can handle and BigIntegerField gets weird in Postgres. - flickr_owner = models.CharField(max_length=20) - flickr_server = models.IntegerField() - flickr_farm = models.IntegerField() - flickr_secret = models.CharField(max_length=50) - flickr_originalsecret = models.CharField(max_length=50) - lon = models.FloatField('Longitude',help_text="Longitude of centerpoint",null=True) - lat = models.FloatField('Latitude',help_text="Latitude of centerpoint",null=True) - location = models.ForeignKey(Location, null=True) - region = models.ForeignKey(Region, null=True) - slideshowimage_width = models.CharField(max_length=4, blank=True, null=True) - slideshowimage_height = models.CharField(max_length=4, blank=True, null=True) - slideshowimage_margintop = models.CharField(max_length=4, blank=True, null=True) - slideshowimage_marginleft = models.CharField(max_length=4, blank=True, null=True) - - - - class Meta: - ordering = ('-pub_date',) - - - def admin_thumbnail(self): - return force_unicode('<a href="%s"><img src="%s"></a>' % \ - (self.get_absolute_url(), self.get_small_square_url())) - admin_thumbnail.allow_tags = True - admin_thumbnail.short_description = 'Thumbnail' - - def get_local_medium_url(self): - return '%sflickr/med/%s/%s.jpg' %(settings.IMAGES_URL,self.pub_date.strftime("%Y"),self.flickr_id) - - def get_local_orig_url(self): - return '%sflickr/full/%s/%s.jpg' %(settings.IMAGES_URL,self.pub_date.strftime("%Y"),self.flickr_id) - - def get_local_slideshow_url(self): - return '%sslideshow/%s/%s.jpg' %(settings.IMAGES_URL,self.pub_date.strftime("%Y"),self.flickr_id) - def __unicode__(self): - return self.title - - def get_absolute_url(self): - return "/photo/%s/" % (self.id) - - def get_model_name(self): - return 'photo' - - def get_small_square_url(self): - return self.get_pic_url(size="small_square") - - def get_large_url(self): - return self.get_pic_url(size="large") - - def get_small_url(self): - return self.get_pic_url(size="small") - - def get_medium_url(self): - return self.get_pic_url(size="medium") - - def get_original_url(self): - #return self.get_pic_url(size="original") - return "http://farm%s.static.flickr.com/%s/%s_%s_o.jpg" % (self.flickr_farm, self.flickr_server, self.flickr_id, self.flickr_originalsecret) - - @property - def get_height(self): - im = Image.open('%sslideshow/%s/%s.jpg' %(settings.IMAGES_ROOT,self.pub_date.strftime("%Y"),self.flickr_id)) - xsize, ysize = im.size - return ysize - @property - def get_width(self): - im = Image.open('%sslideshow/%s/%s.jpg' %(settings.IMAGES_ROOT,self.pub_date.strftime("%Y"),self.flickr_id)) - xsize, ysize = im.size - cal = xsize-120 - return xsize - @property - def get_margin_top(self): - im = Image.open('%sslideshow/%s/%s.jpg' %(settings.IMAGES_ROOT,self.pub_date.strftime("%Y"),self.flickr_id)) - xsize, ysize = im.size - mtop = 340-(ysize/2) - return mtop - - @property - def get_margin_left(self): - im = Image.open('%sslideshow/%s/%s.jpg' %(settings.IMAGES_ROOT,self.pub_date.strftime("%Y"),self.flickr_id)) - xsize, ysize = im.size - mtop = 500-(xsize/2) - return mtop - - @property - def flickr_link(self): - return '%s%s/' %('http://www.flickr.com/photos/luxagraf/', self.flickr_id) - - @property - def is_portait(self): - if int(self.slideshowimage_height) > int(self.slideshowimage_width): - return True - else: - return False - def get_pic_url(self, size='small'): - # small_square=75x75 - # thumb=100 on longest side - # small=240 on longest side - # medium=500 on longest side - # large=1024 on longest side - # original=duh - - base_url = "http://static.flickr.com" - size_char='s' # default to small_square - - if size == 'small_square': - size_char='_s' - elif size == 'thumb': - size_char='_t' - elif size == 'small': - size_char='_m' - elif size == 'medium': - size_char='' - elif size == 'large': - size_char='_b' - elif size == 'original': - size_char='_o' - - return "http://farm%s.static.flickr.com/%s/%s_%s%s.jpg" % (self.flickr_farm, self.flickr_server, self.flickr_id, self.flickr_secret, size_char) - - def get_tumble_image(self): - return "%s/crops/%s/%s.jpg" %(settings.IMAGES_URL, self.pub_date.strftime("%Y/%b").lower(), self.id) - - - def get_previous_published(self): - return self.get_previous_by_pub_date() - - def get_next_published(self): - return self.get_next_by_pub_date() - - def comment_period_open(self): - return self.enable_comments and datetime.datetime.today() - datetime.timedelta(30) <= self.pub_date - - def save(self, *args, **kwargs): - super(Photo, self).save() - -class PhotoGallery(models.Model): - set_id = models.CharField(blank=True, max_length=300) - set_title = models.CharField(blank=True, max_length=300) - set_desc = models.TextField(blank=True, null=True) - set_slug = models.CharField(blank=True, max_length=300) - primary = models.CharField(blank=True, max_length=300) - photos = models.ManyToManyField(Photo) - location = models.ForeignKey(Location, null=True) - region = models.ForeignKey(Region, null=True) - pub_date = models.DateTimeField(null=True) - - class Meta: - ordering = ('-pub_date','id') - verbose_name_plural = 'Photo Galleries' - get_latest_by = 'pub_date' - - - def __unicode__(self): - return self.set_title - - def get_main_image(self): - return "%sgallery_thumbs/%s.jpg" % (settings.IMAGES_URL, self.id) - - def get_absolute_url(self): - return "/photos/galleries/%s/" % (self.set_slug) - - -class PhotoGallerySitemap(Sitemap): - changefreq = "never" - priority = 0.7 - - def items(self): - return PhotoGallery.objects.all() - - def lastmod(self, obj): - return obj.pub_date - |