Commit Graph

103 Commits

Author SHA1 Message Date
Will Daly
440d9ddb89 Install edx-ora2
Support for displaying submissions API scores in Progress page.
2014-03-25 09:42:55 -04:00
Giulio Gratta
0429ba7da3 Fixed all instances of "occured" typo 2014-01-24 16:13:26 -08:00
Chris Rossi
831f907c79 Add individual due dates feature.
Adds a feature to the edX platform which allows instructors to set
individual due dates for students on particular coursework. This code is
meant primarily for on-campus use--it is not intended that this feature
would be used for MOOCs. It adds a new tab, "Extensions", to the beta
instructor dashboard which allows changing due dates per student. This
feature is enabled by setting FEATURES['INDIVIDUAL_DUE_DATES'] = True.
2014-01-14 10:19:02 -05:00
David Ormsbee
0565fbbfab Fix (re-implement) answer distribution report generation.
This restores functionality that has been broken since the introduction of
XModuleDescriptor/XModule proxying (part of the XBlock transition). It generates
a CSV of all answers for all content of type "problem" in a given course, with a
row per (problem part, answer). The format is:

url_name, display name, answer id, answer, count

Example values:
  url_name = "7f1b1523a55848cd9f5c93eb8cbabcf7"
  display name = "Problem 1: Something Hard"
  answer id = i4x-JediAcdmy-LTSB304-problem-7f1b1523a55848cd9f5c93eb8cbabcf7_2_1
  answer = "Use the Force"
  count = 1138

Since it only grabs things of type "problem", it will not return results for
things like self/peer-assessments. Any Loncapa problem types will show up (so
multiple choice, text input, numeric, etc.)

Instead of crawling the course tree and instantiating the appropriate CapaModule
objects to grab state, this version draws directly from StudentModule. This lets
us skip a lot of processing and most importantly lets us generate the answer
distribution without causing side-effects (since XBlocks auto-save state). It
also lets us take advantage of a read-replica database if one is available, to
minimize locking concerns.

There are minor changes to the legacy dashboard around CSV charset encoding and
a change to OptionResponseXMLFactory to make it more unicode friendly. Answer
distribution output is now also sorted, to group together answers for the same
content piece.

Note that this does not introduce celery into the process. Answer distributions
are still only available for small courses.

This was originally created to fix [LMS-922], but it also addresses [LMS-811] and
possibly other areas in the legacy dashboard where CSV downloads break due to
character encoding issues.
2013-12-20 15:05:50 -05:00
David Baumgold
e26fc08d2b Update logging.getLogger() calls to use edx instead of mitx 2013-12-04 15:18:15 -05:00
Ned Batchelder
9a106a32d5 Merged master to rc/2013-11-21 2013-11-25 14:56:09 -05:00
Adam Palay
cf524906e0 more granular transactions in grading [LMS-1480]
remove field_data_cache from grades.grade and grades.progress_summary

cleans grading code by adding wrappers
2013-11-22 12:02:35 -05:00
David Ormsbee
a99fd08004 Fix error case where we have items in our grading csv output
that are not present in a given student's gradeset.

General code cleanup and addition of comments.

Instructor dashboard API unit tests.

LMS-58
2013-11-22 10:06:28 -05:00
David Ormsbee
e0aa8cf78a Grade report celery task and direct file push to S3 from the new instructor dashboard.
Hook up display of grade files ready for download to new instructor dashboard.

LMS-58
2013-11-22 10:06:10 -05:00
Adam Palay
7b72a18551 more granular transactions in grading [LMS-1480]
remove field_data_cache from grades.grade and grades.progress_summary

