creation of a function in order to avoid using settings.WEB_URL + reverse in the views. Function to get the web_url using site domain
authorgrandjoncl
Mon, 03 Dec 2012 16:12:53 +0100
changeset 1007 a6d47caa7fc0
parent 1006 78ed70bc6bfe
child 1008 122c9f3a933a
creation of a function in order to avoid using settings.WEB_URL + reverse in the views. Function to get the web_url using site domain replacement in the templates of WEB_URL + templatetag url by the templatetag absurl
src/ldt/ldt/ldt_utils/models.py
src/ldt/ldt/ldt_utils/templates/admin/ldt_utils/content/reindex_form.html
src/ldt/ldt/ldt_utils/templates/admin/ldt_utils/content/stats_form.html
src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/embed_popup.html
src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/partial/embed_seo_meta.html
src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/search_form.html
src/ldt/ldt/ldt_utils/utils.py
src/ldt/ldt/ldt_utils/views/lignesdetemps.py
src/ldt/ldt/ldt_utils/views/workspace.py
src/ldt/ldt/user/templates/ldt/user/login_form.html
src/ldt/ldt/utils/context_processors.py
src/ldt/ldt/utils/url.py
--- a/src/ldt/ldt/ldt_utils/models.py	Mon Dec 03 11:53:01 2012 +0100
+++ b/src/ldt/ldt/ldt_utils/models.py	Mon Dec 03 16:12:53 2012 +0100
@@ -14,6 +14,7 @@
 from utils import (create_ldt, copy_ldt, create_empty_iri, update_iri, 
     generate_uuid)
 from ldt.utils import generate_hash 
+from ldt.utils.url import get_web_url
 import datetime
 import lxml.etree #@UnresolvedImport
 import mimetypes
@@ -300,7 +301,7 @@
     def __unicode__(self):
         return str(self.id) + ":" + self.iri_id + ":" + self.title.replace("\n", " ")
         
-    def iri_url(self, web_url=settings.WEB_URL):
+    def iri_url(self, web_url=get_web_url()):
         if url_utils.is_absolute(self.iriurl):
             return self.iriurl
         else:
--- a/src/ldt/ldt/ldt_utils/templates/admin/ldt_utils/content/reindex_form.html	Mon Dec 03 11:53:01 2012 +0100
+++ b/src/ldt/ldt/ldt_utils/templates/admin/ldt_utils/content/reindex_form.html	Mon Dec 03 16:12:53 2012 +0100
@@ -1,5 +1,6 @@
 {% extends "admin/ldt_utils/app_action.html" %}
 {% load i18n %}
