Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
100 commits
Select commit Hold shift + click to select a range
3e0f08e
Studio support for creating and editing libraries (PR 6046)
bradenmacdonald Oct 29, 2014
0581761
Removed the ability to add Discussion and advanced components to Cont…
Kelketek Dec 2, 2014
ff1a08c
Paging for LibraryView added with JS tests.
e-kolpakov Nov 3, 2014
ed3b972
Added tests for Library pagination.
Kelketek Dec 4, 2014
80c517e
Addressed notes from reviewers on Library Pagination.
Kelketek Dec 8, 2014
7188c3a
Factored out Pagination into its own Container view.
Kelketek Dec 11, 2014
074e4cf
Addressed further review notes for Library Pagination
Kelketek Dec 12, 2014
eddf44d
Library Content XModule
bradenmacdonald Oct 29, 2014
e1f6ca9
Unit and integration tests of content libraries
bradenmacdonald Nov 2, 2014
d25673e
LibraryContent bok choy acceptance tests
e-kolpakov Dec 8, 2014
d4e8242
Friendly error message when library key is invalid
bradenmacdonald Dec 10, 2014
9f85c0f
Added explanation to container view of Library Block.
Kelketek Nov 26, 2014
80ea764
Made errors on Library blocks use validate functionality.
Kelketek Nov 26, 2014
e498872
Move update link to the validation area
bradenmacdonald Dec 10, 2014
904007a
Fix: don't need to reload the whole page to refresh_children from the…
bradenmacdonald Dec 11, 2014
76b6d33
Refresh children automatically when library setting is changed
bradenmacdonald Dec 11, 2014
eb4b1d5
Fix greedy intrusion of split_test documentation
bradenmacdonald Dec 11, 2014
99c3692
Validation should be on the descriptor, not the module
bradenmacdonald Dec 14, 2014
cdf7c65
ungettext fix
bradenmacdonald Dec 14, 2014
6f3b46c
Move code that uses the modulestore to an XBlock service
bradenmacdonald Dec 14, 2014
376e698
Display the library key on the library view in Studio
bradenmacdonald Dec 19, 2014
5f5b41d
Remove state summary from the unit author page until SOL-192
bradenmacdonald Dec 19, 2014
c41f607
Remove unused method, apply fixes needed after latest rebase
bradenmacdonald Jan 3, 2015
e2a3be8
Sidebar text for Content Library page in Studio
catong Dec 31, 2014
a429213
Add reference to library_content advanced setting
catong Jan 5, 2015
fefc70c
Three levels of user permissions for content libraries:
bradenmacdonald Nov 7, 2014
ea03f6e
Unit tests for content library permissions
bradenmacdonald Nov 7, 2014
c477bab
Update the REST API course_team_handler to support library roles, fix…
bradenmacdonald Nov 12, 2014
93bb1f5
Basic UI for managing library users with limited editing functionalit…
bradenmacdonald Nov 12, 2014
d38e69c
Acceptance & Jasmine tests for library permissions editor
bradenmacdonald Dec 17, 2014
42ee057
Read-only users get "Details" instead of "Edit" button, remove "Save"…
bradenmacdonald Dec 31, 2014
95c8125
Accessibility fix per cptvitamin
bradenmacdonald Dec 31, 2014
7303966
Check permissions when updating LibraryContent blocks
bradenmacdonald Dec 31, 2014
4d454e3
Documentation updates from catong
bradenmacdonald Jan 5, 2015
db813d1
List of CAPA input types + setting to choose one
e-kolpakov Dec 17, 2014
e06b6fe
Filtering children by CAPA input type.
e-kolpakov Dec 17, 2014
2b45e10
Bok choy acceptance tests
e-kolpakov Dec 22, 2014
66874ac
Fixed typo + combined problem type tests into single test
e-kolpakov Dec 23, 2014
fcbc844
Problem type filtering on `update_children` event
e-kolpakov Dec 24, 2014
ea42827
Switched to filtering by response type rather than input type
e-kolpakov Dec 29, 2014
33ce3d4
Validation warning when no content matches configured filters
e-kolpakov Dec 29, 2014
620ba8a
Test for warning message when no content is configured.
e-kolpakov Dec 29, 2014
b2a17b3
Validation warning if library content XBlock configured to fetch more…
e-kolpakov Dec 30, 2014
6ac2588
Improved help message.
e-kolpakov Dec 30, 2014
332d2b0
Addressed notes from reviewers about Library content filters.
Kelketek Dec 31, 2014
f2f363c
Added reference to TNL ticket mentioned in TODO + improved formatting…
e-kolpakov Jan 5, 2015
07241aa
Addressed review notes:
e-kolpakov Jan 6, 2015
4e5b6c8
Added problem type filtering related tests.
e-kolpakov Jan 6, 2015
7c11a83
Addressed nits.
Kelketek Jan 6, 2015
d82da9e
Test filter for problems with multiple capa response types.
Kelketek Jan 6, 2015
2be036f
Simplifications and changes to reduce conflicts with PR 6399
bradenmacdonald Jan 7, 2015
21b0254
Added tests for `editor_saved` library content xblock method
e-kolpakov Jan 7, 2015
3857a1c
Support for overriding Scope.settings values when library content is …
bradenmacdonald Oct 30, 2014
325c360
Unrelated: fix two bugs when duplicating a LibraryContentModule
bradenmacdonald Dec 23, 2014
e768fb9
Fix two split mongo bugs that were causing problems...
bradenmacdonald Dec 19, 2014
ea579bf
Workaround an issue with capa modules
bradenmacdonald Dec 30, 2014
55fb45f
Acceptance test
bradenmacdonald Dec 30, 2014
4d82510
Fix bug w/ publishing ( + test), move copy_from_template tests to the…
bradenmacdonald Jan 7, 2015
c17ba15
Made empty course url the 'home' url instead.
Kelketek Nov 25, 2014
5676dae
Added subheader to content libraries page.
Kelketek Nov 25, 2014
4ca7755
Fixed header display
Kelketek Nov 28, 2014
6cd4932
Update text on new content library form.
mtyaka Nov 14, 2014
f8f08b7
Libraries UI: remove underline on hover.
mtyaka Nov 14, 2014
fc4eed4
Added test for /home/ redirect.
Kelketek Nov 28, 2014
eabd6c8
Quality check and test fixes.
Kelketek Nov 28, 2014
ccc3928
Update tests.
mtyaka Dec 17, 2014
198d099
Added 'Display Name' to Library content module.
Kelketek Nov 25, 2014
bd9ce27
Replace aria-required with HTML5 required.
mtyaka Dec 31, 2014
f874c05
Add aria-describedby attributes to new course/library form.
mtyaka Dec 31, 2014
0b8471d
Toggle aria-disabled attribute on New Course/New Library buttons.
mtyaka Jan 3, 2015
fe9ae31
Add 'Add Component' button to library page.
mtyaka Jan 3, 2015
a0c590e
Mark Library 'mode' field non-editable.
mtyaka Jan 3, 2015
116abf1
Modify error message when library with same org/code exists.
mtyaka Jan 3, 2015
6a09809
Slower scroll to 'Add New Component'.
mtyaka Jan 6, 2015
5eab2c5
Update text on new library form.
mtyaka Jan 6, 2015
99caf60
Refactoring create_course_utils and create_library_utils to reduce th…
e-kolpakov Jan 6, 2015
91469f9
Refactored shared elements of create factories into base class.
Kelketek Jan 6, 2015
5342fa2
Quality fixes.
Kelketek Jan 7, 2015
23baab6
Added test to exercise library root paged rendering
e-kolpakov Jan 8, 2015
184fd01
Created dedicated LibraryRoot test file and moved rendering tests fro…
e-kolpakov Jan 8, 2015
e59071e
Test for ValueError when updating_children for non-existing library
e-kolpakov Jan 8, 2015
d0919c9
Added docstrings
e-kolpakov Jan 8, 2015
84edced
Render tests for library content block preview and author views
e-kolpakov Jan 8, 2015
f513290
Tests for LibraryList
e-kolpakov Jan 8, 2015
1a387d8
Test for paging in items.py
e-kolpakov Jan 8, 2015
6a2af3e
pylint fixes
e-kolpakov Jan 8, 2015
134a75b
Minor tweaks to reduce conflicts with PR 6492
bradenmacdonald Jan 9, 2015
195d5b5
pylint fixes
e-kolpakov Jan 12, 2015
e4ea28f
Minor pylint fixes
bradenmacdonald Jan 8, 2015
91cb371
Emit per-student library content events to the tracking log for analy…
bradenmacdonald Dec 19, 2014
407265b
Store the usage locator of library blocks in split when they are inhe…
bradenmacdonald Dec 20, 2014
3973317
Report the original LibraryUsageLocator in LMS analytics
bradenmacdonald Jan 9, 2015
3a973d4
Unit tests for library content analytics
bradenmacdonald Jan 9, 2015
9a11652
Add module key and library source info to problem events
bradenmacdonald Jan 9, 2015
10fe9c0
pylint fixes
bradenmacdonald Jan 12, 2015
05fc673
Add in "previous_count" and "max_count"
bradenmacdonald Jan 12, 2015
16dc83d
Merge pull request #6492 from open-craft/content_libraries/13-analyti…
bradenmacdonald Jan 12, 2015
6ea5a8a
Fix hard-coded studio name
bradenmacdonald Jan 12, 2015
012e6e6
Update font awesome icons
bradenmacdonald Jan 12, 2015
bce8ee6
Fix bug when deleting first of two recently added blocks
bradenmacdonald Jan 13, 2015
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion cms/djangoapps/contentstore/features/common.py
Original file line number Diff line number Diff line change
Expand Up @@ -171,7 +171,7 @@ def log_into_studio(
world.log_in(username=uname, password=password, email=email, name=name)
# Navigate to the studio dashboard
world.visit('/')
assert_in(uname, world.css_text('h2.title', timeout=10))
assert_in(uname, world.css_text('span.account-username', timeout=10))


def add_course_author(user, course):
Expand Down
15 changes: 10 additions & 5 deletions cms/djangoapps/contentstore/features/courses.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
# pylint: disable=missing-docstring
# pylint: disable=redefined-outer-name
# pylint: disable=unused-argument

from lettuce import world, step
from common import *
Expand Down Expand Up @@ -33,15 +34,19 @@ def i_create_a_course(step):
create_a_course()


@step('I click the course link in My Courses$')
def i_click_the_course_link_in_my_courses(step):
@step('I click the course link in Studio Home$')
def i_click_the_course_link_in_studio_home(step): # pylint: disable=invalid-name
course_css = 'a.course-link'
world.css_click(course_css)


@step('I see an error about the length of the org/course/run tuple')
def i_see_error_about_length(step):
assert world.css_has_text('#course_creation_error', 'The combined length of the organization, course number, and course run fields cannot be more than 65 characters.')
assert world.css_has_text(
'#course_creation_error',
'The combined length of the organization, course number, '
'and course run fields cannot be more than 65 characters.'
)

############ ASSERTIONS ###################

Expand All @@ -52,8 +57,8 @@ def courseware_page_has_loaded_in_studio(step):
assert world.is_css_present(course_title_css)


@step('I see the course listed in My Courses$')
def i_see_the_course_in_my_courses(step):
@step('I see the course listed in Studio Home$')
def i_see_the_course_in_studio_home(step):
course_css = 'h3.class-title'
assert world.css_has_text(course_css, world.scenario_dict['COURSE'].display_name)

Expand Down
2 changes: 1 addition & 1 deletion cms/djangoapps/contentstore/features/help.feature
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ Feature: CMS.Help
Scenario: Users can access online help within a course
Given I have opened a new course in Studio

And I click the course link in My Courses
And I click the course link in Studio Home
Then I should see online help for "outline"

And I go to the course updates page
Expand Down
4 changes: 2 additions & 2 deletions cms/djangoapps/contentstore/features/signup.feature
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ Feature: CMS.Sign in
And I visit the url "/signin?next=http://www.google.com/"
When I fill in and submit the signin form
And I wait for "2" seconds
Then I should see that the path is "/course/"
Then I should see that the path is "/home/"

Scenario: Login with mistyped credentials
Given I have opened a new course in Studio
Expand All @@ -41,4 +41,4 @@ Feature: CMS.Sign in
Then I should not see a login error message
And I submit the signin form
And I wait for "2" seconds
Then I should see that the path is "/course/"
Then I should see that the path is "/home/"
2 changes: 1 addition & 1 deletion cms/djangoapps/contentstore/features/signup.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ def i_press_the_button_on_the_registration_form(step):

@step('I should see an email verification prompt')
def i_should_see_an_email_verification_prompt(step):
world.css_has_text('h1.page-header', u'My Courses')
world.css_has_text('h1.page-header', u'Studio Home')
world.css_has_text('div.msg h3.title', u'We need to verify your email address')


Expand Down
11 changes: 5 additions & 6 deletions cms/djangoapps/contentstore/tests/test_contentstore.py
Original file line number Diff line number Diff line change
Expand Up @@ -1166,11 +1166,10 @@ def assert_course_permission_denied(self):

def test_course_index_view_with_no_courses(self):
"""Test viewing the index page with no courses"""
# Create a course so there is something to view
resp = self.client.get_html('/course/')
resp = self.client.get_html('/home/')
self.assertContains(
resp,
'<h1 class="page-header">My Courses</h1>',
'<h1 class="page-header">Studio Home</h1>',
status_code=200,
html=True
)
Expand All @@ -1189,7 +1188,7 @@ def test_item_factory(self):
def test_course_index_view_with_course(self):
"""Test viewing the index page with an existing course"""
CourseFactory.create(display_name='Robot Super Educational Course')
resp = self.client.get_html('/course/')
resp = self.client.get_html('/home/')
self.assertContains(
resp,
'<h3 class="course-title">Robot Super Educational Course</h3>',
Expand Down Expand Up @@ -1604,7 +1603,7 @@ def assertInCourseListing(self, course_key):
Asserts that the given course key is in the accessible course listing section of the html
and NOT in the unsucceeded course action section of the html.
"""
course_listing = lxml.html.fromstring(self.client.get_html('/course/').content)
course_listing = lxml.html.fromstring(self.client.get_html('/home/').content)
self.assertEqual(len(self.get_course_listing_elements(course_listing, course_key)), 1)
self.assertEqual(len(self.get_unsucceeded_course_action_elements(course_listing, course_key)), 0)

Expand All @@ -1613,7 +1612,7 @@ def assertInUnsucceededCourseActions(self, course_key):
Asserts that the given course key is in the unsucceeded course action section of the html
and NOT in the accessible course listing section of the html.
"""
course_listing = lxml.html.fromstring(self.client.get_html('/course/').content)
course_listing = lxml.html.fromstring(self.client.get_html('/home/').content)
self.assertEqual(len(self.get_course_listing_elements(course_listing, course_key)), 0)
self.assertEqual(len(self.get_unsucceeded_course_action_elements(course_listing, course_key)), 1)

Expand Down
10 changes: 5 additions & 5 deletions cms/djangoapps/contentstore/tests/test_i18n.py
Original file line number Diff line number Diff line change
Expand Up @@ -44,9 +44,9 @@ def test_course_plain_english(self):
self.client = AjaxEnabledTestClient()
self.client.login(username=self.uname, password=self.password)

resp = self.client.get_html('/course/')
resp = self.client.get_html('/home/')
self.assertContains(resp,
'<h1 class="page-header">My Courses</h1>',
'<h1 class="page-header">Studio Home</h1>',
status_code=200,
html=True)

Expand All @@ -56,13 +56,13 @@ def test_course_explicit_english(self):
self.client.login(username=self.uname, password=self.password)

resp = self.client.get_html(
'/course/',
'/home/',
{},
HTTP_ACCEPT_LANGUAGE='en',
)

self.assertContains(resp,
'<h1 class="page-header">My Courses</h1>',
'<h1 class="page-header">Studio Home</h1>',
status_code=200,
html=True)

Expand All @@ -81,7 +81,7 @@ def test_course_with_accents(self):
self.client.login(username=self.uname, password=self.password)

resp = self.client.get_html(
'/course/',
'/home/',
{},
HTTP_ACCEPT_LANGUAGE='eo'
)
Expand Down
Loading