template cleaning, translation in js, and add generic google analytics
authorymh <ymh.work@gmail.com>
Mon, 05 Mar 2012 23:45:26 +0100
changeset 589 e7410c4df032
parent 588 a18a8abd1089
child 590 faf94ed5367b
template cleaning, translation in js, and add generic google analytics
src/ldt/README
src/ldt/ldt/ldt_utils/templates/front/front_base.html
src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/create_content.html
src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/create_group.html
src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/create_ldt.html
src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/embed_popup.html
src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/error_confirm.html
src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/groups.html
src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/init_ldt.html
src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/ldt_list.html
src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/published_projects.html
src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/search_results.html
src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/workspace_base.html
src/ldt/ldt/ldt_utils/urls.py
src/ldt/ldt/locale/en/LC_MESSAGES/djangojs.mo
src/ldt/ldt/locale/en/LC_MESSAGES/djangojs.po
src/ldt/ldt/locale/fr/LC_MESSAGES/djangojs.mo
src/ldt/ldt/locale/fr/LC_MESSAGES/djangojs.po
src/ldt/ldt/static/ldt/js/projectscontents.js
src/ldt/ldt/templates/google_analytics/analytics_template.html
src/ldt/ldt/templates/google_analytics/async_analytics_template.html
src/ldt/ldt/templates/ldt/ldt_raw_base.html
src/ldt/ldt/templatetags/analytics.py
web/ldtplatform/config.py.tmpl
--- a/src/ldt/README	Sun Mar 04 04:30:43 2012 +0100
+++ b/src/ldt/README	Mon Mar 05 23:45:26 2012 +0100
@@ -6,3 +6,7 @@
 
 
 
+trick:
+compile messages for js
+python ../../../web/ldtplatform/manage.py makemessages -a -d djangojs
+python ../../../web/ldtplatform/manage.py compilemessages
--- a/src/ldt/ldt/ldt_utils/templates/front/front_base.html	Sun Mar 04 04:30:43 2012 +0100
+++ b/src/ldt/ldt/ldt_utils/templates/front/front_base.html	Mon Mar 05 23:45:26 2012 +0100
@@ -1,6 +1,7 @@
 {% load i18n %}
 {% load logintag %}
 {% load navigation %}
+{% load analytics %}
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="{{LANGUAGE_CODE}}" lang="{{LANGUAGE_CODE}}">
@@ -86,6 +87,7 @@
     </ul>
     <div class="clear"></div>
 </div>
+{% analytics %}
 </body>
 </html>
 
--- a/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/create_content.html	Sun Mar 04 04:30:43 2012 +0100
+++ b/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/create_content.html	Mon Mar 05 23:45:26 2012 +0100
@@ -6,13 +6,12 @@
 {% block js_import %}
 	{{ block.super }}
     <script type="text/javascript" src="{{ADMIN_MEDIA_PREFIX}}js/core.js" ></script>
-    <script type="text/javascript" src="{% url jsi18n %}" ></script>
+    <script type="text/javascript" src="{% url ldt.jsi18n packages='ldt' %}" ></script>
     <script type="text/javascript" src="{{LDT_MEDIA_PREFIX}}js/projectscontents.js"></script>
     <script type="text/javascript" src="{{LDT_MEDIA_PREFIX}}js/jquery.nyroModal.min.js"></script>
     <script type="text/javascript" src="{{LDT_MEDIA_PREFIX}}js/jquery.textchange.min.js"></script>
     <script type="text/javascript" src="{{LDT_MEDIA_PREFIX}}js/jquery-ui.min.js"></script>
     <script type="text/javascript" src="{{LDT_MEDIA_PREFIX}}js/swfupload/swfupload.js"></script>
-    <script type="text/javascript" src="{% url django.views.i18n.javascript_catalog %}"></script>
 	
 	{{ content_form.media.js }}
 {% endblock %}
--- a/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/create_group.html	Sun Mar 04 04:30:43 2012 +0100
+++ b/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/create_group.html	Mon Mar 05 23:45:26 2012 +0100
@@ -6,7 +6,8 @@
 
 {% block js_import %}
 	{{ block.super }}
-    <script type="text/javascript" src="{{LDT_MEDIA_PREFIX}}/js/jquery.nyroModal.min.js"></script>  
+    <script type="text/javascript" src="{{LDT_MEDIA_PREFIX}}/js/jquery.nyroModal.min.js"></script> 
+    <script type="text/javascript" src="{% url ldt.jsi18n packages='ldt' %}" ></script> 
 	<script type="text/javascript" src="{{LDT_MEDIA_PREFIX}}js/projectscontents.js" ></script> 
 	<script type="text/javascript" src="{{LDT_MEDIA_PREFIX}}js/tiny_mce/tiny_mce.js"></script>
 	{{ content_form.media.js }}
