forked from CGM_Public/pretix_original
Fix #229 -- Consistent language between django and javascript
This commit is contained in:
25
src/pretix/base/views/js_catalog.py
Normal file
25
src/pretix/base/views/js_catalog.py
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
from django.utils import timezone
|
||||||
|
from django.views.decorators.cache import cache_page
|
||||||
|
from django.views.decorators.http import etag
|
||||||
|
from django.views.i18n import (
|
||||||
|
get_javascript_catalog, render_javascript_catalog, to_locale,
|
||||||
|
)
|
||||||
|
|
||||||
|
# Yes, we want to regenerate this every time the module has been imported to
|
||||||
|
# refresh the cache at least at every code deployment
|
||||||
|
import_date = timezone.now().strftime("%Y%m%d%H%M")
|
||||||
|
|
||||||
|
|
||||||
|
# This is not a valid Django URL configuration, as the final
|
||||||
|
# configuration is done by the pretix.multidomain package.
|
||||||
|
js_info_dict = {
|
||||||
|
'packages': ('pretix',),
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@etag(lambda *s, **k: import_date)
|
||||||
|
@cache_page(3600, key_prefix='js18n-%s' % import_date)
|
||||||
|
def js_catalog(request, lang):
|
||||||
|
packages = ['pretix']
|
||||||
|
catalog, plural = get_javascript_catalog(to_locale(lang), 'djangojs', packages)
|
||||||
|
return render_javascript_catalog(catalog, plural)
|
||||||
@@ -9,7 +9,7 @@
|
|||||||
{% compress css %}
|
{% compress css %}
|
||||||
<link rel="stylesheet" type="text/x-scss" href="{% static "pretixcontrol/scss/main.scss" %}" />
|
<link rel="stylesheet" type="text/x-scss" href="{% static "pretixcontrol/scss/main.scss" %}" />
|
||||||
{% endcompress %}
|
{% endcompress %}
|
||||||
<script type="text/javascript" src="{% url "javascript-catalog" %}"></script>
|
<script type="text/javascript" src="{% url "javascript-catalog" lang=request.LANGUAGE_CODE %}"></script>
|
||||||
{% compress js %}
|
{% compress js %}
|
||||||
<script type="text/javascript" src="{% static "jquery/js/jquery-2.1.1.min.js" %}"></script>
|
<script type="text/javascript" src="{% static "jquery/js/jquery-2.1.1.min.js" %}"></script>
|
||||||
<script type="text/javascript" src="{% static "js/jquery.formset.js" %}"></script>
|
<script type="text/javascript" src="{% static "js/jquery.formset.js" %}"></script>
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
<link rel="stylesheet" type="text/x-scss" href="{% static "pretixpresale/scss/main.scss" %}"/>
|
<link rel="stylesheet" type="text/x-scss" href="{% static "pretixpresale/scss/main.scss" %}"/>
|
||||||
{% endcompress %}
|
{% endcompress %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<script type="text/javascript" src="{% url 'javascript-catalog' %}"></script>
|
<script type="text/javascript" src="{% url 'javascript-catalog' lang=request.LANGUAGE_CODE %}"></script>
|
||||||
{% compress js %}
|
{% compress js %}
|
||||||
<script type="text/javascript" src="{% static "jquery/js/jquery-2.1.1.min.js" %}"></script>
|
<script type="text/javascript" src="{% static "jquery/js/jquery-2.1.1.min.js" %}"></script>
|
||||||
<script type="text/javascript" src="{% static "moment/moment-with-locales.js" %}"></script>
|
<script type="text/javascript" src="{% static "moment/moment-with-locales.js" %}"></script>
|
||||||
|
|||||||
@@ -1,24 +1,10 @@
|
|||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.conf.urls import include, url
|
from django.conf.urls import include, url
|
||||||
from django.utils import timezone
|
|
||||||
from django.views.decorators.cache import cache_page
|
|
||||||
from django.views.decorators.http import etag
|
|
||||||
from django.views.i18n import javascript_catalog
|
|
||||||
|
|
||||||
import pretix.control.urls
|
import pretix.control.urls
|
||||||
import pretix.presale.urls
|
import pretix.presale.urls
|
||||||
|
|
||||||
from .base.views import cachedfiles, health, redirect
|
from .base.views import cachedfiles, health, js_catalog, redirect
|
||||||
|
|
||||||
# This is not a valid Django URL configuration, as the final
|
|
||||||
# configuration is done by the pretix.multidomain package.
|
|
||||||
js_info_dict = {
|
|
||||||
'packages': ('pretix',),
|
|
||||||
}
|
|
||||||
|
|
||||||
# Yes, we want to regenerate this every time the module has been imported to
|
|
||||||
# refresh the cache at least at every code deployment
|
|
||||||
import_date = timezone.now().strftime("%Y%m%d%H%M")
|
|
||||||
|
|
||||||
base_patterns = [
|
base_patterns = [
|
||||||
url(r'^download/(?P<id>[^/]+)/$', cachedfiles.DownloadView.as_view(),
|
url(r'^download/(?P<id>[^/]+)/$', cachedfiles.DownloadView.as_view(),
|
||||||
@@ -26,9 +12,7 @@ base_patterns = [
|
|||||||
url(r'^healthcheck/$', health.healthcheck,
|
url(r'^healthcheck/$', health.healthcheck,
|
||||||
name='healthcheck'),
|
name='healthcheck'),
|
||||||
url(r'^redirect/$', redirect.redir_view, name='redirect'),
|
url(r'^redirect/$', redirect.redir_view, name='redirect'),
|
||||||
url(r'^jsi18n/$',
|
url(r'^jsi18n/(?P<lang>[a-zA-Z-_]+)/$', js_catalog.js_catalog, name='javascript-catalog'),
|
||||||
etag(lambda *s, **k: import_date)(cache_page(3600, key_prefix='js18n-%s' % import_date)(javascript_catalog)),
|
|
||||||
js_info_dict, name='javascript-catalog'),
|
|
||||||
]
|
]
|
||||||
|
|
||||||
control_patterns = [
|
control_patterns = [
|
||||||
|
|||||||
Reference in New Issue
Block a user