Skip to content
This repository has been archived by the owner on Feb 13, 2019. It is now read-only.

Commit

Permalink
Merge branch 'master' into delete-IA
Browse files Browse the repository at this point in the history
  • Loading branch information
MichaelButkovic committed Sep 6, 2016
2 parents 05ce5e7 + c8dd684 commit a341c5f
Show file tree
Hide file tree
Showing 6 changed files with 40 additions and 2 deletions.
8 changes: 8 additions & 0 deletions CHANGELOG.md
@@ -1,5 +1,13 @@
# django-bulbs Change Log

## Version 3.15.4

- RSS feed excludes SuperFeatures

## Version 3.15.3

- Make SpecialCoverageLoadMore Query Parameter aware.

## Version 3.15.2

- Update GUIDE_TO serializers
Expand Down
2 changes: 1 addition & 1 deletion bulbs/__init__.py
@@ -1 +1 @@
__version__ = "3.15.2"
__version__ = "3.15.4"
8 changes: 8 additions & 0 deletions bulbs/feeds/views.py
@@ -1,3 +1,4 @@
from elasticsearch_dsl.filter import Not, Type
from rest_framework import viewsets
from rest_framework.pagination import PageNumberPagination
from rest_framework.permissions import AllowAny
Expand All @@ -9,6 +10,7 @@
from bulbs.content.models import Content
from bulbs.content.views import ContentListView
from bulbs.special_coverage.models import SpecialCoverage
from bulbs.super_features.utils import get_superfeature_model

from .serializers import GlanceContentSerializer

Expand All @@ -28,6 +30,12 @@ def get(self, request, *args, **kwargs):
response["Content-Type"] = "application/rss+xml"
return response

def get_queryset(self):
return super(RSSView, self).get_queryset().filter(
# Exclude all SuperFeatures (until we ever decide to support them)
Not(filter=Type(value=get_superfeature_model().search_objects.mapping.doc_type))
)

def get_context_data(self, *args, **kwargs):
context = super(RSSView, self).get_context_data(*args, **kwargs)
context["full"] = (self.request.GET.get("full", "false").lower() == "true")
Expand Down
Expand Up @@ -74,7 +74,11 @@ module.exports = (function () { // eslint-disable-line no-unused-vars

var offset = this.nextOffset(currentPage, perPage);

return [baseUrl, 'more', offset].join('/');
var urlSplit = baseUrl.split('?');
var base = urlSplit[0];
var queryString = urlSplit[1] || '';

return [base, 'more', offset].join('/') + '?' + queryString;
},

loadMore: function (url) {
Expand Down
Expand Up @@ -157,6 +157,11 @@ describe('SpecialCoverageLoader', function () {
it('returns a url with the next offset', function () {
expect(subject.buildUrl(currentPage, perPage, url)).to.equal(url + '/more/' + 10);
});

it('returns a url with query parameters appended', function () {
var queryUrl = url + '?full_preview=true';
expect(subject.buildUrl(currentPage, perPage, url)).to.equal(url + '/more/10?full_preview=True');
});
});

describe('loadMore', function () {
Expand Down
13 changes: 13 additions & 0 deletions tests/feeds/test_rss_feeds.py
Expand Up @@ -5,6 +5,7 @@
from django.utils import timezone

from bulbs.special_coverage.models import SpecialCoverage
from bulbs.super_features.models import BaseSuperFeature, GUIDE_TO_HOMEPAGE
from bulbs.utils.test import BaseIndexableTestCase, make_content

from example.testcontent.models import TestContentObj
Expand Down Expand Up @@ -50,6 +51,18 @@ def test_rss_pagination(self):
for content in page1_content_list:
self.assertNotIn(content, page2_content_list)

def test_exclude_superfeatures(self):

BaseSuperFeature.objects.create(title="Guide to Cats",
superfeature_type=GUIDE_TO_HOMEPAGE,
published=timezone.now())
BaseSuperFeature.search_objects.refresh()

resp = Client().get(reverse("rss-feed"))

self.assertEqual(resp.status_code, 200)
self.assertEqual(0, len(resp.context["page_obj"].object_list))

def test_special_coverage_rss_feed(self):
# make content
c1 = TestContentObj.objects.create(title="Content1", published=timezone.now())
Expand Down

0 comments on commit a341c5f

Please sign in to comment.