+{% load absurl %}
 {# reindex contents #}
 {% block content %}
 {% if message %}
@@ -11,13 +12,13 @@
 {% endif %}
 <div>
 <form method="post"
-	action="{{WEB_URL}}{% url admin:ldt_content_reindex %}">{% csrf_token %}
+	action="{% absurl admin:ldt_content_reindex %}">{% csrf_token %}
 <table>
 	{{ form.as_table }}
 </table>
 <input type="submit" /></form>
 </div>
 
-<a href="{{WEB_URL}}{% url admin:app_list 'ldt_utils' %}">Back to administration page</a>
+<a href="{% absurl admin:app_list 'ldt_utils' %}">Back to administration page</a>
 
 {% endblock %}
--- a/src/ldt/ldt/ldt_utils/templates/admin/ldt_utils/content/stats_form.html	Mon Dec 03 11:53:01 2012 +0100
+++ b/src/ldt/ldt/ldt_utils/templates/admin/ldt_utils/content/stats_form.html	Mon Dec 03 16:12:53 2012 +0100
@@ -1,5 +1,6 @@
 {% extends "admin/ldt_utils/app_action.html" %}
 {% load i18n %}
+{% load absurl %}
 {# reindex contents #}
 {% block content %}
 {% if message %}
@@ -11,13 +12,13 @@
 {% endif %}
 <div>
 <form method="post"
-	action="{{WEB_URL}}{% url admin:ldt_project_compute_stats %}">{% csrf_token %}
+	action="{% absurl admin:ldt_project_compute_stats %}">{% csrf_token %}
 <table>
 	{{ form.as_table }}
 </table>
 <input type="submit" /></form>
 </div>
 
-<a href="{{WEB_URL}}{% url admin:app_list 'ldt_utils' %}">Back to administration page</a>
+<a href="{% absurl admin:app_list 'ldt_utils' %}">Back to administration page</a>
 
 {% endblock %}
--- a/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/embed_popup.html	Mon Dec 03 11:53:01 2012 +0100
+++ b/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/embed_popup.html	Mon Dec 03 16:12:53 2012 +0100
@@ -25,7 +25,6 @@
         	var player_id='{{player_id}}';
         	var translate_show="{% trans 'Show Player' %}";
         	var translate_hide="{% trans 'Hide Player' %}";
-        	var WEB_URL='{{WEB_URL}}';
         	var LANGUAGE_CODE='{{LANGUAGE_CODE}}';
         	var json_url='{{json_url}}';
         	var player_id='{{player_id}}';
--- a/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/partial/embed_seo_meta.html	Mon Dec 03 11:53:01 2012 +0100
+++ b/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/partial/embed_seo_meta.html	Mon Dec 03 16:12:53 2012 +0100
@@ -1,3 +1,4 @@
+{% load absurl %}
 {% spaceless %}
-<link rel="meta" href="{{WEB_URL}}{% url ldt.ldt_utils.views.rdf.project_annotations_rdf ldt_id=ldt_id %}"/>
+<link rel="meta" href="{% absurl ldt.ldt_utils.views.rdf.project_annotations_rdf ldt_id=ldt_id %}"/>
 {% endspaceless %}
\ No newline at end of file
--- a/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/search_form.html	Mon Dec 03 11:53:01 2012 +0100
+++ b/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/search_form.html	Mon Dec 03 16:12:53 2012 +0100
@@ -1,5 +1,6 @@
 {% extends "ldt/ldt_base.html" %}
 {% load i18n %}
+{% load absurl %}
 
 {% block js_declaration %}
 <script type="text/javascript">
@@ -20,7 +21,7 @@
 
 {% block content %}
 <form method="post" id="my_form"
-	{% comment %}action="{{WEB_URL}}{% url ldt.ldt_utils.views.workspace.search_index %}"{% endcomment %}
+	{% comment %}action="{% absurl ldt.ldt_utils.views.workspace.search_index %}"{% endcomment %}
 	action="{% url ldt.ldt_utils.views.workspace.search_index %}"
 	accept-charset="utf-8">
 {% csrf_token %}
--- a/src/ldt/ldt/ldt_utils/utils.py	Mon Dec 03 11:53:01 2012 +0100
+++ b/src/ldt/ldt/ldt_utils/utils.py	Mon Dec 03 16:12:53 2012 +0100
@@ -7,6 +7,8 @@
 import lxml.etree #@UnresolvedImport
 import uuid
 from ldt.utils.url import request_with_auth
+from ldt.utils.url import absurl_norequest
+import logging
 
 __BOOLEAN_DICT = {
     'false':False,
@@ -145,12 +147,11 @@
  
         elementFiles = lxml.etree.SubElement(iri, 'files')    
         elementInit = lxml.etree.SubElement(elementFiles, 'init')
-        elementfile = lxml.etree.SubElement(elementInit, 'file')
-            
-        elementfile.set('src', settings.WEB_URL + django.core.urlresolvers.reverse(method, args=url))
+        elementfile = lxml.etree.SubElement(elementInit, 'file')   
+        elementfile.set('src', absurl_norequest(method, args=url))
         elementfile.set('src', django.core.urlresolvers.reverse(method, args=url))
         if(search):
-            elementfile.set("segsel", settings.WEB_URL + django.core.urlresolvers.reverse(search, args=url))
+            elementfile.set("segsel", absurl_norequest(search, args=url))
 
         lxml.etree.SubElement(elementFiles, 'recent')
         lxml.etree.SubElement(elementFiles, 'library')
--- a/src/ldt/ldt/ldt_utils/views/lignesdetemps.py	Mon Dec 03 11:53:01 2012 +0100
+++ b/src/ldt/ldt/ldt_utils/views/lignesdetemps.py	Mon Dec 03 16:12:53 2012 +0100
@@ -10,7 +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.url import absstatic
+from ldt.utils.url import absstatic, absurl, get_web_url
 import base64
 import django.core.urlresolvers
 import lxml.etree
@@ -21,7 +21,7 @@
     
     language_code = request.LANGUAGE_CODE[:2]
     
-    url = settings.WEB_URL + django.core.urlresolvers.reverse("ldt.ldt_utils.views.lignesdetemps.search_init", args=[field, query])
+    url = absurl(request, "ldt.ldt_utils.views.lignesdetemps.search_init", args=[field, query])
     colorurl=absstatic(request, "ldt/swf/ldt/pkg/color.xml")
     i18nurl=absstatic(request, "ldt/swf/ldt/pkg/i18n")
     baseurl=absstatic(request, "ldt/swf/ldt/")
@@ -82,7 +82,7 @@
 
 
 def index_segment(request, project_id, content_id, cutting_id, ensemble_id, segment_id):
-    url_str = settings.WEB_URL + reverse("ldt.ldt_utils.views.lignesdetemps.init_segment", args=[project_id, content_id, ensemble_id, cutting_id, segment_id])
+    url_str = absurl(request, "ldt.ldt_utils.views.lignesdetemps.init_segment", args=[project_id, content_id, ensemble_id, cutting_id, segment_id])
     post_url = ""
     language_code = request.LANGUAGE_CODE[:2]
     readonly = 'true'
@@ -183,8 +183,8 @@
 @login_required    
 def index_project(request, id, full=False): 
 
-    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")
+    urlStr = absurl(request, "ldt.ldt_utils.views.lignesdetemps.init", args=['ldt_project', id])
+    posturl = absurl(request, "ldt.ldt_utils.views.lignesdetemps.save_ldt_project")
     language_code = request.LANGUAGE_CODE[:2]
     colorurl=absstatic(request, "ldt/swf/ldt/pkg/color.xml")
     i18nurl=absstatic(request, "ldt/swf/ldt/pkg/i18n")
@@ -321,12 +321,12 @@
 
 def index(request, url):
     
-    urlStr = settings.WEB_URL + reverse("ldt.ldt_utils.views.lignesdetemps.init", args=['ldt', url])
+    urlStr = absurl(request, "ldt.ldt_utils.views.lignesdetemps.init", args=['ldt', url])
     language_code = request.LANGUAGE_CODE[:2]
     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))
+    return render_to_response('ldt/ldt_utils/init_ldt.html', {'colorurl': colorurl, 'i18nurl': i18nurl, 'language': language_code, 'baseurl': baseurl, 'url': urlStr, 'weburl': get_web_url(request) + settings.BASE_URL}, context_instance=RequestContext(request))
 
 
 def ldt(request, url, startSegment=None): 
--- a/src/ldt/ldt/ldt_utils/views/workspace.py	Mon Dec 03 11:53:01 2012 +0100
+++ b/src/ldt/ldt/ldt_utils/views/workspace.py	Mon Dec 03 16:12:53 2012 +0100
@@ -11,14 +11,13 @@
 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.utils.url import absstatic, absurl, get_web_url
 from ldt.ldt_utils.models import Content, Project, Segment
 from ldt.ldt_utils.utils import boolean_convert
 from ldt.ldt_utils.projectserializer import ProjectJsonSerializer
 from ldt.ldt_utils.views.content import get_contents_page, get_content_tags
 from ldt.ldt_utils.views.project import get_projects_page, get_published_projects_page
 from ldt.security.utils import add_change_attr, get_userlist
-from ldt.templatetags import absurl
 from operator import itemgetter
 from itertools import groupby
 import base64
@@ -182,7 +181,8 @@
     project = Project.safe_objects.get(ldt_id=ldt_id); #@UndefinedVariable
     project_contents = project.contents.all()
     content=project_contents[0]
-    iframe_url = mark_safe(settings.WEB_URL+settings.BASE_URL+"ldtplatform/ldt/embediframe/?content_id="+content.iri_id)
+    WEB_URL=get_web_url(request)
+    iframe_url = mark_safe(WEB_URL+settings.BASE_URL+"ldt/embediframe/?content_id="+content.iri_id)
     external_url = None
     if content.src is not None:
         for external_src in settings.EXTERNAL_STREAM_SRC:
@@ -199,7 +199,6 @@
         
     if not ldt_auth.check_access(request.user, project):
         return HttpResponseForbidden(_("You can not access this project"))
-    WEB_URL=settings.WEB_URL
     LANGUAGE_CODE=settings.LANGUAGE_CODE
     ps = ProjectJsonSerializer(project, from_contents=True, from_display=True)
     annotations = ps.get_annotations(first_cutting=True)
@@ -253,7 +252,7 @@
         page = sform.cleaned_data["page"] or 1
         ldt_pres = sform.cleaned_data["ldt_pres"]
         if ldt_pres:
-            url = settings.WEB_URL + django.core.urlresolvers.reverse("ldt.ldt_utils.views.lignesdetemps.search_init", args=[field, queryStr])
+            url = absurl(request, "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/user/templates/ldt/user/login_form.html	Mon Dec 03 11:53:01 2012 +0100
+++ b/src/ldt/ldt/user/templates/ldt/user/login_form.html	Mon Dec 03 16:12:53 2012 +0100
@@ -1,10 +1,11 @@
 {% load i18n %}
+{% load absurl %}
 {# print user's state and form of login #}
 {% block js_import %}
 {{block.super}}
 
     <script language="javascript">
-    var url_login_ajax='{{WEB_URL}}{% url ldt.user.views.login_ajax %}';
+    var url_login_ajax='{% absurl ldt.user.views.login_ajax %}';
     {% if reload %}    
         var reload=true;    
     {% else %}
--- a/src/ldt/ldt/utils/context_processors.py	Mon Dec 03 11:53:01 2012 +0100
+++ b/src/ldt/ldt/utils/context_processors.py	Mon Dec 03 16:12:53 2012 +0100
@@ -1,10 +1,11 @@
 from ldt import settings
+from ldt.utils.url import get_web_url
 import ldt
 
 
 def ldt_context(request):
     return {'BASE_URL': settings.BASE_URL, 'MEDIA_URL': settings.MEDIA_URL, \
-             'WEB_URL': settings.WEB_URL, \
+             'WEB_URL': get_web_url(), \
              'ADMIN_MEDIA_PREFIX': settings.ADMIN_MEDIA_PREFIX, 'VERSION': ldt.get_version(), \
              'WEB_VERSION' : settings.WEB_VERSION, }
 
--- a/src/ldt/ldt/utils/url.py	Mon Dec 03 11:53:01 2012 +0100
+++ b/src/ldt/ldt/utils/url.py	Mon Dec 03 16:12:53 2012 +0100
@@ -1,19 +1,36 @@
 from django.contrib.staticfiles.storage import staticfiles_storage
 from django.contrib.sites.models import Site
+from django.core.urlresolvers import reverse
 from ldt import settings
 import httplib2
 import re
 import urlparse
 
+def get_web_url(request=None):
+    if request:
+        if request.is_secure():
+            domain = "https://%s" % Site.objects.get_current().domain
+        else:
+            domain = "http://%s" % Site.objects.get_current().domain
+    else : 
+        domain = "http://%s" % Site.objects.get_current().domain
+    return domain
 
 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
+    domain=get_web_url(request)
     new_path = staticfiles_storage.url(path)
     return urlparse.urljoin(domain, new_path)
 
+def absurl(request, viewname, urlconf=None, args=None, kwargs=None, prefix=None, current_app=None):
+    domain=get_web_url(request)
+    path=reverse(viewname, urlconf, args, kwargs, prefix, current_app)
+    return urlparse.urljoin(domain, path)
+
+def absurl_norequest(viewname, urlconf=None, args=None, kwargs=None, prefix=None, current_app=None):
+    domain=get_web_url()
+    path=reverse(viewname, urlconf, args, kwargs, prefix, current_app)
+    return urlparse.urljoin(domain, path)
+
 def request_with_auth(url, method='GET'):
     h = httplib2.Http()
     web_auth = settings.WEB_AUTH if settings.WEB_AUTH else []