summaryrefslogtreecommitdiffstats
path: root/askbot/templatetags
diff options
context:
space:
mode:
authorRosandra Cuello <rosandra.cuello@gmail.com>2011-11-16 21:49:59 -0400
committerRosandra Cuello <rosandra.cuello@gmail.com>2011-11-16 21:49:59 -0400
commitf40ced58a388b945c255e637e9a63233e8715cd2 (patch)
tree40f6b46689794963da84ed93aedd0f42881a605b /askbot/templatetags
parentc91981b3f7b92e4fb51fd622c0074c57edf6cb42 (diff)
downloadaskbot-f40ced58a388b945c255e637e9a63233e8715cd2.tar.gz
askbot-f40ced58a388b945c255e637e9a63233e8715cd2.tar.bz2
askbot-f40ced58a388b945c255e637e9a63233e8715cd2.zip
Changes to url structure (still missing some parts).
Diffstat (limited to 'askbot/templatetags')
-rw-r--r--askbot/templatetags/extra_filters.py43
1 files changed, 31 insertions, 12 deletions
diff --git a/askbot/templatetags/extra_filters.py b/askbot/templatetags/extra_filters.py
index 81776c6c..b6dee686 100644
--- a/askbot/templatetags/extra_filters.py
+++ b/askbot/templatetags/extra_filters.py
@@ -160,25 +160,44 @@ def absolute_value(number):
@register.filter
def replace_in_url(query_string, param):
- type, value = param.split('=')
- params = query_string.lstrip('?').split('&')
+ try:
+ type, value = param.split(':')
+ params = query_string.rstrip('/').split('/')
+
+ for p in params:
+ if type in p:
+ params[params.index(p)] = param
+
+ query_string = '/'.join(params)+'/'
+ except:
+ type, value = param.split('=')
+ params = query_string.lstrip('?').split('&')
- for p in params:
- if type in p:
- params[params.index(p)] = param
+ for p in params:
+ if type in p:
+ params[params.index(p)] = param
- query_string = "?"+'&'.join(params)
+ query_string = '?'+'&'.join(params)
return query_string
@register.filter
def add_tag_to_url(query_string, param):
if query_string:
- params = query_string.lstrip('?').split('&')
-
+ params = query_string.rstrip('/').split('/')
+ flag = False
for p in params:
- if param in p:
- return ''
-
- return '&'+param
+ if p.startswith('tags:'):
+ flag = True
+ type, value = p.split(':')
+ values = value.split('+')
+ if param in values:
+ return query_string
+ else:
+ values.append(param)
+ params[params.index(p)] = 'tags:'+'+'.join(values)
+ if not flag:
+ params.append('tags:'+param)
+ query_string = '/'.join(params)+'/'
+ return query_string