--- a/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/create_ldt.html	Sun Mar 04 04:30:43 2012 +0100
+++ b/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/create_ldt.html	Mon Mar 05 23:45:26 2012 +0100
@@ -5,7 +5,8 @@
 
 {% block js_import %}
 	{{ block.super }}
-    <script type="text/javascript" src="{{LDT_MEDIA_PREFIX}}/js/jquery.nyroModal.min.js"></script> 
+    <script type="text/javascript" src="{{LDT_MEDIA_PREFIX}}js/jquery.nyroModal.min.js"></script>
+    <script type="text/javascript" src="{% url ldt.jsi18n packages='ldt' %}" ></script> 
     <script type="text/javascript" src="{{LDT_MEDIA_PREFIX}}js/projectscontents.js"></script>  
 	<script type="text/javascript" src="{{LDT_MEDIA_PREFIX}}js/tiny_mce/tiny_mce.js"></script>
 	{{ content_form.media.js }}
--- a/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/embed_popup.html	Sun Mar 04 04:30:43 2012 +0100
+++ b/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/embed_popup.html	Mon Mar 05 23:45:26 2012 +0100
@@ -1,4 +1,5 @@
 {% load i18n %}
+{% load analytics %}
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
@@ -78,7 +79,7 @@
 		</div>
 						
 		<a href="{{json_url}}?escape=true&mimetype=text/plain" class="ldt_json_link" >{% trans 'clik here to see the project content' %}</a>		
-		
+{% analytics %}		
 	</body>
 </html>
 
--- a/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/error_confirm.html	Sun Mar 04 04:30:43 2012 +0100
+++ b/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/error_confirm.html	Mon Mar 05 23:45:26 2012 +0100
@@ -3,7 +3,8 @@
 {% load i18n %} {# form of creation of content #}
 
 {% block js_import %}
-	{{ block.super }}	
+	{{ block.super }}
+    <script type="text/javascript" src="{% url ldt.jsi18n packages='ldt' %}" ></script>	
     <script type="text/javascript" src="{{LDT_MEDIA_PREFIX}}js/projectscontents.js"></script>
 {% endblock %}
 
--- a/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/groups.html	Sun Mar 04 04:30:43 2012 +0100
+++ b/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/groups.html	Mon Mar 05 23:45:26 2012 +0100
@@ -3,6 +3,7 @@
 
 {% block js_import %}
 {{block.super}}
+    <script type="text/javascript" src="{% url ldt.jsi18n packages='ldt' %}" ></script>
 	<script type="text/javascript" src="{{LDT_MEDIA_PREFIX}}js/projectscontents.js" ></script>
 {% endblock %}
 
--- a/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/init_ldt.html	Sun Mar 04 04:30:43 2012 +0100
+++ b/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/init_ldt.html	Mon Mar 05 23:45:26 2012 +0100
@@ -8,6 +8,7 @@
 <title>Ligne de Temps - IRI</title>
 <script type="text/javascript" src="{{LDT_MEDIA_PREFIX}}js/jquery.min.js"></script>
 <script type="text/javascript" src="{{LDT_MEDIA_PREFIX}}js/jquery.nyroModal.min.js"></script>
+<script type="text/javascript" src="{% url ldt.jsi18n packages='ldt' %}" ></script>
 <script type="text/javascript" src="{{LDT_MEDIA_PREFIX}}js/projectscontents.js"></script>
 <script type="text/javascript">
 
--- a/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/ldt_list.html	Sun Mar 04 04:30:43 2012 +0100
+++ b/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/ldt_list.html	Mon Mar 05 23:45:26 2012 +0100
@@ -3,6 +3,7 @@
 
 {% block js_import %}
 {{block.super}}
+    <script type="text/javascript" src="{% url ldt.jsi18n packages='ldt' %}" ></script>
 	<script type="text/javascript" src="{{LDT_MEDIA_PREFIX}}js/projectscontents.js" ></script>
 {% endblock %}
 
--- a/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/published_projects.html	Sun Mar 04 04:30:43 2012 +0100
+++ b/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/published_projects.html	Mon Mar 05 23:45:26 2012 +0100
@@ -3,6 +3,7 @@
 
 {% block js_import %}
 {{block.super}}
+    <script type="text/javascript" src="{% url ldt.jsi18n packages='ldt' %}" ></script>
 	<script type="text/javascript" src="{{LDT_MEDIA_PREFIX}}js/projectscontents.js" ></script>
 {% endblock %}
 
--- a/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/search_results.html	Sun Mar 04 04:30:43 2012 +0100
+++ b/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/search_results.html	Mon Mar 05 23:45:26 2012 +0100
@@ -2,7 +2,8 @@
 {% load i18n %}
 
 {% block js_import %}
-    {{ block.super }}    
+    {{ block.super }}
+    <script type="text/javascript" src="{% url ldt.jsi18n packages='ldt' %}" ></script>
 	<script type="text/javascript" src="{{LDT_MEDIA_PREFIX}}js/projectscontents.js" ></script>
 {% endblock %}
 
--- a/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/workspace_base.html	Sun Mar 04 04:30:43 2012 +0100
+++ b/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/workspace_base.html	Mon Mar 05 23:45:26 2012 +0100
@@ -3,7 +3,8 @@
 
 {% block js_import %}
 {{block.super}}
-	<script type="text/javascript" src="{{LDT_MEDIA_PREFIX}}js/projectscontents.js" ></script>
+    <script type="text/javascript" src="{% url ldt.jsi18n packages='ldt' %}" ></script>
+    <script type="text/javascript" src="{{LDT_MEDIA_PREFIX}}js/projectscontents.js" ></script>
 {% endblock %}
 
 
--- a/src/ldt/ldt/ldt_utils/urls.py	Sun Mar 04 04:30:43 2012 +0100
+++ b/src/ldt/ldt/ldt_utils/urls.py	Mon Mar 05 23:45:26 2012 +0100
@@ -49,7 +49,8 @@
 )
 
 urlpatterns += patterns('',
-    url('^jsi18n', 'django.views.i18n.javascript_catalog', name='jsi18n'),
+    url('^jsi18n/?$', 'django.views.i18n.javascript_catalog', name='ldt.jsi18n.all'),
+    url('^jsi18n/(?P<packages>\S+?)/$', 'django.views.i18n.javascript_catalog', {'domain':'djangojs'}, name='ldt.jsi18n'),
 )
 
 
