diff --git a/Gemfile b/Gemfile index b95f3b5d1a..43a9f6e2b1 100644 --- a/Gemfile +++ b/Gemfile @@ -1,5 +1,4 @@ source :rubygems -ruby "1.8.7" gem 'rake', '~> 10.0.3' gem 'sass', '3.1.15' gem 'bourbon', '~> 1.3.6' diff --git a/common/djangoapps/course_groups/tests/tests.py b/common/djangoapps/course_groups/tests/tests.py index 21fad8bbeb..86f0be0791 100644 --- a/common/djangoapps/course_groups/tests/tests.py +++ b/common/djangoapps/course_groups/tests/tests.py @@ -10,6 +10,25 @@ from course_groups.cohorts import (get_cohort, get_course_cohorts, from xmodule.modulestore.django import modulestore, _MODULESTORES +# NOTE: running this with the lms.envs.test config works without +# manually overriding the modulestore. However, running with +# cms.envs.test doesn't. + +def xml_store_config(data_dir): + return { + 'default': { + 'ENGINE': 'xmodule.modulestore.xml.XMLModuleStore', + 'OPTIONS': { + 'data_dir': data_dir, + 'default_class': 'xmodule.hidden_module.HiddenDescriptor', + } + } +} + +TEST_DATA_DIR = settings.COMMON_TEST_DATA_ROOT +TEST_DATA_XML_MODULESTORE = xml_store_config(TEST_DATA_DIR) + +@override_settings(MODULESTORE=TEST_DATA_XML_MODULESTORE) class TestCohorts(django.test.TestCase): @@ -77,7 +96,7 @@ class TestCohorts(django.test.TestCase): course = modulestore().get_course("edX/toy/2012_Fall") self.assertEqual(course.id, "edX/toy/2012_Fall") self.assertFalse(course.is_cohorted) - + user = User.objects.create(username="test", email="a@b.com") other_user = User.objects.create(username="test2", email="a2@b.com") diff --git a/common/djangoapps/student/management/commands/tests/test_pearson.py b/common/djangoapps/student/management/commands/tests/test_pearson.py index 199557bf87..2f4878a09d 100644 --- a/common/djangoapps/student/management/commands/tests/test_pearson.py +++ b/common/djangoapps/student/management/commands/tests/test_pearson.py @@ -40,6 +40,7 @@ def create_tc_registration(username, course_id = 'org1/course1/term1', exam_code 'eligibility_appointment_date_first' : '2013-01-01T00:00', 'eligibility_appointment_date_last' : '2013-12-31T23:59', 'accommodation_code' : accommodation_code, + 'create_dummy_exam' : True, } call_command('pearson_make_tc_registration', username, course_id, **options) @@ -179,11 +180,11 @@ class PearsonCommandTestCase(PearsonTestCase): self.assertErrorContains(error_string, 'Field Form Error: address_1') def test_create_good_testcenter_user(self): - testcenter_user = create_tc_user("test1") + testcenter_user = create_tc_user("test_good_user") self.assertIsNotNone(testcenter_user) def test_create_good_testcenter_registration(self): - username = 'test1' + username = 'test_good_registration' create_tc_user(username) registration = create_tc_registration(username) self.assertIsNotNone(registration) diff --git a/common/lib/xmodule/xmodule/modulestore/xml_importer.py b/common/lib/xmodule/xmodule/modulestore/xml_importer.py index fa45f92dfc..7658d699d4 100644 --- a/common/lib/xmodule/xmodule/modulestore/xml_importer.py +++ b/common/lib/xmodule/xmodule/modulestore/xml_importer.py @@ -247,7 +247,7 @@ def remap_namespace(module, target_location_namespace): return module -def validate_category_hierarcy(module_store, course_id, parent_category, expected_child_category): +def validate_category_hierarchy(module_store, course_id, parent_category, expected_child_category): err_cnt = 0 parents = [] @@ -324,11 +324,18 @@ def perform_xlint(data_dir, course_dirs, for course_id in module_store.modules.keys(): # constrain that courses only have 'chapter' children - err_cnt += validate_category_hierarcy(module_store, course_id, "course", "chapter") + err_cnt += validate_category_hierarchy(module_store, course_id, "course", "chapter") # constrain that chapters only have 'sequentials' - err_cnt += validate_category_hierarcy(module_store, course_id, "chapter", "sequential") + err_cnt += validate_category_hierarchy(module_store, course_id, "chapter", "sequential") # constrain that sequentials only have 'verticals' - err_cnt += validate_category_hierarcy(module_store, course_id, "sequential", "vertical") + err_cnt += validate_category_hierarchy(module_store, course_id, "sequential", "vertical") + + # check for a presence of a course marketing video + location_elements = course_id.split('/') + if Location(['i4x', location_elements[0], location_elements[1], 'about', 'video', None]) not in module_store.modules[course_id]: + print "WARN: Missing course marketing video. It is recommended that every course have a marketing video." + warn_cnt += 1 + print "\n\n------------------------------------------\nVALIDATION SUMMARY: {0} Errors {1} Warnings\n".format(err_cnt, warn_cnt) diff --git a/lms/envs/test.py b/lms/envs/test.py index a045baa669..8b546549eb 100644 --- a/lms/envs/test.py +++ b/lms/envs/test.py @@ -17,7 +17,7 @@ from path import path MITX_FEATURES['DISABLE_START_DATES'] = True # Until we have discussion actually working in test mode, just turn it off -#MITX_FEATURES['ENABLE_DISCUSSION_SERVICE'] = True +MITX_FEATURES['ENABLE_DISCUSSION_SERVICE'] = False # Need wiki for courseware views to work. TODO (vshnayder): shouldn't need it. WIKI_ENABLED = True diff --git a/lms/static/coffee/src/navigation.coffee b/lms/static/coffee/src/navigation.coffee index 94d53c17c4..3f89a6ce1d 100644 --- a/lms/static/coffee/src/navigation.coffee +++ b/lms/static/coffee/src/navigation.coffee @@ -13,6 +13,7 @@ class @Navigation active: active header: 'h3' autoHeight: false + heightStyle: 'content' $('#accordion .ui-state-active').closest('.chapter').addClass('is-open') $('#open_close_accordion a').click @toggle $('#accordion').show() diff --git a/lms/static/files/edx-identity.zip b/lms/static/files/edx-identity.zip index a37d2b4e20..22b95f70f5 100644 Binary files a/lms/static/files/edx-identity.zip and b/lms/static/files/edx-identity.zip differ diff --git a/lms/templates/static_templates/faq.html b/lms/templates/static_templates/faq.html index 91ac16e90c..f6f5b07fe7 100644 --- a/lms/templates/static_templates/faq.html +++ b/lms/templates/static_templates/faq.html @@ -84,7 +84,7 @@ diff --git a/lms/templates/static_templates/help.html b/lms/templates/static_templates/help.html index 04c9164289..74b4c2afc9 100644 --- a/lms/templates/static_templates/help.html +++ b/lms/templates/static_templates/help.html @@ -53,12 +53,6 @@

We are continually reviewing and creating courses to add to the edX platform. Please check the website for future course announcements. You can also "friend" edX on Facebook – you’ll receive updates and announcements.

-
-

How can I help edX?

-
-

You may not realize it, but just by taking a course you are helping edX. That’s because the edX platform has been specifically designed to not only teach, but also gather data about learning. EdX will utilize this data to find out how to improve education online and on-campus.

-
-

When does my course start and/or finish?

@@ -78,7 +72,7 @@
-

What happens if I have to quit a course, are there any penalties, will I be able to take another course in the future?

+

What happens if I have to quit a course? Are there any penalties? Will I be able to take another course in the future?

You may unregister from an edX course at anytime, there are absolutely no penalties associated with incomplete edX studies, and you may register for the same course (provided we are still offering it) at a later time.

@@ -147,85 +141,94 @@

The Discussion Forums are the best place to reach out to the edX teaching team for your class, and you don’t have to wait in line or rearrange your schedule to fit your professor’s – just post your questions. The response isn’t always immediate, but it’s usually pretty darned quick.

- -
-

Getting Help

+
+

Getting help.

+
+

You have a vibrant, global community of fellow online learners available 24-7 to help with the course within the framework of the Honor Code, as well as support from the TAs who monitor the course. Take a look at the course’s Discussion Forum where you can review questions, answers and comments from fellow online learners, as well as post a question.

+
+

Can I re-take a course?

-
+

Good news: there are unlimited "mulligans" in edX. You may re-take edX courses as often as you wish. Your performance in any particular offering of a course will not effect your standing in future offerings of any edX course, including future offerings of the same course.

Enrollment for a course that I am interested in is open, but the course has already started. Can I still enroll?

-
+

Yes, but you will not be able to turn in any assignments or exams that have already been due. If it is early in the course, you might still be able to earn enough points for a certificate, but you will have to check with the course in question in order to find out more.

Is there an exam at the end?

-
+

Different courses have slightly different structures. Please check the course material description to see if there is a final exam or final project.

Will the same courses be offered again in the future?

-
+

Existing edX courses will be re-offered, and more courses added.

+
+ + +
+

Certificates & Credits

+

Will I get a certificate for taking an edX course?

-
+

Online learners who receive a passing grade for a course will receive a certificate of mastery from edX and the underlying X University that offered the course. For example, a certificate of mastery for MITx’s 6.002x Circuits & Electronics will come from edX and MITx.

How are edX certificates delivered?

-
+

EdX certificates are delivered online through edx.org. So be sure to check your email in the weeks following the final grading – you will be able to download and print your certificate.

What is the difference between a proctored certificate and an honor code certificate?

-
+

A proctored certificate is given to students who take and pass an exam under proctored conditions. An honor-code certificate is given to students who have completed all of the necessary online coursework associated with a course and have signed the edX honor code .

-

Yes. The requirements for both certificates can be independently satisfied.

-
-

It is certainly possible to pass an edX course if you miss a week; however, coursework is progressive, so you should review and study what you may have missed. You can check your progress dashboard in the course to see your course average along the way if you have any concerns.

+

Can I get both a proctored certificate and an honor code certificate?

+
+

Yes. The requirements for both certificates can be independently satisfied.

Will my grade be shown on my certificate?

-
+

No. Grades are not displayed on either honor code or proctored certificates.

How can I talk to professors, fellows and teaching assistants?

-
+

The Discussion Forums are the best place to reach out to the edX teaching team for your class, and you don’t have to wait in line or rearrange your schedule to fit your professor’s – just post your questions. The response isn’t always immediate, but it’s usually pretty darned quick.

The only certificates distributed with grades by edX were for the initial prototype course.

-
+

You may unregister from an edX course at anytime, there are absolutely no penalties associated with incomplete edX studies, and you may register for the same course (provided we are still offering it) at a later time.

Will my university accept my edX coursework for credit?

-
+

Each educational institution makes its own decision regarding whether to accept edX coursework for credit. Check with your university for its policy.

I lost my edX certificate – can you resend it to me?

-
+

Please log back in to your account to find certificates from the same profile page where they were originally posted. You will be able to re-print your certificate from there.

@@ -292,6 +295,13 @@

Please check your browser and settings. We recommend downloading the current version of Firefox or Chrome. Alternatively, you may re-register with a different email account. There is no need to delete the old account, as it will disappear if unused.

+
+

How can I help edX?

+
+

You may not realize it, but just by taking a course you are helping edX. That’s because the edX platform has been specifically designed to not only teach, but also gather data about learning. EdX will utilize this data to find out how to improve education online and on-campus.

+
+
+
@@ -299,7 +309,7 @@ diff --git a/lms/templates/static_templates/jobs.html b/lms/templates/static_templates/jobs.html index f2752a0939..621e25b0bd 100644 --- a/lms/templates/static_templates/jobs.html +++ b/lms/templates/static_templates/jobs.html @@ -51,6 +51,40 @@ + + +

INSTRUCTIONAL DESIGNER — CONTRACT OPPORTUNITY