Skip to content
This repository has been archived by the owner on Jan 28, 2020. It is now read-only.

Commit

Permalink
Added remove_content_xml flag and updated resource panel to use it
Browse files Browse the repository at this point in the history
  • Loading branch information
George Schneeloch committed Oct 16, 2015
1 parent 58cdabd commit a51cd33
Show file tree
Hide file tree
Showing 4 changed files with 53 additions and 2 deletions.
27 changes: 27 additions & 0 deletions rest/tests/test_learning_resource.py
Expand Up @@ -518,6 +518,33 @@ def test_update_resource_term_links(self):
self.assertEqual(self.resource.terms.count(), 0)
self.assertEqual(resource2.terms.count(), 1)

def test_remove_content_xml(self):
"""
Test behavior of remove_content_xml flag.
"""
resource_dict = as_json(self.client.get(
"{repo_base}{repo_slug}/learning_resources/{lr_id}/".format(
repo_base=REPO_BASE,
repo_slug=self.repo.slug,
lr_id=self.resource.id
)
))
self.assertTrue("content_xml" in resource_dict)

without_content_xml_dict = as_json(
self.client.get(
"{repo_base}{repo_slug}/learning_resources/"
"{lr_id}/?remove_content_xml=true".format(
repo_base=REPO_BASE,
repo_slug=self.repo.slug,
lr_id=self.resource.id
)
)
)
self.assertFalse("content_xml" in without_content_xml_dict)
del resource_dict["content_xml"]
self.assertEqual(without_content_xml_dict, resource_dict)


class TestLearningResourceAuthorization(RESTAuthTestCase):
"""
Expand Down
13 changes: 13 additions & 0 deletions rest/views.py
Expand Up @@ -550,6 +550,19 @@ def get_queryset(self):
return LearningResource.objects.filter(
id=self.kwargs['lr_id'])

def get(self, request, *args, **kwargs):
"""Override get to filter on content_xml."""
instance = self.get_object()
serializer = self.get_serializer(instance)

remove_content_xml = request.GET.get("remove_content_xml")
if remove_content_xml == "true":
data = dict(serializer.data)
del data['content_xml']
else:
data = serializer.data
return Response(data)

def update(self, request, *args, **kwargs):
"""Override update to remove response."""
super(LearningResourceDetail, self).update(request, *args, **kwargs)
Expand Down
12 changes: 11 additions & 1 deletion ui/jstests/test-learning-resource.jsx
Expand Up @@ -25,6 +25,9 @@ define(['QUnit', 'jquery', 'react', 'lodash', 'learning_resources',
"xa_histogram_grade": 0.0,
"terms": ["required"]
};
var learningResourceResponseMinusContentXml = $.extend(
{}, learningResourceResponse);
delete learningResourceResponseMinusContentXml.content_xml;
var termResponseEasy = {
"id": 1,
"slug": "easy",
Expand Down Expand Up @@ -112,6 +115,12 @@ define(['QUnit', 'jquery', 'react', 'lodash', 'learning_resources',
type: 'GET',
responseText: learningResourceResponse
});
TestUtils.initMockjax({
url: '/api/v1/repositories/repo/learning_resources/' +
'1/?remove_content_xml=true',
type: 'GET',
responseText: learningResourceResponseMinusContentXml
});
TestUtils.initMockjax({
url: '/api/v1/repositories/repo/learning_resources/1/',
type: 'PATCH',
Expand Down Expand Up @@ -434,7 +443,8 @@ define(['QUnit', 'jquery', 'react', 'lodash', 'learning_resources',
var done = assert.async();
var closeLearningResourcePanel = function() {};
TestUtils.replaceMockjax({
url: '/api/v1/repositories/repo/learning_resources/1/',
url: '/api/v1/repositories/repo/learning_resources/1/' +
'?remove_content_xml=true',
type: 'GET',
status: 400
});
Expand Down
3 changes: 2 additions & 1 deletion ui/static/ui/js/learning_resources.jsx
Expand Up @@ -387,7 +387,8 @@ define('learning_resources',
this.setState({loaded: false});
$.get("/api/v1/repositories/" + this.props.repoSlug +
"/learning_resources/" +
this.props.learningResourceId + "/").then(function (data) {
this.props.learningResourceId + "/?remove_content_xml=true")
.then(function (data) {
if (!thiz.isMounted()) {
// In time AJAX call happens component may become unmounted
return;
Expand Down

0 comments on commit a51cd33

Please sign in to comment.