summaryrefslogtreecommitdiff
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
parentf8c7d5a6aa8460db14ddfe39944d19a872b1be8d (diff)
downloadChimère-fd5a65ede91637d41162ebcf3eda378bbbbc8690.tar.bz2
Chimère-fd5a65ede91637d41162ebcf3eda378bbbbc8690.zip
Fix bad share networks links
-rw-r--r--chimere/views.py25
-rw-r--r--example_project/settings.py5
2 files changed, 20 insertions, 10 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('&'):
diff --git a/example_project/settings.py b/example_project/settings.py
index e821682..69a3fbf 100644
--- a/example_project/settings.py
+++ b/example_project/settings.py
@@ -227,11 +227,12 @@ try:
except ImportError, e:
print 'Unable to load local_settings.py:', e
-if 'SHARE_NETWORKS' not in globals():
+if 'CHIMERE_SHARE_NETWORKS' not in globals():
# after the locals to get the right STATIC_URL
# share with
- SHARE_NETWORKS = (
+ global CHIMERE_SHARE_NETWORKS
+ CHIMERE_SHARE_NETWORKS = (
("Email", 'mailto:?subject=%(text)s&body=%(url)s',
STATIC_URL + 'chimere/img/email.png'),
("Facebook", 'http://www.facebook.com/sharer.php?t=%(text)s&u=%(url)s',