Commit Graph

122 Commits

Author SHA1 Message Date
Daniel Friedman
3acd7a008c Refactor and add tests for new grade report.
* Handle grading errors
2015-05-13 06:58:02 -04:00
Daniel Friedman
9269ec3b00 Add new instructor task for weighted problems 2015-05-12 16:32:00 -04:00
Diana Huang
7df9ab9c14 Extend the Score namedtuple to know about module locations. 2015-05-12 16:32:00 -04:00
Carlos de la Guardia
9ddee93401 MIT: CCX. Code Quality fixes
add doc strings; fix pep8 warning
address some minor issues brought up by the code review process
2015-04-10 23:30:26 -04:00
cewing
7f691e4a92 MIT: CCX. Rename POC to CCX
Final official name is Custom Courses for EdX (CCX), rename all code to remove previous name.

Rename the FEATURE constant used to identify this feature

Rename the middleware for the CCX change

rename the constant used for storing the current poc id on the session.

rename the _PocContext threading local

rename the override provider in all places where it is referenced

`PersonalOnlineCoursesOverrideProvider` -> `CustomCoursesForEdxOverrideProvider`

generally rename symbols from overrides.py to replace `poc` with `ccx` where possible without changing model names or attributes

rename more symbols from poc to ccx
rename util functions from app utils module

general symbol renaming poc -> ccx in views.py and related url changes

Rename the coach role wherever it is used.

reword poc_coach to ccx_coach

UI rename

replace POC with CCX globally

template context variable renamed

rename poc_ to ccx_ in urls and all related locations (views, js, scss etc)

remove pocs migrations

Final massive renaming, including models.  Re-built migration.

cleaning up a few tailing references

Fix reference typo in schedule template JS

undo modifications made on the fly in test setup to ensure that our tests are properly isolated from the rest of the system tests.

Fixes jazkarta/edx-platform#38

Clean up some leftover strings and comments

fixing more strings and comments in python files

fix a naming error in the schedule tab that was causing problems in deleting courseware items.

Fixes jazkarta/edx-platform#36

updating tests and utility code to match changes in infrastructure from latest rebase
2015-04-10 23:30:25 -04:00
Chris Rossi
e66fe2b311 MIT: CCX. Properly handle possible representations of the course key 2015-04-10 23:13:57 -04:00
Chris Rossi
aa1333c363 MIT: CCX. Hide course blocks not in the CCX from view for coaches and students 2015-04-10 23:13:11 -04:00
Chris Rossi
3256eb1ff6 Architecture for arbitrary field overrides, field overrides for
individual students, and a reimplementation of the individual due date
feature.

This work introduces an architecture, used with the 'authored_data'
portion of LmsFieldData, which allows arbitrary field overrides to be
made for fields that are part of the course content or settings (Mongo
data).  The basic architecture is extensible by means of writing and
configuring arbitrary field override providers.

One concrete implementation of a field override provider is provided
which allows for overrides to be for individual students.  This provider
is then used as a basis for reimplementing the individual due date
extensions feature as a proof of concept for the design.

One can imagine writing override providers that provide overrides based
on a student's membership in a cohort or other similar idea.  This work
is being done, in fact, to pave the way for the Personal Online Courses
feature being developed by MIT, which will use an override provider very
much long those lines.
2015-04-06 13:04:44 -07:00
Omar Al-Ithawi
4e733c6e1f Unicode fixes for log messages and other things 2015-02-04 09:55:44 +02:00
Matt Drayer
8b03ad3906 Decoupled entrance exam scoring from milestone fulfillment 2015-01-28 22:00:25 -05:00
Matt Drayer
3c669e3838 New feature contribution: Entrance Exams 2015-01-15 20:35:24 -05:00
David Baumgold
36e77c7463 Fixing pep8 issues 2014-12-11 13:04:49 -05:00
stv
4d30aedf4e Fix PEP8: E127 continuation line over-indented
for visual indent
2014-11-24 20:46:50 -05:00
stv
cf9308144d Fix PEP8: E302 expected 2 blank lines, found 1 2014-11-10 11:00:11 -08:00
Braden MacDonald
a8f622af7f Consistently ensure dog_stats_api tags are formatted correctly 2014-10-09 12:35:26 -07:00
Adam Palay
d9f0a6ba68 Lower logging level in grading condition from exception to info
addresses part of LMS-2907
2014-06-23 16:50:28 -04:00
Will Daly
b00398f5ee ORA2 release-2014-06-11T10.43
Install edx-submissions from PyPi instead of from edx-ora2
2014-06-11 08:15:10 -04:00
Don Mitchell
7be81341d7 Revert StudentModule.module_state_key to field rather than computed property 2014-05-09 10:41:12 -04:00
Calen Pennington
9811926d97 Make course ids and usage ids opaque to LMS and Studio [partial commit]
This commit updates lms/djangoapps/courseware.

These keys are now objects with a limited interface, and the particular
internal representation is managed by the data storage layer (the
modulestore).

For the LMS, there should be no outward-facing changes to the system.
The keys are, for now, a change to internal representation only. For
Studio, the new serialized form of the keys is used in urls, to allow
for further migration in the future.

Co-Author: Andy Armstrong <andya@edx.org>
Co-Author: Christina Roberts <christina@edx.org>
Co-Author: David Baumgold <db@edx.org>
Co-Author: Diana Huang <dkh@edx.org>
Co-Author: Don Mitchell <dmitchell@edx.org>
Co-Author: Julia Hansbrough <julia@edx.org>
Co-Author: Nimisha Asthagiri <nasthagiri@edx.org>
Co-Author: Sarina Canelake <sarina@edx.org>

[LMS-2370]
2014-05-06 10:08:32 -04:00
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