Commit Graph

201 Commits

Author SHA1 Message Date
dylanrhodes
2b1a7eece2 Asynchronous download button for ORA2 data
Conflicts:
	lms/djangoapps/instructor/tests/test_api.py
	lms/djangoapps/instructor/utils.py
	lms/djangoapps/instructor/views/api.py
	lms/djangoapps/instructor/views/api_urls.py
	lms/djangoapps/instructor/views/instructor_dashboard.py
	lms/djangoapps/instructor_task/api.py
	lms/djangoapps/instructor_task/tasks.py
	lms/djangoapps/instructor_task/tasks_helper.py
	lms/djangoapps/instructor_task/tests/test_api.py
	lms/djangoapps/instructor_task/tests/test_tasks.py
	lms/djangoapps/instructor_task/tests/test_tasks_helper.py
	lms/envs/aws.py
	lms/envs/common.py
	lms/static/coffee/src/instructor_dashboard/data_download.coffee
	lms/templates/instructor/instructor_dashboard_2/data_download.html
2016-03-10 09:58:55 -05:00
John Eskew
df261cd5d6 Remove all request.REQUEST usages - replace with request.GET and/or
request.POST to eliminate Django deprecation messages.
2016-02-22 09:54:26 -05:00
John Eskew
bb5c28c0c5 Remove deprecation warnings from Django models.
Add app_label definitions in Meta classes for models.
Move import of course_mode model into methods to prevent importing
the models at startup time.
2016-02-09 09:28:43 -05:00
David Ormsbee
9ae0dada4c Merge pull request #11445 from edx/ormsbee/clear_cache_in_tests
Clear caches between tests for ModuleStoreTestCase/SharedModuleStoreTestCase
2016-02-08 10:23:54 -05:00
David Ormsbee
be25bb8aba Clear caches between tests for ModuleStoreTestCase/SharedModuleStoreTestCase
Cached values were leaking across tests, causing difficult to debug errors,
particularly when using Config Models. As part of this work, certain tests
that had query counts that relied on those values being cached needed to
be adjusted up.
2016-02-06 00:01:15 -05:00
jsa
92aa346fdf Implement celery task to award program certs.
ECOM-3354
2016-02-05 12:21:20 -05:00
Nimisha Asthagiri
f3cb692472 Safe Session Cookies Middleware 2016-01-26 17:23:03 -05:00
Peter Fogg
96cc38951d Disable audit certificates for new audit enrollments.
Two new certificate statuses are introduced, 'audit_passing' and
'audit_notpassing'. These signal that the GeneratedCertificate is not
to be displayed as a cert to the user, and that they either passed or
did not. This allows us to retain existing grading logic, as well as
maintaining correctness in analytics and reporting.

Ineligible certificates are hidden by using the
`eligible_certificates` manager on GeneratedCertificate. Some places
in the coe (largely reporting, analytics, and management commands) use
the default `objects` manager, since they need access to all
certificates.

ECOM-3040
ECOM-3515
2016-01-22 10:27:55 -05:00
Adam
c6b21d139a Merge pull request #11293 from edx/release
Release
2016-01-21 12:36:03 -05:00
Syed Hassan Raza
de91ceaae2 Fix HTTP_USER_AGENT latin1 characters 2016-01-20 18:40:09 +05:00
Peter Fogg
60860e3aa8 Disable audit certificates for new audit enrollments.
An `eligible_for_certificate` field is added to the
GeneratedCertificate model. This way we can retain existing grading
logic, as well as maintaining correctness in analytics and reporting.

Ineligible certificates are hidden by using the
`eligible_certificates` manager on GeneratedCertificate. Some places
in the coe (largely reporting, analytics, and management commands) use
the default `objects` manager, since they need access to all
certificates.

