From 52944efbbcd549daf608ec7be0e75ef982cc31fc Mon Sep 17 00:00:00 2001
From: Dave Dash
Date: Mon, 14 Mar 2011 12:28:53 -0700
Subject: [PATCH] bug 618983, activity feed filters persist.
---
apps/devhub/tests/test_feeds.py | 5 +++++
apps/devhub/views.py | 8 ++++++--
2 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/apps/devhub/tests/test_feeds.py b/apps/devhub/tests/test_feeds.py
index d9995b0b508..dadb8d53627 100644
--- a/apps/devhub/tests/test_feeds.py
+++ b/apps/devhub/tests/test_feeds.py
@@ -82,6 +82,11 @@ def test_items(self):
doc = self.get_pq()
eq_(len(doc('.item')), 10)
+ def test_filter_persistence(self):
+ doc = self.get_pq(action='status')
+ assert '?action=status' in (doc('ul.refinements').eq(0)('a').eq(1)
+ .attr('href'))
+
def test_filter_updates(self):
self.log_creates(10)
self.log_updates(10)
diff --git a/apps/devhub/views.py b/apps/devhub/views.py
index 3c0ca40c1d2..6cf75419121 100644
--- a/apps/devhub/views.py
+++ b/apps/devhub/views.py
@@ -151,13 +151,15 @@ def ajax_compat_update(request, addon_id, addon, version_id):
compat_form=compat_form))
-def _get_addons(request, addons, addon_id):
+def _get_addons(request, addons, addon_id, action):
"""Create a list of ``MenuItem``s for the activity feed."""
items = []
a = MenuItem()
a.selected = (not addon_id)
(a.text, a.url) = (_('All My Add-ons'), reverse('devhub.feed_all'))
+ if action:
+ a.url += '?action=' + action
items.append(a)
for addon in addons:
@@ -167,6 +169,8 @@ def _get_addons(request, addons, addon_id):
except ValueError:
pass # We won't get here... EVER
url = reverse('devhub.feed', args=[addon.slug])
+ if action:
+ url += '?action=' + action
item.text, item.url = addon.name, url
items.append(item)
@@ -253,7 +257,7 @@ def feed(request, addon_id=None):
items = _get_items(action, addons)
activities = _get_activities(request, action)
- addon_items = _get_addons(request, addons_all, addon_selected)
+ addon_items = _get_addons(request, addons_all, addon_selected, action)
pager = amo.utils.paginate(request, items, 20)
data = dict(addons=addon_items, pager=pager, activities=activities,