summaryrefslogtreecommitdiff
path: root/app/photos/models.py
diff options
context:
space:
mode:
Diffstat (limited to 'app/photos/models.py')
-rw-r--r--app/photos/models.py62
1 files changed, 62 insertions, 0 deletions
diff --git a/app/photos/models.py b/app/photos/models.py
index dce655e..d3024d9 100644
--- a/app/photos/models.py
+++ b/app/photos/models.py
@@ -10,6 +10,44 @@ from django.conf import settings
from taggit.managers import TaggableManager
from locations.models import Location, Region
+def get_upload_path(self, filename):
+ return "images/galleries/originals/%s/%s" % (datetime.datetime.today().strftime("%Y"), filename)
+
+class LuxImage(models.Model):
+ image = models.FileField(blank=True, null=True, upload_to=get_upload_path)
+ title = models.CharField(null=True,blank=True, max_length=300)
+ caption = models.TextField(blank=True, null=True)
+ pub_date = models.DateTimeField()
+ exif_raw = models.TextField(blank=True, null=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(blank=True, null=True)
+ height = models.CharField(max_length=6, blank=True, null=True)
+ width = models.CharField(max_length=6, blank=True, null=True)
+ point = models.PointField(null=True, blank=True)
+ location = models.ForeignKey(Location, null=True, blank=True)
+ is_public = models.BooleanField(default=True)
+ is_video = models.BooleanField(default=False)
+ flickr_id = models.CharField(null=True,blank=True, max_length=80)
+
+ class Meta:
+ ordering = ('-pub_date', 'id')
+ verbose_name_plural = 'Images'
+ get_latest_by = 'pub_date'
+
+ def __str__(self):
+ return "%s" % self.pk
+
+ def admin_thumbnail(self):
+ return force_text('<a href="%s"><img src="%s"></a>' %
+ (self.image.url, self.image.url))
+ admin_thumbnail.allow_tags = True
+ admin_thumbnail.short_description = 'Thumbnail'
class Photo(models.Model):
description = models.TextField(blank=True, null=True)
@@ -171,6 +209,30 @@ class Photo(models.Model):
def save(self, *args, **kwargs):
super(Photo, self).save()
+class Gallery(models.Model):
+ title = models.CharField(blank=True, max_length=300)
+ description = models.TextField(blank=True, null=True)
+ slug = models.CharField(blank=True, max_length=300)
+ thumb = models.CharField(blank=True, max_length=300)
+ image = models.ManyToManyField(LuxImage)
+ pub_date = models.DateTimeField(null=True)
+ point = models.PointField(null=True, blank=True)
+ location = models.ForeignKey(Location, null=True, blank=True)
+
+ class Meta:
+ ordering = ('-pub_date', 'id')
+ verbose_name_plural = 'Galleries'
+ get_latest_by = 'pub_date'
+
+ def __str__(self):
+ return self.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.slug)
+
class PhotoGallery(models.Model):
set_id = models.CharField(blank=True, max_length=300)