cleans grading code by adding wrappers
2013-11-20 14:40:32 -05:00
Chris Dodge
a93a848e03 we are already being passed in the module descriptor so we don't need to re-fetch it (and children) 2013-11-07 17:56:13 -05:00
Calen Pennington
6b474724ac Make XModuleDescriptor and XModule act as a single class
By transparently proxying between the XModuleDescriptor and the XModule,
and between their runtimes, we can make them act as a single class, so
that we can swap in an actual XBlock instead.
2013-10-08 15:29:17 -04:00
Adam Palay
ee62719025 check if module created from description is None before looking for its child descriptors 2013-09-11 18:33:51 -04:00
Calen Pennington
8201b1412e Use XBlock 0.3 2013-09-06 09:45:59 -04:00
Adam Palay
8aee225136 in grading, if problem cannot be created, return score as none 2013-08-16 10:25:38 -04:00
Calen Pennington
e791e84ea7 Remove the stores_state field from XModule
stores_state is now only used in a single test, in conjunction with
has_score. In practice, it's never the case that stores_state is false
when has_score is true, so we can delete stores_state entirely, and just
use has_score for the grading test.
2013-06-13 14:38:59 -04:00
Calen Pennington
039ccb83cc Migrate to the open source XBlock repo 2013-04-04 10:55:31 -04:00
Brian Wilson
1abfff220e when grading, check for always-regrade at the section level too 2013-04-01 14:14:12 -04:00
Chris Dodge
fd973442b1 if we have to reload a module and already have the descriptor, we don't need to refect the descriptor (which results in another DB round-trip. We just need the student state. 2013-03-22 13:57:53 -04:00
Calen Pennington
0209c883bb Remove trailing whitespace 2013-03-19 10:41:38 -04:00
Calen Pennington
6b64b4214f Make relative imports explicitly relative 2013-03-15 11:23:22 -04:00
Calen Pennington
2a96c45677 Make default value for format setting None, and force lms and cms to be explicit about a string default 2013-03-12 10:16:14 -04:00
Calen Pennington
035829289e Parse weight as a float when reading from a string 2013-03-08 16:01:27 -05:00
Calen Pennington
93db5acc15 Make display_name defaulting explicit 2013-03-08 14:58:09 -05:00
Calen Pennington
1bfb933518 Merge remote-tracking branch 'origin/master' into feature/alex/poll-merged
Conflicts:
	cms/djangoapps/contentstore/tests/test_contentstore.py
	cms/djangoapps/contentstore/views.py
	cms/templates/edit_subsection.html
	cms/templates/overview.html
	cms/templates/unit.html
	cms/templates/widgets/header.html
	common/djangoapps/course_groups/tests/tests.py
	common/lib/xmodule/setup.py
	common/lib/xmodule/xmodule/capa_module.py
	common/lib/xmodule/xmodule/combined_open_ended_module.py
	common/lib/xmodule/xmodule/course_module.py
	common/lib/xmodule/xmodule/js/src/.gitignore
	common/lib/xmodule/xmodule/mako_module.py
	common/lib/xmodule/xmodule/modulestore/mongo.py
	common/lib/xmodule/xmodule/modulestore/store_utilities.py
	common/lib/xmodule/xmodule/modulestore/xml_exporter.py
	common/lib/xmodule/xmodule/open_ended_grading_classes/combined_open_ended_modulev1.py
	common/lib/xmodule/xmodule/open_ended_grading_classes/controller_query_service.py
	common/lib/xmodule/xmodule/open_ended_grading_classes/open_ended_module.py
	common/lib/xmodule/xmodule/open_ended_grading_classes/openendedchild.py
	common/lib/xmodule/xmodule/open_ended_grading_classes/self_assessment_module.py
	common/lib/xmodule/xmodule/peer_grading_module.py
	common/lib/xmodule/xmodule/tests/__init__.py
	common/lib/xmodule/xmodule/tests/test_capa_module.py
	common/lib/xmodule/xmodule/tests/test_self_assessment.py
	common/lib/xmodule/xmodule/x_module.py
	lms/djangoapps/courseware/grades.py
	lms/djangoapps/courseware/models.py
	lms/djangoapps/courseware/views.py
	lms/djangoapps/open_ended_grading/tests.py
2013-03-04 16:33:40 -05:00
David Ormsbee
e4f1dab409 Merge pull request #1590 from MITx/fix/cdodge/optimize-progress-summary-page
add depth parameters when loading course and student-state caches. This ...
2013-03-04 09:54:49 -08:00
Chris Dodge
4892897c0d add depth parameters when loading course and student-state caches. This will make fewer (but fatter) queries to the database 2013-03-04 12:03:25 -05:00
Ned Batchelder
7c8a90229e Use 'is None' and 'is not None' 2013-03-04 10:57:25 -05:00
Victor Shnayder
4f8757600a merge 2013-02-14 12:49:14 -05:00
Victor Shnayder
5e44846596 Foldit integration.
- ops view for the desktop app to talk to
  - xmodule that talks to the foldit model and displays the student's state
  - grading tweak to make grade updates from an external service work:
    - Add an always_recalculate_grades property to XModuleDescriptor.
