mirror of
https://github.com/ae-utbm/sith.git
synced 2024-11-26 11:04:20 +00:00
Merge branch 'sas' into 'master'
Fixed some issues with filepaths and see the future with some preload See merge request !59
This commit is contained in:
commit
231922cbaa
@ -12,6 +12,8 @@ from django.contrib.staticfiles.storage import staticfiles_storage
|
|||||||
from django.utils.html import escape
|
from django.utils.html import escape
|
||||||
from django.utils.functional import cached_property
|
from django.utils.functional import cached_property
|
||||||
|
|
||||||
|
import os
|
||||||
|
|
||||||
from phonenumber_field.modelfields import PhoneNumberField
|
from phonenumber_field.modelfields import PhoneNumberField
|
||||||
|
|
||||||
from datetime import datetime, timedelta, date
|
from datetime import datetime, timedelta, date
|
||||||
@ -664,10 +666,10 @@ class SithFile(models.Model):
|
|||||||
if self.is_folder:
|
if self.is_folder:
|
||||||
for c in self.children.all():
|
for c in self.children.all():
|
||||||
c.move_to(self)
|
c.move_to(self)
|
||||||
shutil.rmtree(settings.MEDIA_ROOT + old_file_name)
|
shutil.rmtree(os.path.join(settings.MEDIA_ROOT, old_file_name))
|
||||||
else:
|
else:
|
||||||
self.file.save(name=self.name, content=self.file)
|
self.file.save(name=self.name, content=self.file)
|
||||||
os.remove(settings.MEDIA_ROOT + old_file_name)
|
os.remove(os.path.join(settings.MEDIA_ROOT, old_file_name))
|
||||||
|
|
||||||
def __getattribute__(self, attr):
|
def __getattribute__(self, attr):
|
||||||
if attr == "is_file":
|
if attr == "is_file":
|
||||||
|
@ -38,10 +38,11 @@ def send_file(request, file_id, file_class=SithFile, file_attr="file"):
|
|||||||
):
|
):
|
||||||
raise PermissionDenied
|
raise PermissionDenied
|
||||||
name = f.__getattribute__(file_attr).name
|
name = f.__getattribute__(file_attr).name
|
||||||
with open((settings.MEDIA_ROOT + name).encode('utf-8'), 'rb') as filename:
|
filepath = os.path.join(settings.MEDIA_ROOT, name)
|
||||||
|
with open(filepath.encode('utf-8'), 'rb') as filename:
|
||||||
wrapper = FileWrapper(filename)
|
wrapper = FileWrapper(filename)
|
||||||
response = HttpResponse(wrapper, content_type=f.mime_type)
|
response = HttpResponse(wrapper, content_type=f.mime_type)
|
||||||
response['Content-Length'] = os.path.getsize((settings.MEDIA_ROOT + name).encode('utf-8'))
|
response['Content-Length'] = os.path.getsize(filepath.encode('utf-8'))
|
||||||
response['Content-Disposition'] = ('inline; filename="%s"' % f.name).encode('utf-8')
|
response['Content-Disposition'] = ('inline; filename="%s"' % f.name).encode('utf-8')
|
||||||
return response
|
return response
|
||||||
|
|
||||||
|
@ -7,6 +7,7 @@ from django.core.files.base import ContentFile
|
|||||||
|
|
||||||
from PIL import Image
|
from PIL import Image
|
||||||
from io import BytesIO
|
from io import BytesIO
|
||||||
|
import os
|
||||||
|
|
||||||
from core.models import SithFile, User
|
from core.models import SithFile, User
|
||||||
from core.utils import resize_image, exif_auto_rotate
|
from core.utils import resize_image, exif_auto_rotate
|
||||||
@ -17,7 +18,7 @@ class Picture(SithFile):
|
|||||||
|
|
||||||
@property
|
@property
|
||||||
def is_vertical(self):
|
def is_vertical(self):
|
||||||
with open((settings.MEDIA_ROOT + self.file.name).encode('utf-8'), 'rb') as f:
|
with open(os.path.join(settings.MEDIA_ROOT, self.file.name).encode('utf-8'), 'rb') as f:
|
||||||
im = Image.open(BytesIO(f.read()))
|
im = Image.open(BytesIO(f.read()))
|
||||||
(w, h) = im.size
|
(w, h) = im.size
|
||||||
return (w / h) < 1
|
return (w / h) < 1
|
||||||
@ -67,7 +68,7 @@ class Picture(SithFile):
|
|||||||
def rotate(self, degree):
|
def rotate(self, degree):
|
||||||
for attr in ['file', 'compressed', 'thumbnail']:
|
for attr in ['file', 'compressed', 'thumbnail']:
|
||||||
name = self.__getattribute__(attr).name
|
name = self.__getattribute__(attr).name
|
||||||
with open((settings.MEDIA_ROOT + name).encode('utf-8'), 'r+b') as file:
|
with open(os.path.join(settings.MEDIA_ROOT, name).encode('utf-8'), 'r+b') as file:
|
||||||
if file:
|
if file:
|
||||||
im = Image.open(BytesIO(file.read()))
|
im = Image.open(BytesIO(file.read()))
|
||||||
file.seek(0)
|
file.seek(0)
|
||||||
|
@ -20,6 +20,14 @@
|
|||||||
max-width: 100%;
|
max-width: 100%;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
{% if picture.get_previous() %}
|
||||||
|
<link rel="preload" as="image" href="{{ url("sas:download_compressed", picture_id=picture.get_previous().id) }}">
|
||||||
|
{% endif %}
|
||||||
|
{% if picture.get_next() %}
|
||||||
|
<link rel="preload" as="image" href="{{ url("sas:download_compressed", picture_id=picture.get_next().id) }}">
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block title %}
|
{% block title %}
|
||||||
|
Loading…
Reference in New Issue
Block a user