diff options
Diffstat (limited to 'app/photos/models.py')
-rw-r--r-- | app/photos/models.py | 62 |
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) |