mirror of
https://github.com/ae-utbm/sith.git
synced 2024-11-25 18:44:23 +00:00
Small refactoring
This commit is contained in:
parent
0e0e57458f
commit
0e788dd876
@ -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:
|
||||||
|
15
sas/views.py
15
sas/views.py
@ -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)})
|
||||||
|
Loading…
Reference in New Issue
Block a user