change of method to have absolute url for static file in views
authorgrandjoncl
Wed, 28 Nov 2012 16:40:18 +0100
changeset 997 947c8ad09bd6
parent 996 563d51c73231
child 998 7448fab0e138
change of method to have absolute url for static file in views modification of login.html when using absstatic in a loop
src/ldt/ldt/ldt_utils/views/front.py
src/ldt/ldt/ldt_utils/views/lignesdetemps.py
src/ldt/ldt/ldt_utils/views/workspace.py
src/ldt/ldt/utils/url.py
web/ldtplatform/templates/registration/login.html
--- a/src/ldt/ldt/ldt_utils/views/front.py	Wed Nov 28 12:31:27 2012 +0100
+++ b/src/ldt/ldt/ldt_utils/views/front.py	Wed Nov 28 16:40:18 2012 +0100
@@ -12,7 +12,8 @@
 from ldt.ldt_utils.views.workspace import get_search_results
 from tagging.models import Tag, TaggedItem
 from django.contrib.sites.models import Site
-from django.template import Context, Template
+from django.template import Context
+from ldt.utils.url import absstatic
 import base64
 
 
@@ -145,30 +146,9 @@
     search = ''
     field = 'all'
     content_tag = None
-    context_color = Context({}) 
-    template_colorurl_string = """
-      {% load absstatic %}
-      {% absstatic "ldt/swf/ldt/pkg/color.xml" %}
-   """
-    t_colorurl = Template(template_colorurl_string)
-    t_colorurl_render = t_colorurl.render(context_color)
-    colorurl=t_colorurl_render.strip()
-    context_i18nurl = Context({}) 
-    template_i18nurl_string = """
-      {% load absstatic %}
-      {% absstatic "ldt/swf/ldt/pkg/i18n" %}
-   """
-    t_i18nurl = Template(template_i18nurl_string)
-    t_i18nurl_render = t_i18nurl.render(context_i18nurl)
-    i18nurl=t_i18nurl_render.strip()
-    context_baseurl = Context({}) 
-    template_baseurl_string = """
-      {% load absstatic %}
-      {% absstatic "ldt/swf/ldt/" %}
-   """
-    t_baseurl = Template(template_baseurl_string)
-    t_baseurl_render = t_baseurl.render(context_i18nurl)
-    baseurl=t_baseurl_render.strip()
+    colorurl=absstatic(request, "ldt/swf/ldt/pkg/color.xml")
+    i18nurl=absstatic(request, "ldt/swf/ldt/pkg/i18n")
+    baseurl=absstatic(request, "ldt/swf/ldt/")
     sform = SearchForm(request.GET)
     if sform.is_valid():
         search = sform.cleaned_data["search"]
@@ -181,6 +161,7 @@
             content_list = TaggedItem.objects.get_by_model(Content.objects.all(), '"'+content_tag+'"')
         results, nb = get_search_results(request, search, field, page, content_list)
 
+
     return render_to_response('front/front_search_results.html', {'results': results, 'nb_results' : nb, 'search' : search, 'field': field, 'tag_label':content_tag, 'colorurl': colorurl, 'i18nurl': i18nurl, 'language': language_code, 'baseurl': baseurl}, context_instance=RequestContext(request))
 
 
--- a/src/ldt/ldt/ldt_utils/views/lignesdetemps.py	Wed Nov 28 12:31:27 2012 +0100
+++ b/src/ldt/ldt/ldt_utils/views/lignesdetemps.py	Wed Nov 28 16:40:18 2012 +0100
@@ -10,6 +10,7 @@
 from ldt.security.utils import set_forbidden_stream
 from ldt.ldt_utils.stat import update_stat_project
 from ldt.ldt_utils.searchutils import search_generate_ldt
+from ldt.utils.absolute_url import absstatic
 import base64
 import django.core.urlresolvers
 import lxml.etree
@@ -21,30 +22,9 @@
     language_code = request.LANGUAGE_CODE[:2]
     
     url = settings.WEB_URL + django.core.urlresolvers.reverse("ldt.ldt_utils.views.lignesdetemps.search_init", args=[field, query])
