summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdolfo Fitoria <adolfo.fitoria@gmail.com>2012-01-31 10:12:13 -0300
committerAdolfo Fitoria <adolfo.fitoria@gmail.com>2012-01-31 10:12:13 -0300
commitc5d25081f97e511e45a47f48e92835a817aaee90 (patch)
tree48235e89571b5b3b5d4725190abb882ab175c212
parent0319ef93b3b29eea546bd7b1466efae8e756869d (diff)
parent0f84818c1daa7c6c8c07f3da544a5844a7c7b434 (diff)
downloadaskbot-c5d25081f97e511e45a47f48e92835a817aaee90.tar.gz
askbot-c5d25081f97e511e45a47f48e92835a817aaee90.tar.bz2
askbot-c5d25081f97e511e45a47f48e92835a817aaee90.zip
Merge branch 'master' of github.com:ASKBOT/askbot-devel
-rw-r--r--askbot/search/state_manager.py8
-rw-r--r--askbot/tests/search_state_tests.py16
2 files changed, 23 insertions, 1 deletions
diff --git a/askbot/search/state_manager.py b/askbot/search/state_manager.py
index 232d64e9..ee46501e 100644
--- a/askbot/search/state_manager.py
+++ b/askbot/search/state_manager.py
@@ -117,7 +117,13 @@ class SearchState(object):
else:
self.sort = sort
- self.tags = [t.strip() for t in tags.split(const.TAG_SEP)] if tags else []
+ self.tags = []
+ if tags:
+ for t in tags.split(const.TAG_SEP):
+ tag = t.strip()
+ if tag not in self.tags:
+ self.tags.append(tag)
+
self.author = int(author) if author else None
self.page = int(page) if page else 1
if self.page == 0: # in case someone likes jokes :)
diff --git a/askbot/tests/search_state_tests.py b/askbot/tests/search_state_tests.py
index aca989fc..18f5eb36 100644
--- a/askbot/tests/search_state_tests.py
+++ b/askbot/tests/search_state_tests.py
@@ -275,3 +275,19 @@ class SearchStateTests(AskbotTestCase):
ss = SearchState.get_empty().add_tag('double').add_tag('double')
self.assertListEqual(['double'], ss.tags)
+ def test_prevent_dupped_tags(self):
+ ss = SearchState(
+ scope=None,
+ sort=None,
+ query=None,
+ tags='valid1,dupped,valid2,dupped',
+ author=None,
+ page=None,
+ user_logged_in=False
+ )
+ self.assertEqual(
+ 'scope:all/sort:activity-desc/tags:valid1,dupped,valid2/page:1/',
+ ss.query_string()
+ )
+
+