fnp
/
wolnelektury.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
locale
[wolnelektury.git]
/
src
/
catalogue
/
utils.py
diff --git
a/src/catalogue/utils.py
b/src/catalogue/utils.py
index
d17ead0
..
ee3631c
100644
(file)
--- a/
src/catalogue/utils.py
+++ b/
src/catalogue/utils.py
@@
-11,13
+11,15
@@
from collections import defaultdict
from errno import EEXIST, ENOENT
from fcntl import flock, LOCK_EX
from os import mkdir, path, unlink
from errno import EEXIST, ENOENT
from fcntl import flock, LOCK_EX
from os import mkdir, path, unlink
+from urllib.parse import urljoin
from zipfile import ZipFile
from zipfile import ZipFile
+from django.apps import apps
from django.conf import settings
from django.core.files.storage import DefaultStorage
from django.core.files.uploadedfile import UploadedFile
from django.http import HttpResponse
from django.conf import settings
from django.core.files.storage import DefaultStorage
from django.core.files.uploadedfile import UploadedFile
from django.http import HttpResponse
-from django.utils.encoding import force_
text
+from django.utils.encoding import force_
str
from reporting.utils import read_chunks
from reporting.utils import read_chunks
@@
-95,7
+97,7
@@
class LockFile(object):
# @task
# @task
-def create_zip(paths, zip_slug):
+def create_zip(paths, zip_slug
, file_contents=None
):
"""
Creates a zip in MEDIA_ROOT/zip directory containing files from path.
Resulting archive filename is ${zip_slug}.zip
"""
Creates a zip in MEDIA_ROOT/zip directory containing files from path.
Resulting archive filename is ${zip_slug}.zip
@@
-119,6
+121,9
@@
def create_zip(paths, zip_slug):
if arcname is None:
arcname = path.basename(p)
zipf.write(p, arcname)
if arcname is None:
arcname = path.basename(p)
zipf.write(p, arcname)
+ if file_contents:
+ for arcname, content in file_contents.items():
+ zipf.writestr(arcname, content)
finally:
zipf.close()
finally:
zipf.close()
@@
-195,7
+200,7
@@
def truncate_html_words(s, num, end_text='...'):
This is just a version of django.utils.text.truncate_html_words with no space before the end_text.
"""
This is just a version of django.utils.text.truncate_html_words with no space before the end_text.
"""
- s = force_
text
(s)
+ s = force_
str
(s)
length = int(num)
if length <= 0:
return ''
length = int(num)
if length <= 0:
return ''
@@
-303,13
+308,29
@@
def delete_from_cache_by_language(cache, key_template):
def gallery_path(slug):
def gallery_path(slug):
- return os.path.join(settings.MEDIA_ROOT, settings.IMAGE_DIR, slug)
+ return os.path.join(settings.MEDIA_ROOT, settings.IMAGE_DIR, slug)
+ '/'
def gallery_url(slug):
return '%s%s%s/' % (settings.MEDIA_URL, settings.IMAGE_DIR, slug)
def gallery_url(slug):
return '%s%s%s/' % (settings.MEDIA_URL, settings.IMAGE_DIR, slug)
+def absolute_url(url):
+ Site = apps.get_model('sites', 'Site')
+ site = Site.objects.get_current()
+ base_url = '%s://%s' % (
+ 'https' if settings.SESSION_COOKIE_SECURE else 'http',
+ site.domain
+ )
+ return urljoin(base_url, url)
+
+
def get_mp3_length(path):
from mutagen.mp3 import MP3
return int(MP3(path).info.length)
def get_mp3_length(path):
from mutagen.mp3 import MP3
return int(MP3(path).info.length)
+
+
+def set_file_permissions(self, fieldfile):
+ if fieldfile.instance.preview:
+ fieldfile.set_readable(False)
+