This commit also updates the DB cache for acceptance tests.
2016-01-12 22:44:53 -05:00
Sarina Canelake
96ddf544ff Remove Pylint violations 2015-12-17 16:29:28 -05:00
Saleem Latif
fb0fbbbaa4 skip 'filtering students' only when students are given and statuses to regenerate are not 2015-12-17 12:25:42 +05:00
Ned Batchelder
43ac38aa87 Add autospec to all mocks 2015-12-09 09:44:22 -05:00
Chris Dodge
1592a32de3 White Labels need to still use the 'honor' course mode even through the default has changed 2015-12-06 20:36:26 -05:00
Matt Drayer
c41a887762 Merge pull request #10805 from edx/saleem-latif/SOL-1435
SOL-1435: Add Certificate Regeneration history table.
2015-12-04 09:56:18 -05:00
Saleem Latif
1e16e873a4 Add Certificate Regeneration history table. 2015-12-04 10:24:02 +05:00
Peter Fogg
8b97ca1b24 Merge pull request #10802 from edx/feature/remove-honor-code-certs
Remove default honor code.
2015-12-03 14:55:30 -05:00
Eric Fischer
731d85f771 CohortMembership Transaction Fixes
An issue arose recently due to ATOMIC_REQUESTS being turned on by default. It
turns out that CohortMemberships had been somewhat relying on the old default
transaction handling in order to keep CohortMemberships and the underlying
CourseUserGroup.users values in-sync.

To fix this, I've made all updates to Cohortmemberships go through an
outer_atomic(read_committed=True) block. This, is conjunction with the already
present select_for_update(), will no longer allow 2 simultaneous requests to
modify objects in memory without sharing them. Only one process will be
touching a given CohortMembership at any given time, and all changes will be
immediately comitted to the database, where the other process will see them.

I've also included some changes to get_cohort(), add_user_to_cohort(), and
remove_user_from_cohort() in order to properly make use of the new
CohortMembership system.
2015-12-02 15:03:28 -05:00
Peter Fogg
497622d4b4 Switch default course mode to 'audit'.
ECOM-2972
2015-11-25 11:22:29 -05:00
Ned Batchelder
f5d0f3ff55 Remove useless pylint suppressions 2015-11-22 07:41:19 -05:00
Chris Dodge
f4c5541339 be sure to include the enrollment_id when unenrolling 2015-11-19 15:50:51 -05:00
muhammad-ammar
8d5f153201 Merge remote-tracking branch 'origin/release' into dj18-release-merge
Conflicts:
	common/djangoapps/util/testing.py
	lms/djangoapps/instructor/views/api.py
	lms/djangoapps/teams/tests/test_views.py
	openedx/core/djangoapps/programs/models.py
	openedx/core/djangoapps/user_api/accounts/tests/test_views.py
	requirements/edx/github.txt
2015-11-18 17:53:44 +05:00
Saleem Latif
15380a00f7 invalidate Generated Certificates before regeneration 2015-11-13 12:26:19 +05:00
Usman Khalid
6cb62f2697 Rebase upgrade Django to v1.8.5
Please note that this is a squshed commit and the work of:
Symbolist, macdiesel, nedbat, doctoryes, muzaffaryousaf and muhammad-ammar
2015-11-10 15:00:19 -05:00
Matt Drayer
31c5b94548 Merge pull request #10518 from edx/saleem-latif/SOL-1333
SOL-1333: Add Cert Regenerate UI on Instructor Dash
2015-11-10 12:20:07 -05:00
Saleem Latif
094ed32176 Added ability to regenerate certificates from Instructor Dashboard 2015-11-10 15:14:55 +05:00
Chris Dodge
4216eaf5c3 change 'routing' for some reports which go to potentially backlogged queues 2015-11-06 08:29:17 -05:00
Matt Drayer
fc77a6eae7 Merge pull request #10363 from edx/saleem-latif/SOL-1315
SOL-1315: Add Cert Exception UI on Instructor Dash
2015-11-03 10:09:19 -05:00
Saleem Latif
99bd47e9a8 Add Cert Exception UI on Instructor Dash 2015-11-03 12:52:22 +05:00
Eric Fischer
08ed3b547f CohortMemberships Unit Test Updates
Updating previously-existing unit tests to function with the new
CohortMembership model.
2015-10-30 11:07:25 -04:00
Afzal Wali
5a11f75a48 Add the ability for self-service course survey reports 2015-10-29 13:26:28 -04:00
Ned Batchelder
322ca34b20 Remove pylint pragmas from "class Meta"
Also remove useless docstrings where they were added to keep pylint
quiet.
2015-10-21 07:37:00 -04:00
Saleem Latif
12b245a386 Remove milestones when instructor clears a student's entry exam data 2015-10-19 12:39:22 +05:00
Chris Dodge
8609f80db0 Add email and manual enrollment reason into the Enrollment Report 2015-10-06 22:34:54 -04:00
Diana Huang
7bfb1127f5 Merge pull request #9771 from edx/diana/add-team-to-reports
Add team column to grade reports.
2015-10-02 09:35:25 -04:00
Diana Huang
a53903c46a Add team column to grade reports. 2015-09-23 12:21:13 -04:00
Awais Jibran
13e8761aa4 In cohort courses, student progress pages differ from the grade report.
TNL-3204
2015-09-18 23:43:26 +05:00
muhammad-ammar
6a5ce5d544 Upgrade factory_boy
TNL-3179
2015-09-18 18:02:38 +05:00
Tim Krones
df5b2dadda Move functionality for exporting a CSV of all student answers to a given
problem from legacy instructor dash to new instructor dash.
2015-08-17 22:32:49 +02:00
Chris Dodge
6cf5516a84 Integration of edx_proctoring into the LMS 2015-08-13 19:08:50 -04:00
Ned Batchelder
f54fe787c6 Remove needless 'disable=no-member' pragmas 2015-08-03 17:47:44 -04:00
Zia Fazal
b5c32ec4f1 ziafazal/SOL-980: Fix error while generating certificates 2015-07-15 12:21:50 -04:00
Sven Marnach
3d7246ecc8 Allow masquerading as a specific user different from the logged in user. 2015-07-13 18:55:45 -07:00
Sarina Canelake
ba8fd1c21d Eliminate instances of unused-import Pylint violation 2015-07-13 17:33:25 -04:00
David Ormsbee
79de77cf95 Optimize grading/progress page to reduce database queries (cache max scores).
The progress page did a number of things that make performance terrible for
courses with large numbers of problems, particularly if those problems are
customresponse CapaModule problems that need to be executed via codejail.