Binary file src/ldt/ldt/locale/en/LC_MESSAGES/djangojs.mo has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/ldt/ldt/locale/en/LC_MESSAGES/djangojs.po	Mon Mar 05 23:45:26 2012 +0100
@@ -0,0 +1,26 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2012-03-05 20:40+0100\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: static/ldt/js/projectscontents.js:712
+msgid "check all"
+msgstr "check all"
+
+#: static/ldt/js/projectscontents.js:713
+msgid "uncheck all"
+msgstr "uncheck all"
Binary file src/ldt/ldt/locale/fr/LC_MESSAGES/djangojs.mo has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/ldt/ldt/locale/fr/LC_MESSAGES/djangojs.po	Mon Mar 05 23:45:26 2012 +0100
@@ -0,0 +1,26 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# Yves-Marie Haussonne <ymh.work@gmail.com>, 2012.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2012-03-05 20:40+0100\n"
+"PO-Revision-Date: 2012-03-05 20:44+0200\n"
+"Last-Translator: Yves-Marie Haussonne <ymh.work@gmail.com>\n"
+"Language-Team: IRI\n"
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"X-Generator: Virtaal 0.7.0-mac-beta-1\n"
+
+#: static/ldt/js/projectscontents.js:712
+msgid "check all"
+msgstr "Tout cocher"
+
+#: static/ldt/js/projectscontents.js:713
+msgid "uncheck all"
+msgstr "Tout décocher"
--- a/src/ldt/ldt/static/ldt/js/projectscontents.js	Sun Mar 04 04:30:43 2012 +0100
+++ b/src/ldt/ldt/static/ldt/js/projectscontents.js	Mon Mar 05 23:45:26 2012 +0100
@@ -712,3 +712,23 @@
         }
     }
 }