-    context_color = Context({}) 
-    template_colorurl_string = """
-      {% load absstatic %}
-      {% absstatic "ldt/swf/ldt/pkg/color.xml" %}
-   """
-    t_colorurl = Template(template_colorurl_string)
-    t_colorurl_render = t_colorurl.render(context_color)
-    colorurl=t_colorurl_render.strip()
-    context_i18nurl = Context({}) 
-    template_i18nurl_string = """
-      {% load absstatic %}
-      {% absstatic "ldt/swf/ldt/pkg/i18n" %}
-   """
-    t_i18nurl = Template(template_i18nurl_string)
-    t_i18nurl_render = t_i18nurl.render(context_i18nurl)
-    i18nurl=t_i18nurl_render.strip()
-    context_baseurl = Context({}) 
-    template_baseurl_string = """
-      {% load absstatic %}
-      {% absstatic "ldt/swf/ldt/" %}
-   """
-    t_baseurl = Template(template_baseurl_string)
-    t_baseurl_render = t_baseurl.render(context_i18nurl)
-    baseurl=t_baseurl_render.strip()
+    colorurl=absstatic(request, "ldt/swf/ldt/pkg/color.xml")
+    i18nurl=absstatic(request, "ldt/swf/ldt/pkg/i18n")
+    baseurl=absstatic(request, "ldt/swf/ldt/")
     return render_to_response('ldt/ldt_utils/init_ldt.html', {'colorurl': colorurl, 'i18nurl': i18nurl, 'language': language_code, 'baseurl': baseurl, 'url': url}, context_instance=RequestContext(request))
 
 def search_init(request, field, query):
@@ -107,30 +87,9 @@
     language_code = request.LANGUAGE_CODE[:2]
     readonly = 'true'
     template_path = 'ldt/ldt_utils/init_ldt.html'
-    context_color = Context({}) 
-    template_colorurl_string = """
-      {% load absstatic %}
-      {% absstatic "ldt/swf/ldt/pkg/color.xml" %}
-   """
-    t_colorurl = Template(template_colorurl_string)
-    t_colorurl_render = t_colorurl.render(context_color)
-    colorurl=t_colorurl_render.strip()
-    context_i18nurl = Context({}) 
-    template_i18nurl_string = """
-      {% load absstatic %}
-      {% absstatic "ldt/swf/ldt/pkg/i18n" %}
-   """
-    t_i18nurl = Template(template_i18nurl_string)
-    t_i18nurl_render = t_i18nurl.render(context_i18nurl)
-    i18nurl=t_i18nurl_render.strip()
-    context_baseurl = Context({}) 
-    template_baseurl_string = """
-      {% load absstatic %}
-      {% absstatic "ldt/swf/ldt/" %}
-   """
-    t_baseurl = Template(template_baseurl_string)
-    t_baseurl_render = t_baseurl.render(context_i18nurl)
-    baseurl=t_baseurl_render.strip()
+    colorurl=absstatic(request, "ldt/swf/ldt/pkg/color.xml")
+    i18nurl=absstatic(request, "ldt/swf/ldt/pkg/i18n")
+    baseurl=absstatic(request, "ldt/swf/ldt/")
     return render_to_response(template_path, {'colorurl': colorurl, 'i18nurl': i18nurl, 'language': language_code, 'baseurl': baseurl, 'url': url_str, 'posturl': post_url, 'id': id, 'readonly': readonly}, context_instance=RequestContext(request))
     
 def init_segment(request, project_id, content_id, ensemble_id, cutting_id, segment_id):
@@ -227,30 +186,9 @@
     urlStr = settings.WEB_URL + reverse("ldt.ldt_utils.views.lignesdetemps.init", args=['ldt_project', id])
     posturl = settings.WEB_URL + reverse("ldt.ldt_utils.views.lignesdetemps.save_ldt_project")
     language_code = request.LANGUAGE_CODE[:2]
-    context_color = Context({}) 
-    template_colorurl_string = """
-      {% load absstatic %}
-      {% absstatic "ldt/swf/ldt/pkg/color.xml" %}
-   """
-    t_colorurl = Template(template_colorurl_string)
-    t_colorurl_render = t_colorurl.render(context_color)
-    colorurl=t_colorurl_render.strip()
-    context_i18nurl = Context({}) 
-    template_i18nurl_string = """
-      {% load absstatic %}
-      {% absstatic "ldt/swf/ldt/pkg/i18n" %}
-   """
-    t_i18nurl = Template(template_i18nurl_string)
-    t_i18nurl_render = t_i18nurl.render(context_i18nurl)
-    i18nurl=t_i18nurl_render.strip()
-    context_baseurl = Context({}) 
-    template_baseurl_string = """
-      {% load absstatic %}
-      {% absstatic "ldt/swf/ldt/" %}
-   """
-    t_baseurl = Template(template_baseurl_string)
-    t_baseurl_render = t_baseurl.render(context_i18nurl)
-    baseurl=t_baseurl_render.strip()
+    colorurl=absstatic(request, "ldt/swf/ldt/pkg/color.xml")
+    i18nurl=absstatic(request, "ldt/swf/ldt/pkg/i18n")
+    baseurl=absstatic(request, "ldt/swf/ldt/")
     try:
         ldt = Project.safe_objects.get(ldt_id=id)
     except Project.DoesNotExist:
