summaryrefslogtreecommitdiff
path: root/chimere/views.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@peacefrogs.net>2012-07-05 19:50:18 +0200
committerÉtienne Loks <etienne.loks@peacefrogs.net>2012-07-05 19:50:18 +0200
commitfd5a65ede91637d41162ebcf3eda378bbbbc8690 (patch)
treef5894d7129f73afbf989daff6eb6e8e7f6627cb0 /chimere/views.py
parentf8c7d5a6aa8460db14ddfe39944d19a872b1be8d (diff)
downloadChimère-fd5a65ede91637d41162ebcf3eda378bbbbc8690.tar.bz2
Chimère-fd5a65ede91637d41162ebcf3eda378bbbbc8690.zip
Fix bad share networks links
Diffstat (limited to 'chimere/views.py')
-rw-r--r--chimere/views.py25
1 files changed, 17 insertions, 8 deletions
diff --git a/chimere/views.py b/chimere/views.py
index 08a0add..2c50e2a 100644
--- a/chimere/views.py
+++ b/chimere/views.py
@@ -49,6 +49,17 @@ from chimere.forms import MarkerForm, RouteForm, ContactForm, FileForm, \
FullFileForm, MultimediaFileFormSet, PictureFileFormSet, notifySubmission,\
notifyStaff, AreaForm
+def get_base_uri(request):
+ base_uri = 'http://'
+ if 'HTTP_REFERER' in request.META:
+ if request.META['HTTP_REFERER'].startswith('https:'):
+ base_uri = 'https://'
+ if 'SERVER_NAME' in request.META:
+ base_uri += request.META['SERVER_NAME']
+ if 'SERVER_PORT' in request.META:
+ base_uri += ":" + request.META['SERVER_PORT']
+ return base_uri
+
#TODO: convert to requestcontext
def get_base_response(area_name=""):
"""
@@ -193,11 +204,7 @@ def get_edit_page(redirect_url, item_cls, item_form):
for f in formset_picture:
f.save(item)
- base_uri = 'http://'
- if 'SERVER_NAME' in request.META:
- base_uri += request.META['SERVER_NAME']
- if 'SERVER_PORT' in request.META:
- base_uri += ":" + request.META['SERVER_PORT']
+ base_uri = get_base_uri(request)
notifySubmission(base_uri, item)
response_dct = get_base_response(area_name)
return redirect(redirect_url + '-item',
@@ -440,9 +447,9 @@ def getDetail(request, area_name, marker_id):
parameters = u'current_feature=%s' % marker_id
parameters += u"&checked_categories=%s" % "_".join([str(m.id) \
for m in marker.categories.all()])
- net_dct = getTinyfiedUrl(parameters, response_dct['area_name'])
+ net_dct = getTinyfiedUrl(request, parameters, response_dct['area_name'])
share_networks = []
- for network in settings.SHARE_NETWORKS:
+ for network in settings.CHIMERE_SHARE_NETWORKS:
share_networks.append((network[0], network[1] % net_dct, network[2]))
response_dct['share_networks'] = share_networks
response_dct['dated'] = settings.CHIMERE_DAYS_BEFORE_EVENT \
@@ -565,7 +572,7 @@ def get_available_categories(request, area_name=None, area=None, status='A',
return render_to_response('chimere/blocks/categories.html', context_data,
context_instance=RequestContext(request))
-def getTinyfiedUrl(parameters, area_name=''):
+def getTinyfiedUrl(request, parameters, area_name=''):
'''
Get the tinyfied version of parameters
'''
@@ -578,6 +585,8 @@ def getTinyfiedUrl(parameters, area_name=''):
if redir:
return redir
url = reverse('chimere:tiny', args=[response_dct['area_name'] + '/', urn])
+ if not url.startswith('http'):
+ url = get_base_uri(request) + url
text = settings.PROJECT_NAME
if 'current_feature' in parameters:
for item in parameters.split('&'):