Browse Source

Merge branch 'bez-exif'

remotes/origin/upgrade1.9
Matěj Kocián 9 years ago
parent
commit
a74575b94f
  1. 22
      galerie/migrations/0007_obrazek_odstranen_datum.py
  2. 30
      galerie/models.py
  3. 4
      galerie/views.py

22
galerie/migrations/0007_obrazek_odstranen_datum.py

@ -0,0 +1,22 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models, migrations
class Migration(migrations.Migration):
dependencies = [
('galerie', '0006_django_imagekit'),
]
operations = [
migrations.AlterModelOptions(
name='obrazek',
options={'ordering': ['nazev'], 'verbose_name': 'Obr\xe1zek', 'verbose_name_plural': 'Obr\xe1zky'},
),
migrations.RemoveField(
model_name='obrazek',
name='datum',
),
]

30
galerie/models.py

@ -1,19 +1,12 @@
# coding: utf-8 # coding: utf-8
from django.db import models from django.db import models
import seminar.models #from django.db.models import Q
from django.db.models import Q
from django.utils import timezone
from django.utils.encoding import force_unicode from django.utils.encoding import force_unicode
from imagekit.models import ImageSpecField from imagekit.models import ImageSpecField
from imagekit.processors import ResizeToFit, Transpose from imagekit.processors import ResizeToFit, Transpose
from PIL import Image
from PIL.ExifTags import TAGS
import os import os
from cStringIO import StringIO
from django.core.files.base import ContentFile
from datetime import datetime
from seminar.models import Soustredeni from seminar.models import Soustredeni
@ -26,14 +19,6 @@ VIDITELNOST = (
(NIKDY, 'Nikdy'), (NIKDY, 'Nikdy'),
) )
def get_exif(fn):
ret = {}
info = fn._getexif()
for tag, value in info.items():
decoded = TAGS.get(tag, tag)
ret[decoded] = value
return ret
# tyhle funkce jsou tady jen kvůli starým migracím, které se na ně odkazují # tyhle funkce jsou tady jen kvůli starým migracím, které se na ně odkazují
# až se ty migrace někdy squashnou, tak by mělo být možné funkce smazat # až se ty migrace někdy squashnou, tak by mělo být možné funkce smazat
def obrazek_filename_maly(): def obrazek_filename_maly():
@ -63,23 +48,14 @@ class Obrazek(models.Model):
nazev = models.CharField('Název', max_length=50, blank = True, null = True) nazev = models.CharField('Název', max_length=50, blank = True, null = True)
popis = models.TextField('Popis', blank = True, null = True) popis = models.TextField('Popis', blank = True, null = True)
datum_vlozeni = models.DateTimeField('Datum vložení', auto_now_add = True) datum_vlozeni = models.DateTimeField('Datum vložení', auto_now_add = True)
datum = models.DateTimeField('Datum pořízení fotografie', blank = True, null = True)
galerie = models.ForeignKey('Galerie', blank=True, null=True) galerie = models.ForeignKey('Galerie', blank=True, null=True)
poradi = models.IntegerField('Pořadí', blank = True, null = True) poradi = models.IntegerField('Pořadí', blank = True, null = True)
def __unicode__(self): def __unicode__(self):
return self.nazev + " -- " + unicode(self.obrazek_velky.name) + " (" + str(self.datum) + ")" return self.nazev + " -- " + unicode(self.obrazek_velky.name)
class Meta: class Meta:
verbose_name = 'Obrázek' verbose_name = 'Obrázek'
verbose_name_plural = 'Obrázky' verbose_name_plural = 'Obrázky'
ordering = ['datum'] ordering = ['nazev']
def save(self):
original = Image.open(self.obrazek_velky)
# vycteni EXIFu
exif = get_exif(original)
if exif['DateTimeOriginal']:
datum_ints = map(int, ":".join(exif['DateTimeOriginal'].split(' ')).split(":"))
self.datum = datetime(*datum_ints)
super(Obrazek, self).save()
class Galerie(models.Model): class Galerie(models.Model):

4
galerie/views.py

@ -38,7 +38,7 @@ def nahled(request, pk, soustredeni):
if not request.user.is_staff: if not request.user.is_staff:
podgalerie = podgalerie.filter(zobrazit__lt=1) podgalerie = podgalerie.filter(zobrazit__lt=1)
obrazky = Obrazek.objects.filter(galerie = galerie).order_by('datum') obrazky = Obrazek.objects.filter(galerie = galerie)
preview = zobrazit(galerie, request) preview = zobrazit(galerie, request)
sourozenci = [] sourozenci = []
@ -82,7 +82,7 @@ def detail(request, pk, fotka, soustredeni):
galerie = get_object_or_404(Galerie, pk=pk) galerie = get_object_or_404(Galerie, pk=pk)
preview = zobrazit(galerie, request) preview = zobrazit(galerie, request)
obrazek = get_object_or_404(Obrazek, pk=fotka) obrazek = get_object_or_404(Obrazek, pk=fotka)
obrazky = galerie.obrazek_set.all().order_by('datum') obrazky = galerie.obrazek_set.all()
# vytvoreni a obslouzeni formulare # vytvoreni a obslouzeni formulare
if request.method == 'POST': if request.method == 'POST':

Loading…
Cancel
Save