Add ordering, templatetags, update pagination

This commit is contained in:
Nyymix 2025-01-21 15:31:47 +02:00
parent 1dbd1c1779
commit 7c7eb0061d
10 changed files with 93 additions and 52 deletions

View file

@ -35,6 +35,10 @@ class Photo(models.Model):
views = models.PositiveIntegerField(default=0, verbose_name="Views")
likes = models.PositiveIntegerField(default=0, verbose_name="Likes")
@property
def orientation(self):
return "Portrait" if self.height > self.width else "Landscape"
def add_like(self):
self.likes += 1
self.save()
@ -49,7 +53,6 @@ class Photo(models.Model):
def get_prev(self):
return self.__class__.objects.filter(taken_at__lt=self.taken_at, album=self.album.id).order_by('-taken_at').first()
def save(self, *args, **kwargs):
self.exif_data = Exif(self.photo.path)
datetime_taken = getattr(self.exif_data, 'datetimeoriginal', datetime.now)()
@ -60,11 +63,10 @@ class Photo(models.Model):
def get_absolute_url(self):
return reverse('gallery:photo_url', kwargs={'album_slug': self.album.slug, 'photo_slug': self.slug})
class Meta:
verbose_name_plural = "Photos"
ordering = ('-taken_at',)
def __str__(self):
return f'{self.slug} ({self.album.name})'
return f'{self.slug} ({self.orientation}) {self.is_favorite}'