scale initial mark with the image
[wolnelektury.git] / apps / catalogue / utils.py
index 1060670..33b0830 100644 (file)
@@ -4,6 +4,7 @@
 #
 from __future__ import with_statement
 
+import hashlib
 import random
 import re
 import time
@@ -13,7 +14,7 @@ from django.http import HttpResponse
 from django.core.files.uploadedfile import UploadedFile
 from django.core.files.storage import DefaultStorage
 from django.utils.encoding import force_unicode
-from django.utils.hashcompat import sha_constructor
+from django.utils.translation import get_language
 from django.conf import settings
 from os import mkdir, path, unlink
 from errno import EEXIST, ENOENT
@@ -31,21 +32,25 @@ MAX_SESSION_KEY = 18446744073709551616L     # 2 << 63
 
 
 def get_random_hash(seed):
-    sha_digest = sha_constructor('%s%s%s%s' %
+    sha_digest = hashlib.sha1('%s%s%s%s' %
         (randrange(0, MAX_SESSION_KEY), time.time(), unicode(seed).encode('utf-8', 'replace'),
         settings.SECRET_KEY)).digest()
     return urlsafe_b64encode(sha_digest).replace('=', '').replace('_', '-').lower()
 
 
-def split_tags(tags):
-    result = {}
+def split_tags(tags, initial=None):
+    if initial is None:
+        result = {}
+    else:
+        result = initial
+    
     for tag in tags:
         result.setdefault(tag.category, []).append(tag)
     return result
 
 
 def get_dynamic_path(media, filename, ext=None, maxlen=100):
-    from slughifi import slughifi
+    from fnpdjango.utils.text.slughifi import slughifi
 
     # how to put related book's slug here?
     if not ext:
@@ -312,4 +317,12 @@ This can sometimes occupy lots of memory, so trim it here a bit.
         connection.queries = trim_to > 0 \
             and connection.queries[-trim_to:] \
             or []
-        
+
+
+def related_tag_name(tag_info, language=None):
+    return tag_info.get("name_%s" % (language or get_language()),
+        tag_info.get("name_%s" % settings.LANGUAGE_CODE, ""))
+
+
+def delete_from_cache_by_language(cache, key_template):
+    cache.delete_many([key_template % lc for lc, ln in settings.LANGUAGES])