Small refactoring

This commit is contained in:
Skia 2016-11-21 00:02:40 +01:00
parent 0e0e57458f
commit 0e788dd876
2 changed files with 22 additions and 16 deletions

View File

@ -8,6 +8,7 @@ from PIL import Image
from io import BytesIO from io import BytesIO
from core.models import SithFile, User from core.models import SithFile, User
from core.utils import resize_image, exif_auto_rotate
class Picture(SithFile): class Picture(SithFile):
class Meta: class Meta:
@ -40,6 +41,22 @@ class Picture(SithFile):
def get_download_thumb_url(self): def get_download_thumb_url(self):
return reverse('sas:download_thumb', kwargs={'picture_id': self.id}) return reverse('sas:download_thumb', kwargs={'picture_id': self.id})
def generate_thumbnails(self):
im = Image.open(BytesIO(self.file.read()))
try:
im = exif_auto_rotate(im)
except: pass
file = resize_image(im, max(im.size), self.mime_type.split('/')[-1])
thumb = resize_image(im, 200, self.mime_type.split('/')[-1])
compressed = resize_image(im, 600, self.mime_type.split('/')[-1])
self.file = file
self.file.name = self.name
self.thumbnail = thumb
self.thumbnail.name = self.name
self.compressed = compressed
self.compressed.name = self.name
self.save()
def rotate(self, degree): def rotate(self, degree):
for attr in ['file', 'compressed', 'thumbnail']: for attr in ['file', 'compressed', 'thumbnail']:
if self.__getattribute__(attr): if self.__getattribute__(attr):
@ -51,10 +68,12 @@ class Picture(SithFile):
self.save() self.save()
def get_next(self): def get_next(self):
return self.parent.children.exclude(is_moderated=False, asked_for_removal=True).filter(id__gt=self.id).order_by('id').first() return self.parent.children.filter(is_moderated=True, asked_for_removal=False, is_folder=False,
id__gt=self.id).order_by('id').first()
def get_previous(self): def get_previous(self):
return self.parent.children.exclude(is_moderated=False, asked_for_removal=True).filter(id__lt=self.id).order_by('id').last() return self.parent.children.filter(is_moderated=True, asked_for_removal=False, is_folder=False,
id__lt=self.id).order_by('id').last()
class Album(SithFile): class Album(SithFile):
class Meta: class Meta:

View File

@ -19,7 +19,6 @@ from core.views.files import send_file
from core.models import SithFile, User from core.models import SithFile, User
from sas.models import Picture, Album, PeoplePictureRelation from sas.models import Picture, Album, PeoplePictureRelation
from core.utils import resize_image, exif_auto_rotate
class SASForm(forms.Form): class SASForm(forms.Form):
album_name = forms.CharField(label=_("Add a new album"), max_length=30, required=False) album_name = forms.CharField(label=_("Add a new album"), max_length=30, required=False)
@ -40,19 +39,7 @@ class SASForm(forms.Form):
is_folder=False, is_moderated=automodere) is_folder=False, is_moderated=automodere)
try: try:
new_file.clean() new_file.clean()
im = Image.open(BytesIO(f.read())) new_file.generate_thumbnails()
try:
im = exif_auto_rotate(im)
except: pass
file = resize_image(im, max(im.size), f.content_type.split('/')[-1])
thumb = resize_image(im, 200, f.content_type.split('/')[-1])
compressed = resize_image(im, 600, f.content_type.split('/')[-1])
new_file.file = file
new_file.file.name = new_file.name
new_file.thumbnail = thumb
new_file.thumbnail.name = new_file.name
new_file.compressed = compressed
new_file.compressed.name = new_file.name
new_file.save() new_file.save()
except Exception as e: except Exception as e:
self.add_error(None, _("Error uploading file %(file_name)s: %(msg)s") % {'file_name': f, 'msg': repr(e)}) self.add_error(None, _("Error uploading file %(file_name)s: %(msg)s") % {'file_name': f, 'msg': repr(e)})