+
+function check_uncheck_all(name) {
+	var check_all = gettext("check all");
+	var uncheck_all = gettext("uncheck all");
+	var id_name = "#global_checkbox_" + name;
+	
+	$(id_name).attr('title', uncheck_all);
+	
+	$(id_name).change(function () {
+		var checkbox_names = ".checkbox_" + name;
+		if ($(id_name).is(":checked")) {
+			$(checkbox_names).prop('checked', true);
+			$(id_name).attr('title', uncheck_all );
+		} else {
+			$(checkbox_names).prop('checked', false);
+			$(id_name).attr('title', check_all);
+		}
+		$(checkbox_names).trigger("change");
+	});		
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/ldt/ldt/templates/google_analytics/analytics_template.html	Mon Mar 05 23:45:26 2012 +0100
@@ -0,0 +1,10 @@
+<script type="text/javascript">
+var _gaq = _gaq || [];
+_gaq.push(['_setAccount', '{{ analytics_code }}']);
+_gaq.push(['_trackPageview']);
+(function() {
+var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+})();
+</script>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/ldt/ldt/templates/google_analytics/async_analytics_template.html	Mon Mar 05 23:45:26 2012 +0100
@@ -0,0 +1,6 @@
+<script>
+var _gaq=[['_setAccount','{{ analytics_code }}'],['_trackPageview']];
+(function(d,t){var g=d.createElement(t),s=d.getElementsByTagName(t)[0];
+g.src=('https:'==location.protocol?'//ssl':'//www')+'.google-analytics.com/ga.js';
+s.parentNode.insertBefore(g,s)}(document,'script'));
+</script>
\ No newline at end of file
--- a/src/ldt/ldt/templates/ldt/ldt_raw_base.html	Sun Mar 04 04:30:43 2012 +0100
+++ b/src/ldt/ldt/templates/ldt/ldt_raw_base.html	Mon Mar 05 23:45:26 2012 +0100
@@ -1,6 +1,7 @@
 {% load i18n %}
 {% load logintag %}
 {% load navigation %}
+{% load analytics %}
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
@@ -13,27 +14,6 @@
     <title>{% block title %}{% trans "page_title" %}{% endblock %}</title>
     {% block js_import %}
     <script type="text/javascript" src="{{LDT_MEDIA_PREFIX}}js/jquery.min.js"></script>
-    <script type="text/javascript">
-    function check_uncheck_all(name) {
-    	var check_all = '{% trans "check all" %}';
-    	var uncheck_all = '{% trans "uncheck all" %}';
-    	var id_name = "#global_checkbox_" + name;
-    	
-    	$(id_name).attr('title', uncheck_all);
-    	
-    	$(id_name).change(function () {
-    		var checkbox_names = ".checkbox_" + name;
-    		if ($(id_name).is(":checked")) {
-    			$(checkbox_names).prop('checked', true);
-    			$(id_name).attr('title', uncheck_all );
-    		} else {
-    			$(checkbox_names).prop('checked', false);
-    			$(id_name).attr('title', check_all);
-    		}
-    		$(checkbox_names).trigger("change");
-    	});		
-    }
-    </script>
     {% endblock %}
     
     {% block css_declaration %}
@@ -61,5 +41,6 @@
 <body>
 {% block body %}
 {% endblock %}
+{% analytics %}
 </body>
 </html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/ldt/ldt/templatetags/analytics.py	Mon Mar 05 23:45:26 2012 +0100
@@ -0,0 +1,70 @@
+###
+# Taken and adapted form django-google-analytics : http://
+#
+#
+##
+from django import template
+
+from django.template import Context, loader
+from django.conf import settings
+
+
+register = template.Library()
+
+def __clean_token(str, tag_name):
+    if not (str[0] == str[-1] and str[0] in ('"', "'")):
+        raise template.TemplateSyntaxError, "%r tag's argument should be in quotes" % tag_name
+    return str[1:-1]
+
+def do_get_analytics(parser, token):
+    code = None
+    style = None
+    tag_name = None
+    try:
+        # split_contents() knows not to split quoted strings.
+        tokens = token.split_contents()
+        if len(tokens) > 0 :
+            tag_name = tokens[0]
+        if len(tokens) > 1 :
+            style = tokens[1]
+        if len(tokens) > 2 :
+            code = tokens[2]
+    except ValueError:
+        code = None
+   
+    if not code:
+        code = getattr(settings,'GOOGLE_ANALYTICS_CODE',None)
+    else:
+        code = __clean_token(code, tag_name)
+
+    if style:
+        style = __clean_token(style, tag_name)
+    else:
+        style = 'async'
+
+    return AnalyticsNode(code, style)
+    
+class AnalyticsNode(template.Node):
+    def __init__(self, code=None, style='async'):
+        self.code = code
+        self.style = style
+        
+    def render(self, context):
+        if not self.code:
+            return ''
+        
+        if self.style == 'async':
+            template_path = 'google_analytics/async_analytics_template.html'
+        else:
+            template_path = 'google_analytics/analytics_template.html'
+
+        if self.code.strip() != '':
+            t = loader.get_template(template_path)
+            c = Context({
+                'analytics_code': self.code,
+            })
+            return t.render(c)
+        else:
+            return ''
+        
+register.tag('analytics', do_get_analytics)
--- a/web/ldtplatform/config.py.tmpl	Sun Mar 04 04:30:43 2012 +0100
+++ b/web/ldtplatform/config.py.tmpl	Mon Mar 05 23:45:26 2012 +0100
@@ -72,6 +72,8 @@
 
 MANAGERS = ADMINS
 
+GOOGLE_ANALYTICS_CODE = 'UA-1234-1'
+
 EMAIL_USE_TLS = True
 EMAIL_HOST = 'smtp.gmail.com'
 EMAIL_HOST_USER = 'iri.ddc@gmail.com'
@@ -95,3 +97,4 @@
 FRONT_TAG_LIST = [u"Enmi 2011", u"film", u"conférence"]
 
 
+