@@ -385,30 +323,9 @@
     
     urlStr = settings.WEB_URL + reverse("ldt.ldt_utils.views.lignesdetemps.init", args=['ldt', url])
     language_code = request.LANGUAGE_CODE[:2]
-    context_color = Context({}) 
-    template_colorurl_string = """
-      {% load absstatic %}
-      {% absstatic "ldt/swf/ldt/pkg/color.xml" %}
-   """
-    t_colorurl = Template(template_colorurl_string)
-    t_colorurl_render = t_colorurl.render(context_color)
-    colorurl=t_colorurl_render.strip()
-    context_i18nurl = Context({}) 
-    template_i18nurl_string = """
-      {% load absstatic %}
-      {% absstatic "ldt/swf/ldt/pkg/i18n" %}
-   """
-    t_i18nurl = Template(template_i18nurl_string)
-    t_i18nurl_render = t_i18nurl.render(context_i18nurl)
-    i18nurl=t_i18nurl_render.strip()
-    context_baseurl = Context({}) 
-    template_baseurl_string = """
-      {% load absstatic %}
-      {% absstatic "ldt/swf/ldt/" %}
-   """
-    t_baseurl = Template(template_baseurl_string)
-    t_baseurl_render = t_baseurl.render(context_i18nurl)
-    baseurl=t_baseurl_render.strip()
+    colorurl=absstatic(request, "ldt/swf/ldt/pkg/color.xml")
+    i18nurl=absstatic(request, "ldt/swf/ldt/pkg/i18n")
+    baseurl=absstatic(request, "ldt/swf/ldt/")
     return render_to_response('ldt/ldt_utils/init_ldt.html', {'colorurl': colorurl, 'i18nurl': i18nurl, 'language': language_code, 'baseurl': baseurl, 'url': urlStr, 'weburl':settings.WEB_URL + settings.BASE_URL}, context_instance=RequestContext(request))
 
 
--- a/src/ldt/ldt/ldt_utils/views/workspace.py	Wed Nov 28 12:31:27 2012 +0100
+++ b/src/ldt/ldt/ldt_utils/views/workspace.py	Wed Nov 28 16:40:18 2012 +0100
@@ -11,6 +11,7 @@
 from django.utils.html import escape
 from django.utils.translation import ugettext as _
 from ldt.ldt_utils.forms import SearchForm
+from ldt.utils.url import absstatic
 from ldt.ldt_utils.models import Content, Project, Segment
 from ldt.ldt_utils.utils import boolean_convert
 from ldt.ldt_utils.projectserializer import ProjectJsonSerializer
@@ -241,31 +242,9 @@
     results = []
     search = ''
     field = 'all'
-    context_color = Context({}) 
-    template_colorurl_string = """
-      {% load absstatic %}
-      {% absstatic "ldt/swf/ldt/pkg/color.xml" %}
-   """
-    t_colorurl = Template(template_colorurl_string)
-    t_colorurl_render = t_colorurl.render(context_color)
-    colorurl=t_colorurl_render.strip()
-    context_i18nurl = Context({}) 
-    template_i18nurl_string = """
-      {% load absstatic %}
-      {% absstatic "ldt/swf/ldt/pkg/i18n" %}
-   """
-    t_i18nurl = Template(template_i18nurl_string)
-    t_i18nurl_render = t_i18nurl.render(context_i18nurl)
-    i18nurl=t_i18nurl_render.strip()
-    context_baseurl = Context({}) 
-    template_baseurl_string = """
-      {% load absstatic %}
-      {% absstatic "ldt/swf/ldt/" %}
-   """
-    t_baseurl = Template(template_baseurl_string)
-    t_baseurl_render = t_baseurl.render(context_i18nurl)
-    baseurl=t_baseurl_render.strip()
-        
+    colorurl=absstatic(request, "ldt/swf/ldt/pkg/color.xml")
+    i18nurl=absstatic(request, "ldt/swf/ldt/pkg/i18n")
+    baseurl=absstatic(request, "ldt/swf/ldt/")
     sform = SearchForm(request.GET)
     if sform.is_valid():
         search = sform.cleaned_data["search"]
