diff options
author | Rosandra Cuello <rosandra.cuello@gmail.com> | 2011-11-17 11:22:26 -0400 |
---|---|---|
committer | Rosandra Cuello <rosandra.cuello@gmail.com> | 2011-11-17 11:22:26 -0400 |
commit | d7ead064414efec0e0d049842459e1a4d8a99edd (patch) | |
tree | b3345fe079b8d4717b5c6ccb1b5569631d86d2b6 /askbot/templatetags | |
parent | c9c18692410dc993cc85aefeac4163e3e4557b6d (diff) | |
download | askbot-d7ead064414efec0e0d049842459e1a4d8a99edd.tar.gz askbot-d7ead064414efec0e0d049842459e1a4d8a99edd.tar.bz2 askbot-d7ead064414efec0e0d049842459e1a4d8a99edd.zip |
most urls working except for the ones including page or page_size
Diffstat (limited to 'askbot/templatetags')
-rw-r--r-- | askbot/templatetags/extra_filters.py | 63 |
1 files changed, 35 insertions, 28 deletions
diff --git a/askbot/templatetags/extra_filters.py b/askbot/templatetags/extra_filters.py index b6dee686..47825dee 100644 --- a/askbot/templatetags/extra_filters.py +++ b/askbot/templatetags/extra_filters.py @@ -160,24 +160,14 @@ def absolute_value(number): @register.filter def replace_in_url(query_string, param): - try: - type, value = param.split(':') - params = query_string.rstrip('/').split('/') + type, value = param.split(':') + params = query_string.rstrip('/').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)+'/' - except: - type, value = param.split('=') - params = query_string.lstrip('?').split('&') - - 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 @@ -185,19 +175,36 @@ def add_tag_to_url(query_string, param): if query_string: params = query_string.rstrip('/').split('/') flag = False - for p in params: - 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) + + tags = [s for s in params if "tags:" in s] + if tags: + tags = tags[0] + flag = True + type, value = tags.split(':') + values = value.split('+') + if param in values: + return query_string + else: + values.append(param) + params[params.index(tags)] = 'tags:'+'+'.join(values) + if not flag: - params.append('tags:'+param) + author = [s for s in params if "author:" in s] + if author: + author = author[0] + params.insert(params.index(author), 'tags:'+param) + else: + params.append('tags:'+param) query_string = '/'.join(params)+'/' return query_string - +@register.filter +def remove_from_url(query_string, param_type): + if query_string: + params = query_string.rstrip('/').split('/') + new_params = [] + for p in params: + if not p.startswith(param_type): + new_params.append(p) + query_string = '/'.join(new_params)+'/' + return query_string |