forked from CGM_Public/pretix_original
Add cache to sass compiler
This commit is contained in:
@@ -7,6 +7,7 @@ import django_libsass
|
|||||||
import sass
|
import sass
|
||||||
from compressor.filters.cssmin import CSSCompressorFilter
|
from compressor.filters.cssmin import CSSCompressorFilter
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
|
from django.core.cache import cache
|
||||||
from django.core.files.base import ContentFile
|
from django.core.files.base import ContentFile
|
||||||
from django.core.files.storage import default_storage
|
from django.core.files.storage import default_storage
|
||||||
from django.dispatch import Signal
|
from django.dispatch import Signal
|
||||||
@@ -68,15 +69,22 @@ def compile_scss(object, file="main.scss", fonts=True):
|
|||||||
for recv, resp in sass_postamble.send(object, filename=file):
|
for recv, resp in sass_postamble.send(object, filename=file):
|
||||||
sassrules.append(resp)
|
sassrules.append(resp)
|
||||||
|
|
||||||
cf = dict(django_libsass.CUSTOM_FUNCTIONS)
|
sasssrc = "\n".join(sassrules)
|
||||||
cf['static'] = static
|
srcchecksum = hashlib.sha1(sasssrc.encode('utf-8')).hexdigest()
|
||||||
css = sass.compile(
|
|
||||||
string="\n".join(sassrules),
|
css = cache.get('sass_compile_{}'.format(srcchecksum))
|
||||||
include_paths=[sassdir], output_style='nested',
|
if not css:
|
||||||
custom_functions=cf
|
cf = dict(django_libsass.CUSTOM_FUNCTIONS)
|
||||||
)
|
cf['static'] = static
|
||||||
cssf = CSSCompressorFilter(css)
|
css = sass.compile(
|
||||||
css = cssf.output()
|
string=sasssrc,
|
||||||
|
include_paths=[sassdir], output_style='nested',
|
||||||
|
custom_functions=cf
|
||||||
|
)
|
||||||
|
cssf = CSSCompressorFilter(css)
|
||||||
|
css = cssf.output()
|
||||||
|
cache.set('sass_compile_{}'.format(srcchecksum), css, 3600)
|
||||||
|
|
||||||
checksum = hashlib.sha1(css.encode('utf-8')).hexdigest()
|
checksum = hashlib.sha1(css.encode('utf-8')).hexdigest()
|
||||||
return css, checksum
|
return css, checksum
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user