The grading code takes pains to not instantiate student state and execute the
problem code. If a student has answered the question, the max score is stored
in StudentModule. However, if the student hasn't attempted the question yet, we
have to run the problem code just to call .max_score() on it. This is necessary
in grade() if the student has answered other problems in the assignment (so we
can know what to divide by). This is always necessary to know in
progress_summary() because we list out every problem there. Code execution can
be especially slow if the problems need to invoke codejail.

To address this, we create a MaxScoresCache that will cache the max raw score
possible for every problem. We select the cache keys so that it will
automatically become invalidated when a new version of the course is published.

The fundamental assumption here is that a problem cannot have two different
max score values for two unscored students. A problem *can* score two students
differently such that they have different max scores. So Carlos can have 2/3 on
a problem, while Lyla gets 3/4. But if neither Carlos nor Lyla has ever
interacted with the problem (i.e. they're just seeing it on their progress
page), they must both see 0/4 -- it cannot be the case that Carlos sees 0/3 and
Lyla sees 0/4.

We used to load all student state into two separate FieldDataCache instances,
after which we do a bunch of individual queries for scored items. Part of this
split-up was done because of locking problems, but I think we might have gotten
overzealous with our manual transaction hammer.

In this commit, we consolidate all state access in grade() and progress()
to use one shared FieldDataCache. We also use a filter so that we only pull
back StudentModule state for things that might possibly affect the grade --
items that either have scores or have children.

Because some older XModules do work in their __init__() methods (like Video),
instantiating them takes time, particularly on large courses. This commit also
changes the code that fetches the grading_context to filter out children that
can't possibly affect the grade.

Finally, we introduce a ScoresClient that also tries to fetch score
information all at once, instead of in separate queries. Technically, we are
fetching this information redundantly, but that's because the state and score
interfaces are being teased apart as we move forward. Still, this only
amounts to one extra SQL query, and has very little impact on performance
overall.

Much thanks to @adampalay -- his hackathon work in #7168 formed the basis of
this.

https://openedx.atlassian.net/browse/CSM-17
2015-07-09 10:03:58 -04:00
Matt Drayer
fd7a99db0b mattdrayer/num-queries-fix: Update query value to reflect new reality 2015-07-07 16:41:15 -04:00
Ned Batchelder
cb0624bfa1 Correct parent references in one test. 2015-07-02 19:31:48 -04:00
Matt Drayer
289ec980a5 mattdrayer/update-num-queries-check: Modify value to reflect improved workflow(s) 2015-07-02 18:03:57 -04:00
Zia Fazal
611d16b25a ziafazal/SOL-980: Generate certificates from instructor dashboard
* added generate certificates task and bok choy tests
* added unit tests
* changes based feedback and improved acceptance test
* Change header text
* changes based on feedback on 24/6
* added task_id to api output
* fixed broken test
* Remove "Instructor" from strings, per Docs team
* Fixed flaky entrance exam test
2015-07-02 14:32:36 -04:00