@@ -274,16 +253,7 @@
         page = sform.cleaned_data["page"] or 1
         ldt_pres = sform.cleaned_data["ldt_pres"]
         if ldt_pres:
-            #the following code will use the absurl templatetag to have the url and stop using WEB_URL+reverse
-            context_url = Context({}) 
-            template_url_string = """
-              {% load absurl %}
-              {% absurl  ldt.ldt_utils.views.lignesdetemps.search_init field='"""+field+"""' query='"""+queryStr+"""' %}
-           """
-            t_url = Template(template_url_string)
-            t_render= t_url.render(context_url)
-            url=t_render.strip()
-            #url = settings.WEB_URL + django.core.urlresolvers.reverse("ldt.ldt_utils.views.lignesdetemps.search_init", args=[field, queryStr])
+            url = settings.WEB_URL + django.core.urlresolvers.reverse("ldt.ldt_utils.views.lignesdetemps.search_init", args=[field, queryStr])
             return render_to_response('ldt/ldt_utils/init_ldt_full.html', {'colorurl': colorurl, 'i18nurl': i18nurl , 'language': language_code, 'baseurl': baseurl, 'url': url}, context_instance=RequestContext(request))
         else:                                        
             results, nb = get_search_results(request, search, field, page)            
--- a/src/ldt/ldt/utils/url.py	Wed Nov 28 12:31:27 2012 +0100
+++ b/src/ldt/ldt/utils/url.py	Wed Nov 28 16:40:18 2012 +0100
@@ -1,8 +1,19 @@
+from django.contrib.staticfiles.storage import staticfiles_storage
+from django.contrib.sites.models import Site
 from ldt import settings
 import httplib2
 import re
 import urlparse
 
+
+def absstatic(request, path):
+    if request.is_secure():
+        domain = "https://%s" % Site.objects.get_current().domain
+    else:
+        domain = "http://%s" % Site.objects.get_current().domain
+    new_path = staticfiles_storage.url(path)
+    return urlparse.urljoin(domain, new_path)
+
 def request_with_auth(url, method='GET'):
     h = httplib2.Http()
     web_auth = settings.WEB_AUTH if settings.WEB_AUTH else []
--- a/web/ldtplatform/templates/registration/login.html	Wed Nov 28 12:31:27 2012 +0100
+++ b/web/ldtplatform/templates/registration/login.html	Wed Nov 28 16:40:18 2012 +0100
@@ -3,30 +3,12 @@
 {% load absstatic %}
 {% load static %}
 
-{% block js_declaration %}
-
-	<script type="text/javascript">
-		$(document).ready(function(){
-			$('.social_link').each(function(i){
-				{% if social_list %}
-					{% for backend_name in social_list %}
-						var coucou='ldt/img/logo_{{backend_name}}.png'
-						{% with "ldt/img/logo_"|add:backend_name|add:".png" as src_path %}
-							document.getElementById('{{backend_name}}_logo_id').src='{% absstatic src_path %}';
-						{% endwith %}
-					{% endfor %}
-				{% endif %}		
-			});
-		});
-	</script>
-{% endblock %}
 {% block css_import %}
 	{{ block.super }}
 	<link rel="stylesheet" href='{% absstatic "ldt/css/ldt.css" %}'/>
 	<link rel="stylesheet" href='{% absstatic "ldt/css/ldtform.css" %}' />
 {% endblock %}
 
-
 {% block login %}
 {% endblock %}
 
@@ -58,7 +40,7 @@
             <ul>
            {% for backend_name in social_list %}
              
-       		<li><a href="{{ backend_name }}"><img class='social_link' id="{{backend_name}}_logo_id"/>&nbsp;{{ backend_name }}</a></li>
+       		<li><a href="{{ backend_name }}"><img src='{% absstatic "ldt" %}/img/logo_{{backend_name}}.png' class='social_link' id="{{backend_name}}_logo_id"/>&nbsp;{{ backend_name }}</a></li>
            
            {% endfor %}
            {% comment %}{{social_list|safe}}{% endcomment %}