2013-02-14 12:45:06 -05:00
Calen Pennington
4f555f6480 Merge remote-tracking branch 'origin/master' into feature/cale/xmodule-storage-model
Conflicts:
	cms/djangoapps/contentstore/course_info_model.py
	cms/djangoapps/contentstore/module_info_model.py
	cms/djangoapps/contentstore/tests/factories.py
	cms/djangoapps/contentstore/tests/test_course_settings.py
	cms/djangoapps/contentstore/views.py
	cms/djangoapps/models/settings/course_details.py
	cms/djangoapps/models/settings/course_grading.py
	cms/templates/edit_subsection.html
	common/djangoapps/mitxmako/shortcuts.py
	common/djangoapps/static_replace.py
	common/djangoapps/util/converters.py
	common/djangoapps/xmodule_modifiers.py
	common/lib/xmodule/setup.py
	common/lib/xmodule/xmodule/abtest_module.py
	common/lib/xmodule/xmodule/capa_module.py
	common/lib/xmodule/xmodule/course_module.py
	common/lib/xmodule/xmodule/discussion_module.py
	common/lib/xmodule/xmodule/error_module.py
	common/lib/xmodule/xmodule/html_module.py
	common/lib/xmodule/xmodule/js/src/video/display.coffee
	common/lib/xmodule/xmodule/mako_module.py
	common/lib/xmodule/xmodule/modulestore/mongo.py
	common/lib/xmodule/xmodule/modulestore/store_utilities.py
	common/lib/xmodule/xmodule/modulestore/xml.py
	common/lib/xmodule/xmodule/modulestore/xml_importer.py
	common/lib/xmodule/xmodule/raw_module.py
	common/lib/xmodule/xmodule/self_assessment_module.py
	common/lib/xmodule/xmodule/seq_module.py
	common/lib/xmodule/xmodule/template_module.py
	common/lib/xmodule/xmodule/tests/__init__.py
	common/lib/xmodule/xmodule/tests/test_export.py
	common/lib/xmodule/xmodule/tests/test_import.py
	common/lib/xmodule/xmodule/video_module.py
	common/lib/xmodule/xmodule/x_module.py
	common/lib/xmodule/xmodule/xml_module.py
	lms/djangoapps/courseware/access.py
	lms/djangoapps/courseware/courses.py
	lms/djangoapps/courseware/grades.py
	lms/djangoapps/courseware/models.py
	lms/djangoapps/courseware/module_render.py
	lms/djangoapps/courseware/tests/tests.py
	lms/djangoapps/courseware/views.py
	lms/djangoapps/django_comment_client/utils.py
	lms/templates/staff_problem_info.html
	lms/templates/video.html
	rakefile
2013-02-07 15:12:30 -05:00
Calen Pennington
cfae1cdf62 Pep8 autofixes 2013-02-06 11:13:50 -05:00
Calen Pennington
993c24b72b WIP: Model data caching work 2013-01-23 14:51:07 -05:00
Calen Pennington
0726294c35 Use get_child_descriptors for grades.py 2013-01-10 13:55:46 -05:00
Calen Pennington
89a0b82e5c Decrease the number of queries needed for LMS courseware
This cuts the number of queries in 6.002 courseware loads from ~650 to
~5-40. Still to do: cache CustomTag templates so that we only load them
once per request.
2013-01-10 13:55:46 -05:00
Calen Pennington
7f8b79694c Grade problems that have ungraded student modules 2012-12-28 14:55:32 -05:00
Calen Pennington
7679fda172 Remove debugging print statements 2012-12-28 14:54:13 -05:00
Calen Pennington
8693d288c8 Fix errors from running unit tests (some tests still fail) 2012-12-28 14:51:50 -05:00
Calen Pennington
3adb1e7109 Make grading not require get_instance_module 2012-12-28 14:51:50 -05:00
Calen Pennington
01411ae66e WIP: Trying to get tests working 2012-12-28 14:48:47 -05:00
Calen Pennington
7e224f5847 Convert a bunch more references from metadata to fields 2012-12-28 14:45:46 -05:00
Calen Pennington
cbfc7b201a WIP more changes to model definitions. Next Up: actually wiring model data into the rdbms 2012-12-28 14:44:31 -05:00
Victor Shnayder
a5dcdcb705 Check for None to fix 3.091 progress tab crash
- get_module() contract says it can return None (e.g. if access control check failed)
2012-10-11 13:08:05 -04:00
Victor Shnayder
af6dd84af0 Merge pull request #789 from MITx/feature/bridger/course_grading
Feature/bridger/course grading
2012-09-30 11:52:36 -07:00
Bridger Maxwell
fc73916e05 Removed django.conf.settings dependency from graders. 2012-09-28 23:14:55 -04:00
David Ormsbee
305dcfc4e9 Put tests to check ordering of scores returned on progress page. 2012-09-25 12:54:06 -04:00
David Ormsbee
5f6cc6ef93 Quick fix for scores within a homework/lab showing up in reverse order.
The real fix would be to have yield_dynamic_descriptor_descendents return
things in the proper order, but I'm not entirely sure what's going on
there, and this is a bug on prod now.
2012-09-24 16:24:38 -04:00
kimth
c1fc50437a Adjust comments 2012-09-22 23:11:26 -07:00
kimth
48b93fc985 Arbitrary grading markers 2012-09-22 23:01:04 -07:00
Bridger Maxwell
9ec38176e0 Small cleanup tweaks in grading. 2012-09-20 16:56:09 -04:00