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,